summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Buesch <mb@bu3sch.de>2011-01-16 23:15:17 +0100
committerMichael Buesch <mb@bu3sch.de>2011-01-16 23:15:17 +0100
commit6ceaa6e1c7e378282a6235bb206fb8daa9a8327f (patch)
tree9dfbbf5e1fdf644ccc823be4ea7e26047c8b07b9
parent66ff277b235d89ebdcc920d7ddf27a864bcb3655 (diff)
downloadtoprammer-6ceaa6e1c7e378282a6235bb206fb8daa9a8327f.tar.xz
toprammer-6ceaa6e1c7e378282a6235bb206fb8daa9a8327f.zip
Update documentation
Signed-off-by: Michael Buesch <mb@bu3sch.de>
-rw-r--r--README-DEVELOPERS.lyx91
-rw-r--r--README-DEVELOPERS.ps1145
2 files changed, 652 insertions, 584 deletions
diff --git a/README-DEVELOPERS.lyx b/README-DEVELOPERS.lyx
index c263f77..4fe9fcb 100644
--- a/README-DEVELOPERS.lyx
+++ b/README-DEVELOPERS.lyx
@@ -294,8 +294,7 @@ cmdFPGARead(address)
\end_layout
\begin_layout Standard
-Reads a byte from the FPGA and puts it into the microcontroller's buffer
- register.
+Reads a byte from the FPGA and puts it into the buffer register.
\begin_inset Quotes eld
\end_inset
@@ -308,8 +307,11 @@ address
The microcontroller's buffer register has an automagically incrementing
pointer.
So issueing several cmdFPGARead() in a row will result in all the bytes
- being put one after each other into the buffer register.
- The buffer register can hold up to 64 bytes.
+ being put one after another into the buffer register.
+ The buffer register does have a limited size.
+ Overflowing it crashes the programmer, requireing a physical USB disconnect
+ to recover.
+ Call getBufferRegSize() to get the size of the buffer register.
Reading the buffer register (cmdReadBufferReg()) will reset the automagic
pointer to zero.
Note that address 0x10 is fast-tracked and uses one byte less on the USB
@@ -532,6 +534,16 @@ writeLockbits() Write the Lockbit memory.
Reimplement this, if your DUT has Lockbits and supports writing them.
\end_layout
+\begin_layout Description
+readRAM() Read the Random Access Memory.
+ Reimplement this, if your DUT has RAM and supports reading it.
+\end_layout
+
+\begin_layout Description
+writeRAM() Write the Random Access Memory.
+ Reimplement this, if your DUT has RAM and supports writing to it.
+\end_layout
+
\begin_layout Standard
After defining your
\begin_inset Quotes eld
@@ -595,23 +607,24 @@ er/bit/src/ subdirectory and execute the "create.sh" script:
\end_layout
\begin_layout LyX-Code
-./create.sh name_of_chip
+./create.sh bitfile_name
\end_layout
\begin_layout Standard
-Where "name_of_chip" is the name of the new chip.
- Now go to libtoprammer/bit/src/name_of_chip/ and implement the bottom-half
- algorithm in the name_of_chip.v Verilog file.
+Where "bitfile_name" is the name of the new chip's bitfile.
+ (That often matches the chip-ID).
+ Now go to libtoprammer/bit/src/bitfile_name/ and implement the bottom-half
+ algorithm in the bitfile_name.v Verilog file.
To build the .BIT file from the Verilog sources, go to the libtoprammer/bit/
directory and execute:
\end_layout
\begin_layout LyX-Code
-./build.sh name_of_chip
+./build.sh bitfile_name
\end_layout
\begin_layout Standard
-(if you omit the chipname, all chips will be rebuilt).
+(if you omit the bitfile_name, all bitfiles will be rebuilt).
\end_layout
\begin_layout Section
@@ -625,8 +638,8 @@ The automatic layout generator (layout_generator.py) can be used to automaticall
The advantage of using the autogenerator instead of hardcoding the VCC/VPP/GND
connections in the chip implementation is that the autogenerated layout
is portable between TOPxxxx programmers and it is much easier to implement.
- You do not have to search a chip position in the ZIF socket that fits the
- device constraints.
+ You do not have to search for a chip position in the ZIF socket that fits
+ the device constraints.
The autogenerator will do it for you.
\end_layout
@@ -709,9 +722,9 @@ chipPinVCCX This parameter is an integer specifying the VCC pin on the chip
\begin_layout Description
chipPinsVPP This parameter is an integer or a list of integers specifying
the VPP pin(s) on the chip package.
- Note that it specifies the VCC pin on the chip package and _not_ on the
+ Note that it specifies the VPP pin on the chip package and _not_ on the
ZIF socket.
- So if your chip datasheet tells you that VCC is on pin 1, you pass an 1
+ So if your chip datasheet tells you that VPP is on pin 1, you pass a 1
here.
If your chip needs multiple VPP voltages, just pass a list of pins.
Specify all possible VPP pins here.
@@ -721,9 +734,9 @@ chipPinsVPP This parameter is an integer or a list of integers specifying
\begin_layout Description
chipPinGND This parameter is an integer specifying the GND pin on the chip
package.
- Note that it specifies the VCC pin on the chip package and _not_ on the
+ Note that it specifies the GND pin on the chip package and _not_ on the
ZIF socket.
- So if your chip datasheet tells you that VCC is on pin 5, you pass an 5
+ So if your chip datasheet tells you that GND is on pin 5, you pass a 5
here.
\end_layout
@@ -737,20 +750,43 @@ class Chip
\end_inset
constructor, the autogenerator is initialized and ready to be used.
- The following methods can be used to apply or disable a layout:
+ The following
+\begin_inset Quotes eld
+\end_inset
+
+class Chip
+\begin_inset Quotes erd
+\end_inset
+
+ methods can be used to enable or disable a layout:
\end_layout
\begin_layout Description
-applyVCCX(on) This method enables or disables (depending on the parameter)
- a layout.
- Enabling the layout means that the VCCX pin will be actively driven by
- the configured VCCX voltage.
+applyVCCX(on) This method enables or disables (depending on the
+\begin_inset Quotes eld
+\end_inset
+
+on
+\begin_inset Quotes erd
+\end_inset
+
+ parameter) the VCC layout.
+ Enabling the layout means that the VCC pin will be actively driven by the
+ configured VCC voltage.
Disabling the layout will tristate the driver.
\end_layout
\begin_layout Description
applyVPP(on,packagePinsToTurnOn) This method enables or disables (depending
- on the parameter) a layout.
+ on the
+\begin_inset Quotes eld
+\end_inset
+
+on
+\begin_inset Quotes erd
+\end_inset
+
+ parameter) the VPP layout.
Enabling the layout means that the VPP pins will be actively driven by
the configured VPP voltage.
Disabling the layout will tristate the driver.
@@ -779,8 +815,15 @@ on=False
\end_layout
\begin_layout Description
-applyGND(on) This method enables or disables (depending on the parameter)
- a layout.
+applyGND(on) This method enables or disables (depending on the
+\begin_inset Quotes eld
+\end_inset
+
+on
+\begin_inset Quotes erd
+\end_inset
+
+ parameter) the GND layout.
Enabling the layout means that the GND pins will be actively driven by
GND.
Disabling the layout will tristate the driver.
diff --git a/README-DEVELOPERS.ps b/README-DEVELOPERS.ps
index 98e6079..b171e75 100644
--- a/README-DEVELOPERS.ps
+++ b/README-DEVELOPERS.ps
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.98 Copyright 2009 Radical Eye Software
%%Title: README-DEVELOPERS.dvi
-%%CreationDate: Sun Jan 16 01:36:08 2011
+%%CreationDate: Sun Jan 16 23:14:46 2011
%%Pages: 7
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
@@ -11,7 +11,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -o README-DEVELOPERS.ps README-DEVELOPERS.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2011.01.16:0136
+%DVIPSSource: TeX output 2011.01.16:2314
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -1825,8 +1825,8 @@ F000000FE000001FC000003F8000003F8000007F000600FE000600FE000601FC000603F8
000607F8000E07F0000E0FE0000C1FC0001C1FC0001C3F80003C7F00007CFF0003FCFFFF
FFFCFFFFFFFC1F247EA325>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe ecbx1000 10 41
-/Fe 41 122 df<00001C00003C0000F80001F00003E00007E0000FC0001F80001F00003F
+%DVIPSBitmapFont: Fe ecbx1000 10 42
+/Fe 42 122 df<00001C00003C0000F80001F00003E00007E0000FC0001F80001F00003F
00007E0000FE0000FC0001FC0001F80003F80003F80007F00007F0000FF0000FE0001FE0
001FE0001FC0003FC0003FC0003FC0003FC0007F80007F80007F80007F80007F8000FF80
00FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF80
@@ -1842,385 +1842,399 @@ FFFCFFFFFFFC1F247EA325>I E
007E0000FE0000FC0001FC0001F80003F00003E00007E0000FC0001F80001F00003E0000
7C0000F00000E0000016537BBD25>I<0F803FE07FF07FF0FFF8FFF8FFFCFFFCFFFC7FFC
7FFC3FFC0F9C001C003C0038003800380078007000F001E001E003C007800F001F001C00
-18000E1D798C1B>44 D<0000003FFC0001C0000003FFFFC003C000001FFFFFF007C00000
-FFFFFFFC0FC00003FFFC00FF3FC00007FFC0001FFFC0001FFE00000FFFC0003FFC000003
-FFC0007FF0000001FFC000FFE0000000FFC001FFC0000000FFC003FFC00000007FC007FF
-800000003FC00FFF000000003FC00FFF000000001FC01FFE000000001FC01FFE00000000
-0FC03FFE000000000FC03FFC000000000FC03FFC0000000007C07FFC0000000007C07FFC
-0000000007C07FF8000000000000FFF8000000000000FFF8000000000000FFF800000000
-0000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8
-000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800000000
-0000FFF80000000000007FF80000000000007FFC0000000000007FFC0000000003C03FFC
-0000000003C03FFC0000000003C03FFE0000000003C01FFE0000000007C01FFE00000000
-07C00FFF0000000007800FFF000000000F8007FF800000000F0003FFC00000001F0001FF
-C00000003E0000FFE00000007E00007FF8000000FC00003FFC000001F800001FFF000003
-F0000007FFC0000FE0000003FFFC00FF80000000FFFFFFFE000000001FFFFFF800000000
-03FFFFE000000000003FFE0000003A3B7BB945>67 D<FFFFFFFFFF800000FFFFFFFFFFF8
-0000FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF80007FFF000007FF800007FF800007F
-F800001FFE00007FF800000FFF00007FF8000003FF80007FF8000001FFC0007FF8000001
-FFC0007FF8000000FFE0007FF80000007FF0007FF80000007FF0007FF80000003FF8007F
-F80000003FF8007FF80000003FFC007FF80000001FFC007FF80000001FFC007FF8000000
-1FFE007FF80000001FFE007FF80000001FFE007FF80000001FFE007FF80000001FFF007F
-F80000001FFF007FF80000001FFF007FF80000001FFF007FF80000001FFF007FF8000000
-1FFF007FF80000001FFF007FF80000001FFF007FF80000001FFF007FF80000001FFF007F
-F80000001FFF007FF80000001FFF007FF80000001FFE007FF80000001FFE007FF8000000
-1FFE007FF80000001FFE007FF80000001FFC007FF80000003FFC007FF80000003FFC007F
-F80000003FF8007FF80000007FF8007FF80000007FF0007FF8000000FFE0007FF8000000
-FFE0007FF8000001FFC0007FF8000003FF80007FF8000007FF00007FF800001FFE00007F
-F800007FFC00007FF80007FFF000FFFFFFFFFFFFC000FFFFFFFFFFFF0000FFFFFFFFFFFC
-0000FFFFFFFFFF80000040397DB849>I<FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFF
-FFF0FFFFFFFFFFFFF0007FF80000FFF0007FF800001FF8007FF8000007F8007FF8000003
-F8007FF8000001F8007FF8000001F8007FF8000000F8007FF8000000F8007FF800000078
-007FF800000078007FF800000078007FF8003C007C007FF8003C003C007FF8003C003C00
-7FF8003C003C007FF8003C003C007FF8003C0000007FF8007C0000007FF8007C0000007F
-F800FC0000007FF803FC0000007FFFFFFC0000007FFFFFFC0000007FFFFFFC0000007FFF
-FFFC0000007FF803FC0000007FF800FC0000007FF8007C0000007FF8007C0000007FF800
-3C0000007FF8003C000F007FF8003C000F007FF8003C000F007FF8003C001E007FF8003C
-001E007FF80000001E007FF80000001E007FF80000003E007FF80000003E007FF8000000
-3C007FF80000007C007FF80000007C007FF8000000FC007FF8000000FC007FF8000001F8
-007FF8000003F8007FF800000FF8007FF800003FF8007FF80001FFF8FFFFFFFFFFFFF8FF
-FFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF038397DB83F>I<FFFFFFFFFFFFC0FFFF
-FFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0007FF80003FFC0007FF800007FE0007FF8
-00001FE0007FF800000FE0007FF8000007E0007FF8000007E0007FF8000003E0007FF800
-0003E0007FF8000001E0007FF8000001E0007FF8000001E0007FF8000001F0007FF80078
-00F0007FF8007800F0007FF8007800F0007FF8007800F0007FF800780000007FF8007800
-00007FF800F80000007FF800F80000007FF801F80000007FF807F80000007FFFFFF80000
-007FFFFFF80000007FFFFFF80000007FFFFFF80000007FF807F80000007FF801F8000000
-7FF800F80000007FF800F80000007FF800780000007FF800780000007FF800780000007F
-F800780000007FF800780000007FF800780000007FF800000000007FF800000000007FF8
-00000000007FF800000000007FF800000000007FF800000000007FF800000000007FF800
-000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000
-0000FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000FFFFFFFF00000034397DB83C>
-I<0000003FFC0001C000000003FFFFC003C00000001FFFFFF007C0000000FFFFFFFC0FC0
-000003FFFC00FF3FC0000007FFC0001FFFC000001FFE00000FFFC000003FFC000003FFC0
-00007FF0000001FFC00000FFE0000000FFC00001FFC0000000FFC00003FFC00000007FC0
-0007FF800000003FC0000FFF000000003FC0000FFF000000001FC0001FFE000000001FC0
-001FFE000000000FC0003FFE000000000FC0003FFC000000000FC0003FFC0000000007C0
-007FFC0000000007C0007FFC0000000007C0007FF800000000000000FFF8000000000000
+18000E1D798C1B>44 D<00000003E00000000000000007F00000000000000007F0000000
+000000000FF8000000000000000FF8000000000000000FF8000000000000001FFC000000
+000000001FFC000000000000003FFE000000000000003FFE000000000000003FFE000000
+000000007FFF000000000000007FFF00000000000000FFFF80000000000000FFFF800000
+00000000FFFF80000000000001FFFFC0000000000001F3FFC0000000000003F3FFE00000
+00000003E1FFE0000000000003E1FFE0000000000007E1FFF0000000000007C0FFF00000
+0000000FC0FFF800000000000F807FF800000000000F807FF800000000001F807FFC0000
+0000001F003FFC00000000003F003FFE00000000003E001FFE00000000003E001FFE0000
+0000007E001FFF00000000007C000FFF0000000000FC000FFF8000000000F80007FF8000
+000000F80007FF8000000001F80007FFC000000001F00003FFC000000003FFFFFFFFE000
+000003FFFFFFFFE000000003FFFFFFFFE000000007FFFFFFFFF000000007C00000FFF000
+00000FC00000FFF80000000F8000007FF80000000F8000007FF80000001F8000007FFC00
+00001F0000003FFC0000003F0000003FFE0000003E0000001FFE0000003E0000001FFE00
+00007E0000001FFF0000007C0000000FFF000000FE0000000FFF8000FFFFF80007FFFFFF
+80FFFFF80007FFFFFF80FFFFF80007FFFFFF80FFFFF80007FFFFFF80413A7DB948>65
+D<0000003FFC0001C0000003FFFFC003C000001FFFFFF007C00000FFFFFFFC0FC00003FF
+FC00FF3FC00007FFC0001FFFC0001FFE00000FFFC0003FFC000003FFC0007FF0000001FF
+C000FFE0000000FFC001FFC0000000FFC003FFC00000007FC007FF800000003FC00FFF00
+0000003FC00FFF000000001FC01FFE000000001FC01FFE000000000FC03FFE000000000F
+C03FFC000000000FC03FFC0000000007C07FFC0000000007C07FFC0000000007C07FF800
+0000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000
+00FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800
+0000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000
+007FF80000000000007FFC0000000000007FFC0000000003C03FFC0000000003C03FFC00
+00000003C03FFE0000000003C01FFE0000000007C01FFE0000000007C00FFF0000000007
+800FFF000000000F8007FF800000000F0003FFC00000001F0001FFC00000003E0000FFE0
+0000007E00007FF8000000FC00003FFC000001F800001FFF000003F0000007FFC0000FE0
+000003FFFC00FF80000000FFFFFFFE000000001FFFFFF80000000003FFFFE00000000000
+3FFE0000003A3B7BB945>67 D<FFFFFFFFFF800000FFFFFFFFFFF80000FFFFFFFFFFFF00
+00FFFFFFFFFFFFC000007FF80007FFF000007FF800007FF800007FF800001FFE00007FF8
+00000FFF00007FF8000003FF80007FF8000001FFC0007FF8000001FFC0007FF8000000FF
+E0007FF80000007FF0007FF80000007FF0007FF80000003FF8007FF80000003FF8007FF8
+0000003FFC007FF80000001FFC007FF80000001FFC007FF80000001FFE007FF80000001F
+FE007FF80000001FFE007FF80000001FFE007FF80000001FFF007FF80000001FFF007FF8
+0000001FFF007FF80000001FFF007FF80000001FFF007FF80000001FFF007FF80000001F
+FF007FF80000001FFF007FF80000001FFF007FF80000001FFF007FF80000001FFF007FF8
+0000001FFF007FF80000001FFE007FF80000001FFE007FF80000001FFE007FF80000001F
+FE007FF80000001FFC007FF80000003FFC007FF80000003FFC007FF80000003FF8007FF8
+0000007FF8007FF80000007FF0007FF8000000FFE0007FF8000000FFE0007FF8000001FF
+C0007FF8000003FF80007FF8000007FF00007FF800001FFE00007FF800007FFC00007FF8
+0007FFF000FFFFFFFFFFFFC000FFFFFFFFFFFF0000FFFFFFFFFFFC0000FFFFFFFFFF8000
+0040397DB849>I<FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0
+007FF80000FFF0007FF800001FF8007FF8000007F8007FF8000003F8007FF8000001F800
+7FF8000001F8007FF8000000F8007FF8000000F8007FF800000078007FF800000078007F
+F800000078007FF8003C007C007FF8003C003C007FF8003C003C007FF8003C003C007FF8
+003C003C007FF8003C0000007FF8007C0000007FF8007C0000007FF800FC0000007FF803
+FC0000007FFFFFFC0000007FFFFFFC0000007FFFFFFC0000007FFFFFFC0000007FF803FC
+0000007FF800FC0000007FF8007C0000007FF8007C0000007FF8003C0000007FF8003C00
+0F007FF8003C000F007FF8003C000F007FF8003C001E007FF8003C001E007FF80000001E
+007FF80000001E007FF80000003E007FF80000003E007FF80000003C007FF80000007C00
+7FF80000007C007FF8000000FC007FF8000000FC007FF8000001F8007FF8000003F8007F
+F800000FF8007FF800003FF8007FF80001FFF8FFFFFFFFFFFFF8FFFFFFFFFFFFF0FFFFFF
+FFFFFFF0FFFFFFFFFFFFF038397DB83F>I<FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFF
+FFFFC0FFFFFFFFFFFFC0007FF80003FFC0007FF800007FE0007FF800001FE0007FF80000
+0FE0007FF8000007E0007FF8000007E0007FF8000003E0007FF8000003E0007FF8000001
+E0007FF8000001E0007FF8000001E0007FF8000001F0007FF8007800F0007FF8007800F0
+007FF8007800F0007FF8007800F0007FF800780000007FF800780000007FF800F8000000
+7FF800F80000007FF801F80000007FF807F80000007FFFFFF80000007FFFFFF80000007F
+FFFFF80000007FFFFFF80000007FF807F80000007FF801F80000007FF800F80000007FF8
+00F80000007FF800780000007FF800780000007FF800780000007FF800780000007FF800
+780000007FF800780000007FF800000000007FF800000000007FF800000000007FF80000
+0000007FF800000000007FF800000000007FF800000000007FF800000000007FF8000000
+00007FF800000000007FF800000000007FF800000000007FF800000000FFFFFFFF000000
+FFFFFFFF000000FFFFFFFF000000FFFFFFFF00000034397DB83C>I<0000003FFC0001C0
+00000003FFFFC003C00000001FFFFFF007C0000000FFFFFFFC0FC0000003FFFC00FF3FC0
+000007FFC0001FFFC000001FFE00000FFFC000003FFC000003FFC000007FF0000001FFC0
+0000FFE0000000FFC00001FFC0000000FFC00003FFC00000007FC00007FF800000003FC0
+000FFF000000003FC0000FFF000000001FC0001FFE000000001FC0001FFE000000000FC0
+003FFE000000000FC0003FFC000000000FC0003FFC0000000007C0007FFC0000000007C0
+007FFC0000000007C0007FF800000000000000FFF800000000000000FFF8000000000000
00FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000000
00FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000000
-00FFF800000000000000FFF800000000000000FFF800003FFFFFFF80FFF800003FFFFFFF
-807FF800003FFFFFFF807FFC00003FFFFFFF807FFC00000003FFC0003FFC00000003FFC0
-003FFC00000003FFC0003FFE00000003FFC0001FFE00000003FFC0001FFE00000003FFC0
-000FFF00000003FFC0000FFF00000003FFC00007FF80000003FFC00003FFC0000003FFC0
-0001FFE0000003FFC00000FFE0000003FFC000007FF8000007FFC000003FFC000007FFC0
-00001FFF00000FFFC0000007FFC0001FFFC0000003FFFC00FF3FC0000000FFFFFFFE0FC0
-0000001FFFFFF803C000000003FFFFE000C0000000003FFE00000000413B7BB94B>I<FF
-FFFFFCFFFFFFFCFFFFFFFCFFFFFFFC007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800FFFFFFFCFF
-FFFFFCFFFFFFFCFFFFFFFC1E397DB824>73 D<FFFFFFFF000000FFFFFFFF000000FFFFFF
-FF000000FFFFFFFF000000007FF800000000007FF800000000007FF800000000007FF800
-000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000
+00FFF800000000000000FFF800003FFFFFFF80FFF800003FFFFFFF807FF800003FFFFFFF
+807FFC00003FFFFFFF807FFC00000003FFC0003FFC00000003FFC0003FFC00000003FFC0
+003FFE00000003FFC0001FFE00000003FFC0001FFE00000003FFC0000FFF00000003FFC0
+000FFF00000003FFC00007FF80000003FFC00003FFC0000003FFC00001FFE0000003FFC0
+0000FFE0000003FFC000007FF8000007FFC000003FFC000007FFC000001FFF00000FFFC0
+000007FFC0001FFFC0000003FFFC00FF3FC0000000FFFFFFFE0FC00000001FFFFFF803C0
+00000003FFFFE000C0000000003FFE00000000413B7BB94B>I<FFFFFFFCFFFFFFFCFFFF
+FFFCFFFFFFFC007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800FFFFFFFCFFFFFFFCFFFFFFFCFFFF
+FFFC1E397DB824>73 D<FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000FFFFFFFF00
0000007FF800000000007FF800000000007FF800000000007FF800000000007FF8000000
00007FF800000000007FF800000000007FF800000000007FF800000000007FF800000000
007FF800000000007FF800000000007FF800000000007FF800000000007FF80000000000
7FF800000000007FF800000000007FF800000000007FF800000000007FF800000000007F
-F800000000007FF800000780007FF800000780007FF800000780007FF800000780007FF8
-00000780007FF800000F80007FF800000F00007FF800000F00007FF800000F00007FF800
-001F00007FF800001F00007FF800003F00007FF800003F00007FF800007F00007FF80000
-FF00007FF80001FF00007FF80003FF00007FF8000FFE00007FF8007FFE00FFFFFFFFFFFE
-00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE0031397DB839>76
-D<FFFFF80000000003FFFFF0FFFFFC0000000007FFFFF0FFFFFC0000000007FFFFF0FFFF
-FE000000000FFFFFF0007FFE000000000FFFE000007FFE000000000FFFE000007BFF0000
-00001EFFE000007BFF000000001EFFE0000079FF800000003CFFE0000079FF800000003C
-FFE0000078FFC000000078FFE0000078FFC000000078FFE00000787FE0000000F0FFE000
-00787FE0000000F0FFE00000787FE0000000F0FFE00000783FF0000001E0FFE00000783F
-F0000001E0FFE00000781FF8000003C0FFE00000781FF8000003C0FFE00000780FFC0000
-0780FFE00000780FFC00000780FFE000007807FE00000F00FFE000007807FE00000F00FF
-E000007803FF00001E00FFE000007803FF00001E00FFE000007803FF00001E00FFE00000
-7801FF80003C00FFE000007801FF80003C00FFE000007800FFC0007800FFE000007800FF
-C0007800FFE0000078007FE000F000FFE0000078007FE000F000FFE0000078003FF001E0
-00FFE0000078003FF001E000FFE0000078003FF001E000FFE0000078001FF803C000FFE0
-000078001FF803C000FFE0000078000FFC078000FFE0000078000FFC078000FFE0000078
-0007FE0F0000FFE00000780007FE0F0000FFE00000780003FF1E0000FFE00000780003FF
-1E0000FFE00000780003FF1E0000FFE00000780001FFBC0000FFE00000780001FFBC0000
-FFE00000780000FFF80000FFE00000780000FFF80000FFE000007800007FF00000FFE000
-007800007FF00000FFE000007800003FE00000FFE000007800003FE00000FFE00000FC00
-003FE00000FFE000FFFFFC001FC001FFFFFFF0FFFFFC001FC001FFFFFFF0FFFFFC000F80
-01FFFFFFF0FFFFFC00070001FFFFFFF054397DB85B>I<FFFFFC000003FFFFF0FFFFFC00
-0003FFFFF0FFFFFE000003FFFFF0FFFFFF000003FFFFF0007FFF80000003F000007FFFC0
-000001E000007FFFE0000001E000007BFFF0000001E0000079FFF0000001E0000079FFF8
-000001E0000078FFFC000001E00000787FFE000001E00000783FFF000001E00000781FFF
-800001E00000780FFFC00001E00000780FFFC00001E000007807FFE00001E000007803FF
-F00001E000007801FFF80001E000007800FFFC0001E0000078007FFE0001E0000078003F
-FE0001E0000078003FFF0001E0000078001FFF8001E0000078000FFFC001E00000780007
-FFE001E00000780003FFF001E00000780001FFF801E00000780000FFF801E00000780000
-FFFC01E000007800007FFE01E000007800003FFF01E000007800001FFF81E00000780000
-0FFFC1E0000078000007FFE1E0000078000003FFE1E0000078000003FFF1E00000780000
-01FFF9E0000078000000FFFDE00000780000007FFFE00000780000003FFFE00000780000
-001FFFE00000780000001FFFE00000780000000FFFE000007800000007FFE00000780000
-0003FFE000007800000001FFE000007800000000FFE0000078000000007FE00000780000
-00007FE0000078000000003FE0000078000000001FE00000FC000000000FE000FFFFFC00
-000007E000FFFFFC00000003E000FFFFFC00000001E000FFFFFC00000001E00044397DB8
-4B>I<000000FFF800000000000FFFFF80000000007FFFFFF000000001FFC01FFC000000
-07FF0007FF0000001FFC0001FFC000003FF000007FE000007FE000003FF00000FFC00000
-1FF80001FF8000000FFC0003FF8000000FFE0007FF00000007FF0007FF00000007FF000F
-FE00000003FF800FFE00000003FF801FFC00000001FFC01FFC00000001FFC03FFC000000
-01FFE03FFC00000001FFE03FFC00000001FFE07FF800000000FFF07FF800000000FFF07F
-F800000000FFF07FF800000000FFF0FFF800000000FFF8FFF800000000FFF8FFF8000000
-00FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FF
+F800000000007FF800000000007FF800000000007FF800000000007FF800000000007FF8
+00000000007FF800000000007FF800000000007FF800000000007FF800000000007FF800
+000780007FF800000780007FF800000780007FF800000780007FF800000780007FF80000
+0F80007FF800000F00007FF800000F00007FF800000F00007FF800001F00007FF800001F
+00007FF800003F00007FF800003F00007FF800007F00007FF80000FF00007FF80001FF00
+007FF80003FF00007FF8000FFE00007FF8007FFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FF
+FFFFFFFFFE00FFFFFFFFFFFE0031397DB839>76 D<FFFFF80000000003FFFFF0FFFFFC00
+00000007FFFFF0FFFFFC0000000007FFFFF0FFFFFE000000000FFFFFF0007FFE00000000
+0FFFE000007FFE000000000FFFE000007BFF000000001EFFE000007BFF000000001EFFE0
+000079FF800000003CFFE0000079FF800000003CFFE0000078FFC000000078FFE0000078
+FFC000000078FFE00000787FE0000000F0FFE00000787FE0000000F0FFE00000787FE000
+0000F0FFE00000783FF0000001E0FFE00000783FF0000001E0FFE00000781FF8000003C0
+FFE00000781FF8000003C0FFE00000780FFC00000780FFE00000780FFC00000780FFE000
+007807FE00000F00FFE000007807FE00000F00FFE000007803FF00001E00FFE000007803
+FF00001E00FFE000007803FF00001E00FFE000007801FF80003C00FFE000007801FF8000
+3C00FFE000007800FFC0007800FFE000007800FFC0007800FFE0000078007FE000F000FF
+E0000078007FE000F000FFE0000078003FF001E000FFE0000078003FF001E000FFE00000
+78003FF001E000FFE0000078001FF803C000FFE0000078001FF803C000FFE0000078000F
+FC078000FFE0000078000FFC078000FFE00000780007FE0F0000FFE00000780007FE0F00
+00FFE00000780003FF1E0000FFE00000780003FF1E0000FFE00000780003FF1E0000FFE0
+0000780001FFBC0000FFE00000780001FFBC0000FFE00000780000FFF80000FFE0000078
+0000FFF80000FFE000007800007FF00000FFE000007800007FF00000FFE000007800003F
+E00000FFE000007800003FE00000FFE00000FC00003FE00000FFE000FFFFFC001FC001FF
+FFFFF0FFFFFC001FC001FFFFFFF0FFFFFC000F8001FFFFFFF0FFFFFC00070001FFFFFFF0
+54397DB85B>I<FFFFFC000003FFFFF0FFFFFC000003FFFFF0FFFFFE000003FFFFF0FFFF
+FF000003FFFFF0007FFF80000003F000007FFFC0000001E000007FFFE0000001E000007B
+FFF0000001E0000079FFF0000001E0000079FFF8000001E0000078FFFC000001E0000078
+7FFE000001E00000783FFF000001E00000781FFF800001E00000780FFFC00001E0000078
+0FFFC00001E000007807FFE00001E000007803FFF00001E000007801FFF80001E0000078
+00FFFC0001E0000078007FFE0001E0000078003FFE0001E0000078003FFF0001E0000078
+001FFF8001E0000078000FFFC001E00000780007FFE001E00000780003FFF001E0000078
+0001FFF801E00000780000FFF801E00000780000FFFC01E000007800007FFE01E0000078
+00003FFF01E000007800001FFF81E000007800000FFFC1E0000078000007FFE1E0000078
+000003FFE1E0000078000003FFF1E0000078000001FFF9E0000078000000FFFDE0000078
+0000007FFFE00000780000003FFFE00000780000001FFFE00000780000001FFFE0000078
+0000000FFFE000007800000007FFE000007800000003FFE000007800000001FFE0000078
+00000000FFE0000078000000007FE0000078000000007FE0000078000000003FE0000078
+000000001FE00000FC000000000FE000FFFFFC00000007E000FFFFFC00000003E000FFFF
+FC00000001E000FFFFFC00000001E00044397DB84B>I<000000FFF800000000000FFFFF
+80000000007FFFFFF000000001FFC01FFC00000007FF0007FF0000001FFC0001FFC00000
+3FF000007FE000007FE000003FF00000FFC000001FF80001FF8000000FFC0003FF800000
+0FFE0007FF00000007FF0007FF00000007FF000FFE00000003FF800FFE00000003FF801F
+FC00000001FFC01FFC00000001FFC03FFC00000001FFE03FFC00000001FFE03FFC000000
+01FFE07FF800000000FFF07FF800000000FFF07FF800000000FFF07FF800000000FFF0FF
F800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF8000000
-00FFF87FF800000000FFF07FFC00000001FFF07FFC00000001FFF07FFC00000001FFF03F
-FC00000001FFE03FFC00000001FFE03FFE00000003FFE01FFE00000003FFC01FFE000000
-03FFC00FFF00000007FF8007FF00000007FF0007FF8000000FFF0003FFC000001FFE0001
-FFC000001FFC0000FFE000003FF800007FF000007FF000003FFC0001FFE000001FFF0007
-FFC0000007FFC01FFF00000001FFFFFFFC000000007FFFFFF0000000000FFFFF80000000
-0000FFF80000003D3B7BB948>I<FFFFFFFFFF0000FFFFFFFFFFF000FFFFFFFFFFFE00FF
-FFFFFFFFFF80007FF8000FFFC0007FF80001FFE0007FF80000FFF0007FF800007FF8007F
-F800003FFC007FF800003FFC007FF800001FFE007FF800001FFE007FF800001FFF007FF8
-00001FFF007FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFF007FF800
-001FFF007FF800001FFF007FF800001FFE007FF800001FFE007FF800003FFC007FF80000
-3FFC007FF800007FF8007FF80000FFF0007FF80001FFE0007FF8000FFFC0007FFFFFFFFF
-00007FFFFFFFFC00007FFFFFFFE000007FF800000000007FF800000000007FF800000000
-007FF800000000007FF800000000007FF800000000007FF800000000007FF80000000000
+00FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FF
+F800000000FFF8FFF800000000FFF8FFF800000000FFF87FF800000000FFF07FFC000000
+01FFF07FFC00000001FFF07FFC00000001FFF03FFC00000001FFE03FFC00000001FFE03F
+FE00000003FFE01FFE00000003FFC01FFE00000003FFC00FFF00000007FF8007FF000000
+07FF0007FF8000000FFF0003FFC000001FFE0001FFC000001FFC0000FFE000003FF80000
+7FF000007FF000003FFC0001FFE000001FFF0007FFC0000007FFC01FFF00000001FFFFFF
+FC000000007FFFFFF0000000000FFFFF800000000000FFF80000003D3B7BB948>I<FFFF
+FFFFFF0000FFFFFFFFFFF000FFFFFFFFFFFE00FFFFFFFFFFFF80007FF8000FFFC0007FF8
+0001FFE0007FF80000FFF0007FF800007FF8007FF800003FFC007FF800003FFC007FF800
+001FFE007FF800001FFE007FF800001FFF007FF800001FFF007FF800001FFF007FF80000
+1FFF007FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFF007FF800001F
+FE007FF800001FFE007FF800003FFC007FF800003FFC007FF800007FF8007FF80000FFF0
+007FF80001FFE0007FF8000FFFC0007FFFFFFFFF00007FFFFFFFFC00007FFFFFFFE00000
7FF800000000007FF800000000007FF800000000007FF800000000007FF800000000007F
F800000000007FF800000000007FF800000000007FF800000000007FF800000000007FF8
-00000000007FF800000000007FF800000000007FF800000000FFFFFFFC000000FFFFFFFC
-000000FFFFFFFC000000FFFFFFFC00000038397DB841>I<FFFFFFFFFC00000000FFFFFF
-FFFFE0000000FFFFFFFFFFFC000000FFFFFFFFFFFF000000007FF8000FFFC00000007FF8
-0001FFE00000007FF80000FFF00000007FF800007FF80000007FF800003FFC0000007FF8
-00003FFC0000007FF800001FFE0000007FF800001FFE0000007FF800001FFF0000007FF8
-00001FFF0000007FF800001FFF0000007FF800001FFF0000007FF800001FFF0000007FF8
-00001FFF0000007FF800001FFF0000007FF800001FFE0000007FF800001FFE0000007FF8
-00003FFC0000007FF800003FF80000007FF800007FF00000007FF80000FFE00000007FF8
-0003FFC00000007FF8001FFF000000007FFFFFFFFC000000007FFFFFFFE0000000007FFF
-FFFFF0000000007FF8003FFC000000007FF8000FFF000000007FF80007FF800000007FF8
-0003FFC00000007FF80001FFC00000007FF80001FFE00000007FF80001FFE00000007FF8
-0000FFF00000007FF80000FFF00000007FF80000FFF00000007FF80000FFF00000007FF8
-0000FFF00000007FF80000FFF80000007FF80000FFF80000007FF80000FFF80000007FF8
-0000FFF80000007FF80000FFF80000007FF80000FFF80060007FF80000FFF800F0007FF8
-0000FFFC00F0007FF800007FFC00F0007FF800007FFC01F0007FF800003FFE01E0FFFFFF
-FC001FFE03E0FFFFFFFC000FFF87C0FFFFFFFC0007FFFF80FFFFFFFC0001FFFF00000000
-0000001FFC00443A7DB848>82 D<0007FF000E00003FFFE01E0000FFFFF83E0003FFFFFE
-7E0007FC01FFFE000FF0001FFE001FE0000FFE003FC00003FE003F800001FE007F800000
-FE007F000000FE007F0000007E00FF0000007E00FF0000003E00FF0000003E00FF800000
-3E00FF8000001E00FFC000001E00FFE000001E00FFF000000000FFFC000000007FFFE000
-00007FFFFE0000007FFFFFF000003FFFFFFE00003FFFFFFF80001FFFFFFFC0000FFFFFFF
-F00007FFFFFFF80003FFFFFFFC0000FFFFFFFE00003FFFFFFE00000FFFFFFF000001FFFF
-FF0000000FFFFF800000007FFF800000000FFFC000000003FFC000000001FFC000000000
-FFC0F00000007FC0F00000007FC0F00000007FC0F00000003FC0F00000003FC0F8000000
-3FC0F80000003F80FC0000003F80FC0000007F80FE0000007F00FF0000007F00FF800000
-FE00FFE00001FC00FFF80003FC00FFFF801FF800FCFFFFFFE000F83FFFFFC000F007FFFE
-0000E0007FF000002A3B7BB935>I<3FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFF
-FFFF803FFFFFFFFFFFFF803FF800FFF003FF807FC000FFF0007FC07F8000FFF0001FC07E
-0000FFF0000FC07E0000FFF0000FC07C0000FFF00007C07C0000FFF00007C0780000FFF0
-0003C0780000FFF00003C0780000FFF00003C0780000FFF00003C0F80000FFF00003E0F0
-0000FFF00001E0F00000FFF00001E0F00000FFF00001E0F00000FFF00001E0000000FFF0
-000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000000000
-0000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0
-000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000000000
-0000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0
-000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000000000
-0000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0
-000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000000000
-0FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF00003B387DB742
->I<FFFFFFFC001FFFFFC0FFFFFFFC001FFFFFC0FFFFFFFC001FFFFFC0FFFFFFFC001FFF
-FFC0007FF80000001FC000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F
-8000007FF80000000F8000007FF80000000F8000007FF80000001F8000003FF80000001F
-0000003FFC0000001F0000003FFC0000003F0000001FFC0000003E0000000FFE0000007E
-0000000FFE0000007C00000007FF000000FC00000003FF800001F800000001FFC00007F0
-00000000FFF0001FE0000000007FFE00FFC0000000001FFFFFFF000000000007FFFFFE00
-0000000000FFFFF00000000000000FFF80000000423A7DB849>I<FFFFFFF00003FFFFE0
-FFFFFFF00003FFFFE0FFFFFFF00003FFFFE0FFFFFFF00003FFFFE000FFF000000007F000
-00FFF800000007E000007FF800000007C000007FFC0000000FC000007FFC0000000FC000
-003FFC0000000F8000003FFE0000001F8000001FFE0000001F0000001FFF0000003F0000
-000FFF0000003E0000000FFF8000007E00000007FF8000007C00000007FF8000007C0000
-0007FFC00000FC00000003FFC00000F800000003FFE00001F800000001FFE00001F00000
-0001FFF00003F000000000FFF00003E000000000FFF80003E000000000FFF80007E00000
-00007FF80007C0000000007FFC000FC0000000003FFC000F80000000003FFE001F800000
-00001FFE001F00000000001FFF001F00000000001FFF003F00000000000FFF003E000000
-00000FFF807E000000000007FF807C000000000007FFC0FC000000000003FFC0F8000000
-000003FFE0F8000000000003FFE1F8000000000001FFE1F0000000000001FFF3F0000000
-000000FFF3E0000000000000FFFFE00000000000007FFFC00000000000007FFFC0000000
-0000007FFFC00000000000003FFF800000000000003FFF800000000000001FFF00000000
-0000001FFF000000000000000FFE000000000000000FFE000000000000000FFE00000000
-00000007FC0000000000000007FC0000000000000003F80000000000000003F800000000
-00000001F000000000433A7EB848>I<7FFFFFF803FFFFF8007FFFFFF803FFFFF8007FFF
-FFF803FFFFF8007FFFFFF803FFFFF800007FFE00000FF00000003FFF00000FE00000001F
-FF00000FC00000001FFF80001F800000000FFFC0003F0000000007FFC0003F0000000003
-FFE0007E0000000003FFF000FC0000000001FFF801FC0000000000FFF801F80000000000
-FFFC03F000000000007FFE07E000000000003FFE0FE000000000001FFF0FC00000000000
-1FFF9F8000000000000FFFFF00000000000007FFFF00000000000007FFFE000000000000
-03FFFC00000000000001FFF800000000000000FFF800000000000000FFFC000000000000
-007FFE000000000000003FFE000000000000003FFF000000000000001FFF800000000000
-003FFF800000000000007FFFC0000000000000FFFFE0000000000000FFFFE00000000000
-01F9FFF0000000000003F1FFF8000000000003F0FFFC000000000007E07FFC0000000000
-0FC07FFE00000000001FC03FFF00000000001F801FFF00000000003F000FFF8000000000
-7E000FFFC000000000FE0007FFE000000000FC0003FFE000000001F80003FFF000000003
-F00001FFF800000007F00000FFF800000007E000007FFC0000000FC000007FFE0000001F
-8000003FFF0000003F8000001FFF0000007F8000001FFF8000FFFFFF0007FFFFFF80FFFF
-FF0007FFFFFF80FFFFFF0007FFFFFF80FFFFFF0007FFFFFF8041397DB848>88
-D<3FFFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFFFE3FFF80007FFC3FFC0000FF
-F83FF00001FFF83FC00001FFF03F800003FFE03F000007FFE07F000007FFC07E00000FFF
-807E00001FFF807C00001FFF007C00003FFE007C00007FFE007800007FFC00780000FFF8
-00780001FFF800780001FFF000000003FFE000000007FFE000000007FFC00000000FFFC0
-0000001FFF800000001FFF000000003FFF000000007FFE000000007FFC00000000FFFC00
-000001FFF800000001FFF000000003FFF000000007FFE000000007FFC0001E000FFFC000
-1E000FFF80001E001FFF00001E003FFF00001E003FFE00001E007FFC00003E00FFFC0000
-3E00FFF800003E01FFF000003E03FFF000007E03FFE000007C07FFC00000FC0FFFC00000
-FC0FFF800001FC1FFF000003FC3FFF00000FFC3FFE00003FFC7FFC0001FFFCFFFFFFFFFF
-FCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFC2F397BB83A>90 D<003FFE00000003FFFF
-E000000FFFFFF800001FF00FFE00003FF003FF00003FF801FF80003FF800FFC0003FF800
-FFC0003FF8007FE0003FF8007FE0001FF0007FE0000FE0007FE0000380007FE000000000
-7FE0000000007FE00000003FFFE000000FFFFFE000007FFFFFE00001FFF87FE00007FF80
-7FE0000FFE007FE0003FF8007FE0003FF0007FE0007FE0007FE000FFE0007FE000FFC000
-7FE000FFC0007FE000FFC0007FE000FFC0007FE000FFC000FFE000FFE001FFE0007FE001
-FFE0003FF007FFF8001FFC1FBFFFC00FFFFE1FFFC003FFF80FFFC0003FE003FFC02A257D
-A42E>97 D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007
-FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003
-FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003
-FF0000000003FF0000000003FF0000000003FF0000000003FF01FF800003FF0FFFF00003
-FF3FFFFC0003FFFE03FF0003FFF000FF8003FFE0007FC003FF80003FE003FF00003FF003
-FF00001FF803FF00001FF803FF00001FFC03FF00000FFC03FF00000FFC03FF00000FFE03
-FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03
-FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFC03FF00000FFC03FF00000FFC03
-FF00001FF803FF00001FF803FF00001FF003FF80003FF003FFC0007FE003FFE0007FC003
-FDF001FF8003F8FC07FE0003F03FFFF80003E00FFFE00003C003FF00002F3A7EB935>I<
-0001FFC000000FFFFC00007FFFFF0000FF80FF8003FE00FFC007FC01FFC00FF801FFC01F
-F801FFC01FF001FFC03FF001FFC03FF000FF807FE0007F007FE0001C007FE0000000FFE0
-000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000
-0000FFE00000007FE00000007FE00000007FF00000003FF00000003FF00001E01FF80001
-E01FF80003E00FFC0007C007FE00078003FF001F8000FFC07E00007FFFFC00000FFFF000
-0001FF800023257DA42A>I<000000007F800000007FFF800000007FFF800000007FFF80
-0000007FFF8000000003FF8000000001FF8000000001FF8000000001FF8000000001FF80
-00000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF80
-00000001FF8000000001FF8000000001FF8000000001FF8000000001FF800001FF81FF80
-000FFFF1FF80003FFFFDFF8000FFC07FFF8003FF001FFF8007FC0007FF800FFC0003FF80
-1FF80001FF801FF00001FF803FF00001FF803FF00001FF807FE00001FF807FE00001FF80
-7FE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80
-FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF807FE00001FF80
-7FE00001FF807FF00001FF803FF00001FF803FF00001FF801FF80003FF800FF80007FF80
-07FC000FFF8003FE001FFFC001FF80FDFFFE007FFFF9FFFE001FFFE1FFFE0001FF01FFFE
-2F3A7DB935>I<0003FF8000001FFFF000007FFFFC0001FF83FE0003FE007F8007FC003F
-800FF8003FC01FF8001FE01FF0001FE03FF0000FF03FF0000FF07FE0000FF07FE0000FF8
-7FE00007F8FFE00007F8FFE00007F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FF
-E0000000FFE0000000FFE00000007FE00000007FE00000007FE00000003FF00000003FF0
-0000781FF00000780FF80000F80FFC0000F007FC0003F001FF000FE000FFC07FC0007FFF
-FF00000FFFFC000001FFE00025257DA42C>I<000000001F000007FE00FFC0007FFFE3FF
-C001FFFFFFEFE007FE07FF8FE00FF801FF1FE01FF000FF8FE03FF000FFCFE03FE0007FC7
-C03FE0007FC0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0
-007FE0007FE0003FE0007FC0003FE0007FC0003FF000FFC0001FF000FF80000FF801FF00
-0007FE07FE00000FFFFFF800000F7FFFE000001E07FE0000001E00000000001E00000000
-003E00000000003F00000000003F80000000001FC0000000001FFFFFF800001FFFFFFF80
-001FFFFFFFE0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE0007FFFFFFFE001FFFFFFFFF
-003FC0000FFF007F000000FF80FF0000007F80FE0000007F80FE0000003F80FE0000003F
-80FE0000003F80FF0000007F807F0000007F007F800000FF003FC00001FE001FF00007FC
-0007FE003FF00001FFFFFFC000007FFFFF00000007FFF000002B377DA530>103
-D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF000000
-0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
-0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
-0003FF0000000003FF0000000003FF0000000003FF007FC00003FF03FFF80003FF0FFFFE
-0003FF1F03FF0003FF3C01FF8003FF7801FF8003FFF000FF8003FFE000FFC003FFC000FF
-C003FFC000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FF
-C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
-C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
-C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
-C0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF303A7DB935>I<01F00007
-FC000FFE000FFE001FFF001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F00000
-000000000000000000000000000000000000000000000000000000FF007FFF007FFF007F
-FF007FFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
-FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
-FF0003FF0003FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8153B7DBA1B>I<
-00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF00000000
+00000000007FF800000000007FF800000000007FF800000000007FF800000000007FF800
+000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000
+0000007FF800000000FFFFFFFC000000FFFFFFFC000000FFFFFFFC000000FFFFFFFC0000
+0038397DB841>I<FFFFFFFFFC00000000FFFFFFFFFFE0000000FFFFFFFFFFFC000000FF
+FFFFFFFFFF000000007FF8000FFFC00000007FF80001FFE00000007FF80000FFF0000000
+7FF800007FF80000007FF800003FFC0000007FF800003FFC0000007FF800001FFE000000
+7FF800001FFE0000007FF800001FFF0000007FF800001FFF0000007FF800001FFF000000
+7FF800001FFF0000007FF800001FFF0000007FF800001FFF0000007FF800001FFF000000
+7FF800001FFE0000007FF800001FFE0000007FF800003FFC0000007FF800003FF8000000
+7FF800007FF00000007FF80000FFE00000007FF80003FFC00000007FF8001FFF00000000
+7FFFFFFFFC000000007FFFFFFFE0000000007FFFFFFFF0000000007FF8003FFC00000000
+7FF8000FFF000000007FF80007FF800000007FF80003FFC00000007FF80001FFC0000000
+7FF80001FFE00000007FF80001FFE00000007FF80000FFF00000007FF80000FFF0000000
+7FF80000FFF00000007FF80000FFF00000007FF80000FFF00000007FF80000FFF8000000
+7FF80000FFF80000007FF80000FFF80000007FF80000FFF80000007FF80000FFF8000000
+7FF80000FFF80060007FF80000FFF800F0007FF80000FFFC00F0007FF800007FFC00F000
+7FF800007FFC01F0007FF800003FFE01E0FFFFFFFC001FFE03E0FFFFFFFC000FFF87C0FF
+FFFFFC0007FFFF80FFFFFFFC0001FFFF000000000000001FFC00443A7DB848>82
+D<0007FF000E00003FFFE01E0000FFFFF83E0003FFFFFE7E0007FC01FFFE000FF0001FFE
+001FE0000FFE003FC00003FE003F800001FE007F800000FE007F000000FE007F0000007E
+00FF0000007E00FF0000003E00FF0000003E00FF8000003E00FF8000001E00FFC000001E
+00FFE000001E00FFF000000000FFFC000000007FFFE00000007FFFFE0000007FFFFFF000
+003FFFFFFE00003FFFFFFF80001FFFFFFFC0000FFFFFFFF00007FFFFFFF80003FFFFFFFC
+0000FFFFFFFE00003FFFFFFE00000FFFFFFF000001FFFFFF0000000FFFFF800000007FFF
+800000000FFFC000000003FFC000000001FFC000000000FFC0F00000007FC0F00000007F
+C0F00000007FC0F00000003FC0F00000003FC0F80000003FC0F80000003F80FC0000003F
+80FC0000007F80FE0000007F00FF0000007F00FF800000FE00FFE00001FC00FFF80003FC
+00FFFF801FF800FCFFFFFFE000F83FFFFFC000F007FFFE0000E0007FF000002A3B7BB935
+>I<3FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFFFF803FF8
+00FFF003FF807FC000FFF0007FC07F8000FFF0001FC07E0000FFF0000FC07E0000FFF000
+0FC07C0000FFF00007C07C0000FFF00007C0780000FFF00003C0780000FFF00003C07800
+00FFF00003C0780000FFF00003C0F80000FFF00003E0F00000FFF00001E0F00000FFF000
+01E0F00000FFF00001E0F00000FFF00001E0000000FFF0000000000000FFF00000000000
+00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
+0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000
+00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
+0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000
+00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
+0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000
+00FFF0000000000000FFF0000000000000FFF0000000000FFFFFFFFF0000000FFFFFFFFF
+0000000FFFFFFFFF0000000FFFFFFFFF00003B387DB742>I<FFFFFFFC001FFFFFC0FFFF
+FFFC001FFFFFC0FFFFFFFC001FFFFFC0FFFFFFFC001FFFFFC0007FF80000001FC000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000000F8000007FF80000000F8000007FF80000000F8000007F
+F80000000F8000007FF80000001F8000003FF80000001F0000003FFC0000001F0000003F
+FC0000003F0000001FFC0000003E0000000FFE0000007E0000000FFE0000007C00000007
+FF000000FC00000003FF800001F800000001FFC00007F000000000FFF0001FE000000000
+7FFE00FFC0000000001FFFFFFF000000000007FFFFFE000000000000FFFFF00000000000
+000FFF80000000423A7DB849>I<FFFFFFF00003FFFFE0FFFFFFF00003FFFFE0FFFFFFF0
+0003FFFFE0FFFFFFF00003FFFFE000FFF000000007F00000FFF800000007E000007FF800
+000007C000007FFC0000000FC000007FFC0000000FC000003FFC0000000F8000003FFE00
+00001F8000001FFE0000001F0000001FFF0000003F0000000FFF0000003E0000000FFF80
+00007E00000007FF8000007C00000007FF8000007C00000007FFC00000FC00000003FFC0
+0000F800000003FFE00001F800000001FFE00001F000000001FFF00003F000000000FFF0
+0003E000000000FFF80003E000000000FFF80007E0000000007FF80007C0000000007FFC
+000FC0000000003FFC000F80000000003FFE001F80000000001FFE001F00000000001FFF
+001F00000000001FFF003F00000000000FFF003E00000000000FFF807E000000000007FF
+807C000000000007FFC0FC000000000003FFC0F8000000000003FFE0F8000000000003FF
+E1F8000000000001FFE1F0000000000001FFF3F0000000000000FFF3E0000000000000FF
+FFE00000000000007FFFC00000000000007FFFC00000000000007FFFC00000000000003F
+FF800000000000003FFF800000000000001FFF000000000000001FFF000000000000000F
+FE000000000000000FFE000000000000000FFE0000000000000007FC0000000000000007
+FC0000000000000003F80000000000000003F80000000000000001F000000000433A7EB8
+48>I<7FFFFFF803FFFFF8007FFFFFF803FFFFF8007FFFFFF803FFFFF8007FFFFFF803FF
+FFF800007FFE00000FF00000003FFF00000FE00000001FFF00000FC00000001FFF80001F
+800000000FFFC0003F0000000007FFC0003F0000000003FFE0007E0000000003FFF000FC
+0000000001FFF801FC0000000000FFF801F80000000000FFFC03F000000000007FFE07E0
+00000000003FFE0FE000000000001FFF0FC000000000001FFF9F8000000000000FFFFF00
+000000000007FFFF00000000000007FFFE00000000000003FFFC00000000000001FFF800
+000000000000FFF800000000000000FFFC000000000000007FFE000000000000003FFE00
+0000000000003FFF000000000000001FFF800000000000003FFF800000000000007FFFC0
+000000000000FFFFE0000000000000FFFFE0000000000001F9FFF0000000000003F1FFF8
+000000000003F0FFFC000000000007E07FFC00000000000FC07FFE00000000001FC03FFF
+00000000001F801FFF00000000003F000FFF80000000007E000FFFC000000000FE0007FF
+E000000000FC0003FFE000000001F80003FFF000000003F00001FFF800000007F00000FF
+F800000007E000007FFC0000000FC000007FFE0000001F8000003FFF0000003F8000001F
+FF0000007F8000001FFF8000FFFFFF0007FFFFFF80FFFFFF0007FFFFFF80FFFFFF0007FF
+FFFF80FFFFFF0007FFFFFF8041397DB848>88 D<3FFFFFFFFFFE3FFFFFFFFFFE3FFFFFFF
+FFFE3FFFFFFFFFFE3FFF80007FFC3FFC0000FFF83FF00001FFF83FC00001FFF03F800003
+FFE03F000007FFE07F000007FFC07E00000FFF807E00001FFF807C00001FFF007C00003F
+FE007C00007FFE007800007FFC00780000FFF800780001FFF800780001FFF000000003FF
+E000000007FFE000000007FFC00000000FFFC00000001FFF800000001FFF000000003FFF
+000000007FFE000000007FFC00000000FFFC00000001FFF800000001FFF000000003FFF0
+00000007FFE000000007FFC0001E000FFFC0001E000FFF80001E001FFF00001E003FFF00
+001E003FFE00001E007FFC00003E00FFFC00003E00FFF800003E01FFF000003E03FFF000
+007E03FFE000007C07FFC00000FC0FFFC00000FC0FFF800001FC1FFF000003FC3FFF0000
+0FFC3FFE00003FFC7FFC0001FFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFF
+FFFC2F397BB83A>90 D<003FFE00000003FFFFE000000FFFFFF800001FF00FFE00003FF0
+03FF00003FF801FF80003FF800FFC0003FF800FFC0003FF8007FE0003FF8007FE0001FF0
+007FE0000FE0007FE0000380007FE0000000007FE0000000007FE00000003FFFE000000F
+FFFFE000007FFFFFE00001FFF87FE00007FF807FE0000FFE007FE0003FF8007FE0003FF0
+007FE0007FE0007FE000FFE0007FE000FFC0007FE000FFC0007FE000FFC0007FE000FFC0
+007FE000FFC000FFE000FFE001FFE0007FE001FFE0003FF007FFF8001FFC1FBFFFC00FFF
+FE1FFFC003FFF80FFFC0003FE003FFC02A257DA42E>97 D<00FF00000000FFFF00000000
+FFFF00000000FFFF00000000FFFF0000000007FF0000000003FF0000000003FF00000000
03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000
03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000
-03FF0000000003FF0000000003FF0000000003FF000FFFE003FF000FFFE003FF000FFFE0
-03FF000FFFE003FF0003FC0003FF0003F00003FF000FE00003FF001F800003FF003F0000
-03FF007E000003FF00FC000003FF03F8000003FF07E0000003FF0FC0000003FF1FC00000
-03FF7FE0000003FFFFF0000003FFFFF8000003FFFFFC000003FFFFFC000003FFCFFE0000
-03FF0FFF000003FE07FF800003FE03FF800003FE01FFC00003FE00FFE00003FE00FFF000
-03FE007FF00003FE003FF80003FE001FFC0003FE001FFE0003FE000FFE0003FE000FFF00
-FFFFF83FFFF8FFFFF83FFFF8FFFFF83FFFF8FFFFF83FFFF82D3A7EB932>107
-D<00FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF
+03FF0000000003FF01FF800003FF0FFFF00003FF3FFFFC0003FFFE03FF0003FFF000FF80
+03FFE0007FC003FF80003FE003FF00003FF003FF00001FF803FF00001FF803FF00001FFC
+03FF00000FFC03FF00000FFC03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE
+03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE
+03FF00000FFC03FF00000FFC03FF00000FFC03FF00001FF803FF00001FF803FF00001FF0
+03FF80003FF003FFC0007FE003FFE0007FC003FDF001FF8003F8FC07FE0003F03FFFF800
+03E00FFFE00003C003FF00002F3A7EB935>I<0001FFC000000FFFFC00007FFFFF0000FF
+80FF8003FE00FFC007FC01FFC00FF801FFC01FF801FFC01FF001FFC03FF001FFC03FF000
+FF807FE0007F007FE0001C007FE0000000FFE0000000FFE0000000FFE0000000FFE00000
+00FFE0000000FFE0000000FFE0000000FFE0000000FFE00000007FE00000007FE0000000
+7FF00000003FF00000003FF00001E01FF80001E01FF80003E00FFC0007C007FE00078003
+FF001F8000FFC07E00007FFFFC00000FFFF0000001FF800023257DA42A>I<000000007F
+800000007FFF800000007FFF800000007FFF800000007FFF8000000003FF8000000001FF
+8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF
+8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF
+8000000001FF8000000001FF800001FF81FF80000FFFF1FF80003FFFFDFF8000FFC07FFF
+8003FF001FFF8007FC0007FF800FFC0003FF801FF80001FF801FF00001FF803FF00001FF
+803FF00001FF807FE00001FF807FE00001FF807FE00001FF80FFE00001FF80FFE00001FF
+80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF
+80FFE00001FF80FFE00001FF807FE00001FF807FE00001FF807FF00001FF803FF00001FF
+803FF00001FF801FF80003FF800FF80007FF8007FC000FFF8003FE001FFFC001FF80FDFF
+FE007FFFF9FFFE001FFFE1FFFE0001FF01FFFE2F3A7DB935>I<0003FF8000001FFFF000
+007FFFFC0001FF83FE0003FE007F8007FC003F800FF8003FC01FF8001FE01FF0001FE03F
+F0000FF03FF0000FF07FE0000FF07FE0000FF87FE00007F8FFE00007F8FFE00007F8FFFF
+FFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FFE0000000FFE0000000FFE00000007FE000
+00007FE00000007FE00000003FF00000003FF00000781FF00000780FF80000F80FFC0000
+F007FC0003F001FF000FE000FFC07FC0007FFFFF00000FFFFC000001FFE00025257DA42C
+>I<000000001F000007FE00FFC0007FFFE3FFC001FFFFFFEFE007FE07FF8FE00FF801FF
+1FE01FF000FF8FE03FF000FFCFE03FE0007FC7C03FE0007FC0007FE0007FE0007FE0007F
+E0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0003FE0007FC0003FE0007F
+C0003FF000FFC0001FF000FF80000FF801FF000007FE07FE00000FFFFFF800000F7FFFE0
+00001E07FE0000001E00000000001E00000000003E00000000003F00000000003F800000
+00001FC0000000001FFFFFF800001FFFFFFF80001FFFFFFFE0000FFFFFFFF80007FFFFFF
+FC0003FFFFFFFE0007FFFFFFFE001FFFFFFFFF003FC0000FFF007F000000FF80FF000000
+7F80FE0000007F80FE0000003F80FE0000003F80FE0000003F80FF0000007F807F000000
+7F007F800000FF003FC00001FE001FF00007FC0007FE003FF00001FFFFFFC000007FFFFF
+00000007FFF000002B377DA530>103 D<00FF00000000FFFF00000000FFFF00000000FF
+FF00000000FFFF0000000007FF0000000003FF0000000003FF0000000003FF0000000003
+FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003
+FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003
+FF007FC00003FF03FFF80003FF0FFFFE0003FF1F03FF0003FF3C01FF8003FF7801FF8003
+FFF000FF8003FFE000FFC003FFC000FFC003FFC000FFC003FF8000FFC003FF8000FFC003
+FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003
+FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003
+FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003
+FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFF
+FFFC3FFFFF303A7DB935>I<01F00007FC000FFE000FFE001FFF001FFF001FFF001FFF00
+1FFF000FFE000FFE0007FC0001F000000000000000000000000000000000000000000000
+00000000000000FF007FFF007FFF007FFF007FFF0007FF0003FF0003FF0003FF0003FF00
+03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
+03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFF8
+FFFFF8FFFFF8FFFFF8153B7DBA1B>I<00FF00000000FFFF00000000FFFF00000000FFFF
+00000000FFFF0000000007FF0000000003FF0000000003FF0000000003FF0000000003FF
+0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF
+0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF
+000FFFE003FF000FFFE003FF000FFFE003FF000FFFE003FF0003FC0003FF0003F00003FF
+000FE00003FF001F800003FF003F000003FF007E000003FF00FC000003FF03F8000003FF
+07E0000003FF0FC0000003FF1FC0000003FF7FE0000003FFFFF0000003FFFFF8000003FF
+FFFC000003FFFFFC000003FFCFFE000003FF0FFF000003FE07FF800003FE03FF800003FE
+01FFC00003FE00FFE00003FE00FFF00003FE007FF00003FE003FF80003FE001FFC0003FE
+001FFE0003FE000FFE0003FE000FFF00FFFFF83FFFF8FFFFF83FFFF8FFFFF83FFFF8FFFF
+F83FFFF82D3A7EB932>107 D<00FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF
0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
-0003FF0003FF0003FF0003FF0003FF0003FF00FFFFFCFFFFFCFFFFFCFFFFFC163A7DB91B
->I<00FE007FE0000FFC0000FFFE01FFFC003FFF8000FFFE07FFFF00FFFFE000FFFE1F81
-FF83F03FF000FFFE3C00FF87801FF00007FE7800FFCF001FF80003FEF000FFDE001FF800
-03FFE0007FFC000FFC0003FFC0007FF8000FFC0003FFC0007FF8000FFC0003FF80007FF0
-000FFC0003FF80007FF0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF
+0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFFCFFFF
+FCFFFFFCFFFFFC163A7DB91B>I<00FE007FE0000FFC0000FFFE01FFFC003FFF8000FFFE
+07FFFF00FFFFE000FFFE1F81FF83F03FF000FFFE3C00FF87801FF00007FE7800FFCF001F
+F80003FEF000FFDE001FF80003FFE0007FFC000FFC0003FFC0007FF8000FFC0003FFC000
+7FF8000FFC0003FF80007FF0000FFC0003FF80007FF0000FFC0003FF00007FE0000FFC00
+03FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0
+000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF
00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000F
FC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF0000
7FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC00
-03FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0
-000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF
-00007FE0000FFC00FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FF
-FFF0FFFFFC1FFFFF83FFFFF04C257DA451>I<00FE007FC000FFFE03FFF800FFFE0FFFFE
-00FFFE1F03FF00FFFE3C01FF8007FE7801FF8003FEF000FF8003FFE000FFC003FFC000FF
-C003FFC000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FF
+03FF00007FE0000FFC0003FF00007FE0000FFC00FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF
+83FFFFF0FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF04C257DA451>I<00FE007FC0
+00FFFE03FFF800FFFE0FFFFE00FFFE1F03FF00FFFE3C01FF8007FE7801FF8003FEF000FF
+8003FFE000FFC003FFC000FFC003FFC000FFC003FF8000FFC003FF8000FFC003FF0000FF
C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
-C0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF30257DA435>I<0001FFC0
-0000000FFFF80000007FFFFF000000FF80FF800003FE003FE00007FC001FF0000FF8000F
-F8001FF00007FC001FF00007FC003FF00007FE003FE00003FE007FE00003FF007FE00003
-FF007FE00003FF00FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003
-FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF807FE00003FF007FE00003
-FF007FE00003FF003FE00003FE003FF00007FE001FF00007FC001FF00007FC000FF8000F
-F80007FC001FF00003FE003FE00001FF80FFC000007FFFFF0000001FFFFC00000001FFC0
-000029257DA430>I<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFFFE07FF00FFFFF0
-01FF8003FFE000FFC003FF80007FE003FF00007FF003FF00003FF803FF00003FF803FF00
-001FFC03FF00001FFC03FF00001FFC03FF00000FFE03FF00000FFE03FF00000FFE03FF00
+C003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFF
+FF30257DA435>I<0001FFC00000000FFFF80000007FFFFF000000FF80FF800003FE003F
+E00007FC001FF0000FF8000FF8001FF00007FC001FF00007FC003FF00007FE003FE00003
+FE007FE00003FF007FE00003FF007FE00003FF00FFE00003FF80FFE00003FF80FFE00003
+FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003
+FF807FE00003FF007FE00003FF007FE00003FF003FE00003FE003FF00007FE001FF00007
+FC001FF00007FC000FF8000FF80007FC001FF00003FE003FE00001FF80FFC000007FFFFF
+0000001FFFFC00000001FFC0000029257DA430>I<00FF01FF8000FFFF0FFFF000FFFF3F
+FFFC00FFFFFE07FF00FFFFF001FF8003FFE000FFC003FF80007FE003FF00007FF003FF00
+003FF803FF00003FF803FF00001FFC03FF00001FFC03FF00001FFC03FF00000FFE03FF00
000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00
-000FFE03FF00000FFC03FF00001FFC03FF00001FFC03FF00001FF803FF00003FF803FF00
-003FF003FF80007FF003FFC0007FE003FFE000FFC003FFF003FF8003FFFC07FE0003FF3F
-FFF80003FF0FFFE00003FF03FF000003FF0000000003FF0000000003FF0000000003FF00
+000FFE03FF00000FFE03FF00000FFE03FF00000FFC03FF00001FFC03FF00001FFC03FF00
+001FF803FF00003FF803FF00003FF003FF80007FF003FFC0007FE003FFE000FFC003FFF0
+03FF8003FFFC07FE0003FF3FFFF80003FF0FFFE00003FF03FF000003FF0000000003FF00
00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
-00000003FF0000000003FF00000000FFFFFC000000FFFFFC000000FFFFFC000000FFFFFC
-0000002F357EA435>I<00FE03F000FFFE0FFE00FFFE3FFF00FFFE7C7F80FFFEF8FFC007
-FEF0FFC003FFE0FFC003FFC0FFC003FFC0FFC003FF807F8003FF803F0003FF800C0003FF
-80000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
-000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF0000
-0003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000
-FFFFFE0000FFFFFE0000FFFFFE000022257EA427>114 D<003FF03803FFFEF80FFFFFF8
-1FC00FF83F0003F87E0001F87C0000F8FC0000F8FC000078FE000078FF000078FF800000
-FFFC0000FFFFE0007FFFFC007FFFFF803FFFFFC01FFFFFF00FFFFFF803FFFFF800FFFFFC
-001FFFFC00007FFE000007FEF00001FEF00000FEF80000FEF800007EFC00007EFC00007C
-FE0000FCFF0000F8FF8001F8FFF007F0FFFFFFC0F8FFFF00E01FF8001F257DA426>I<00
-0F0000000F0000000F0000000F0000000F0000001F0000001F0000001F0000001F000000
-3F0000003F0000007F000000FF000000FF000001FF000007FF00001FFFFFE0FFFFFFE0FF
-FFFFE0FFFFFFE003FF000003FF000003FF000003FF000003FF000003FF000003FF000003
-FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003
-FF000003FF000003FF007803FF007803FF007803FF007803FF007803FF007803FF007803
-FF007803FF00F801FF80F001FF81F000FFC3E0003FFFC0001FFF800003FE001D357EB425
->I<00FF00003FC0FFFF003FFFC0FFFF003FFFC0FFFF003FFFC0FFFF003FFFC007FF0001
-FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000
-FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000
-FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000
-FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0001FFC003FF0001FFC003FF0003
-FFC003FF0003FFC001FF0007FFC001FF800FFFE000FFC03EFFFF007FFFFCFFFF001FFFF0
-FFFF0003FF80FFFF30257DA435>I<FFFFF1FFFF803FFFFFFFF1FFFF803FFFFFFFF1FFFF
-803FFFFFFFF1FFFF803FFF07FE000FF80003E003FF0007F80003C003FF0007FC0003C003
-FF8007FC0007C001FF8003FE00078001FF8007FE00078000FFC007FE000F0000FFC007FF
-000F0000FFE00FFF001F00007FE00FFF801E00007FE01FFF801E00003FF01E7F803C0000
-3FF01E7FC03C00003FF83E7FC07C00001FF83C3FE07800001FF87C3FE0F800000FFC781F
-F0F000000FFC781FF0F000000FFEF00FF1F0000007FEF00FF9E0000007FFF00FFBE00000
-03FFE007FFC0000003FFE007FFC0000003FFC003FFC0000001FFC003FF80000001FFC003
-FF80000000FF8001FF00000000FF8001FF00000000FF0000FF000000007F0000FE000000
-007F0000FE000000003E00007C000000003C00003C000040257EA445>119
-D<FFFFF001FFF8FFFFF001FFF8FFFFF001FFF8FFFFF001FFF803FF00001F0003FF00001E
-0003FF80003E0001FF80003C0001FFC0007C0000FFC000780000FFE000F800007FE000F0
-00007FF001F000003FF001E000003FF801E000001FF803C000001FF803C000001FFC07C0
-00000FFC078000000FFE0F80000007FE0F00000007FF1F00000003FF1E00000003FFBE00
-000001FFBC00000001FFFC00000000FFF800000000FFF800000000FFF8000000007FF000
-0000007FF0000000003FE0000000003FE0000000001FC0000000001FC0000000000F8000
-0000000F80000000000F00000000000F00000000001F00000000001E0000003F003E0000
-007F803C000000FFC07C000000FFC078000000FFC0F8000000FFC1F0000000FFC3E00000
-007F87C00000007D1F800000003FFF000000001FFC0000000007F0000000002D357EA432
->121 D E
+00000003FF0000000003FF0000000003FF0000000003FF00000000FFFFFC000000FFFFFC
+000000FFFFFC000000FFFFFC0000002F357EA435>I<00FE03F000FFFE0FFE00FFFE3FFF
+00FFFE7C7F80FFFEF8FFC007FEF0FFC003FFE0FFC003FFC0FFC003FFC0FFC003FF807F80
+03FF803F0003FF800C0003FF80000003FF00000003FF00000003FF00000003FF00000003
+FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
+00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
+000003FF000000FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE000022257EA427>114
+D<003FF03803FFFEF80FFFFFF81FC00FF83F0003F87E0001F87C0000F8FC0000F8FC0000
+78FE000078FF000078FF800000FFFC0000FFFFE0007FFFFC007FFFFF803FFFFFC01FFFFF
+F00FFFFFF803FFFFF800FFFFFC001FFFFC00007FFE000007FEF00001FEF00000FEF80000
+FEF800007EFC00007EFC00007CFE0000FCFF0000F8FF8001F8FFF007F0FFFFFFC0F8FFFF
+00E01FF8001F257DA426>I<000F0000000F0000000F0000000F0000000F0000001F0000
+001F0000001F0000001F0000003F0000003F0000007F000000FF000000FF000001FF0000
+07FF00001FFFFFE0FFFFFFE0FFFFFFE0FFFFFFE003FF000003FF000003FF000003FF0000
+03FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF0000
+03FF000003FF000003FF000003FF000003FF000003FF007803FF007803FF007803FF0078
+03FF007803FF007803FF007803FF007803FF00F801FF80F001FF81F000FFC3E0003FFFC0
+001FFF800003FE001D357EB425>I<00FF00003FC0FFFF003FFFC0FFFF003FFFC0FFFF00
+3FFFC0FFFF003FFFC007FF0001FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
+01FFC003FF0001FFC003FF0003FFC003FF0003FFC001FF0007FFC001FF800FFFE000FFC0
+3EFFFF007FFFFCFFFF001FFFF0FFFF0003FF80FFFF30257DA435>I<FFFFF1FFFF803FFF
+FFFFF1FFFF803FFFFFFFF1FFFF803FFFFFFFF1FFFF803FFF07FE000FF80003E003FF0007
+F80003C003FF0007FC0003C003FF8007FC0007C001FF8003FE00078001FF8007FE000780
+00FFC007FE000F0000FFC007FF000F0000FFE00FFF001F00007FE00FFF801E00007FE01F
+FF801E00003FF01E7F803C00003FF01E7FC03C00003FF83E7FC07C00001FF83C3FE07800
+001FF87C3FE0F800000FFC781FF0F000000FFC781FF0F000000FFEF00FF1F0000007FEF0
+0FF9E0000007FFF00FFBE0000003FFE007FFC0000003FFE007FFC0000003FFC003FFC000
+0001FFC003FF80000001FFC003FF80000000FF8001FF00000000FF8001FF00000000FF00
+00FF000000007F0000FE000000007F0000FE000000003E00007C000000003C00003C0000
+40257EA445>119 D<FFFFF001FFF8FFFFF001FFF8FFFFF001FFF8FFFFF001FFF803FF00
+001F0003FF00001E0003FF80003E0001FF80003C0001FFC0007C0000FFC000780000FFE0
+00F800007FE000F000007FF001F000003FF001E000003FF801E000001FF803C000001FF8
+03C000001FFC07C000000FFC078000000FFE0F80000007FE0F00000007FF1F00000003FF
+1E00000003FFBE00000001FFBC00000001FFFC00000000FFF800000000FFF800000000FF
+F8000000007FF0000000007FF0000000003FE0000000003FE0000000001FC0000000001F
+C0000000000F80000000000F80000000000F00000000000F00000000001F00000000001E
+0000003F003E0000007F803C000000FFC07C000000FFC078000000FFC0F8000000FFC1F0
+000000FFC3E00000007F87C00000007D1F800000003FFF000000001FFC0000000007F000
+0000002D357EA432>121 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff ecbx1440 14.4 42
/Ff 42 122 df<000000007FFC0000000000001FFFFF800000000001FFFFFFE000000000
@@ -3423,262 +3437,273 @@ g(\020b)n(yte\021)37 b(as)515 2232 y(pa)n(yload)26 b(data.)39
b(Note)28 b(that)h(address)e(0x10)f(is)i(fast-trac)n(k)n(ed)f(and)h
(uses)g(one)f(b)n(yte)i(less)e(on)515 2331 y(the)h(USB)g(bus.)36
b(So)28 b(it)g(is)f(p)r(oten)n(tially)g(faster.)515 2564
-y Fb(3.15)112 b(cmdFPGARead\(address\))515 2717 y Fd(Reads)23
-b(a)h(b)n(yte)g(from)f(the)i(FPGA)g(and)f(puts)g(it)h(in)n(to)f(the)g
-(micro)r(con)n(troller's)d(bu\033er)k(regis-)515 2816
-y(ter.)38 b(\020address\021)c(is)28 b(used)g(for)g(address)f(latc)n
-(hing)g(on)h(the)h(FPGA.)g(The)g(micro)r(con)n(troller's)515
-2916 y(bu\033er)j(register)f(has)g(an)h(automagically)e(incremen)n
-(ting)i(p)r(oin)n(ter.)50 b(So)31 b(issueing)h(sev)n(eral)515
-3016 y(cmdFPGARead\(\))f(in)f(a)f(ro)n(w)f(will)i(result)f(in)h(all)f
-(the)h(b)n(ytes)f(b)r(eing)h(put)g(one)f(after)g(eac)n(h)515
-3115 y(other)22 b(in)n(to)g(the)g(bu\033er)h(register.)33
-b(The)23 b(bu\033er)f(register)f(can)h(hold)h(up)f(to)h(64)e(b)n(ytes.)
-35 b(Read-)515 3215 y(ing)c(the)h(bu\033er)f(register)f
-(\(cmdReadBu\033erReg\(\)\))h(will)h(reset)f(the)h(automagic)e(p)r(oin)
-n(ter)515 3315 y(to)j(zero.)52 b(Note)33 b(that)h(address)d(0x10)h(is)h
-(fast-trac)n(k)n(ed)e(and)i(uses)g(one)f(b)n(yte)h(less)g(on)g(the)515
-3414 y(USB)28 b(bus.)36 b(So)28 b(it)g(is)f(p)r(oten)n(tially)h
-(faster.)515 3647 y Fb(3.16)112 b(cmdDela)m(y\(seconds\))515
-3800 y Fd(Send)41 b(a)f(dela)n(y)f(command)h(to)g(the)h(programmer.)73
-b(The)41 b(Programmer)d(will)j(p)r(erform)515 3899 y(the)35
+y Fb(3.15)112 b(cmdFPGARead\(address\))515 2717 y Fd(Reads)29
+b(a)h(b)n(yte)g(from)f(the)i(FPGA)g(and)f(puts)g(it)g(in)n(to)g(the)h
+(bu\033er)f(register.)42 b(\020address\021)35 b(is)515
+2816 y(used)21 b(for)g(address)f(latc)n(hing)g(on)h(the)h(FPGA.)h(The)e
+(micro)r(con)n(troller's)d(bu\033er)k(register)e(has)515
+2916 y(an)j(automagically)e(incremen)n(ting)h(p)r(oin)n(ter.)35
+b(So)23 b(issueing)f(sev)n(eral)f(cmdFPGARead\(\))k(in)515
+3016 y(a)35 b(ro)n(w)g(will)h(result)g(in)g(all)g(the)g(b)n(ytes)f(b)r
+(eing)h(put)h(one)e(after)h(another)f(in)n(to)h(the)g(bu\033er)515
+3115 y(register.)57 b(The)35 b(bu\033er)h(register)d(do)r(es)i(ha)n(v)n
+(e)f(a)g(limited)i(size.)59 b(Ov)n(er\035o)n(wing)32
+b(it)k(crashes)515 3215 y(the)26 b(programmer,)e(requireing)h(a)g(ph)n
+(ysical)h(USB)g(disconnect)g(to)g(reco)n(v)n(er.)34 b(Call)25
+b(getBuf-)515 3315 y(ferRegSize\(\))33 b(to)g(get)g(the)g(size)g(of)g
+(the)h(bu\033er)f(register.)52 b(Reading)33 b(the)g(bu\033er)h
+(register)515 3414 y(\(cmdReadBu\033erReg\(\)\))29 b(will)g(reset)f
+(the)i(automagic)d(p)r(oin)n(ter)i(to)g(zero.)40 b(Note)28
+b(that)i(ad-)515 3514 y(dress)38 b(0x10)g(is)i(fast-trac)n(k)n(ed)d
+(and)j(uses)f(one)g(b)n(yte)h(less)f(on)g(the)h(USB)g(bus.)73
+b(So)39 b(it)h(is)515 3613 y(p)r(oten)n(tially)27 b(faster.)515
+3846 y Fb(3.16)112 b(cmdDela)m(y\(seconds\))515 3999
+y Fd(Send)41 b(a)f(dela)n(y)f(command)h(to)g(the)h(programmer.)73
+b(The)41 b(Programmer)d(will)j(p)r(erform)515 4099 y(the)35
b(dela)n(y)-7 b(.)58 b(A)35 b(v)-5 b(alue)35 b(up)g(to)g(0.5)f(seconds)
g(is)h(p)r(ossible.)59 b(Note)34 b(that)i(the)f(actual)f(v)-5
-b(alue)515 3999 y(will)30 b(b)r(e)h(rounded)f(up)h(to)f(the)h(next)g(p)
+b(alue)515 4198 y(will)30 b(b)r(e)h(rounded)f(up)h(to)f(the)h(next)g(p)
r(ossible)f(w)n(ait)g(in)n(terv)-5 b(al)30 b(v)-5 b(alue.)45
-b(Use)30 b(this)h(for)f(short)515 4099 y(\(microsecond)g(or)g(lo)n(w)g
+b(Use)30 b(this)h(for)f(short)515 4298 y(\(microsecond)g(or)g(lo)n(w)g
(millisecond\))h(dela)n(ys.)47 b(Note)31 b(that)g(this)g(do)r(es)g
-(_not_)f(\035ush)i(the)515 4198 y(command)27 b(queue.)515
-4431 y Fb(3.17)112 b(hostDela)m(y\(seconds\))515 4584
+(_not_)f(\035ush)i(the)515 4398 y(command)27 b(queue.)515
+4630 y Fb(3.17)112 b(hostDela)m(y\(seconds\))515 4783
y Fd(Sends)23 b(all)g(queued)g(commands)f(to)h(the)g(device)g(and)g(w)n
(aits)f(for)h(\020seconds\021.)33 b(\020seconds\021)c(is)22
-b(a)515 4684 y(\035oating)j(p)r(oin)n(t)h(n)n(um)n(b)r(er.)37
+b(a)515 4883 y(\035oating)j(p)r(oin)n(t)h(n)n(um)n(b)r(er.)37
b(The)26 b(dela)n(y)f(is)h(p)r(erformed)g(on)g(the)g(host)g(computer)g
-(b)n(y)g(simply)515 4783 y(not)j(sending)g(commands)f(to)h(the)h
-(programmer)d(for)i(the)g(time)h(sp)r(eci\034ed)f(after)g(\035ushing)
-515 4883 y(the)f(command)f(queue.)1926 5255 y(3)p eop
-end
+(b)n(y)g(simply)1926 5255 y(3)p eop end
%%Page: 4 4
-TeXDict begin 4 3 bop 515 523 a Ff(4)131 b(TX)44 b(command)f(queueing)
-515 705 y Fd(All)29 b(commands)f(transmitted)h(to)f(the)h(device)g(are)
-e(not)i(sen)n(t)g(immediately)-7 b(,)29 b(but)g(queued)515
-804 y(in)f(soft)n(w)n(are)f(and)h(sen)n(t)h(later.)38
-b(This)29 b(is)f(done)g(to)g(sp)r(eed)h(up)g(device)f(access)f
-(signi\034can)n(tly)-7 b(.)515 904 y(The)27 b(command)g(transmission)g
-(queue)g(has)g(sev)n(eral)f(\035ushing)h(conditions:)639
-1070 y Fc(\017)41 b Fd(Commands)18 b(can)g(b)r(e)h(\035ushed)f
-(explicitely)h(using)f(the)g(\020\035ushCommands\(\)\021)25
-b(metho)r(d)722 1170 y(of)j(\020class)e(TOP\021.)639
-1336 y Fc(\017)41 b Fd(Commands)18 b(are)g(automatically)f(\035ushed)i
-(on)g(cmdReadBu\033erReg\(\))f(b)r(efore)g(read-)722
-1435 y(ing)30 b(the)h(data)f(from)g(the)h(device.)45
+TeXDict begin 4 3 bop 515 523 a Fd(not)29 b(sending)g(commands)f(to)h
+(the)h(programmer)d(for)i(the)g(time)h(sp)r(eci\034ed)f(after)g
+(\035ushing)515 623 y(the)f(command)f(queue.)515 897
+y Ff(4)131 b(TX)44 b(command)f(queueing)515 1079 y Fd(All)29
+b(commands)f(transmitted)h(to)f(the)h(device)g(are)e(not)i(sen)n(t)g
+(immediately)-7 b(,)29 b(but)g(queued)515 1179 y(in)f(soft)n(w)n(are)f
+(and)h(sen)n(t)h(later.)38 b(This)29 b(is)f(done)g(to)g(sp)r(eed)h(up)g
+(device)f(access)f(signi\034can)n(tly)-7 b(.)515 1278
+y(The)27 b(command)g(transmission)g(queue)g(has)g(sev)n(eral)f
+(\035ushing)h(conditions:)639 1444 y Fc(\017)41 b Fd(Commands)18
+b(can)g(b)r(e)h(\035ushed)f(explicitely)h(using)f(the)g
+(\020\035ushCommands\(\)\021)25 b(metho)r(d)722 1544
+y(of)j(\020class)e(TOP\021.)639 1710 y Fc(\017)41 b Fd(Commands)18
+b(are)g(automatically)f(\035ushed)i(on)g(cmdReadBu\033erReg\(\))f(b)r
+(efore)g(read-)722 1810 y(ing)30 b(the)h(data)f(from)g(the)h(device.)45
b(This)30 b(is)g(to)g(ensure)g(sequen)n(tial)g(consistency)f(of)722
-1535 y(the)f(commands.)639 1701 y Fc(\017)41 b Fd(Commands)27
+1909 y(the)f(commands.)639 2075 y Fc(\017)41 b Fd(Commands)27
b(are)g(\035ushed)h(on)f(v)-5 b(arious)26 b(v)n(oltage-la)n(y)n(out)e
-(op)r(erations.)515 1867 y(Y)-7 b(ou)27 b(usually)g(do)h(not)f(need)h
-(to)f(\035ush)h(commands)f(explicitely)-7 b(.)515 2142
+(op)r(erations.)515 2241 y(Y)-7 b(ou)27 b(usually)g(do)h(not)f(need)h
+(to)f(\035ush)h(commands)f(explicitely)-7 b(.)515 2516
y Ff(5)131 b(Implemen)l(ting)44 b(a)g(new)f(c)l(hip)j(\(DUT\))e
-(algorithm)515 2324 y Fd(The)32 b(reading)f(and)g(programming)f
+(algorithm)515 2698 y Fd(The)32 b(reading)f(and)g(programming)f
(algorithms)h(for)g(the)i(c)n(hips)e(\(DUT)-7 b(s\))33
-b(are)e(separated)515 2423 y(in)n(to)c(t)n(w)n(o)g(parts:)639
-2589 y Fc(\017)41 b Fd(Lo)n(w)27 b(lev)n(el)g(FPGA)i(b)r(ottom-half)639
-2755 y Fc(\017)41 b Fd(High)28 b(lev)n(el)f(Python)h(co)r(de)f
-(top-half)515 2921 y(The)35 b(FPGA)i(b)r(ottom-half)f(implemen)n(ts)f
+b(are)e(separated)515 2797 y(in)n(to)c(t)n(w)n(o)g(parts:)639
+2963 y Fc(\017)41 b Fd(Lo)n(w)27 b(lev)n(el)g(FPGA)i(b)r(ottom-half)639
+3129 y Fc(\017)41 b Fd(High)28 b(lev)n(el)f(Python)h(co)r(de)f
+(top-half)515 3295 y(The)35 b(FPGA)i(b)r(ottom-half)f(implemen)n(ts)f
(the)h(basic)f(op)r(erations)g(\(fetc)n(hing)g(data)g(from)515
-3021 y(DUT.)27 b(W)-7 b(riting)26 b(data)g(to)g(DUT.)h(etc...\).)37
+3395 y(DUT.)27 b(W)-7 b(riting)26 b(data)g(to)g(DUT.)h(etc...\).)37
b(It)27 b(ma)n(y)f(also)f(implemen)n(t)i(timingcritical)f(parts)515
-3121 y(of)e(the)h(algorithm.)34 b(Ev)n(erything)24 b(else)g(is)g
+3495 y(of)e(the)h(algorithm.)34 b(Ev)n(erything)24 b(else)g(is)g
(implemen)n(ted)h(in)f(the)h(high)f(lev)n(el)g(Python)g(co)r(de,)515
-3220 y(that)k(liv)n(es)e(on)i(the)g(other)f(end)g(of)h(the)g(USB)g
-(line.)515 3453 y Fb(5.1)112 b(Python)37 b(top-half)h(implemen)m
-(tation)515 3606 y Fd(The)27 b(DUT)i(sp)r(eci\034c)e(top-half)h(liv)n
+3594 y(that)k(liv)n(es)e(on)i(the)g(other)f(end)g(of)h(the)g(USB)g
+(line.)515 3827 y Fb(5.1)112 b(Python)37 b(top-half)h(implemen)m
+(tation)515 3980 y Fd(The)27 b(DUT)i(sp)r(eci\034c)e(top-half)h(liv)n
(es)f(in)h(the)g(\020c)n(hip_xxx.p)n(y\021)k(\034les,)c(where)f(xxx)g
-(is)h(the)g(ID)515 3705 y(of)23 b(the)h(DUT.)h(This)e(\034le)h(con)n
+(is)h(the)g(ID)515 4080 y(of)23 b(the)h(DUT.)h(This)e(\034le)h(con)n
(tains)f(a)g(class)g(deriv)n(ed)g(from)g(the)h(\020Chip\021)30
-b(class.)35 b(The)24 b(\020Chip\021)515 3805 y(class)g(pro)n(vides)g
+b(class.)35 b(The)24 b(\020Chip\021)515 4179 y(class)g(pro)n(vides)g
(some)h(basic)g(help)r(er)g(metho)r(ds)h(for)f(algorithm)f(implemen)n
-(tation.)36 b(It)26 b(also)515 3905 y(de\034nes)h(the)h(in)n(terface)f
+(tation.)36 b(It)26 b(also)515 4279 y(de\034nes)h(the)h(in)n(terface)f
(that)h(is)f(to)h(b)r(e)f(re-implemen)n(ted)h(in)f(the)h(deriv)n(ed)f
-(sub)r(class.)36 b(This)515 4004 y(in)n(terface)27 b(consists)f(of)i
-(the)g(follo)n(wing)e(metho)r(ds:)515 4170 y Fe(sh)m(utdo)m(wnChip\(\))
+(sub)r(class.)36 b(This)515 4378 y(in)n(terface)27 b(consists)f(of)i
+(the)g(follo)n(wing)e(metho)r(ds:)515 4544 y Fe(sh)m(utdo)m(wnChip\(\))
41 b Fd(Called)26 b(once)f(on)g(c)n(hip)h(sh)n(utdo)n(wn.)35
-b(The)26 b(default)g(implemen)n(tation)722 4270 y(turns)i(o\033)f(all)h
+b(The)26 b(default)g(implemen)n(tation)722 4644 y(turns)i(o\033)f(all)h
(v)n(oltages.)34 b(There's)27 b(usually)g(no)h(need)f(to)h(o)n(v)n
-(erride)d(that.)515 4436 y Fe(readSignature\(\))42 b
+(erride)d(that.)515 4810 y Fe(readSignature\(\))42 b
Fd(Read)31 b(the)i(DUT)f(signature)f(and)g(return)h(it.)49
-b(Reimplemen)n(t)33 b(this,)722 4536 y(if)28 b(y)n(our)f(DUT)h(supp)r
-(orts)f(signature)f(reading.)515 4702 y Fe(erase\(\))41
-b Fd(Erase)d(the)g(DUT.)h(Reimplemen)n(t)g(this,)i(if)e(y)n(our)d(DUT)j
-(supp)r(orts)f(electrical)722 4801 y(erasing.)1926 5255
-y(4)p eop end
+b(Reimplemen)n(t)33 b(this,)722 4910 y(if)28 b(y)n(our)f(DUT)h(supp)r
+(orts)f(signature)f(reading.)1926 5255 y(4)p eop end
%%Page: 5 5
-TeXDict begin 5 4 bop 515 523 a Fe(test\(\))41 b Fd(Run)28
-b(an)f(optional)f(unit-test)i(on)f(the)g(c)n(hip.)37
+TeXDict begin 5 4 bop 515 523 a Fe(erase\(\))41 b Fd(Erase)d(the)g
+(DUT.)h(Reimplemen)n(t)g(this,)i(if)e(y)n(our)d(DUT)j(supp)r(orts)f
+(electrical)722 623 y(erasing.)515 789 y Fe(test\(\))j
+Fd(Run)28 b(an)f(optional)f(unit-test)i(on)f(the)g(c)n(hip.)37
b(The)27 b(con)n(v)n(enience)f(wrapp)r(er)g(gener-)722
-623 y(icT)-7 b(est\(self,)45 b(readF)-7 b(unc,)43 b(writeF)-7
+888 y(icT)-7 b(est\(self,)45 b(readF)-7 b(unc,)43 b(writeF)-7
b(unc,)45 b(size\))c(ma)n(y)f(b)r(e)h(used)g(to)f(implemen)n(t)i(this)
-722 722 y(metho)r(d.)515 887 y Fe(readProgmem\(\))d Fd(Read)22
-b(the)g(program)e(memory)h(and)h(return)g(it.)35 b(Reimplemen)n(t)23
-b(this,)722 987 y(if)28 b(y)n(our)f(DUT)h(has)f(program)e(memory)i(and)
-h(supp)r(orts)f(reading)f(it.)515 1152 y Fe(writeProgmem\(image\))36
-b Fd(W)-7 b(rite)39 b(the)h(program)c(memory)-7 b(.)71
-b(Reimplemen)n(t)39 b(this,)k(if)722 1252 y(y)n(our)27
-b(DUT)h(has)f(program)e(memory)i(and)g(supp)r(orts)h(writing)f(it.)515
-1417 y Fe(readEEPR)m(OM\(\))41 b Fd(Read)27 b(the)g(\(E\)EPR)n(OM)i
-(memory)d(and)h(return)f(it.)38 b(Reimplemen)n(t)722
-1516 y(this,)28 b(if)g(y)n(our)f(DUT)h(has)f(\(E\)EPR)n(OM)i(memory)e
-(and)g(supp)r(orts)g(reading)g(it.)515 1681 y Fe(writeEEPR)m(OM\(\))40
-b Fd(W)-7 b(rite)28 b(the)g(\(E\)EPR)n(OM)h(memory)-7
-b(.)37 b(Reimplemen)n(t)28 b(this,)g(if)g(y)n(our)722
-1781 y(DUT)h(has)e(\(E\)EPR)n(OM)i(memory)d(and)i(supp)r(orts)f
-(writing)g(it.)515 1946 y Fe(readF)-8 b(use\(\))42 b
+722 988 y(metho)r(d.)515 1154 y Fe(readProgmem\(\))d
+Fd(Read)22 b(the)g(program)e(memory)h(and)h(return)g(it.)35
+b(Reimplemen)n(t)23 b(this,)722 1254 y(if)28 b(y)n(our)f(DUT)h(has)f
+(program)e(memory)i(and)h(supp)r(orts)f(reading)f(it.)515
+1420 y Fe(writeProgmem\(image\))36 b Fd(W)-7 b(rite)39
+b(the)h(program)c(memory)-7 b(.)71 b(Reimplemen)n(t)39
+b(this,)k(if)722 1519 y(y)n(our)27 b(DUT)h(has)f(program)e(memory)i
+(and)g(supp)r(orts)h(writing)f(it.)515 1685 y Fe(readEEPR)m(OM\(\))41
+b Fd(Read)27 b(the)g(\(E\)EPR)n(OM)i(memory)d(and)h(return)f(it.)38
+b(Reimplemen)n(t)722 1785 y(this,)28 b(if)g(y)n(our)f(DUT)h(has)f
+(\(E\)EPR)n(OM)i(memory)e(and)g(supp)r(orts)g(reading)g(it.)515
+1951 y Fe(writeEEPR)m(OM\(\))40 b Fd(W)-7 b(rite)28 b(the)g(\(E\)EPR)n
+(OM)h(memory)-7 b(.)37 b(Reimplemen)n(t)28 b(this,)g(if)g(y)n(our)722
+2051 y(DUT)h(has)e(\(E\)EPR)n(OM)i(memory)d(and)i(supp)r(orts)f
+(writing)g(it.)515 2217 y Fe(readF)-8 b(use\(\))42 b
Fd(Read)31 b(the)h(F)-7 b(use)32 b(memory)f(and)h(return)f(it.)50
-b(Reimplemen)n(t)33 b(this,)g(if)f(y)n(our)722 2046 y(DUT)d(has)e(F)-7
-b(uses)27 b(and)g(supp)r(orts)g(reading)g(them.)515 2211
+b(Reimplemen)n(t)33 b(this,)g(if)f(y)n(our)722 2316 y(DUT)d(has)e(F)-7
+b(uses)27 b(and)g(supp)r(orts)g(reading)g(them.)515 2482
y Fe(writeF)-8 b(use\(\))41 b Fd(W)-7 b(rite)19 b(the)g(F)-7
b(use)20 b(memory)-7 b(.)33 b(Reimplemen)n(t)19 b(this,)j(if)d(y)n(our)
-f(DUT)i(has)e(F)-7 b(uses)722 2310 y(and)28 b(supp)r(orts)f(writing)g
-(them.)515 2475 y Fe(readLo)s(c)m(kbits\(\))42 b Fd(Read)31
+f(DUT)i(has)e(F)-7 b(uses)722 2582 y(and)28 b(supp)r(orts)f(writing)g
+(them.)515 2748 y Fe(readLo)s(c)m(kbits\(\))42 b Fd(Read)31
b(the)h(Lo)r(c)n(kbit)g(memory)e(and)i(return)f(it.)49
-b(Reimplemen)n(t)32 b(this,)722 2575 y(if)c(y)n(our)f(DUT)h(has)f(Lo)r
+b(Reimplemen)n(t)32 b(this,)722 2848 y(if)c(y)n(our)f(DUT)h(has)f(Lo)r
(c)n(kbits)g(and)g(supp)r(orts)g(reading)g(them.)515
-2740 y Fe(writeLo)s(c)m(kbits\(\))41 b Fd(W)-7 b(rite)30
+3014 y Fe(writeLo)s(c)m(kbits\(\))41 b Fd(W)-7 b(rite)30
b(the)f(Lo)r(c)n(kbit)g(memory)-7 b(.)41 b(Reimplemen)n(t)29
-b(this,)h(if)g(y)n(our)d(DUT)722 2840 y(has)g(Lo)r(c)n(kbits)g(and)h
-(supp)r(orts)f(writing)g(them.)515 3004 y(After)f(de\034ning)g(y)n(our)
-e(\020Chip\021-deriv)n(ed)h(class)g(y)n(ou)g(need)h(to)f(register)g
-(it.)36 b(This)26 b(is)g(done)f(b)n(y)515 3103 y(de\034ning)i(a)g
-(ChipDescription\(\):)722 3383 y Fa(ChipDescription\(C)o(hi)o(p_)o(MyD)
-o(ev)o(ic)o(e,)37 b(bitfile)k(=)i(\020bitfileID\021,)38
-b(chipID)j(=)j(\020myChipID\021\))515 3563 y Fd(The)39
-b(c)n(hip)g(class)f(\(_not_)g(an)h(instance)g(of)g(it\))g(is)g(passed)f
-(as)h(\034rst)f(parameter.)70 b(The)515 3663 y(ID)33
-b(string)f(of)g(the)h(required)f(bit\034le)h(is)g(past)f(as)g(second)g
-(parameter.)50 b(A)33 b(c)n(hipID)g(migh)n(t)515 3763
-y(also)28 b(b)r(e)h(passed.)41 b(If)29 b(the)g(c)n(hipID)h(is)f
+b(this,)h(if)g(y)n(our)d(DUT)722 3113 y(has)g(Lo)r(c)n(kbits)g(and)h
+(supp)r(orts)f(writing)g(them.)515 3279 y Fe(readRAM\(\))41
+b Fd(Read)c(the)g(Random)g(A)n(ccess)f(Memory)-7 b(.)65
+b(Reimplemen)n(t)37 b(this,)j(if)d(y)n(our)722 3379 y(DUT)29
+b(has)e(RAM)h(and)f(supp)r(orts)g(reading)f(it.)515 3545
+y Fe(writeRAM\(\))40 b Fd(W)-7 b(rite)33 b(the)f(Random)g(A)n(ccess)f
+(Memory)-7 b(.)50 b(Reimplemen)n(t)32 b(this,)i(if)e(y)n(our)722
+3645 y(DUT)d(has)e(RAM)h(and)f(supp)r(orts)g(writing)g(to)h(it.)515
+3811 y(After)e(de\034ning)g(y)n(our)e(\020Chip\021-deriv)n(ed)h(class)g
+(y)n(ou)g(need)h(to)f(register)g(it.)36 b(This)26 b(is)g(done)f(b)n(y)
+515 3910 y(de\034ning)i(a)g(ChipDescription\(\):)722
+4193 y Fa(ChipDescription\(C)o(hi)o(p_)o(MyD)o(ev)o(ic)o(e,)37
+b(bitfile)k(=)i(\020bitfileID\021,)38 b(chipID)j(=)j
+(\020myChipID\021\))515 4375 y Fd(The)39 b(c)n(hip)g(class)f(\(_not_)g
+(an)h(instance)g(of)g(it\))g(is)g(passed)f(as)h(\034rst)f(parameter.)70
+b(The)515 4475 y(ID)33 b(string)f(of)g(the)h(required)f(bit\034le)h(is)
+g(past)f(as)g(second)g(parameter.)50 b(A)33 b(c)n(hipID)g(migh)n(t)515
+4575 y(also)28 b(b)r(e)h(passed.)41 b(If)29 b(the)g(c)n(hipID)h(is)f
(omitted,)h(the)f(bit\034leID)h(is)f(used)g(as)f(c)n(hipID.)i(There)515
-3862 y(are)g(more)h(optional)g(parameters)e(to)j(ChipDescription\(\).)
-49 b(See)31 b(the)h(inline)g(sourceco)r(de)515 3962 y(do)r(cumen)n
-(tation)27 b(for)g(details.)515 4194 y Fb(5.2)112 b(FPGA)37
-b(b)s(ottom-half)g(implemen)m(tation)515 4347 y Fd(F)-7
+4674 y(are)g(more)h(optional)g(parameters)e(to)j(ChipDescription\(\).)
+49 b(See)31 b(the)h(inline)g(sourceco)r(de)515 4774 y(do)r(cumen)n
+(tation)27 b(for)g(details.)1926 5255 y(5)p eop end
+%%Page: 6 6
+TeXDict begin 6 5 bop 515 523 a Fb(5.2)112 b(FPGA)37
+b(b)s(ottom-half)g(implemen)m(tation)515 676 y Fd(F)-7
b(or)25 b(the)i(FPGA)h(part)e(y)n(ou)f(need)i(to)f(get)g(the)h(Xilinx)g
(dev)n(elopmen)n(t)f(suite)g(\(ISE\))i(v)n(ersion)515
-4447 y(10.1)d(service)g(pac)n(k)h(3.)36 b(The)26 b("W)-7
+776 y(10.1)d(service)g(pac)n(k)h(3.)36 b(The)26 b("W)-7
b(ebP)g(A)n(CK",)26 b(whic)n(h)h(is)f(su\036cien)n(t)g(for)g(our)g
-(purp)r(oses,)f(can)515 4546 y(b)r(e)j(do)n(wnloaded)e(for)h(free)g
+(purp)r(oses,)f(can)515 876 y(b)r(e)j(do)n(wnloaded)e(for)h(free)g
(\(as)g(in)h(b)r(eer\))g(from)f(the)h(Xilinx)g(homepage:)722
-4726 y Fa(http://www.xilinx)o(.c)o(om)o(/su)o(pp)o(or)o(t/d)o(ow)o(nl)o
-(oad)o(/i)o(nd)o(ex.)o(ht)o(m)515 4907 y Fd(T)-7 b(o)24
+1058 y Fa(http://www.xilinx)o(.c)o(om)o(/su)o(pp)o(or)o(t/d)o(ow)o(nl)o
+(oad)o(/i)o(nd)o(ex.)o(ht)o(m)515 1241 y Fd(T)-7 b(o)24
b(create)f(a)g(new)i(sourceco)r(de)d(template)j(\034leset)f(for)f(a)h
-(new)g(c)n(hip,)h(go)e(to)i(the)f(libtopram-)515 5006
+(new)g(c)n(hip,)h(go)e(to)i(the)f(libtopram-)515 1340
y(mer/bit/src/)h(sub)r(directory)i(and)g(execute)g(the)h("create.sh")e
-(script:)1926 5255 y(5)p eop end
-%%Page: 6 6
-TeXDict begin 6 5 bop 722 523 a Fa(./create.sh)39 b(name_of_chip)515
-706 y Fd(Where)34 b("name_of_c)n(hip")e(is)j(the)g(name)f(of)h(the)g
-(new)g(c)n(hip.)58 b(No)n(w)34 b(go)g(to)g(libtopram-)515
-805 y(mer/bit/src/name_of_c)n(hip/)27 b(and)32 b(implemen)n(t)g(the)g
-(b)r(ottom-half)g(algorithm)f(in)h(the)515 905 y(name_of_c)n(hip.v)f(V)
--7 b(erilog)32 b(\034le.)53 b(T)-7 b(o)32 b(build)i(the)f(.BIT)g
-(\034le)g(from)f(the)i(V)-7 b(erilog)32 b(sources,)515
-1005 y(go)26 b(to)i(the)g(libtoprammer/bit/)e(directory)g(and)h
-(execute:)722 1187 y Fa(./build.sh)40 b(name_of_chip)515
-1370 y Fd(\(if)28 b(y)n(ou)f(omit)h(the)f(c)n(hipname,)h(all)f(c)n
-(hips)g(will)h(b)r(e)g(rebuilt\).)515 1644 y Ff(6)131
-b(Automatic)44 b(la)l(y)l(out)h(generator)515 1826 y
+(script:)722 1523 y Fa(./create.sh)39 b(bitfile_name)515
+1706 y Fd(Where)20 b("bit\034le_name")g(is)h(the)g(name)f(of)h(the)g
+(new)g(c)n(hip's)g(bit\034le.)35 b(\(That)21 b(often)g(matc)n(hes)515
+1805 y(the)37 b(c)n(hip-ID\).)h(No)n(w)f(go)f(to)h
+(libtoprammer/bit/src/bit\034le_name/)d(and)j(implemen)n(t)515
+1905 y(the)27 b(b)r(ottom-half)f(algorithm)g(in)g(the)h
+(bit\034le_name.v)g(V)-7 b(erilog)25 b(\034le.)37 b(T)-7
+b(o)26 b(build)h(the)g(.BIT)515 2005 y(\034le)21 b(from)g(the)h(V)-7
+b(erilog)20 b(sources,)h(go)f(to)h(the)h(libtoprammer/bit/)d(directory)
+h(and)h(execute:)722 2187 y Fa(./build.sh)40 b(bitfile_name)515
+2370 y Fd(\(if)28 b(y)n(ou)f(omit)h(the)f(bit\034le_name,)h(all)f
+(bit\034les)h(will)g(b)r(e)g(rebuilt\).)515 2644 y Ff(6)131
+b(Automatic)44 b(la)l(y)l(out)h(generator)515 2826 y
Fd(The)39 b(automatic)f(la)n(y)n(out)g(generator)f(\(la)n(y)n
(out_generator.p)n(y\))e(can)k(b)r(e)g(used)g(to)g(auto-)515
-1926 y(matically)27 b(generate)f(a)i(V)n(CC/VPP/GND)h(la)n(y)n(out.)36
+2926 y(matically)27 b(generate)f(a)i(V)n(CC/VPP/GND)h(la)n(y)n(out.)36
b(The)28 b(generator)d(will)j(then)h(tell)f(y)n(ou)515
-2025 y(ho)n(w)j(to)i(insert)f(the)g(c)n(hip)h(in)n(to)f(the)g(ZIF)h(so)
+3026 y(ho)n(w)j(to)i(insert)f(the)g(c)n(hip)h(in)n(to)f(the)g(ZIF)h(so)
r(c)n(k)n(et.)50 b(The)32 b(adv)-5 b(an)n(tage)31 b(of)h(using)g(the)h
-(auto-)515 2125 y(generator)d(instead)j(of)f(hardco)r(ding)g(the)h(V)n
-(CC/VPP/GND)g(connections)f(in)h(the)g(c)n(hip)515 2225
+(auto-)515 3125 y(generator)d(instead)j(of)f(hardco)r(ding)g(the)h(V)n
+(CC/VPP/GND)g(connections)f(in)h(the)g(c)n(hip)515 3225
y(implemen)n(tation)26 b(is)f(that)h(the)h(autogenerated)d(la)n(y)n
(out)g(is)i(p)r(ortable)f(b)r(et)n(w)n(een)h(TOPxxxx)515
-2324 y(programmers)g(and)i(it)h(is)g(m)n(uc)n(h)f(easier)g(to)g
-(implemen)n(t.)41 b(Y)-7 b(ou)29 b(do)g(not)f(ha)n(v)n(e)g(to)g(searc)n
-(h)f(a)515 2424 y(c)n(hip)g(p)r(osition)g(in)h(the)f(ZIF)h(so)r(c)n(k)n
-(et)e(that)h(\034ts)h(the)f(device)g(constrain)n(ts.)36
-b(The)27 b(autogener-)515 2524 y(ator)f(will)i(do)f(it)h(for)f(y)n(ou.)
-639 2623 y(The)20 b(c)n(hip)g(in)n(terface)f(of)h(the)g(autogenerator)e
+3324 y(programmers)c(and)i(it)h(is)g(m)n(uc)n(h)f(easier)f(to)i
+(implemen)n(t.)36 b(Y)-7 b(ou)25 b(do)f(not)h(ha)n(v)n(e)e(to)i(searc)n
+(h)e(for)515 3424 y(a)k(c)n(hip)g(p)r(osition)g(in)h(the)f(ZIF)h(so)r
+(c)n(k)n(et)e(that)h(\034ts)h(the)g(device)f(constrain)n(ts.)35
+b(The)27 b(autogen-)515 3524 y(erator)f(will)h(do)h(it)g(for)f(y)n(ou.)
+639 3623 y(The)20 b(c)n(hip)g(in)n(terface)f(of)h(the)g(autogenerator)e
(is)h(em)n(b)r(edded)i(in)n(to)e(\020class)g(Chip\021.)34
-b(So)20 b(y)n(ou)515 2723 y(don't)28 b(ha)n(v)n(e)f(to)h(w)n(ork)f
+b(So)20 b(y)n(ou)515 3723 y(don't)28 b(ha)n(v)n(e)f(to)h(w)n(ork)f
(with)i(\020class)e(La)n(y)n(outGenerator\021)k(directly)-7
-b(.)39 b(Y)-7 b(ou'll)28 b(do)g(it)h(through)515 2822
+b(.)39 b(Y)-7 b(ou'll)28 b(do)g(it)h(through)515 3823
y(\020class)d(Chip\021)34 b(instead.)j(So)27 b(let's)h(lo)r(ok)f(at)g
(\020class)g(Chip\021s)g(autogenerator)e(in)n(terface.)639
-2922 y(The)j(constructor)e(\(__init__\(\)\))h(has)g(some)g
-(autogenerator)e(related)i(parameters:)515 3088 y Fe(c)m(hipP)m(ac)m(k)
+3922 y(The)j(constructor)e(\(__init__\(\)\))h(has)g(some)g
+(autogenerator)e(related)i(parameters:)515 4088 y Fe(c)m(hipP)m(ac)m(k)
-5 b(age)43 b Fd(This)36 b(parameter)e(is)i(a)f(string)h(iden)n
(tifying)g(the)g(pac)n(k)-5 b(age)34 b(t)n(yp)r(e)i(of)g(the)722
-3188 y(DUT)26 b(c)n(hip.)36 b(It)25 b(is)g(something)g(lik)n(e)f
+4188 y(DUT)26 b(c)n(hip.)36 b(It)25 b(is)g(something)g(lik)n(e)f
(\020DIP28\021)31 b(or)25 b(\020DIP40\021,)f(etc...)37
-b(.)f(If)25 b(this)h(param-)722 3287 y(eter)i(is)f(passed)g(to)g(the)h
+b(.)f(If)25 b(this)h(param-)722 4287 y(eter)i(is)f(passed)g(to)g(the)h
(constructor,)e(the)i(autogenerator)d(is)i(enabled.)515
-3453 y Fe(c)m(hipPin)-8 b(V)m(CCX)42 b Fd(This)34 b(parameter)e(is)i
+4453 y Fe(c)m(hipPin)-8 b(V)m(CCX)42 b Fd(This)34 b(parameter)e(is)i
(an)g(in)n(teger)f(sp)r(ecifying)h(the)h(V)n(CC)f(pin)g(on)g(the)722
-3553 y(c)n(hip)26 b(pac)n(k)-5 b(age.)35 b(Note)26 b(that)g(it)h(sp)r
-(eci\034es)f(the)g(V)n(CC)g(pin)h(on)e(the)i(c)n(hip)f(pac)n(k)-5
-b(age)24 b(and)722 3653 y(_not_)h(on)g(the)g(ZIF)h(so)r(c)n(k)n(et.)35
-b(So)25 b(if)g(y)n(our)g(c)n(hip)g(datasheet)f(tells)i(y)n(ou)e(that)i
-(V)n(CC)f(is)722 3752 y(on)j(pin)g(8,)f(y)n(ou)g(pass)f(an)i(8)f(here.)
-515 3918 y Fe(c)m(hipPinsVPP)42 b Fd(This)27 b(parameter)e(is)i(an)f
-(in)n(teger)g(or)h(a)f(list)h(of)g(in)n(tegers)f(sp)r(ecifying)h(the)
-722 4018 y(VPP)34 b(pin\(s\))f(on)f(the)h(c)n(hip)f(pac)n(k)-5
-b(age.)49 b(Note)32 b(that)h(it)g(sp)r(eci\034es)f(the)h(V)n(CC)f(pin)g
-(on)722 4118 y(the)27 b(c)n(hip)f(pac)n(k)-5 b(age)24
-b(and)i(_not_)g(on)f(the)i(ZIF)f(so)r(c)n(k)n(et.)35
-b(So)26 b(if)h(y)n(our)e(c)n(hip)h(datasheet)722 4217
-y(tells)35 b(y)n(ou)e(that)h(V)n(CC)g(is)g(on)g(pin)h(1,)g(y)n(ou)f
-(pass)f(an)h(1)g(here.)56 b(If)34 b(y)n(our)f(c)n(hip)h(needs)722
-4317 y(m)n(ultiple)d(VPP)h(v)n(oltages,)d(just)i(pass)f(a)g(list)h(of)f
-(pins.)46 b(Sp)r(ecify)31 b(all)f(p)r(ossible)g(VPP)722
-4416 y(pins)25 b(here.)35 b(Whic)n(h)25 b(pin)g(is)g(actually)e(activ)
--5 b(ated)25 b(is)f(decided)h(later)f(in)h(applyVPP\(\).)515
-4583 y Fe(c)m(hipPinGND)41 b Fd(This)d(parameter)e(is)i(an)g(in)n
-(teger)e(sp)r(ecifying)i(the)g(GND)h(pin)f(on)g(the)722
-4682 y(c)n(hip)26 b(pac)n(k)-5 b(age.)35 b(Note)26 b(that)g(it)h(sp)r
+4553 y(c)n(hip)26 b(pac)n(k)-5 b(age.)35 b(Note)26 b(that)g(it)h(sp)r
(eci\034es)f(the)g(V)n(CC)g(pin)h(on)e(the)i(c)n(hip)f(pac)n(k)-5
-b(age)24 b(and)722 4782 y(_not_)h(on)g(the)g(ZIF)h(so)r(c)n(k)n(et.)35
+b(age)24 b(and)722 4653 y(_not_)h(on)g(the)g(ZIF)h(so)r(c)n(k)n(et.)35
b(So)25 b(if)g(y)n(our)g(c)n(hip)g(datasheet)f(tells)i(y)n(ou)e(that)i
-(V)n(CC)f(is)722 4881 y(on)j(pin)g(5,)f(y)n(ou)g(pass)f(an)i(5)f(here.)
+(V)n(CC)f(is)722 4752 y(on)j(pin)g(8,)f(y)n(ou)g(pass)f(an)i(8)f(here.)
1926 5255 y(6)p eop end
%%Page: 7 7
-TeXDict begin 7 6 bop 515 523 a Fd(After)28 b(passing)e(all)h
-(parameters)f(to)h(the)h(\020class)e(Chip\021)34 b(constructor,)26
-b(the)i(autogenerator)515 623 y(is)c(initialized)h(and)f(ready)g(to)g
-(b)r(e)h(used.)36 b(The)24 b(follo)n(wing)g(metho)r(ds)g(can)h(b)r(e)g
-(used)f(to)g(apply)515 722 y(or)i(disable)i(a)f(la)n(y)n(out:)515
-888 y Fe(applyV)m(CCX\(on\))42 b Fd(This)27 b(metho)r(d)h(enables)f(or)
-f(disables)g(\(dep)r(ending)i(on)f(the)h(param-)722 988
-y(eter\))37 b(a)f(la)n(y)n(out.)63 b(Enabling)37 b(the)g(la)n(y)n(out)f
-(means)g(that)h(the)g(V)n(CCX)g(pin)g(will)g(b)r(e)722
-1088 y(activ)n(ely)22 b(driv)n(en)h(b)n(y)f(the)i(con\034gured)d(V)n
-(CCX)j(v)n(oltage.)33 b(Disabling)23 b(the)g(la)n(y)n(out)f(will)722
-1187 y(tristate)27 b(the)h(driv)n(er.)515 1353 y Fe(applyVPP\(on,pac)m
-(k)-5 b(agePinsT)d(oT)g(urnOn\))43 b Fd(This)18 b(metho)r(d)h(enables)f
-(or)f(disables)h(\(de-)722 1453 y(p)r(ending)29 b(on)e(the)i
-(parameter\))d(a)i(la)n(y)n(out.)37 b(Enabling)28 b(the)g(la)n(y)n(out)
-f(means)g(that)i(the)722 1553 y(VPP)22 b(pins)f(will)f(b)r(e)h(activ)n
-(ely)f(driv)n(en)g(b)n(y)g(the)h(con\034gured)e(VPP)j(v)n(oltage.)32
-b(Disabling)722 1652 y(the)g(la)n(y)n(out)d(will)j(tristate)e(the)i
-(driv)n(er.)46 b(The)31 b(\034rst)g(parameter)e(\020on\021)37
-b(is)31 b(a)g(b)r(o)r(olean)722 1752 y(to)24 b(turn)g(ON)g(or)f(OFF)h
-(the)g(VPP)h(la)n(y)n(out.)35 b(The)24 b(second)f(parameter)f(is)i(an)g
-(optional)722 1851 y(list)f(of)g(pac)n(k)-5 b(age-pin-n)n(um)n(b)r(ers)
-21 b(sp)r(ecifying)h(whic)n(h)h(VPP)h(is)f(turned)g(on.)35
-b(If)24 b(the)f(sec-)722 1951 y(ond)28 b(parameter)e(is)h(not)g
-(passed,)g(all)g(p)r(ossible)g(VPPs)i(that)f(w)n(ere)e(sp)r(eci\034ed)i
-(in)g(the)722 2051 y(constructor)21 b(are)h(turned)h(on.)34
-b(The)23 b(second)f(parameter)f(is)h(un)n(used,)i(if)f(\020on=F)-7
-b(alse\021.)515 2217 y Fe(applyGND\(on\))42 b Fd(This)34
-b(metho)r(d)g(enables)g(or)g(disables)f(\(dep)r(ending)i(on)f(the)h
-(param-)722 2316 y(eter\))j(a)g(la)n(y)n(out.)67 b(Enabling)38
-b(the)g(la)n(y)n(out)f(means)h(that)g(the)g(GND)h(pins)f(will)h(b)r(e)
-722 2416 y(activ)n(ely)27 b(driv)n(en)g(b)n(y)g(GND.)i(Disabling)e(the)
-h(la)n(y)n(out)e(will)i(tristate)f(the)h(driv)n(er.)1926
-5255 y(7)p eop end
+TeXDict begin 7 6 bop 515 523 a Fe(c)m(hipPinsVPP)42
+b Fd(This)27 b(parameter)e(is)i(an)f(in)n(teger)g(or)h(a)f(list)h(of)g
+(in)n(tegers)f(sp)r(ecifying)h(the)722 623 y(VPP)d(pin\(s\))f(on)f(the)
+h(c)n(hip)g(pac)n(k)-5 b(age.)33 b(Note)23 b(that)g(it)g(sp)r
+(eci\034es)f(the)h(VPP)h(pin)f(on)f(the)722 722 y(c)n(hip)i(pac)n(k)-5
+b(age)22 b(and)h(_not_)f(on)i(the)f(ZIF)h(so)r(c)n(k)n(et.)34
+b(So)23 b(if)h(y)n(our)f(c)n(hip)g(datasheet)g(tells)722
+822 y(y)n(ou)28 b(that)h(VPP)h(is)f(on)f(pin)i(1,)e(y)n(ou)g(pass)g(a)g
+(1)h(here.)40 b(If)29 b(y)n(our)e(c)n(hip)i(needs)g(m)n(ultiple)722
+922 y(VPP)f(v)n(oltages,)d(just)i(pass)f(a)g(list)h(of)f(pins.)37
+b(Sp)r(ecify)27 b(all)f(p)r(ossible)g(VPP)i(pins)f(here.)722
+1021 y(Whic)n(h)h(pin)g(is)g(actually)e(activ)-5 b(ated)28
+b(is)f(decided)h(later)f(in)h(applyVPP\(\).)515 1187
+y Fe(c)m(hipPinGND)41 b Fd(This)d(parameter)e(is)i(an)g(in)n(teger)e
+(sp)r(ecifying)i(the)g(GND)h(pin)f(on)g(the)722 1287
+y(c)n(hip)25 b(pac)n(k)-5 b(age.)35 b(Note)25 b(that)g(it)h(sp)r
+(eci\034es)f(the)h(GND)g(pin)f(on)g(the)h(c)n(hip)f(pac)n(k)-5
+b(age)23 b(and)722 1386 y(_not_)30 b(on)g(the)h(ZIF)f(so)r(c)n(k)n(et.)
+44 b(So)30 b(if)h(y)n(our)e(c)n(hip)i(datasheet)e(tells)i(y)n(ou)f
+(that)g(GND)722 1486 y(is)e(on)f(pin)h(5,)f(y)n(ou)g(pass)g(a)g(5)g
+(here.)515 1652 y(After)h(passing)e(all)h(parameters)f(to)h(the)h
+(\020class)e(Chip\021)34 b(constructor,)26 b(the)i(autogenerator)515
+1752 y(is)g(initialized)h(and)g(ready)f(to)h(b)r(e)g(used.)40
+b(The)29 b(follo)n(wing)f(\020class)f(Chip\021)36 b(metho)r(ds)29
+b(can)g(b)r(e)515 1851 y(used)e(to)h(enable)f(or)g(disable)g(a)g(la)n
+(y)n(out:)515 2017 y Fe(applyV)m(CCX\(on\))42 b Fd(This)f(metho)r(d)g
+(enables)f(or)g(disables)g(\(dep)r(ending)i(on)e(the)h(\020on\021)722
+2117 y(parameter\))34 b(the)i(V)n(CC)f(la)n(y)n(out.)58
+b(Enabling)35 b(the)h(la)n(y)n(out)e(means)g(that)i(the)f(V)n(CC)722
+2217 y(pin)29 b(will)g(b)r(e)g(activ)n(ely)f(driv)n(en)g(b)n(y)h(the)g
+(con\034gured)e(V)n(CC)i(v)n(oltage.)38 b(Disabling)29
+b(the)722 2316 y(la)n(y)n(out)e(will)g(tristate)h(the)g(driv)n(er.)515
+2482 y Fe(applyVPP\(on,pac)m(k)-5 b(agePinsT)d(oT)g(urnOn\))43
+b Fd(This)18 b(metho)r(d)h(enables)f(or)f(disables)h(\(de-)722
+2582 y(p)r(ending)39 b(on)f(the)g(\020on\021)45 b(parameter\))37
+b(the)h(VPP)i(la)n(y)n(out.)67 b(Enabling)39 b(the)f(la)n(y)n(out)722
+2682 y(means)30 b(that)h(the)g(VPP)h(pins)f(will)g(b)r(e)g(activ)n(ely)
+e(driv)n(en)h(b)n(y)g(the)h(con\034gured)f(VPP)722 2781
+y(v)n(oltage.)36 b(Disabling)27 b(the)h(la)n(y)n(out)f(will)g(tristate)
+h(the)g(driv)n(er.)36 b(The)27 b(\034rst)h(parameter)722
+2881 y(\020on\021)i(is)24 b(a)f(b)r(o)r(olean)g(to)g(turn)h(ON)g(or)f
+(OFF)g(the)h(VPP)h(la)n(y)n(out.)35 b(The)24 b(second)f(param-)722
+2980 y(eter)34 b(is)g(an)g(optional)g(list)g(of)h(pac)n(k)-5
+b(age-pin-n)n(um)n(b)r(ers)31 b(sp)r(ecifying)j(whic)n(h)h(VPP)g(is)722
+3080 y(turned)29 b(on.)40 b(If)30 b(the)f(second)f(parameter)f(is)i
+(not)g(passed,)f(all)h(p)r(ossible)f(VPPs)i(that)722
+3180 y(w)n(ere)d(sp)r(eci\034ed)i(in)f(the)g(constructor)f(are)g
+(turned)h(on.)38 b(The)28 b(second)g(parameter)e(is)722
+3279 y(un)n(used,)i(if)g(\020on=F)-7 b(alse\021.)515
+3445 y Fe(applyGND\(on\))42 b Fd(This)29 b(metho)r(d)h(enables)f(or)g
+(disables)g(\(dep)r(ending)i(on)e(the)h(\020on\021)36
+b(pa-)722 3545 y(rameter\))25 b(the)h(GND)h(la)n(y)n(out.)35
+b(Enabling)26 b(the)g(la)n(y)n(out)e(means)h(that)h(the)g(GND)h(pins)
+722 3645 y(will)41 b(b)r(e)g(activ)n(ely)f(driv)n(en)g(b)n(y)g(GND.)i
+(Disabling)e(the)h(la)n(y)n(out)f(will)g(tristate)h(the)722
+3744 y(driv)n(er.)1926 5255 y(7)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
bues.ch cgit interface