PM 2Ring wrote: ↑April 2nd, 2010, 2:33 am
Collatz sequence generator
Here's my most ambitious arithmetic-oriented pattern to date.
This pattern calculates the Collatz sequence in binary, using p60 / p30
technology. Input and output is done using LWSS bits. The next number in
the Collatz sequence is generated after 7680 (= 128 * 60) steps.
The arithmetic unit at the heart of this construction is the amazing
Binary Adder circuit created by David Buckingham in 1975, with size
optimization by Mark Niemec. This circuit adds two binary numbers
represented by p60 glider streams, with the least significant bits
leading. This allows numbers of any length to be added. Input data
enters the adder circuit at its upper left and the sum begins to emerge
from the circuit at its lower right after 600 steps.
This pattern uses a couple of p7680 guns, which utilize a period
multiplier based on a sequence of glider reactions that create a base 4
counter using (nothing) - boat - blinker - block as the base 4 digits.
This pattern also uses the bistable switch found by Paul Callahan.
The Collatz Sequence
--------------------
The Collatz sequence for a positive integer n is defined as follows:
Let C(0) = n
If C(i) is even, C(i+1) = C(i) / 2
Else C(i) is odd, C(i+1) = 3*C(i) + 1
The Collatz Conjecture is that all sequences eventually reach the cycle
1, 4, 2, 1, ...
For example, the Collatz sequence for 7 is:
7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
The pattern is currently set to calculate the Collatz sequence of 27.
For more details on the Collatz Conjecture, see
Wikipedia.
How it works
------------
The data starts out at the top of the pattern, in the Input / Output
Display section, as a sequence of LWSSs. It is converted into p60
glider data by a pair of p60 guns, using the "zap" reaction to
delete gliders without harming the LWSSs. This enables the output
section to be expanded to display more bits, if desired.
The data then passes through a duplicator. One copy of the data enters
a small delay loop, the other (inverted) copy passes through the Parity
Detector, which determines if the number is odd. A p7680 gun generates a
parity detection bit which will only pass through the Parity Detector if
the LSB of the current number is 1.
The parity bit is duplicated several times. Two copies of the parity bit
go to the Switchable p60 Glider Reflector: one copy turns it on, the
second copy sets a bistable switch to enable the gate to be turned off
by the parity reset bit, which is generated by the p7680 gun in the
lower right of the pattern.
The Switchable p60 Glider Reflector consists of a switchable p60 glider
gun which feeds a glider to LWSS converter. When the data stream emerges
from the delay loop, if it's an odd number the Switchable Glider
Reflector will be on and the LWSSs reflect the data stream upwards,
otherwise, it's an even number and the data passes straight through.
Even number data continues downwards, passing through a few Buckaroos
to delay it, until it hits the p60 Output Collector stream.
Odd number data follows an upwards path into the Data Duplicator, where
it meets the third copy of the parity bit. Two copies of the number are
created, and the parity bit is prepended to one of these copies. If the
original number is n, then the Data Duplicator outputs n & 2n+1. These
outputs travel through a few Buckaroos, etc, to synchronize them, and
then they enter the Binary Adder, which outputs 3n+1, sending the data
to the p60 Output Collector stream.
The data from the Output Collector travels up through a few more
Buckaroos to delay it. It then passes through a glider to LWSS converter
into the Input / Output Display section, and the cycle is complete.
Collatz2cA.rle
Code: Select all
#C Collatz by PM 2Ring, March 2010.
#C
#C This pattern calculates the Collatz sequence in binary, using p60 / p30
#C technology. Input and output is done using LWSS bits. The next number in
#C the Collatz sequence is generated after 7680 (= 128 * 60) steps.
#C
#C The arithmetic unit at the heart of this construction is the amazing
#C Binary Adder circuit created by David Buckingham in 1975, with size
#C optimization by Mark Niemec. This circuit adds two binary numbers
#C represented by p60 glider streams, with the least significant bits
#C leading. This allows numbers of any length to be added. Input data
#C enters the adder circuit at its upper left and the sum begins to emerge
#C from the circuit at its lower right after 600 steps.
#C
#C This pattern uses a couple of p7680 guns, which utilize a period
#C multiplier based on a sequence of glider reactions that create a base 4
#C counter using (nothing) - boat - blinker - block as the base 4 digits.
#C This pattern also uses the bistable switch found by Paul Callahan.
#C
#C The Collatz Sequence
#C --------------------
#C
#C The Collatz sequence for a positive integer n is defined as follows:
#C
#C Let C(0) = n
#C If C(i) is even, C(i+1) = C(i) / 2
#C Else C(i) is odd, C(i+1) = 3*C(i) + 1
#C
#C The Collatz Conjecture is that all sequences eventually reach the cycle
#C 1, 4, 2, 1, ...
#C
#C For example, the Collatz sequence for 7 is:
#C 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
#C
#C The pattern is currently set to calculate the Collatz sequence of 27.
#C For more details on the Collatz Conjecture, see Wikipedia.
#C
#C How it works
#C ------------
#C
#C The data starts out at the top of the pattern, in the Input / Output
#C Display section, as a sequence of LWSSs. It is converted into p60
#C glider data by a pair of p60 guns, using the "zap" reaction to
#C delete gliders without harming the LWSSs. This enables the output
#C section to be expanded to display more bits, if desired.
#C
#C The data then passes through a duplicator. One copy of the data enters
#C a small delay loop, the other (inverted) copy passes through the Parity
#C Detector, which determines if the number is odd. A p7680 gun generates a
#C parity detection bit which will only pass through the Parity Detector if
#C the LSB of the current number is 1.
#C
#C The parity bit is duplicated several times. Two copies of the parity bit
#C go to the Switchable p60 Glider Reflector: one copy turns it on, the
#C second copy sets a bistable switch to enable the gate to be turned off
#C by the parity reset bit, which is generated by the p7680 gun in the
#C lower right of the pattern.
#C
#C The Switchable p60 Glider Reflector consists of a switchable p60 glider
#C gun which feeds a glider to LWSS converter. When the data stream emerges
#C from the delay loop, if it's an odd number the Switchable Glider
#C Reflector will be on and the LWSSs reflect the data stream upwards,
#C otherwise, it's an even number and the data passes straight through.
#C
#C Even number data continues downwards, passing through a few Buckaroos
#C to delay it, until it hits the p60 Output Collector stream.
#C
#C Odd number data follows an upwards path into the Data Duplicator, where
#C it meets the third copy of the parity bit. Two copies of the number are
#C created, and the parity bit is prepended to one of these copies. If the
#C original number is n, then the Data Duplicator outputs n & 2n+1. These
#C outputs travel through a few Buckaroos, etc, to synchronize them, and
#C then they enter the Binary Adder, which outputs 3n+1, sending the data
#C to the p60 Output Collector stream.
#C
#C The data from the Output Collector travels up through a few more
#C Buckaroos to delay it. It then passes through a glider to LWSS converter
#C into the Input / Output Display section, and the cycle is complete.
#C
x = 929, y = 524, rule = B3/S23
794bo$793bobo$776b2o14bo3b2o$776bobo13bo3b2o3b2o$771b2o4b3o12bo3b2o3b
2o$767b4o2bo4b3o12bobo$767b3ob2o4b3o7bo6bo$776bobo9b2o$776b2o9b2o2$
790bo$790b2o$789bobo2$794bobo$795b2o$16b2o756bo7bo12bo$16b2o754bobo5b
4o$764b2o4b2o8b2o2bo2b2o$764b2o4b2o11b2o2b2o$770b2o7bo10b2o$772bobo4bo
10b3o$774bo4bo10b2o$787b2o7b2o$787b2o7bobo$798bo$798b2o2$14b5o$13bob3o
bo789bobo$14bo3bo791b2o$15b3o792bo$16bo2$12bo$11b2o$2o8b2o4b2o$2o7b3o
4b2o$10b2o4b2o672b2o28b2o58b2o28b2o$11b2o675b2ob2o25b2ob2o55b2ob2o25b
2ob2o$12bo675b4o26b4o56b4o26b4o$689b2o28b2o58b2o28b2o93b2o$904bobo$
906bo$29b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b
2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b
2o13bobo12b2o28b2o28b2o5b2o$29b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o
28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o28b2o
28b2o28b2o28b2o28b2o28b2o14b2o12b2o28b2o28b2o$825bo$127bo681b2o$127b3o
679b2o$130bo$129b2o678b2o$809b2o$121bo$119b3o$118bo13bo$118b2o11b3o$
131b3o2$129b2o3b2o$116bo12b2o3b2o703bobo$115b3o722b2o$115b3o722bo$132b
2o17b2o$113b2o3b2o11bobo16b3o$113b2o3b2o10b2o2bo12bob2o15bo$131b2o14bo
2bo8b3o4bobo$131b2o14bob2o16bobo$115b2o14bo10b2o6b3o2b2o2bo7bo2bo$115b
obo23bobo7b2o2bo3bo7bobo117b2o$114bo2b2o12bo5bo3bo14bo2bo6bobo3b2o112b
o$116b2o13bo5bo2b2o14b2o8bo5bobo110bo12b2o$116b2o7bo6bo3bo37bo110bo7bo
4b2o$117bo7bobo5b3o38b2o109bo8b2o5b2o$125b2o150b2o7bo4b2o2bo5b3o$111bo
5bo30bo4b2o121bobo8b2ob5o6b2o551bobo$111bo5bo30bobo2bobo120bo16bo4b2o
7b2o546b2o$112bo3bo4b2o25b2o3bo121b2o21b2o7bobo545bo$113b3o5b2o186bo$
179b2o104bo23b2o$179bo104bo$161b2o8bo5bobo104b3o$134b2o25bo2bo6bobo3b
2o$134b2o20b2o2bo3bo7bobo114b3o$81b2o47bo24b3o2b2o2bo7bo2bo76b2o19b2o
14bo$81b2o33b2o13bo20bob2o16bobo78bo19bo16bo23b2o$116bo12b3o20bo2bo8b
3o4bobo79bobo7b2o5b2obo40bo$117b3o32bob2o15bo82b2o6bobo7bo30b2o7bobo$
119bo22b2o2b2o7b3o103b3o4bo29bo4b2o7b2o$142bo2bobo8b2o102b3o4bo2bo21b
2ob5o6b2o591bo$124bo8bo10b2o19b2o65bo28b3o4b2o21bo4b2o2bo5b3o560bobo
27b2o$124b3o6bobo9bo19bo44b2o19bobo28bobo25bo8b2o5b2o562b2o22b2o4b2o
13b2o5bo$80b3o44bo5b2o10bobo5bo9bobo45bo19bobo29b2o15b2o8bo7bo4b2o565b
o19b2o2b2o4b3o11b3o3bo3bo$79bo3bo42b2o18b2o4bobo8b2o46bobo9bo5bobob2o
19b2o24b2o8bo12b2o585b2o2b2o4b2o9bob2o5bo$150b2o3bo56b2o8bobo4b2o3bo
19bo15bo20bo607b2o10bo2bo4bo5bo$78bo5bo65b2o3bo65bo3b2o7bobo8bo6bobo
14bo22b2o605bo11bob2o9b2o$78b2o3b2o43b3o19b2o3bo65bo3b2o8b2o7b2o6b2o
15b3o631bo10b3o$24b2o102b3o21bobo66bo3b2o16b2o4b2o654bo9b2o$25bo101bo
3bo21bo68bobo17b3o4b2o650bo2bo$25bobo8b2o43bo44bo5bo12bo77bo19b2o4b2o
649bo$26b2o8b2o42bo46bo3bo14bo83b3o11b2o654bo$33b2o6bo3b2o33bo47b3o13b
3o6bo76bo14bo395b2o258bo$32b3o5bo3bobo107b2o75bo410bo$33b2o6b5o37b2o
68b2o487bobo6bobo242bo$7b2o27b2o4b3o38bo559b2o5bo2bo241bo$7b2o27b2o46b
3o562b2o10bo6bo215bobo8b3o10bo2bo8bo$86bo50b2o4bo503b2o3bo8bo5bobo215b
2o21bo10bobo$136bobo5b2o503b2o9bo6b2obo4b2o208bo18bo2bo3b2o5bo3b2o3b2o
$138bo4b2o482b2o12b2o7bo2bo2b2o9b2ob2o3b2o224b4o3b2obobo4bo3b2o3b2o$
126b2o127bo371b2o13bo8bobo2bo2b3o5b2obo229b4o14bo3b2o$127bo86bobo37bo
61b2o324bobo11b4o7bobo230bo2bo8b2o5bobo$124b3o87b2o38b3o59bo326b2o12b
2o9bo231b4o16bo$124bo90bo98bobo311bo266b2o4b4o$314b2o311bobo264bobo7bo
$8bo151bo465bo3bo263bo$7b3o151bo83b3o378b5o18b2o2b2o238b2o$6b5o148b3o
6bo76bo379b2o3b2o17bobo3bo$5b2o3b2o157b2o75bo70bo308b5o18bo4bo$6b5o
157b2o146b3o308b3o$6bo3bo304b5o308bo24bo$7bobo640bo2bo$8bo113b2o23bo
10bo492b2o8bo$121bobo21bobo11b2o499b2o$5b2o93b2o21bo11b2o6b2o13b2o248b
2o217bo32bobo$6bo93bobo31bo3bo4b2o95bo167bo220b2o$3b3o81bobo13bo7b2o
20bo5bo3b2o54bobo37bo158bo7bobo219b3o$3bo82bo2bo2b2o6bo2bo7b2o20bo3bob
2o4bobo7b2o42b2o38b3o73b5o78bobo5b2o220b2o$62b2o21b2o5bobo8bo29bo5bo7b
o7bobo42bo115b3o15b2o51b2o12b2o226bo$61bo3bo17b2o3bo3bo3bo3bobo22b2o7b
o3bo18bo159bo16bo52b2o12b2o46b2o177bobo$36b2o22bo5bo18b2o5b3ob2o2b2o
22bobo8b2o20b2o16bo147bobo6bobo66b2o46bo179b2o37b2o$36b2o22bo3bob2o2b
2o7b2o5bo2bo3b2o29bo21bo29bo83b3o60bo2bo5b2o64bobo39bo6bobo217b2o$60bo
5bo3b2o6bobo6bobo33b2o22b2o25b3o6bo76bo65b2o70bo40b2o6b2o220bo$51b2o8b
o3bo12bo67b2o36b2o75bo62bo3b2o98b2o8b2o4b2o177b2obob2o10b2o$50bobo9b2o
13b2o104b2o37bo96bo6b2o100b2o7b3o4b2o194b2o$50bo52bo118b3o94bo3bo2bo
111b2o4b2o177bo5bo6bo$49b2o50bobo64b3o54bo97bobo9bo103b2o196b2o$102b2o
3b2o32b2o27bo2bo50b2o108b3o103bo183b2ob2o7b2o38bo$106bobo9b2o22b2o25bo
4b2o105bo51b2ob2o84b2o202bo48b2o$108bo10bo21bo31b2o2b3o101b3o48b3ob3o
76bob2o3b3o250bobo$82b2o35bobo8b2o47bo18b2o19b2o63bo47b3ob3o72bo2bo3bo
5b2obo5b2o$83bo36b2o7bo3bo44bo5bobo12bo19bo7bo55b2o47b3ob3o71b2o2bo4bo
4bo2bo5b2o188b2o5b2o$83bobo6bobo21b2o10bo5bo7bo41b2o13bobo4bo10bobo5b
2ob2o2bobo97b3ob3o70b2o5b4o4b2obo196bo6bo$84b2o5bo2bo3b2o16bo11bo3bob
2o4bobo41b2o14b2o3bobo9b2o14b2o30b2o66b2ob2o61b2o7b3o7bo3b3o196b3o4b3o
12bobo$90b2o5b3ob2o2b2o7bobo11bo5bo3b2o42bo20b2o3bo15bo5bo2bo31b2o67b
3o62b2o8b2o11b2o197bo6bo15b2o$88b2o3bo3bo3bo3bobo6b2o13bo3bo4b2o12b2o
29b2o5bo12b2o3bo76b3o47bo16b2o56b2o4b2o226bo38b2o$90b2o5bobo8bo21b2o6b
2o12b2o7bo20b2o7bo11b2o3bo15b2obob2o44b3o74bo58bo3b2o265b2o$91bo2bo2b
2o6bo2bo31bobo19b2o25b3o6bo6bobo67bo9bobo55b2o5bobo62b2o267bo$92bobo
13bo33bo18b2o36b2o5bo69bo7b5o54b2o5b2o65bo471b2o$105bobo90b2o83b2o3b2o
50b2o547b2o$105b2o28bobo36bo90b3o15b2o3b2o49b3o309bo$134bo2bo15b3o15b
4o100b3o62b2o310b2o248b2o$124bo8b2o10b2o8bo14b4o91bobo9bo65b2o306b2o
38bo210b2o$123bobo5b2o3bo8b2o7bo15bo2bo55b2o33b5o7bo6b2o58b2o79bo265b
2o$123b2obo6b2o5b2o28b4o55bo33b2o3b2o11b2obo138b2o46b2o217bobo$123b2ob
2o6bo2bo4bo21b2o5b4o6b2o47b3o30b2o3b2o11bo141bobo46bo$62b2o59b2obo8bob
o25bobo8bo6bobo48bo239bobo4bo408b3o12bo$62b2o49b2o8bobo37bo19bo63bobo
32b3obo186b2o3bobo406bo3bo10b3o$62b2o48bobo9bo9bo27b2o19b2o63b2o9bo8b
2o16bo190bob2o15b2o160bobo240bo3bo$62bo49bo22bo112bo8b3o8bob2o14bo189b
2ob2o14bobo161b2o225bo5bo7bob3obo$61bobo47b2o20b3o69bo50bo14bo205bob2o
13bo6b2o2b2o152bo38b2o186b2o3b2o8b5o$61bobo127bo14bo49b2o173b2o45bobo
13bo2bo2bo2bob2o190b2o$62bo128b3o10b3o59bob3o159b2o47bo5bo8bo6b2o196bo
$194bo18bo52bo165bo52bobo7bobo391bo$189bo3b2o71bo14b2o3b2o14bo139b2o
41b2o9b2o389b2obo$59b2o3b2o121b3o25b2o8bo57b3o14bobo137bo3bo221bo223bo
$59bobobobo50b2o20b3o45bo10bo17bo9b3o25b3o26bo3bo5b2o4b2o131bo7bo5bo
221b2o217bo3bo11bo2b2o$60b5o52bo22bo45b2o9bo18b3o9bo23b2ob2o26bobo6b2o
4b2o131bobo4b2obo3bo8b2o210b2o38bo179bo2bo12bobo$61b3o53bobo9bo9bo10b
2o44bo15b2o4bo8b2o23b2ob2o27bo13b2o134b2o3bo5bo8b2o249b2o178b5o11b2o$
62bo55b2o8bobo19bo61bobo37b5o8b2o3b2o28bobo131b2o4bo3bo33bo226bobo177b
5o10b2o$128b2obo8bobo5bobo63bo36b2o3b2o9b3o11b2o19bo131b2o6b2o33bo406b
2o3b2o9b2obo$128b2ob2o6bo2bo5b2o43b2o3b2o14b2o50bo3bo11bo139b2o7bobo
43b3o395b2o8b5o11b3o$128b2obo6b2o53bo5bo67bobo9b3o139bobo7bo443b2o9b3o
5bobo$128bobo5b2o3bo41b3o82bo10bo141bo59b2o190bobo211bo7b2o$129bo8b2o
42bo3bo7bo3bo30b3o78b2o3b2o103b2o59b2o191b2o219b3o4b2o3b2o$64b2o73bo2b
o38bo5bo7b3o30bo3bo32b2o407bo38b2o182b2o6bo$64bo75bobo38b2obob2o39bo5b
o32bo44bo3bo33bobo360b2o183b2o3bo5bo$65b3o159b2obob2o22b2o5b3o46b3o29b
o4bo2bo117bo243bo161bo26b2ob2o$67bo188bo6bo48b3o30b2o5b2o116bobo403bo
27bobo$184bo72b3o80b2o8bo3b2o114b2o403bobo27bo$183bobo7b2o35bo28bo80b
2o10b2o327bo192b2ob2o5b2o19bo$33b2o148bobo8bo34bobo37b2o78bo2bo6b2o
321b2o189bo5bo5bo$33b2o148b2o6b3o35bobo21bo7bo7bo2bo76bobo7bobo319b2o
38bo154bo5b3o10bobo$182bo8bo38b2o20b2o6bo3b2o7bo9bobo26b2o47bo358b2o
66b2o83b2o3b2o2bo15bo8b2o$181b3o48bo19bobo5bo5bo6bo7bo3bo26b2o47b2o
100bo256bobo65b2o104bo4bo2b2o3bo$180bo3bo46b3o27b5o7bo7bo44b2o134bo
431b2obo2bob2o4b3o$35b2o45b2o95bob3obo44bo3bo34bo2bo7bo4bo40b2o4b4o
126b3o411bo21b2o10bo$82bo97b5o4bo39bob3obo33b2o10bo33b2o6b2o6b6o540b2o
$71bobo6bobo107b2o33bo4b5o46bo3bo6b2o21b2o5b3o5bo3b2obo281b2o67bobo$
70bo2bo6b2o107b2o32b2o47bobo8bobo6bobo28b2o6bo5bo281bo69b2o179b2o7bo$
61b2o6b2o153b2o46b2o20bo31b2o8bo273bo6bobo69bo38b2o139bobo4bobo12b2o$
31b2o3b2o23b2o4b2o3bo200bo20b2o30b2o85b2o195bobo4b2o108b2o139b3o5bo14b
2o$32b5o32b2o342bo41bo142b2o11bobo115bo59bo69b2o6b3o$32b2ob2o33bo2bo
259b2o3b2o60bo10bobo41bobo140b2o11bo2bo173b3o68b2o7b3o10b2o$32b2ob2o
34bobo259b2o3b2o59bobo9b2o42b2o154bobo173b5o59b2o16bobo9b2o7b3o$33b3o
160bobo193b2o3b2o3bo207bobo83bo89b2o3b2o59bo17b2o18b3o$184b2o11b2o17bo
bo116b3o54b2o3b2o3bo207bo86b2o153bobo7bo$184bo12bo18b2o11b2o37bo20b2o
44b3o59b2o3bo293b2o38bo116b2o4b4o$185b3o29bo12bo36b2o20bo46bo62bobo
333b2o121b4o9b2o$187bo39b3o25b2o10bobo8bobo6bobo110bo42bo291bobo50b3o
56b2o9bo2bo9b2o15b2o3b2o$31b2o194bo28bo19bo3bo6b2o152bobo6b2o336b3o56b
o2bo7b4o5bo21b5o$32bo74b2o147bobo5b2o10bo156b2o4b2o18b2o398b4o4bo22b3o
$29b3o75b2o95bo52b2o5bo2bo7bo4bo152b2o4b2o17bo3bo324bo63bo10bo28bo$29b
o77b2o96b2o3bo57bo7bo162b2o16bo5bo239bobo27b2o51bobo$107bo96b2o2b2o58b
o7bo3bo54b2o104bobo2bob2o7bo3bob2o2b2o235b2o27b2o50bo3bo59b2o$106bobo
100b2o57bo9bobo54b2o90bobo13bo2bobo8bo5bo3b2o235bo38b2o41b3o59bo$106bo
bo155bo2bo157bo3bo17bo10bo3bo279b2o40b2o3b2o4bo$107bo156b2o147b2o10bo
12b2o19b2o272bo10bo48bobo5b2o$413bo2bo7bo4bo8b2o292bobo59b2o5b2o42b2o
3b2o17bo23b2o$405b5o7bo7bo305bo3bo109b2o3b2o17bo23bo$104b2o3b2o293bo5b
o6bo7bo3bo281bo19b5o110b5o18bo24b3o$104bobobobo293bo3b2o7bo9bobo282b2o
16b2o3b2o110bobo33bo12bo$105b5o295bo7bo2bo294b2o18b5o15bo130b4o$106b3o
304b2o317b3o15b2o50bo44b3o31b2obobo$107bo625bo16bobo50bo76b3obo2bo2b2o
$784b2o15b3o77b2obobo3b2o$47b2o179bo195b2o359bo96b4o$46bobo177b3o194b
2o357b3o55b2o41bo$45bo6b2o171bo199bo55b2o235bobo13bo47bo57bobo20b2o$
36b2o7bo2bo2bo2bo171bo255bo236b2o10b2o102b2o6bo19b2o$36b2o7bo6b3o54b2o
112bo2bo252b3o4bo2bo4bo2bo221bo11b3o24b2o71b2obo2bo2bo2bo$46bobo5b3o
52bo112bo256bo4b3o2b6o2b3o232b2o23b2o51bo20b2o2b2o6bo9b2o12b2o3b2o$47b
2o6bobo52b3o109bobo261bo2bo4bo2bo234bo26bo48bobo29bobo10b2o$57bo54bo
110bo208bo68bo229bobo75b2o29b2o26bo3bo$57b2o372b2o67bobo228b2o99bobo
34b3o$372bobo56bobo65bo3bo195b2o24b2o105bo2bo33b3o$78b2o140b2o3b2o140b
o4bo2bo66bo57b3o196b2o122b2o10b2o6b2o$78b2o140bobobobo141b2o5b2o64bobo
54b2o3b2o215bo11b2obob2o27bo4b2o50b2o8bo3b2o4b2o$221b5o137b2o8bo3b2o
51bo8b2o3bo275b2o43b2o4b2o44bo10b2o5b2o25b3o$222b3o138b2o10b2o53b4o5b
2o3bo9b2o270bo5bo5bo26bobo50bo8bo4bo2bo25bo3bo$223bo148bo2bo6b2o47b4o
4b2o3bo9b2o268bobo89b3o13bobo25bo5bo2b2o$80b2o45b2o243bobo7bobo46bo2bo
6bobo281b2o6b2ob2o122bo5bo2b2o$127bo256bo46b4o7bo292bo127bo$116bobo6bo
bo256b2o36b2o6b4o427bo3bo$115bo2bo6b2o294bobo6bo268b3o160bo$106b2o6b2o
305bo276bo3bo27b2o5b2o34b2o88bo2bo$76b2o3b2o23b2o4b2o3bo302b2o76b2o
197bo5bo26bo6bo34b2o51bo40bo$77b5o32b2o107b2o274bo197b2obob2o27b3o4b3o
22b2o9bo9bo38bobo39bo$77b2ob2o33bo2bo104b2o271b3o234bo6bo21bobo17bobo
39b2o40b3o$77b2ob2o34bobo377bo265bo7b2o9bobo84bo$78b3o619bo60b2o7b3o7b
o2bo11b2o$699bobo70b2obo5bobo11b2o$699bobo70bo2bo6bobo$699b2o71b2obo8b
o47bo$698bo64b2o5b3o60bo$76b2o619b3o62bobo5b2o59b3o$77bo480bo87b2o48bo
3bo61bo$74b3o480b4o85b2o47bob3obo59b2o$74bo481b2obobo134b5o4bo$545b2o
8b3obo2bo143b2o4b2o$156b2o387b2o9b2obobo143b2o5b2o85b2o37b2o$156b2o
399b4o3b2o233b2o37bobo$558bo5bobo273bo$566bo273b2o$566b2o232bo$559b2o
150b2o86b3o$559b2o84b3o63bo86bo3bo$644bo3bo46b2o15b3o85bo$155b3o485bo
5bo46bo17bo82bo5bo$154bo3bo484bo5bo43b3o101bo5bo$646bo46bo104bo3bo$92b
2o59bo5bo484bo3bo150b3o$91bobo59b2o3b2o485b3o$90bo6b2o547bo$81b2o7bo2b
o2bo2bo541b2o$81b2o7bo6b3o56bo399b2obob2o76bo2bo177b2o$91bobo5b3o53bo
474b2o6bo7b2o154bo17b2o$92b2o6bobo52bo400bo5bo67b2o6bo6bo2bo$102bo535b
o7b2o$102b2o54b2o397b2ob2o77bo2bo159bo17bo$158bo400bo81b2o157bobo16b3o
$159b3o532b2o105b2o15bo3bo$161bo532bobo17b2o104bo$696bo18bo101bo5bo$
561b2o133b2o17bobo9bo84b2o3bo5bo$561bo154b2o8b4o49b2o14b2o3b2o10b2o4bo
3bo$534b2o26b3o160b2ob4o5b2o40bobo27bo9b3o$534b2o28bo159b3ob2o3bo3bo2b
o39b3o13bo3bo9bo$725b2ob2o3bo7bo39b2o14b3o8b3o$715b2o9b5o3bo6bo6b2o31b
2o14b3o$714bo2bo9bo3b3o7bo6b2o29bobo$534b3o177bo22bo2bo39bo$534b3o177b
o22b2o56b2o19bo$533bo3bo176bob2o78bo19bo$532bo5bo177b2o7bo51b2o3b2o9b
3o24bo$533bo3bo185b2o52b2o3b2o9bo26b2o$534b3o187b2o96bo$715b2o62b3o38b
2o$715b2o12b2o48b3o$728b2o50bo$730bo9bo59b2o13b2o3b2o$621b2o115bobo58b
obo$621bo104b2o9bobo11b2o45b3o15bo3bo$613bo5bobo104b3o7bo2bo11b2o45b2o
17b3o$612b4o3b2o79bob2ob2o21b2obo5bobo58b2o17b3o$532b2o66b2o9b2obobo
83b2obobobo20bo2bo6bobo41bo16bobo$533bo66b2o8b3obo2bo88bo21b2obo8bo42b
2o15bo$530b3o78b2obobo102b2o5b3o53b2o$530bo81b4o102bobo5b2o$613bo96bo
7bo58b3o12b2o3b2o3b2o13b2o$708b2o7b2o57bo3bo11b2o3b2o3b2o13b2o$709b2o
64bo5bo$775bo5bo17b3o$118b3o657bo10bobo7b3o$118bo657bo3bo9b2o8bo$119bo
659bo10bo$115b2o658bo2bo$114bobo658bo$116bo602b2o55bo23bo$719bobo51b3o
23bobo$719bo53bo25bobo4$90b2o705b3o$90b2o704bo3bo16bo$795bo5bo13b3o$
113bo681bo5bo12bo$111b3o19b3o662bo15b2o$110bo22bo581b2o79bo3bo$110b2o
22bo580b2o80b3o$89b3o8b2o696bo$88b2ob2o6bobo591bo$88b2ob2o8bo591b3o38b
2o$88b5o603bo37bobo60b2o$87b2o3b2o601b2o37bo62b2o$99b2o708b2obob2o$99b
obo5b3o589bo$93bo5bo6bo3bo588bo109bo5bo$92bob2o9bo5bo601b2obob2o$92bo
12bo5bo596b3o99b2ob2o$695b2o3b2o6bo4bo5bo92bo$92b2obo9bo590b5o8bo$90bo
2bo11b2o41b3o186b2o358b3o14b2ob2o$90bobo12b2o41bo188bo360bo17bo$104b2o
2bo40bo178bo6bobo236bo127b3o$105bobo219b2o6b2o236bobo128bo107b2o$106b
2o208b2o8b2o4b2o238bo3b2o125bo10bo97b2o$316b2o7b3o4b2o227b2o9bo3b2o
135bobo33b2o$91b3o232b2o4b2o227b2o9bo3b2o134bo3bo32bobo$90bo3bo8b2o3b
2o217b2o244bobo4b2o130b5o32bo$89bo5bo7b2o3b2o218bo245bo5bobo128b2o3b2o
$90bo3bo487bo129b5o$91b3o11b3o474b2o115b3o11b3o$91b3o11b3o606bo$106bo
592bobo$698b5o$697b2o3b2o$92b2o69b3o531b2o3b2o$92b2o69bo$164bo$105b2o
593bo$105b2o591b2o$713b2o49b2o$697bo15b2o49bobo$764bo$698bo2bo$700b2o
6$178b3o$178bo$179bo$913bo$911b3o$779b2o129bo$779bobo128b2o$779bo$908b
o$907b3o$906bo3bo$908bo$905bo5bo$905bo5bo$906bo3bo$193b3o711b3o$193bo$
194bo335b2o$530bo$521bo6bobo$520b2o6b2o264b2o$509b2o8b2o4b2o267bobo$
509b2o7b3o4b2o267bo$519b2o4b2o$520b2o386b2o$521bo386b2o5$208b3o$208bo$
209bo$824b2o$824b2o$505bo303b2o$505b3o294bo6bobo$508bo293b3o4bo$507b2o
296bo$804b2o$511bo206b2o$511bo205bobo$510bo205bo6b2o$707b2o7bo2bo2bo2b
o91b2o$707b2o7bo6b3o91b2o5b3o$223b3o281b2o3b2o31bo171bobo5b3o76b2o3b2o
12bo3bo$223bo283bo5bo30bobo171b2o6bobo75b2o3b2o11bo5bo$224bo318bo3b2o
179bo94bo3bo$508bo3bo19b2o9bo3b2o179b2o76b3o3b3o9b3o$509b3o20b2o9bo3b
2o257b3o5bo8bo2bo$544bobo4b2o254bo5bo9b3o$545bo5bobo268bob2o$553bo268b
obo$553b2o179bo88bo$734b3o$737bo$509b2o225b2o70b3o9b2o3b2o$509b2o297b
3o9bobobobo$807bo3bo9b5o$822b3o$238b3o565b2o3b2o10bo$238bo$239bo516b2o
$726bo7bo21b2o$726b3o5b3o$729bo7bo$497b2o229b2o6b2o$497bo324b2o$254b2o
232bo6bobo324b2o$255bo231b2o6b2o$255bobo5b2o211b2o8b2o4b2o315b2o$256b
2o5b2o211b2o7b3o4b2o286bo28b2o$266b2o10bo207b2o4b2o284b3o$266b3o7bobo
208b2o288bo$266b2o6b2o212bo288b2o$253b3o7b2o9b2o12b2o584b2o$253bo9b2o
9b2o12b2o585bo$254bo21bobo596bobo7b2o$266bo11bo458b2o137b2o6bobo$266bo
bo468b2o144bo13bobo$266b2o502b2o111bo2bo6b2o2bo2bo$564bo204bo2bo110bo
8bobo5b2o$562b3o205b2o103b2o7bobo3bo3bo3bo3b2o4b2o$261b2o298bo220b2o
91b2o8b2o2b2ob3o5b2o6b2o$261b2o298b2o219bobo90b2o15b2o3bo2bo$784bo90bo
21bobo$274b2o464b2o42b2o88bobo$274bobo281b2o181bo132bob2o$264bo4b2o4b
3o7b2o451b3o36b2o104bo$263bobob2o2bo4b3o6b2o451bo38bo71b2o32bobo$251b
2o9bo3bob3o4b3o500b3o69bo24b2o6b2o3b2o$251b2o9bo3bob2o4bobo279b2o3b2o
217bo69bobo8bo13b2o11bobo$262bo3b2o6b2o280b2o3b2o288b2o8bobo24bo$263bo
bo596bobo4b2o28bo$264bo293b3o284b2o15bo2bo3b2o26b4o$558b3o284b2o15bobo
22bobo6bobob2o9b2o$559bo301bobo23bo3bo3bo2bob3o8b2o$861bo29bo4bobob2o$
887bo4bo4b4o$891bo7bo$846bo32b2o6bo3bo$844b2ob2o29bobo6bobo$559b2o317b
o$457bo101b2o282bo5bo17b2o8b2o$456bobo407bobo$455bo3b2o382b2obob2o17bo
$444b2o9bo3b2o416b2o$444b2o9bo3b2o416bobo$456bobo4b2o407b2o6bo$457bo5b
obo61bo343bo2bo2bo2bo7b2o$465bo60bobo318b2o18b3o2b2o6bo7b2o$465b2o58bo
3b2o336b3o7bobo$514b2o9bo3b2o309b2o24bo3bo6b2o$514b2o9bo3b2o309b2o19b
2o2bo5bo$526bobo4b2o302b2o22b2o3bo3bo$527bo5bobo293b2o5b3o22b2o4b3o$
535bo293b2o6b2o12b2o8bo$535b2o284b2o17b2o9b2o7bobo$822bo17b2o18bobo$
822bobo6bo29bo$823b2o4bobo$827b2o12b2o$827b2o12b2o15b2o3b2o$827b2o29bo
bobobo$779bo49bobo27b5o$777bobo51bo28b3o4b2o$776bobo82bo5b2o$770b2o3bo
2bo$770b2o4bobo$777bobo9b2o$779bo9bobo$791bo46b2o23b2o$791b2o45b2o23bo
$864b3o$852bo13bo$851b2o$850b2o4b2o$849b3o4b2o2b2o$850b2o4b2o2b2o$851b
2o$852bo$817bo15b2o$816b2o15b2o$815b2o4b2o$805b2o7b3o4b2o$805b2o8b2o4b
2o15b5o$816b2o6b2o11bob3obo$817bo6bobo11bo3bo$826bo12b3o$826b2o12bo$
832b3o$831bo3bo$830bo5bo$830b2obob2o2b2o$839b2o2$833bo$832bobo$832bobo
$833bo2$833b2o$833b2o!