Life tag testing

For scripts to aid with computation or simulation in cellular automata.
Locked
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Build 260 is now available on the lazyslug server...
Looks good! I can't break it immediately -- am going through the nine pages of the LTL thread and swapping in the new LifeViewer build. So far nothing breaks catastrophically.

One thing seems slightly odd: the early pages of that thread all have bounded-grid suffixes like :P1000,1000 or :T400,400, which seems to disable the usual auto-zoom-in functionality so all you can see is a tiny spot in the middle of a gray box.

Also T4000,4000 definitely slows LifeViewer down a lot compared to smaller grids -- makes the whole page a bit less responsive in extreme cases, but really it seems okay. LifeViewer can still be closed in a reasonable amount of time, though sometimes I had trouble stopping it (because I'd get impatient and hit Enter multiple times, which would turn Pause back off and set it running again half the time.)

With the possible exception of the autofit at T=0, I think this is ready for prime time!

EDIT: Whenever you've decided what if anything to do about T=0 autofit, drop a copy in the release folder.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:One thing seems slightly odd: the early pages of that thread all have bounded-grid suffixes like :P1000,1000 or :T400,400, which seems to disable the usual auto-zoom-in functionality so all you can see is a tiny spot in the middle of a gray box.
This is existing LifeViewer behaviour. If a pattern has a bounded grid LifeViewer AutoFits to the bounded grid and not the pattern. It annoys me that Golly doesn't because usually if I've specified a bounded grid I want to see it.

On a related topic the upcoming Build 261 adds a [[ THUMBZOOM ]] command which is designed to work with THUMBLAUNCH and allows a thumbnail to have a different ZOOM than the launched PopUp Viewer. See here for an example.
dvgrn wrote: Also T4000,4000 definitely slows LifeViewer down a lot compared to smaller grids.
Yes there's a lot of work still to do on performance which hopefully will mitigate this. Build 261 already improves this case (i.e. a small pattern in a huge grid) apart from the case where it crosses a boundary.
dvgrn wrote:EDIT: Whenever you've decided what if anything to do about T=0 autofit, drop a copy in the release folder.
Will do - I'll keep you posted.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 261 is now available on the lazyslug server

Enhancements is this build:
  • new script command [[ THUMBZOOM ]] to set initial zoom when using thumbnails - test
  • performance improvement for LtL Moore Torus
Fixes in this build:
  • mousewheel shouldn't zoom thumbnails
  • autofit on reset wasn't correct if hex/square display mode had changed since last reset
  • hex UI control wasn't set correctly on hex pattern load
This build is a Release Candidate.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 262 is now available on the lazyslug server

Enhancements is this build:
  • LtL now computes births and deaths
  • LtL Moore is much faster - test
This build is a Release Candidate.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:EDIT: Whenever you've decided what if anything to do about T=0 autofit, drop a copy in the release folder.
I've dropped a copy in the release folder. Keen to get it into the wild and see what happens :)
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:
dvgrn wrote:EDIT: Whenever you've decided what if anything to do about T=0 autofit, drop a copy in the release folder.
I've dropped a copy in the release folder. Keen to get it into the wild and see what happens :)
I did try to get Nathaniel's attention a few days ago. Will try again. I suspect the holidays have him a little distracted, but if history is any guide he will reappear shortly.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 263 is now available on the lazyslug server

Enhancements is this build:
  • Higher-range outer-totalistic (HROT) rules are now supported - test
  • LifeViewer now accepts lifelib style rule names:
    • generations rules can be specified with a "g<states>" prefix rather than a "/<states>" postfix
    • rbtst and grbtst are now supported for LtL
    • the canonical forms remain the original formats
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 264 is now available on the lazyslug server

Enhancements is this build:
  • new canonical HROT rule format: R<range>,C<states>,S<list>,B<list> - test
    • <range> is from 2 to 500
    • <states> is from 0 to 255 (and values < 2 are treated as 2)
    • <list> is a comma separated list of counts e.g. 2,4-6,10,12-15
  • improved validation for LTL and HROT rules
User avatar
Nathaniel
Site Admin
Posts: 907
Joined: December 10th, 2008, 3:48 pm
Location: New Brunswick, Canada
Contact:

Re: Life tag testing

Post by Nathaniel »

rowett wrote:Build 264 is now available on the lazyslug server
Build 264 is now live. Sorry for the delay!
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Nathaniel wrote:
rowett wrote:Build 264 is now available on the lazyslug server
Build 264 is now live. Sorry for the delay!
Awesome - many thanks!
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

My current backlog in no particular order:
  • HROT support for von Neumann and Moore neighbourhoods
  • LtL, HROT and Generations fix patterns hitting boundary (use DELETERANGE stuff rather than just clear)
  • Investigate Paul's non-totalistic hex notation
  • Investigate Brian's BSFKL notation
  • New script keywords to put non-temporal labels on the display at specific locations triggered by position and zoom ranges
  • Meta world view
  • multistate rules using just 2 states should use LifeViewer Themes
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:
  • New script keywords to put non-temporal labels on the display at specific locations triggered by position and zoom ranges
I'm still a little embarrassed by that feature request. Used to work for a mapping company (MapInfo), and getting labels to be reliably readable was always the worst headache of them all.

I was thinking of a couple of possible ways for labels to work.

The first one might be simpler: just use the existing mechanism for text display (always toward the top of the viewer, centered, always the same size) but have the text pop up just whenever the view coordinates were inside a specific zoom range and bounding rectangle.

...Or a bounding polygon? That would be cooler, because a label could follow a diagonal line or whatever shape might be out there.

Even more cooler still yet, if there could be a TRACK-like way to specify how the bounding polygon moves with time, then labeling spaceships or other straight-line signals would become possible.

The second option is similar to the first, but actually ties a label directly to a specific location -- so it might bepossible to pan so that the label is half on and half off the screen, or to zoom so that the label is too small to see or too large to read all of. GIS software has something called "zoom layering" or "scale dependency" to turn off labels that are definitely outside the range where it's worth trying to display them.

I've tried not to think about how computation-intensive it might be to check lots of labels and decide whether or not to draw them with each frame. Option #1 seemed a little less likely to be painfully difficult that way -- only the most appropriate label would display at any given time, at a standard location.

Maybe those should be called "popups", where the true location-based text would be actual "labels".
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

The first implementation of the label feature works as follows:
[[ LABEL X Y ZOOM "This is my message" ]]
  • X and Y are the cell coordinate to centre the message on
  • ZOOM is the zoom level at which the label appears at "normal" size
  • "<string>" is the message you want to appear - currently just one line but that will change later.
As you zoom in and out only labels that are around their defined ZOOM level (+/- a factor) will appear. They will also fade out as they get near their minimum or maximum zoom boundaries.

The easiest way to get the X, Y and ZOOM values is by displaying the InfoBar (hotkey shift and i).

The test case is here. Zoom into box C3 and find the glider.
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:The first implementation of the label feature...
As you zoom in and out only labels that are around their defined ZOOM level (+/- a factor) will appear. They will also fade out as they get near their minimum or maximum zoom boundaries.
Wow! That's a very very nice first implementation. The fading in and out at the zoom boundaries is a particularly good trick.

It might be nice to have one more parameter in a LABEL specifying what the "normal" text size is. It seems like the default text size I want may be different in cases where the label is just a single letter somewhere, as opposed to a block of descriptive text.

... Hmm, and then there's label angle. If it becomes possible to specify an angle, then I guess that should "nail down" the text to the pattern, such that it's possible to turn the label upside down by rotating the display. That would at least solve the problem of labels wandering far away from their intended locations when rotated:
Box-C3-label-not-in-Box-C3.png
Box-C3-label-not-in-Box-C3.png (30.9 KiB) Viewed 163 times
Label color... nah, the labels are still more or less readable even in THEME 6 and THEME 7. In theory it might allow for more informational labeling if each label's color could be configured individually, but in practice that might not get used very much. Maybe a global LABELCOLOR setting? And/or a global LABELTRANSLUCENCY (ugh, long keyword) for when it's important to be able to see pattern details behind the label, so the label should never get 100% opaque?

-- Anyway, thank you! Even just as they are, these labels would be very handy in some of these Life projects I've been working on, particularly Will Cavendish's credits-sequence timeline and Siobhan Roberts' Life Quinquagenary NYT article. (I just found "quinquagenary" while looking up "semicentennial", and it's too amusing a word not to use.)
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Further label improvements:
  • No limit to number of lines of text per label: "this\nhas\nfive\nlines\nwow!"
  • new script command [[ LABELSIZE <4..32> ]] which sets the label font size for subsequent label definitions (default 18)
  • new script command [[ LABELALPHA <0.0..1.0> ]] which sets the opacity for subsequent label definitions (default 1.0)
  • new script command [[ COLOR LABEL R G B|<color name> ]] which sets the label text colour for subsequent label definitions (default is 240 255 255)
  • label definitions are shown in Help information
  • labels disabled when ANGLE != 0 (for now...)
The updated test case is here.
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Further label improvements:...
Looks good!

Unrelated issue: I'm pretty sure the Switchwave pattern used to work in LifeViewer. Golly handles it correctly:

Code: Select all

x = 78, y = 78, rule = B3/S23:T78,78
69bobo2$69bo2bo$71b2o$72bo5$69b2o$71bo$69b2o6$52bobo6bobo$51bo9bobo$
52bo2bo6bo$54b3o5$44bo$43bobo2$43bo2bo$45b2o$46bo5$43b2o$45bo$43b2o6$
26bobo6bobo$25bo9bobo$26bo2bo6bo$28b3o5$18bo$17bobo2$17bo2bo$19b2o$20b
o5$17b2o$19bo$17b2o6$obo6bobo$9bobo65bo$o2bo6bo$2b3o5$70bo!
#C [[ THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]]
#C [[ AUTOSTART ]]
#C [[ GPS 12 THUMBSIZE 2 HEIGHT 480 ]]
Looks like the current build is treating toroidal universes like regular bounded ones for some reason?
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:Unrelated issue: I'm pretty sure the Switchwave pattern used to work in LifeViewer. Golly handles it correctly
Well spotted. I broke it while integrating the HROT stuff. An extraneous ! caused the mayhem. Fixed now and test case is here.
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

dvgrn wrote:I was thinking of a couple of possible ways for labels to work.

The first one might be simpler: just use the existing mechanism for text display (always toward the top of the viewer, centered, always the same size) but have the text pop up just whenever the view coordinates were inside a specific zoom range and bounding rectangle.
I haven't started adding labels to my timeline project yet -- see below -- because I want to see if you're fed up with feature requests first...

Is there any hope of adding an optional attribute to a label, such that it fades into view at time = T1, and back out of view at time = T2? Otherwise the timeline is going to end up with way too much text, if I'm ambitious enough to try to label everything.

I could kind of fake this feature with your current build by changing the zoom level a lot, but it seems like that might potentially make weaker-stomached viewers a little queasy.
credits-6Jan2019.zip
(Actually I've sent the pattern off to Will Cavendish in this pre-packaged ZIP format, to get a bigger frame size)
(95.06 KiB) Downloaded 9 times

Code: Select all

#C [[ STOP 4600 X 489 Y 435 Z 12 GPS 5 PAUSE 2 THEME 0 AUTOSTART ]]
#C [[ T 100 X 500 Y 434 Z 16 GPS 10 ]]
#C [[ T 120 X 474 Y 403 Z 10 GPS 20 ]]
#C [[ T 200 X 420 Y 375 Z 6 GPS 30 ]]
#C [[ T 300 X 407 Y 300 Z 5 GPS 40 THEME 1 ]]
#C [[ T 350 GPS 50 ]]
#C [[ T 400 GPS 60 ]]
#C [[ T 775 X 390 Y 300 Z 4 GPS 45 ]]
#C [[ T 850 X 310 Y 260 Z 10 GPS 50 THEME 2 ]]
#C [[ T 1600 X 144 Y 120 Z 4 ]]
#C [[ T 2100 THEME 3 ]]
#C [[ T 2500 X 70 Y -25 Z 4 ]]
#C [[ T 3000 X -135 Y -220 Z 5 THEME 4 ]]
#C [[ T 4000 X -150 Y -300 Z 2 ]]
#C [[ T 4400 X -400 Y -450 Z 6 THEME 7 ]]
x = 3175, y = 2257, rule = B3/S23
1454bo$1453bo2bobo$1444bo2bo7bo3bo$1445b2o2bo5b4o$1445b2ob2o3bo3bo$
1449b4o$1451bo345$782b2obo6b2obo4b2o4bob2o$782bob2o6bob2o5bo4b2obo$
786b2o2b2o4b2o2bo3b2o$786bo3bo5bo3b2o3bo$787bo3bo5bo6bo$786b2o2b2o4b2o
2b2o2b2o$782b2obo4bo5bo4bo4bob2o$782bob2o5bo5bo2bo5b2obo$780b2o8b2o4b
2o2b2o8b2o$780bo9bo5bo14bo$781bo9bo5bo2b2o8bo$780b2o8b2o4b2o3bo8b2o$
782b2obo6b2obo4bo5bob2o$782bob2o6bob2o4b2o4b2obo80$883b2obo6b2obo4b2o
4b2obo$883bob2o6bob2o5bo4bob2o$887b2o2b2o4b2o2bo3b2o4b2o$887bo3bo5bo3b
2o2bo5bo$888bo3bo5bo7bo5bo$887b2o2b2o4b2o2b2o2b2o4b2o$883b2obo4bo5bo4b
o2bo5bo$883bob2o5bo5bo2bo4bo5bo$881b2o8b2o4b2o2b2o2b2o4b2o$881bo9bo5bo
7bo5bo$882bo9bo5bo2b2o3bo5bo$881b2o8b2o4b2o3bo2b2o4b2o$883b2obo6b2obo
4bo5b2obo$883bob2o6bob2o4b2o4bob2o92$992b2obo6b2obo6b2obo6bob2o$992bob
2o6bob2o6bob2o6b2obo$996b2o2b2o4b2o2b2o4b2o2b2o$996bo3bo5bo3bo5bo4bo$
997bo3bo5bo3bo5bo2bo$996b2o2b2o4b2o2b2o4b2o2b2o$992b2obo4bo5bo3bo5bo5b
ob2o$992bob2o5bo5bo3bo5bo4b2obo$990b2o8b2o4b2o2b2o4b2o8b2o$990bo9bo5bo
3bo5bo10bo$991bo9bo5bo3bo5bo8bo$990b2o8b2o4b2o2b2o4b2o8b2o$992b2obo6b
2obo6b2obo6bob2o$992bob2o6bob2o6bob2o6b2obo23$1707b2o$1707b2o29$1638b
2o$1638b2o97b2o$1737b2o7$1428b2o$1428b2o12$1411bo12bo$1410bobo10bobo$
1411b2o10b2o14$1103b2obo6b2obo6b2obo6b2obo$1103bob2o6bob2o6bob2o6bob2o
$1107b2o2b2o4b2o2b2o4b2o2b2o4b2o$1107bo3bo5bo3bo5bo3bo5bo$1108bo3bo5bo
3bo5bo3bo5bo$1107b2o2b2o4b2o2b2o4b2o2b2o4b2o$1103b2obo4bo5bo3bo5bo3bo
5bo$1103bob2o5bo5bo3bo5bo3bo5bo$1101b2o8b2o4b2o2b2o4b2o2b2o4b2o$1101bo
9bo5bo3bo5bo3bo5bo$1102bo9bo5bo3bo5bo3bo5bo$1101b2o8b2o4b2o2b2o4b2o2b
2o4b2o$1103b2obo6b2obo6b2obo6b2obo$1103bob2o6bob2o6bob2o6bob2o3$1227b
2o4b2obo6b2obo6bob2o$1228bo4bob2o6bob2o6b2obo$1227bo3b2o4b2o2b2o4b2o2b
2o$1227b2o2bo5bo3bo5bo4bo$1232bo5bo3bo5bo2bo$1227b2o2b2o4b2o2b2o4b2o2b
2o$1228bo4b2obo6b2obo6bob2o$1227bo5bob2o6bob2o6b2obo$1227b2o8b2o8b2o8b
2o$1237bo9bo10bo$1227b2o9bo9bo8bo$1228bo8b2o8b2o8b2o$1227bo5b2obo6b2ob
o6bob2o$1227b2o4bob2o6bob2o6b2obo6$1311b2o4b2o$1239bo71bobo2bobo$1235b
4obo72b4o$1235b3obobo69bo2b2o2bo$1240bobo68bo2b2o2bo$1241bo45b2o4b2o
18bo2bo$1240b2o45bobo2bobo$1240b2o47b4o14b3o$1240b2o3b2ob2o37bo2b2o2bo
10bob3o$1245b2ob2o10bo26bo2b2o2bo9bobobo$1258b3o28bo2bo11bo2bo4b3o$
1257bo24bobo20b2o$1242bo2bo11b2o26bo24bo5bo12b2o$1242bo38bo2bo25bo5bo
11bo2bo$1241bo4bo33bobobo4bo20bo5bo11bobobo$1240bobo2b2o33bo2bo5bo39bo
2bo$1238b2obo39b2o6bo22b3o18bo$1326bo3bobo$1285b3o3b3o32bo$1238bo2bo
84bo8b2ob2o$1240b2o47bo49bo$1219b2o68bo24bo7b3o3b3o3bo2b2o$1219b2o5b2o
61bo15bo8bo20b3o$1226b2o62bo14bo8bo11bo8b3o$1290bo14bo20bo7bo2b2o$
1205bo47b2o35bo19b3o3b3o7bo12bo$1195b2o8b3o16b2o28bo13b2ob2o28b3o3b3o
25b2ob2o$1195b2o11bo15b2o28bobo11bo17b3o3b3o19bo$1207b2o21b2o23b2o12b
2o2bo6b3o22bo8bo$1230b2o29bo8b3o17bo14bo8bo$1189b2o69b2o8b3o5bo5bo5bo
14bo$1189b2o70bo7b2o2bo4bo5bo5bo26b3o$1193b2o73bo9bo5bo$1193b2o73b2ob
2o42bo5bo$1280b3o32bo5bo$1315bo5bo$1258bo15b3o57b2o$1188b2o68b2o14b3ob
o38b3o13bo2bo$1188b2o68bo16bobobo53bobobo$1263b2o11bo2bo13b3o38bob3o$
1263bobo11b2o57b3o$1265bo25bo5bo$1265b2o24bo5bo21bo10b3o$1291bo5bo21bo
20b2ob2o$1319bo8bo5bo9bo$1201b3o19b2o22b2o44b3o32bo5bo4bo2b2o$1202bo
21b2o89b3o3b3o4bo5bo5b3o$1200b3o20bo21bo4bo47bo10b3o28b3o$1298bo20bo
10b3o6bo2b2o$1195b2o43bo2bobob2obobo45bo8bo5bo5bo24bo$1196bo43b4ob2o2b
2ob3o18b2ob2o29bo5bo5bo20b2ob2o$1193b3o50b4o5bo17bo12bo7b3o3b3o4bo5bo$
1193bo41b2o5b2obo4bob2obo18b2o2bo7bo$1235b2o5bo2bo4bo2bob2o18b3o8bo11b
o10b3o$1243bo3b2o2b2o4bo17b3o20bo24bo44bo15bo$1240b3o2b3o2bobob3o17b2o
2bo3b3o3b3o7bo24bo44b2o13b2o$1240bo2b4o4bo2bo18bo49bo44b2o13b2o$1230b
2o9bobo2b2obobobo19b2ob2o8bo82bo13bo$1230b2o10bo5b2obob2o31bo32b3o3b3o
$1234b2o10b2obobo28bobo3bo57bo$1234b2o10b4obo27bo43bo6b2o$1193b2o55bo
29bo2bo39bo5bo2bo5b2obo5bob2o$1193b2o24bob2o23b2o32bobobo14bo23bo4bobo
bo5bo5bo5bo20b2o7b2o$1199b2o18b2obo5b2o14bo2bo33bo2bo14bo28bo2bo7b2ob
2ob2ob2o9b3o10b2o5b2o10b3o$1199b2o27b2o13bo2bo35b2o14bobo26bo32b3o10b
2o3b2o10b3o$1240bo2b2obobo3b2o9b3ob3o36b2o20bobo10b2o3b2o$1240b3o3bobo
bo2bo10bobobo36bo2bo11bo2bo11b2o15b2o13bo17bo$1197b2o44b2o5b3o51bobobo
9bo2b2o2bo9bo2bo3bobobo3bo2bo13b2o15b2o$1197b2o5b2o36bo3b3o15bo3bo34b
3obo10bo2b2o2bo10b3ob9ob3o15b2o13b2o$1204b2o36b3o4b2o52b3o14b4o15bo4bo
4bo19bo13bo$1240b2o3bob2o2bo11bobobobo48bobo2bobo12b2o9b2o$1225bo7bo7b
obo2bobobo14bobo28bo2bo18b2o4b2o12bo11bo$1224bobo5bobo4bo2bob3obob2o
42bo2b2o2bo38bo7bo7b2o$1225bo7bo5b2obobobobo2bo42bo2b2o2bo37b2o7b2o6bo
12bo13bo$1190bo7bo43bo6b2o45b4o54bobo11b2o13b2o$1189bobo5bobo42b4ob2o
45bobo2bobo52b2o11b2o15b2o$1190bo7bo49bo25b2o3b2o13b2o4b2o65bo17bo$
1242b6o26bobobobo$1225b3o3b3o8bo9b2o9b2o10bo3bo38b2o2bo16b4o17b3o10b2o
3b2o10b3o$1226bo5bo10b3o6b2o9b2o49b2o2b2o3bo10b2o7bo15b3o10b2o5b2o10b
3o$1245bo24bo3b2o3b2o3bo29b2o7bo10b2o2b2o3bo27b2o7b2o$1190b3o3b3o71bob
ob2o3b2obobo34b4o15b2o2bo$1191bo5bo54b3o7b3o5bo3b2o3b2o3bo115b2o$1213b
o22b2o14b3o7b3o98b2o31b2obobo$1212bobo4bo16bobo36bo3bo83b2o29bo2bobo$
1213bo5b2o17bo35bobobobo54b2o18b2o12bo13bo10b2o4bo$1186b2o22bo8bo11b2o
5b2o34b2o3b2o54b2o17bo2bo10b2o13b2o13bo$1185bobo16bo4bobo19b2o17b2o3b
2o3b2o3b2o88b2o11b2o13b2o12bo3bo$1185bo17b2o5bo40b5o5b5o60b3o22bo16bo
15bo12b3o2bo$1184b2o5b2o11bo47b3o7b3o58b3o3bo20bobo$1191b2o26bo7b2o24b
o9bo57b3o3b2o20bo3bo41b6obo$1213bo5b2o6b2o11bo35bo45bo2b2o22bo2bo41bo
2bobo2bo$1212bobo4bo19bobo33bobo44bo2bo69bo3b2o$1195b2o7bo8bo24bob2o
33b2obo44b2o24bo2bo43b3o$1195b2o6b2o5bo21b2o3b2ob2o33b2ob2o3b2o63bo3bo
46bo$1204bo4bobo12b2o6b2o4bob2o33b2obo4b2o64bobo17b2o4b2o19b4o$1210bo
8bo4bo14bobo33bobo72bo18bobo2bobo18bo3bo$1218b3o4b3o12bo35bo68b2o24bo
2bo20bo3b2o$1198b2o27bo27bobo86bo2bo22b2o2b2o18b2ob2o4b2o$1199bo4bo49b
o90b2o22b3o2b3o19bobo5bo$1196b3o4b3o12b3o33bo39b2o6b2o33b2o24b2o6bo2bo
21bo3b4o$1196bo57bo2bo35bo2bo4bo2bo32b2o24b2o14bo14b2o2bobo$1218bobo
33b3o36bobo6bobo73bob2o13bob2o4b3o$1203b3o5b2o5bobo70b2o2b3o2b3o2b2o
27b2o46bo12bobob2o2bo2bo$1213bo40b3o33bo6bo2bo6bo26bo39bo3bo2bobo12bo
2b2o4b2o$1203bobo4bo7b3o33bo2bo32bob2o10b2obo24bobo8b2ob2o26bo5bo2bo9b
3o3b2o$1203bobo5b2o41bo36bobo10bobo25b2o8bobob2o26bo6b2o10bo$1227bo26b
o38b2o3b2o3b2o36bo15b2o39bo2bo$1203b3o12b3o4b3o27bobo39bobo41b3ob3o8bo
2bo10b3o3b3o19bo2bo$1219bo4bo15bo35bo20b2o48bo7bobobo39b2o$1196bo27b2o
13bobo33bobo15b2o8b2o36b2obobo7b3obo15bo24b2o$1196b3o4b3o26b2o4bob2o
33b2obo4b2o6bobo10bobo34b2ob2o8b3o17bo$1199bo4bo8bo18b2o3b2ob2o33b2ob
2o3b2o5bob2o10b2obo66bo23bo2bo$1198b2o12bobo4bo18bob2o33b2obo11bo6bo2b
o6bo52b3o35bo2bo$1213bo5b2o6b2o10bobo33bobo13b2o2b3o2b3o2b2o41b2o2bo
16b3o27b2o$1210bo8bo7b2o11bo35bo16bobo6bobo15b2o26bo2b2o5bo5bo34b2o$
1204bo4bobo41bo9bo29bo2bo4bo2bo15bobo26b5o4bo5bo2bo5bo17bo2b2o$1195b2o
6b2o5bo41b3o7b3o29b2o6b2o17bo36bo5bo2bo5bo17b2o2bo2bo2bo$1195b2o7bo26b
2o18b5o5b5o25bo75bo5bo7b3o6b5o3bo2bo$1219bo11b2o5b2o10b2o3b2o3b2o3b2o
22b3o57b5o6b3o36b2o$1213bo5b2o17bo49bo8bo2b2o46bo2b2o16b3o7bo5bo13b2o$
1191b2o19bobo4bo16bobo40b2o7b2o6bobo2bo6b2o38b2o2bo26bo5bo4b5o$1184b2o
5b2o11bo8bo22b2o42bo15bobobo7b2o69bo5bo5b2o2bo2bo2bo$1185bo17b2o5bo41b
3o7b3o15bobo12b2obob2o89bo2b2o2bo2bo$1185bobo16bo4bobo40b3o7b3o16b2o
11bo3bo3bo78b3o15b2o$1186b2o22bo78bo4bo4bobobo83b2o10b2o$1226bo5bo43b
2o9b2ob2o2bo3b2o3bo82b3o$1225b3o3b3o18b2o9b2o10bo2bo10bo4bo4bob2o82bob
2o9bo2bo$1252b2o9b2o5bo2bo2bobo15bo3bo85bobo11bo2bo$1191bo5bo72b5obob
2o15b2obob5o79bo2bo11b2o$1190b3o3b3o77bo3bo15bobo2bo2bo80b2o12b2o$
1272b2obo4bo4bo10bo2bo70b3o$1225bo7bo37bo3b2o3bo2b2ob2o9b2o99bo2bo$
1224bobo5bobo36bobobo4bo4bo74bob3o4bo2bo25bo2bo191bo20bo$1225bo7bo38bo
3bo3bo11b2o33bo33b2ob2o33b2o191bobo18bobo$1190bo7bo74b2obob2o12bobo31b
obo36bo33b2o186bo4bobo18bobo4bo$1189bobo5bobo74bobobo15bo31bobo33bobo
221bobo2b2ob2o2b2o8b2o2b2ob2o2bobo$1190bo7bo74bo2bobo6b2o7b2o31bo41bo
2bo25bo2bo185bo3bo5bo2bo6bo2bo5bo3bo$1273b2o2bo8bo80b3o2b3o23bo2bo190b
3o4bo2bo2bo2bo4b3o$1283b3o82b2o2b2o25b2o184b5o4bo2bobob2o2b2obobo2bo4b
5o$1283bo85bo2bo26b2o183bo4bo5b2o2bo8bo2b2o5bo4bo$1367bobo2bobo208bo2b
o11b2o8b2o11bo2bo$1319b2o13b2o31b2o4b2o23bo2bo178bo2bob2o34b2obo2bo$
1318bobo13bobo61bo2bo177bobobo5bo28bo5bobobo$1318bo17bo62b2o179bo2bo4b
obo26bobo4bo2bo$1317b2o17b2o61b2o182b2o2bo2bo12b2o12bo2bo2b2o$1588b2o
13b2o13b2o$1329b2o17b2o48bo2bo178b2o44b2o$1329bo18bobo47bo2bo176b3obo
42bob3o$1330b3o15bo50b2o176bo4bo42bo4bo$1332bo66b2o177b3ob2o40b2ob3o$
1385b3o15b2o175bo3bo38bo3bo$1397bobobo2bo179bo38bo$1331b2o6b2o6b2o3bob
2o27bobobobo9bob2o178bobo40bobo$1321bo8bo2bo4bo2bo4bo2bo2b2obo39bo3b2o
179bo4bo36bo4bo$1317bo2bobo4bo3b2o2bo3b2o2bo3bobo5bob2o22bobo5bobo2bob
o3bo179bob4o36b4obo$1317b4obo2b6o2b6o2b6o2b6obobo22bo9bo3bo2bobob2o
177bo21b2o21bo$1281b2o39bobo5bobo5bobo5bobo5bobo6b2o16bobo5bobo8bob2o
179bo19b2o19bo$1281b2o36b2obobobobo3bobobo3bobobo3bobobo3bobo5bo32bo
184b2o40b2o$1318bo5bobo3bobobo3bobobo3bobobo3bobobobob2o19bobobobo7b2o
b4o174b2o48b2o$1318b2o6bobo5bobo5bobo5bobo5bobo8b2o24bobo6bo174bo48bo$
1324bobob6o2b6o2b6o2b6o2bob4o3bo3b2o10b3o5b3obobo2bobo172bo52bo$1324b
2obo5bobo3bo2b2o3bo2b2o3bo4bobo2bo4bobobo17bo4b7o172bob4o44b4obo$1327b
ob2o2bo2bo4bo2bo4bo2bo8bo31b2obo179bo4bo44bo4bo$1327b2obo3b2o6b2o6b2o
18b2o2bo19bob2o3b3o173bobo48bobo$1372bo2bo18bo5bo2bo176bo46bo$1374b2o
19b4obobo173bo3bo3b3o34b3o3bo3bo$1399b2ob2o170b3ob2o6bo16b2o16bo6b2ob
3o$1397bobobo171bo4bo6bo17b2o17bo6bo4bo$1395b4o2bo172b3obo50bob3o$
1368bo2bobo2bo17bo5bo175b2o52b2o$1368bo2bobo2bo18b5o184b2o4b2o24b2o4b
2o$1367b2o2bobo2b2o19bo181b2o2bo2bo2bobo24bobo2bo2bo2b2o$1365b3o4bo4b
3o196bo2bo4bobo4bo24bo4bobo4bo2bo$1372bo202bobobo5bo36bo5bobobo$1387b
2o187bo2bob2o42b2obo2bo$1365b3o9b3o6bo2bo189bo2bo11b2o16b2o11bo2bo$
1368b2o5b2o9b4o190bo4bo5b2o2bo16bo2b2o5bo4bo$1365b3o9b3o4bobo2bobo189b
5o4bo2bobob2o10b2obobo2bo4b5o$1383bo8bo195b3o4bo2bo10bo2bo4b3o$1372bo
10bo8bo190bo3bo5bo2bo14bo2bo5bo3bo$1365b3o4bo4b3o4bobo2bobo190bobo2b2o
b2o2b2o16b2o2b2ob2o2bobo$1367b2o2bobo2b2o8b4o193bo4bobo26bobo4bo$1368b
o2bobo2bo9bo2bo198bobo26bobo$1368bo2bobo2bo10b2o200bo28bo3$3168bo$
2440bo725b2o$2439bobo724bo2b3o2bo$2438b2o726bo4b3o$2441bo725b3o2b2o$
2437bo3bo$2434bo2bo729b3o2b2o$2433bobo2b4o724bo4b3o$2432bo2bo730bo2b3o
2bo$2433bobo2b4o724b2o$2434bo2bo730bo$2437bo3bo$2441bo$2438b2o$2439bob
o14bobo$2440bo15bo3b3o$2454b2o5b2o$2454b2o3bo6bo8b2o$2457bob2o2b2obo7b
3o$2453bo3bo6bo2b2obobo2bo$2450bo2bo6bo3b4o3b2o2b2o$2449bobo2b6o8bo2bo
2b2o$2448bo2bo18bo3b2o$2449bobo2b6o8bo2bo2b2o$2450bo2bo6bo3b4o3b2o2b2o
$2453bo3bo6bo2b2obobo2bo$2457bob2o2b2obo7b3o$2454b2o3bo6bo8b2o$2454b2o
5b2o$2456bo3b3o$2456bobo3$1346b2ob2o306bo$1299b2o6b2o37b2obo3b2o302b3o
$1299b2o6b2o42bo2bo305bo$1332b5o7b6ob3o305b2o$1331bo5bo5bo2bobo288b2o$
1329b3o5b3o3b2o3bob2o285b2o$1328bo11bo6b2ob2o285b2o$1328bob3obob4o297b
o$1329bo3b3o300bobo$1283b2o38b2o6bo5b2obo295bob2o$1282bobo38bobo4b2obo
bobob2o$1282bobob2o32b2obobo5bobo2bo306b2o$1283bobobo32bobobo6bo2b2o
301b2o4b2o$1285bo36bo7b2o305b2o$1283bo2bo13b2o4b2o13bo2bo187bob2o4bob
2o4bob2o$1286bo12bobo4bobo12bo190b2obo4b2obo4b2obo22b2o101bo26b2o$
1282bo3bo12bo8bo12bo3bo220b2ob2o4bo3bo87b2o8b3o24bo$1282bo3bo12bobo4bo
bo12bo3bo186b3o5b3o5b3o15b2obobo3bob3o10b2o2b2o71bobo10bo21bobo$1286bo
13b2o4b2o13bo189bo2bo4bo2bo4bo2bo18bo6bo12bobo2b2o71bo11b2o15bo5b2o4b
2o$1283bo2bo34bo2bo186bo7bo7bo21bob2o5b4o7bo105b2o11b2o$1285bo36bo190b
o7bo7bo16b2obo7b2o2bo5b2ob6o72b2o25bobo$1283bobobo32bobobo136bo3bo43b
2o6b2o6b2o19bo2b3o4bo3bo5bo3bo4bo68bo3bo2bo37bo$1282bobob2o32b2obobo
134b2o3b2o33b2o11b2o6b2o6b2o16b2o7bo9bo3bobobo68bo2bob3o37bobo$1282bob
o38bobo134bobobobo33bo2b2o3bo2bo4bo2bo4bo2bo4bo16bo2bobo3bobobobo3bo3b
o70b3obo39bo2bo$1283b2o38b2o137bobo36bobo2bobo2bo4bo2bo4bo2bo4bo16bo
87b2o5bob3o37bo2bo$1461b2ob2o34b2obo9b2o6b2o6b2o3b2o14b2o2bobobobo3bob
obo7bo60b2o11bo$1461bo3bo38b2o3b2o6b2o6b2o9bob2o34b3o60b2o22b2o23bo2bo
$1507bo4bo2bo4bo2bo4bo2bobo2bobo13bobobo3bobobobo2b2o2bo64bo22b2o25b2o
$1507bo4bo2bo4bo2bo4bo2bo3b2o2bo31bo2bo62bobo$1509b2o6b2o6b2o11b2o12bo
3bobobobo3bobo2b2obo61b2obo12b3o$1299b2o6b2o191b2o11b2o6b2o6b2o17b2o
22bob2o76bo$1299b2o6b2o191bo2b2o3bo2bo4bo2bo4bo2bo4bo15bobobobobobo3bo
bobobobobo80bo$1501bobo2bobo2bo4bo2bo4bo2bo4bo12b2obo22b2o64b2o$1500b
2obo9b2o6b2o6b2o3b2o10bob2o2bobo3bobobobo3bo68b2o57b3o$1504b2o3b2o6b2o
6b2o9bob2o6bo2bo$1507bo4bo2bo4bo2bo4bo2bobo2bobo8bo2b2o2bobobobo3bobob
o7bo22b2o2b2o65b2o20b3obo2bo$1507bo4bo2bo4bo2bo4bo2bo3b2o2bo4b3o27b3o
22bobo2bo66bo7b2o9bob3o$o1508b2o6b2o6b2o11b2o4bo7bobobo3bobobobo2b2o2b
o29bo64b3o8b2o8bo6b3o$4o1496b2o11b2o6b2o6b2o40bo2bo21b2o2bo5b2o60bo20b
2o$2b2o1496bo2b2o3bo2bo4bo2bo4bo2bo4bo19bo3bobobobo3bobo2b2obo21bobo3b
obo2bo$5bo1495bobo2bobo2bo4bo2bo4bo2bo4bo15b2o22bob2o24bo5bo85b2o$6o
1494b2obo9b2o6b2o6b2o3b2o12bobobobobobo3bobobobobobo20b2o2bo5bo5b2o73b
2o9b2o$6bobo1495b2o3b2o6b2o6b2o9bob2o5b2obo22b2o20bobo3bobo3bobo2bo73b
2o7bobo$obob6o1497bo4bo2bo4bo2bo4bo2bobo2bobo7bob2o2bobo3bobobobo3bo
28bo5bo5bo30b2o52bo25bo19b2o$ob2o5b2o1496bo4bo2bo4bo2bo4bo2bo3b2o2bo6b
o2bo40b2o2bo5bo5bo5b2o26b2o74b2o2b2ob3o10b2o4b4o$4b2o4b2o1497b2o6b2o6b
2o11b2o7bo2b2o2bobobobo3bobobo21bobo3bobo3bobo3bobo2bo85b2o15b2o4b4o
10b2o2b2ob3o$5o4b2o1502b2o6b2o6b2o13b3o47bo5bo5bo5bo68b2o15b3o19b2o18b
o$1471bo6b2o30bo7bo7bo17bo7bobobo3bobobobo2b2o20bo5bo5bo5bo30b3o34b2o
2b2o2b2o10bobo2bo2b2o$5o4b2o1459bobob2o2bo33bo7bo7bo42bo18bo2bobo3bobo
3bobo3bobo27b2o34bobo2bo2b2o10b2o2b2o2b2o$4b2o4b2o1458bobobobobo30bo2b
o4bo2bo4bo2bo19bo3bo3bobobobo3bobo2bo18b2o5bo5bo5bo2b2o24b2o38b3o20b2o
$ob2o5b2o1458b2obo3bob2o29b3o5b3o5b3o18bobobo3bo9bo7b2o20bo5bo5bo21bo
9b3o38b2o45b2o9b2o$obob6o1459bo2b2ob2o2bo65bo4bo3bo5bo3bo4b3o2bo18bo2b
obo3bobo3bobo15bo3bo8bobo83b2obo8b2o$6bobo1461bo7bo29bob2o4bob2o4bob2o
17b6ob2o5bo2b2o7bob2o18b2o5bo5bo2b2o15bo3bo9b2o84bo$6o1456b2o6bo7bo29b
2obo4b2obo4b2obo23bo7b4o5b2obo25bo5bo22bobobo3bo90bobo$5bo1456b2o5bo2b
2ob2o2bo65b2o2bobo12bo6bo24bo2bobo3bobo26b2o89b2o4b3o$2b2o1465b2obo3bo
b2o65b2o2b2o10b3obo3bobob2o21b2o5bo2b2o20b2o6bo88bob3o3bo$4o1466bobobo
bobo82bo3bo4b2ob2o25bo27b2o3bobo91bobo2bo$o1469bobob2o2bo86b2o32bo2bob
o23b2o3bo90bo2bo$1471bo6b2o119b2o2b2o123bo$1615b2o12bobo26bo60b2o$
1611b2obo2bob2o9b2o26bobo57bobo$1611b2o2bo4bo37b2o60bo$1532bo33bo7bo7b
o33bo$1439b2o2b2o8b2o8b2o65b2obo32bobo5bobo5bobo32bobo20b2o$1439bo2bo
2bob2o3bo2bob2o3bo2bob2o4b2o55b2obo30bo7bo7bo27bo25b2o4b2o91b2o13b2o$
1440bob2obobo2bo2bobobo2bo2bobobo2bobo2bo55b2o32b5o3b5o3b5o22b3o23b2o
52b3o42bo14bo$1439b2o2bobo3b2ob2obo3b2ob2obo3b2ob2obo88bo7bo7bo30bo76b
o42bobo12bobo$1438bo2bo4bo4bo4bo4bo4bo4bo3b2o51b2o12b2o22bobo5bobo5bob
o25b2o27b3o47bo41b2o13b2o$1438b2o2b3obob2o2b3obob2o2b3obob2o2b3o2bo50b
2o12b2o20bo3bo3bo3bo3bo3bo54b2o81b2o$1440b2o2bob2ob3o2bob2ob3o2bob2ob
3o2bobo2bo80bo5bo3bo3bo3bo3bo3bobobo38b2o11b2o78b2o$1438b2ob2o2bobobob
2o2bobobob2o2bobobob2o3bob2o78bobob2o3bo3bo3bo3bo3bo5bo39b2o10b3o$
1438bo37bo65bobo15bo4bo3bo3bo3bo3bo3bobobob2o47bobo$1439b2obobobobobob
obobobobobobobobobobobobo48b2o18bo11b2obobobo3bo3bo3bo3bo3bo4bo23bo26b
2o$1440bob34o45b2obo2bob2o10bo4bo2b2o9bo5bo3bo3bo3bo3bo3b2obobo19b2o$
1438bo2bobobobobobobobobobobobobobobobobo24b2o4b2o15bo4bo2b2o10b2obo2b
ob2o8bobobo3bo3bo3bo3bo3bo5bo22b2o$1438b2obo33b3o19bo2bo3b2o19bo19b2o
18bo3bo3bo3bo3bo3bo125b2o$1440bobobobobobobobobobobobobobobobobobo3bo
18bo2bo21bobo39bo3bo3bo3bo3bo3bo127bo$1440bob33obo2bo14b2ob4ob6o52bo5b
o3bo3bo3bo3bo3bobobo121bobo$1438b2obobobobobobobobobobobobobobobobobob
3obo14bobo4bo6bo49bobob2o3bo3bo3bo3bo3bo5bo38b2o83b2o$1438bo2bo36bo17b
o2bo2bo2bo2bo51bo4bo3bo3bo3bo3bo3bobobob2o35bobo$1439bo2bobobobobobobo
bobobobobobobobobobobo19b3ob2o2b3ob2o47b2obobobo3bo3bo3bo3bo3bo4bo40bo
$1440b2ob32ob2o16b2o2b2o2b3ob2o2bo49bo5bo3bo3bo3bo3bo3b2obobo38b2o$
1441bobobobobobobobobobobobobobobobobobo17bo3bo3bo3bo3bobo47bobobo3bo
3bo3bo3bo3bo5bo139b2o$1440bo35b2o10b2o2bobo3bo3bo3bo3bobo52bo3bo3bo3bo
3bo3bo144b2o$1439bob2obobobobobobobobobobobobobobobobobo11bo3b3ob3ob3o
b3ob2o2b3o49bo3bo3bo3bo3bo3bo116b2o26bo$1440bo2b32o2bo11b3o2b2ob3ob3ob
3ob3o3bo44bo5bo3bo3bo3bo3bo3bobobo109bobo$1441bobobobobobobobobobobobo
bobobobobob2obo7b3o4bo3bo3bo3bo3bo3bobo42bobob2o3bo3bo3bo3bo3bo5bo109b
3o10b2o$1440b2o35bo7bo2bobo3bo3bo3bo3bo3bo2bobob2o41bo4bo3bo3bo3bo3bo
3bobobob2o4b2o20b2o78b2o11b2o$1442bobobobobobobobobobobobobobobobobobo
8bo2bobob3ob3ob3ob3ob3o2bobob2o38b2obobobo3bo3bo3bo3bo3bo4bo6bobo20b2o
81b2o$1440b2ob32ob2o8b3o2bo2b2ob3ob3ob3obobo3bo44bo5bo3bo3bo3bo3bo3b2o
bobo4bo13b2o41bo47b3o27b2o$1441bobobobobobobobobobobobobobobobobobo13b
obobo3bo3bo3bo3bobobobo43bobobo3bo3bo3bo3bo3bo5bo5b2o12bobo42bo76bo$
1440bo35b2o10bobobobo3bo3bo3bo3bobobo50bo3bo3bo3bo3bo3bo23bo42b3o52b2o
23b3o$1439bob2obobobobobobobobobobobobobobobobobo11bo3bobob3ob3ob3ob2o
2bo2b3o46bo3bo3bo3bo3bo3bo23b2o91b2o4b2o25bo$1440bo2b32o2bo7b2obobo2b
3ob3ob3ob3ob3obobo2bo41bo5bo3bo3bo3bo3bo3bobobo110b2o20bobo$1441bobobo
bobobobobobobobobobobobobobob2obo6b2obobo2bo3bo3bo3bo3bo3bobo2bo39bobo
b2o3bo3bo3bo3bo3bo5bo136bo$1440b2o35bo10bobo3bo3bo3bo3bo3bo4b3o42bo4bo
3bo3bo3bo3bo3bobobob2o29bo60b2o37bo4bo2b2o$1442bobobobobobobobobobobob
obobobobobobo11bo3b3ob3ob3ob3ob2o2b3o42b2obobobo3bo3bo3bo3bo3bo4bo32bo
bo57bobo26b2o9b2obo2bob2o$1440b2ob32ob2o11b3o2b2ob3ob3ob3ob3o3bo44bo5b
o3bo3bo3bo3bo3b2obobo30b2o60bo26bobo12b2o$1441bobobobobobobobobobobobo
bobobobobobo10b3o4bo3bo3bo3bo3bo3bobo43bobobo3bo3bo3bo3bo3bo5bo24bo$
1440bo35b2o7bo2bobo3bo3bo3bo3bo3bo2bobob2o46bo3bo3bo3bo3bo3bo29bo2bo
90bo3b2o$1439bob2obobobobobobobobobobobobobobobobobo8bo2bobob3ob3ob3ob
3ob3o2bobob2o46bobo5bobo5bobo26bo2bobo91bobo3b2o$1440bo2b32o2bo8b3o2bo
2b2ob3ob3ob3obobo3bo53bo7bo7bo23bo3b3obo88bo6b2o$1441bobobobobobobobob
obobobobobobobobob2obo10bobobo3bo3bo3bo3bobobobo48b5o3b5o3b5o24b3o4b2o
89b2o$1440b2o35bo10bobobobo3bo3bo3bo3bobobo54bo7bo7bo29bobo90bo3bobobo
$1442bobobobobobobobobobobobobobobobobobo11bo3bobob3ob3ob3ob2o2bo2b3o
47bobo5bobo5bobo32bo84b2o9bo3bo$1440b2ob32ob2o7b2obobo2b3ob3ob3ob3ob3o
bobo2bo48bo7bo7bo20b2o8bob2o83bobo8bo3bo$1441bobobobobobobobobobobobob
obobobobobo2bo6b2obobo2bo3bo3bo3bo3bo3bobo2bo85b2o9b2o45b2o38b3o9bo$
1439bo36bo2bo8bobo3bo3bo3bo3bo3bo4b3o122b2o20b3o38b2o$1438bob3obobobob
obobobobobobobobobobobobobob2o8bo3b3ob3ob3ob3ob2o2b3o72bo48b2o2b2o2b2o
10b2o2bo2bobo34b2o$1438bo2bob33obo11b3o2b2ob3ob3ob3ob3o3bo70b3o47b2o2b
o2bobo10b2o2b2o2b2o34b3o$1439bo3bobobobobobobobobobobobobobobobobobo
13bobo3bo3bo3bo3bobo2b2o86bo18b2o19b3o15b2o$1440b3o33bob2o12bobo3bo3bo
3bo3bo86b3ob2o2b2o10b4o4b2o15b2o$1444bobobobobobobobobobobobobobobobob
o2bo13bo2b2ob3o2b2o2b2o76b3o8b4o4b2o10b3ob2o2b2o74b2o$1442b34obo16b2ob
3o2b2ob3o93b2o19bo25bo52b2o$1441bobobobobobobobobobobobobobobobobobob
2o16bo2bo2bo2bo2bo78bobo58bobo7b2o$1441bo37bo15bo6bo4bobo76bobo57b2o9b
2o$1438b2obo3b2obobobo2b2obobobo2b2obobobo2b2ob2o16b6ob4ob2o139b2o$
1438bo2bobo2b3ob2obo2b3ob2obo2b3ob2obo2b2o25bo2bo79b3o$1440bo2b3o2b2ob
ob3o2b2obob3o2b2obob3o2b2o18b2o3bo2bo145b2o20bo$1441b2o3bo4bo4bo4bo4bo
4bo4bo2bo18b2o4b2o15b2o4b2obo6b2obo6b2obo93b3o6bo8b2o8b3o$1442bob2ob2o
3bob2ob2o3bob2ob2o3bobo2b2o43bo4bob2o6bob2o6bob2o35b3o59b3obo9b2o7bo$
1442bo2bobo2bobobo2bo2bobobo2bo2bobob2obo43bo3b2o4b2o2b2o4b2o2b2o4b2o
34bo55bo2bob3o20b2o$1443b2o4b2obo2bo3b2obo2bo3b2obo2bo2bo42b2o2bo5bo3b
o5bo3bo5bo$1453b2o8b2o8b2o2b2o47bo5bo3bo5bo3bo5bo19bo2bob2obo2bo15b2o
43b3o57b2o$1521b2o2b2o4b2o2b2o4b2o2b2o4b2o18b2o2bo4bo2b2o3b2o7bo4bo
101b2o$1522bo4b2obo6b2obo4bo5bo20bo2bob2obo2bo3bo2bo5bo6bo85bo$1521bo
5bob2o6bob2o5bo5bo34bobo5bo8bo85bo$1521b2o8b2o8b2o2b2o4b2o35bo6bo8bo
83b3o12bob2o$1531bo9bo3bo5bo43bo8bo98bobo$1480bob2ob2o6bo6b2ob2obo14b
2o9bo9bo3bo5bo43bo6bo49b2o25b2o22bo$1480b2obobo3b2obobob2o3bobob2o15bo
8b2o8b2o2b2o4b2o44bo4bo50bo2bo23b2o22b2o$1483bo3bo2bobobobo2bo3bo17bo
5b2obo6b2obo6b2obo48b2o91bo11b2o$1483bo2b3o3bobo3b3o2bo17b2o4bob2o6bob
2o6bob2o38b3o61bo2bo37b3obo5b2o$1482b2obo5bobobo5bob2o83bo3bo59bo2bo
39bob3o$1485bo2b2obo3bob2o2bo85bo5bo58bobo37b3obo2bo$1482b2o2b3o2b2ob
2o2b3o2b2o148bo37bo2bo3bo$1478b2obob2o3b2ob5ob2o3b2obob2o77bo7bo70bobo
25b2o$1478b2ob2o4bo11bo4b2ob2o77bo7bo58b2o11b2o$1481bo2b2obobo7bobob2o
2bo36bobo108b2o4b2o5bo15b2o11bo$1478b2o2b3o2b2ob7ob2o2b3o2b2o31bo2bo2b
o40bo5bo64bobo21bo10bobo$1470b2o2b2obob2o3b2ob13ob2o3b2obob2o2b2o21bo
2bobobo2bo39bo3bo12b2o4b2o45bo24b3o8b2o$1467bo2bo3b2ob2o4bo19bo4b2ob2o
3bo2bo16bo2bobobobobo2bo38b3o13bobo2bobo44b2o26bo$1466bobobo6bo2b2obob
o15bobob2o2bo6bobobo16bobo2bo2bobobo2bo54bo2bo8b2o3bo$1465bo2bob2o2b2o
2b3o2b2ob15ob2o2b3o2b2o2b2obo2bo13b3obo5b2o2bobo24bo29bo4bo6bo2bo2b3o
77b2o$1465bob2o4bob2o3b2ob21ob2o3b2obo4b2obo16bo10bob3o20b2obo28bo4bo
6b2obo5bo70b2o4b2o$1462b2ob2o3b2ob2o4bo27bo4b2ob2o3b2ob2o9b4o12bo21b2o
32bo4bo8bob4obo70b2o$1462bobo3b2obobo2b2obobo23bobob2o2bobob2o3bobo26b
4o20b2o20bo10b2o6b3obobo3bob2o$1464bob2obobo2b3o2b2ob23ob2o2b3o2bobob
2obo10b3o36b3o20bo3b4o12bo2bo2bo3bo2bobo72b2obo$1464bobo2b4o3b2ob29ob
2o3b4o2bobo13bo16b3o39bo3bo14bobo2bo3bob2o4bo72bobo$1463b2o2bo7bo35bo
7bo2b2o8b4o16bo12b3o27bo19bo10b2ob3o73bo$1462bo2bobo4b2obobo31bobob2o
4bobo2bo28b4o11b2o2b3ob2o20bo17b2ob2ob2o3bo76b2o$1463bobo2b5o2b2ob31ob
2o2b5o2bobo7b3o41b7o14b2o19bo3bo5bob3o72b2o$1464bob3o2b3ob37ob3o2b3obo
11bo20b3o8b7o44bo3bo6b2o2bo71b2o$1466bobo2bo43bo2bobo9b4o20bo15b2ob3o
2b2o26b4o21b2o49b2o$1464bobobo2bobo39bobo2bobobo31b5o21b3o23bo2bo72bo$
1464b2o3bob2ob39ob2obo3b2o6b5o70b3o2b3o71b3o$1471b45o17bo20b4o15b3o28b
o6bo73bo$1530b3o20bo17b2o31bo6bo14b2o$1554b3o17b2o28b3o2b3o13bo2bo$
1471b45o15b4o35bob2o32bo2bo16bobo$1464b2o3bob2ob39ob2obo3b2o12bo16b4o
15bo6b2o9b2o15b4o12b2o3bo$1464bobobo2bobo39bobo2bobobo9b3o16bo26b4obo
5b2o32bob2o$1466bobo2bo43bo2bobo31b3o9b3o11bobo2b3o39bo$1464bob3o2b3ob
37ob3o2b3obo10b4o28bo23bo35bo$1463bobo2b5o2b2ob31ob2o2b5o2bobo13bo12b
4o28b2o4bobo$1462bo2bobo4b2obobo31bobob2o4bobo2bo9b3obo10bo14b3o15bo5b
o2bo4bo16b2o8b3o6bo$1463b2o2bo7bo35bo7bo2b2o12bobo2b2o5bob3o10bo3bo21b
2o4b2o16b4obo8bo3b2o$1464bobo2b4o3b2ob29ob2o3b4o2bobo12bo2bobobo2bo2bo
bo11bo5bo44bobo2b3obo4bo$1464bob2obobo2b3o2b2ob23ob2o2b3o2bobob2obo14b
o2bobobobobo2bo10bobobobo24b3o2bobo21bo4bob3o2bobo$1462bobo3b2obobo2b
2obobo23bobob2o2bobob2o3bobo14bo2bobobo2bo11b2obobob2o18b2o5bob4o16b2o
3bo8bob4o$1462b2ob2o3b2ob2o4bo27bo4b2ob2o3b2ob2o16bo2bo2bo12bo2b2ob2o
2bo17b2o9b2o16bo6b3o8b2o$1465bob2o4bob2o3b2ob21ob2o3b2obo4b2obo21bobo
14b2o7b2o$1465bo2bob2o2b2o2b3o2b2ob15ob2o2b3o2b2o2b2obo2bo102bo$1466bo
bobo6bo2b2obobo15bobob2o2bo6bobobo103bo$1467bo2bo3b2ob2o4bo19bo4b2ob2o
3bo2bo103b2obo$1470b2o2b2obob2o3b2ob13ob2o3b2obob2o2b2o105bo3b2o$1478b
2o2b3o2b2ob7ob2o2b3o2b2o75b2o35bobo$1481bo2b2obobo7bobob2o2bo78b2o35bo
2bo$1478b2ob2o4bo11bo4b2ob2o55bo4bo30bo4bo16b2o$1478b2obob2o3b2ob5ob2o
3b2obob2o53b2ob4ob2o26b2ob4ob2o$1482b2o2b3o2b2ob2o2b3o2b2o59bo4bo30bo
4bo25b2o$1485bo2b2obo3bob2o2bo128bo2bo$1482b2obo5bobobo5bob2o123bo2bob
o$1483bo2b3o3bobo3b3o2bo128bo$1483bo3bo2bobobobo2bo3bo124bob2o$1480b2o
bobo3b2obobob2o3bobob2o76bo2bo42bo$1480bob2ob2o6bo6b2ob2obo74bobo2bobo
$1582b2o2b2o$1560bo2bo4bo2bo26bo2bo4bo2bo$1558b3o2b6o2b3o22b3o2b6o2b3o
9b2o$1560bo2bo4bo2bo12b2o12bo2bo4bo2bo10bo$1584b2o37bo$1619bo3bo$1618b
obo2bo$1618bo2bo$1579bo10bo28b2o$1579bo10bo12bo25bo$1578bobo8bobo10bob
o23bobo$1579bo10bo12bo25bo$1579bo10bo17bo15bo$1579bo10bo10b5o2b3o11b3o
2b5o$1579bo10bo9bo4bo5bo9bo5bo4bo$1578bobo8bobo7bo2bo7b2o9b2o7bo2bo$
1579bo10bo5bo2bob2o27b2obo2bo$1579bo10bo4bobobo5bo21bo5bobobo$1596bo2b
o4bobo19bobo4bo2bo$1599b2o2bo2bo6bo5bo6bo2bo2b2o$1604b2o6b3o3b3o6b2o
30bo8b2o4b2obo6b2obo6bob2o$1658bobob2o5bo4bob2o6bob2o6b2obo$1658bob2ob
o4bo3b2o4b2o2b2o4b2o2b2o$1656b2o10b2o2bo5bo3bo5bo4bo$1604b2o21b2o28bob
ob2o10bo5bo3bo5bo2bo$1599b2o2bo2bo19bo2bo2b2o23bobo2bo5b2o2b2o4b2o2b2o
4b2o2b2o38bo3bo$1596bo2bo4bobo19bobo4bo2bo21bo2bo7bo4b2obo6b2obo6bob2o
34b5o$1595bobobo5bo21bo5bobobo21b2o7bo5bob2o6bob2o6b2obo36bo$1596bo2bo
b2o27b2obo2bo31b2o8b2o2b2o4b2o8b2o33bobo$1599bo2bo27bo2bo44bo3bo5bo10b
o34bo$1600bo4bo3b2o11b2o3bo4bo35b2o9bo3bo5bo8bo33b5o$1601b5o4bo11bo4b
5o37bo8b2o2b2o4b2o8b2o32bo3bo$1608bobobo7bobobo43bo5b2obo6b2obo6bob2o$
1603bo3bobob2o7b2obobo3bo38b2o4bob2o6bob2o6b2obo$1602bobo2bobo13bobo2b
obo103bo$1603bo4b2o13b2o4bo103b3o$1733b3o2$1631bo14bo86b3o$1630bobo7bo
4bobo$1631bo6b2ob2o3bo50b2o16b2o16bobo$1640bo57bo16bo17bobo$1620b2o6b
2o18b2o6b2o40bobo12bobo18bo$1618bo4bo2bo4bo14bo4bo2bo4bo39b2o12b2o18bo
bo$1618bo4bo2bo4bo14bo4bo2bo4bo44bo4bo23bobo$1618bo4bo2bo4bo8bo5bo4bo
2bo4bo42b2ob4ob2o22bo$1620b2o6b2o8b2ob2o5b2o6b2o46bo4bo$1640bo58b2o12b
2o$1698bobo12bobo$1698bo16bo18bo$1620b2o6b2o18b2o6b2o39b2o16b2o16b3o$
1618bo4bo2bo4bo8bo5bo4bo2bo4bo48bo24b3o$1618bo4bo2bo4bo6b2ob2o3bo4bo2b
o4bo46bo2bo$1618bo4bo2bo4bo8bo5bo4bo2bo4bo46bo2bo23b3o$1620b2o6b2o18b
2o6b2o49bo$1697b2o16b2o16bobo$1698bo16bo17bobo$1640bo57bobo12bobo18bo$
1620b2o6b2o8b2ob2o5b2o6b2o41b2o12b2o18bobo$1618bo4bo2bo4bo8bo5bo4bo2bo
4bo44bo4bo23bobo$1618bo4bo2bo4bo14bo4bo2bo4bo8bo11bo21b2ob4ob2o22bo$
1618bo4bo2bo4bo14bo4bo2bo4bo7bobo9bobo22bo4bo$1620b2o6b2o18b2o6b2o10bo
11bo18b2o12b2o$1640bo57bobo12bobo$1631bo6b2ob2o3bo19b5o7b5o15bo16bo18b
o$1630bobo7bo4bobo17bo4bo7bo4bo13b2o16b2o16b3o$1631bo14bo17bo2bo13bo2b
o48b3o$1661bo2bob2o13b2obo2bo$1660bobobo5bo7b2o4bobobo44b3o$1661bo2bo
4bobo5bo2bo3bo2bo$1664b2o2bo2bo6bobo2b2o48bobo$1652bo16b2o8bo53bobo$
1651bobo19b2o59bo$1673bobo57bobo$1644b2o3bo3b2o19bo58bobo$1644b2o2bo5b
o22b3o54bo$1649bobo13bobo2bo5bo$1651b2o12b3obob2o3bo3bo10bo$1645b2o17b
o6bo4bo2bobo9bo$1634b2o8bo2bo17bo5b2o5bobo2bo6bobo41bo$1632bobo9bobo4b
o27bo3bo7bo41b3o$1631bo5bo7bo5bo12b2o5bo11bo7bo41b3o$1632bo3b2o2b3o8bo
13bo6bo7b3o8bo27bo$1664b2obob3o19bo26bobo12b3o$1634bobo16b2o3b2o6bo2bo
bo18bobo25b2o$1635bo12bo3bo2bo2b2o31bo41bobo$1639bo7b3o3bobo35bo41bobo
$1638bobo6bobo4bo63bo15bo$1634b2o2bo2bo16bo59bo14bobo$1634b2o3b2o16bob
o58bo14bobo$1734bo$1642bo8b3o2b2o3bo10bo2bo4bo2bo34bo$1642bo13bo5bo7b
3o2b6o2b3o32bo$1642bo5b2o9bobo10bo2bo4bo2bo34bo$1647bobo8b2o32b2o40bo$
1647b3o41b2o25bo14b3o$1095b3o543b2o50bo24bo14b3o$1094bo3bo543bobo57bo
4bo10bo$1078b3o3b2o8bo4bo539bo5bo2b2o50b2ob4ob2o23b3o$1083b4o7bobo2bo
539b2o3bo3b2o52bo4bo10bo$1082b2o3bo6bobob2o618bo14bobo$1081bobob2o4bo
2bob2o542bobo75bo14bobo$1091bo2b2o545bo92bo$1070b2o6bo13b3o623bo14bobo
$1070b2o6bo2bo21b3o612bo14bobo$1078b3o22bo2bo611bo15bo24b2o10b2o$1102b
o4bo586b2o63b2o10b2o$1102b3o2bo586b2o22bo$1101bo5bo610bo40bo12bo$1100b
7o599b2ob2o7bo15bo23bobo10bobo$1100bo606bobo23b3o22bo2bo8bo2bo$1062b2o
36bo594bo11bobo8bo14b3o23bo2bo6bo2bo16b2o11b2o$1062b2o37b2o591bobo7b3o
3b3o5bo24b2o44b2o3bo3bo3b2o$1693bo3bo7b2o3b2o6bo14b3o7b2o14bo2bo3bo2bo
2bo21bo3bo$1694b3o10b3o49b2o4bobo3b2o21bo3bo$1093bo598b2o3b2o19bo14bob
o32bo19bo15bo$1093bo613b3o8bo14bobo15bo15bo19bobo13bobo$1093bo611b2o3b
2o6bo15bo14b3o12bo23bo4bo5bo4bo$1091b2o591bo19b3o3b3o20bobo12bo14bo28b
3o3b3o$1054b2o34b3o591bobo20bobo8bo14bobo12b2o9b2o3bobo4b2o$1054b2o35b
2o592bobo19bobo8bo15bo15bo8bo2bo2bo3bo2bo$1672b2o11bo2bo17b2ob2o7bo29b
3o31bo27bo$1121b3o548b2o11bobo4b2o53bo11bo2bo6bo2bo8bobo25bobo$1120bo
3bo559bobo4b2o25bo29bo9bo2bo8bo2bo3b2o3bo27bo3b2o$1120bo4bo558bo8bo24b
o15bo14bo8bobo10bobo3b2o35b2o$1093bo26bobo2bo592bo14b3o14bo8bo12bo20b
2o3b2o$1092bobo25bobob2o563bo8bo34b3o15bo32bo9bo3bo9bo$1091bo2bo22bo2b
ob2o566b2o4bobo19bo33bo6b2o10b2o10b2o6bo9bo6b2o$1117bo2b2o567b2o4bobo
11b2o7bo14b3o17bo5b2o10b2o5b3o3bo6b2o7b2o6bo3b3o$1118b3o573bo2bo11b2o
7bo35bo$1054bobo7b3o25bo2bo33b3o563bobo35bobo19bo$1055bo5b3o26b3ob2o
33bo2bo563bobo19bo14bobo14bo5bo$1061b3o25bo2b2o34bo4bo564bo19bo15bo15b
o6bo20b3o3bo6b2o7b2o6bo3b3o$1062bo26bo2bo4b2o29b3o2bo584bo14bobo14bo7b
o24b2o6bo9bo6b2o$1090bobo4bo3b2o24bo5bo599bobo23bo24bo9bo3bo9bo$1096bo
6bo7b3o12b7o551b2o3b2o27bo15bo15bo9bo32b2o3b2o$1094b5o3bo5b3o15bo559b
3o29bo31bo10bo15b2o35b2o$1073bo23bo3bo6b3o15bo558bo3bo28bo31bo11bo14b
2o3bo27bo3b2o$1073bo20bo2bo11bo17b2o557bobo74bo17bobo25bobo$1073bo21b
2o590bo30bo15bo15bo13bo17bo27bo$1071b2o645bo14b3o14bo14bo$1070b3o645bo
14b3o14bo15bo$1071b2o694bo24b3o3b3o18b2o3b2o$1121bo565b2o29bo14b3o14bo
17bo19bo4bo5bo4bo13bo2bobo2bo$1121bo565b2o29bo31bo18bo17bobo13bobo8b2o
3b2o3b2o3b2o$1121bo596bo14bobo14bo19bo10bo6bo15bo9bo15bo$1119b2o612bob
o35bo9b3o10bo3bo12b2obo15bob2o$1073bo44b3o597bo15bo15bo21bo6b2o3bo9bo
3bo11bobob2o13b2obobo$1072bo46b2o26b3o568bo14bobo14bo22bo6bobobo4b2o3b
o3bo3b2o6bobo19bobo$1073bo72bo3bo567bo14bobo14bo23bo5bo8b2o11b2o4b2o2b
o19bo2b2o$1146bo4bo582bo40bo5b2o2bo21bo4b2o17b2o4bo$1093b2o51bobo2bo
566bo31bo25bo7b2o21b5o6b3o3b3o6b5o$1093b2o51bobob2o505b3ob3ob3ob3ob3ob
3ob3o34bo31bo26bo33bo6bobo3bobo6bo$1093bo27bo21bo2bob2o568bo31bo27bo
26b4o9b3o3b3o9b4o$1120bo22bo2b2o586bo44bo12bo12bo2bo27bo2bo$1121bo22b
3o507bo31bo31bo14b3o14bo29bobo8bo2bo$1080bobo7b3o561bo3b2o21b2o3bo31bo
14b3o14bo30b2o5bo2bo2bo$1081bo5b3o564bo3bobo19bobo3bo31bo31bo36bobobob
ob2o7bo7b3o15b3o7bo$1087b3o569b2o19b2o51b3o52bo2bo2bo8bobo6bobo15bobo
6bobo$1088bo565bo31bo31bo31bo40bo5bo5bobo6b3o15b3o6bobo$1654bo31bo31bo
14bobo14bo41b5o7bo35bo$1654bo31bo31bo14bobo14bo18bo7bo$1104b2o17bo610b
o33bobo5bobo15bo9bo35bo$1099bo3b3o17b2o529bo31bo31bo14bobo14bo18bo7bo
15bobo7bobo6b3o15b3o6bobo$1099bo554bo31bo31bo14bobo14bo43bo8bobo6bobo
15bobo6bobo$1099bo24b2o528bo31bo31bo15bo15bo53bo7b3o15b3o7bo$1097b2o$
1096b3o43b2o510bo31bo31bo31bo13bo17bo$1097b2o43b2o510bo31bo31bo31bo13b
o17bo22bo2bo27bo2bo$1654bo31bo31bo15bo15bo13bo17bo22b4o9b3o3b3o9b4o28b
o$1129bo603b3o24b2o23b2o24bo6bobo3bobo6bo33bobo$1128bobo523bo31bo31bo
14b3o14bo8bobo7b3o3b3o7bobo19b5o6b3o3b3o6b5o$1654bo31bo31bo31bo8bo8bo
3bobo3bo8bo19bo4b2o17b2o4bo27bo3b2o$1099bo554bo31bo31bo14b3o14bo7b2o
27b2o19b2o2bo19bo2b2o27bo5bo$1098bo711bobo19bobo30bobo$1099bo34b2o518b
o31bo31bo14bobo14bo14b2o13b2o28bobob2o13b2obobo32b2o6bo$1134b2o518bo
31bo31bo14bobo14bo14b2o13b2o29b2obo15bob2o41bo$1654bo31bo31bo31bo63bo
15bo30bo5b2o4b3o$1729b2o7b2o18b2o27b2o25b2o3b2o3b2o3b2o30bo11b2o$1654b
o31bo31bo10bo9bo10bo8bo8bo3bobo3bo8bo30bo2bobo2bo32b3o7b2o2b2o2b3o$
1654bo31bo31bo11b9o11bo8bobo7b3o3b3o7bobo31b2o3b2o33b2o6bob2o4b3o$
1654bo31bo31bo8b3o2b5o2b3o8bo9b2o23b2o72b2o2b3obobo5b3o$1106bobo7b3o
608bo2bo2b3o2bo2bo22bo17bo78b3o$1107bo5b3o10b2o526bo31bo31bo9b2o9b2o9b
o13bo17bo78b3o6bo$1113b3o10b2o526bo31bo31bo31bo13bo17bo46bo14bo24bobo$
1114bo539bo31bo31bo31bo77bobo4bo7bobo$1829bo3b2ob2o6bo22bo3b2o$1654bo
31bo31bo31bo84bo30bo5bo$1654bo31bo31bo31bo18bo7bo89bobo$1654bo31bo31bo
31bo17bobo5bobo90b2o$1659b2o30b2o19b2o30b2o23bo7bo111bo2b2obo3bo$1118b
2o534bo3bobo25bo3bobo19bobo3bo25bobo3bo84bo51b3o2bob2o3b3o$1118b2o534b
o3b2o26bo3b2o21b2o3bo26b2o3bo34bo19b2o22bo3b2ob2o6bo32b2o7bo15bo7b2o$
1654bo31bo31bo31bo10b2obo2bob2o9b2obo3bob2o9b2obo4bob2o16bobo4bo7bobo
32bo7b2o5b3o5b2o7bo$1761bo8bo9bo9bo9bo10bo17bo14bo33bobo11bo3bo11bobo$
1762b2o4b2o11b2o5b2o11b2o6b2o45b2o21b2o11b2ob2o11b2o$1657b3ob3ob3ob3ob
3ob3ob3o5b3ob3ob3ob3ob3ob3ob3o5b3ob3ob3ob3ob3ob3ob3o11b3o2b4o2b3o5b3o
2b5o2b3o5b3o2b6o2b3o42bo$1759bo2bo6bo2bo5bo2bo7bo2bo5bo2bo8bo2bo36b2ob
2obo4b2o9bo10b3o17b3o10bo$1760b2o8b2o7b2o9b2o7b2o10b2o35bo2bobobo5bo
10b3o9bo19bo9b3o$1686bo31bo129b2o4bo8bo11bo13b3o5b3o13bo$1681b2o3bo31b
o3b2o138b2o10b2o14bo7bo14b2o$1680bobo3bo31bo3bobo93b2o$1680b2o41b2o93b
2o42b2o$1686bo31bo127bo10bo3bobo13bo33bo$1686bo31bo98b4o25b3o7b3o3bo
14b2o31b2o$1686bo31bo56b2o4b2obo6b2obo6b2obo11bo4bo27bo6bobo4b3o11bo
33bo$1776bo4bob2o6bob2o6bob2o10bo6bo25bobo14bo6b2o18b2ob2o18b2o$1686bo
31bo56bo3b2o4b2o2b2o4b2o2b2o4b2o7bo8bo24b2o21bobo18bo3bo18bobo$1686bo
31bo56b2o2bo5bo3bo5bo3bo5bo5b2obo8bob2o44bo21b3o21bo$1686bo31bo41b2o
18bo5bo3bo5bo3bo5bo4b2obo8bob2o21b2o20b2o7bo15bobo11bo7b2o$1761bo13b2o
2b2o4b2o2b2o4b2o2b2o4b2o7bo8bo24bo8bo4b2o15b2o15b2o10b2o$1686bo31bo42b
obo12bo4b2obo6b2obo4bo5bo9bo6bo27bo5bobobo2bo15bo9b2o18bo$1686bo31bo
43b2o11bo5bob2o6bob2o5bo5bo9bo4bo27b2o4bob2ob2o12b2o10b2o2bo10b2o10b2o
2b2o$1686bo31bo56b2o8b2o2b2o4b2o2b2o4b2o10b4o34bo14b2obobo10bob2o10bob
o10bobo2bo$1785bo3bo5bo3bo5bo48b2o15bobo14bo11bo14bobo$1686bo31bo56b2o
9bo3bo5bo3bo5bo11b2o50bo2bobo10bobo10b2obo10bobob2o$1686bo31bo57bo8b2o
2b2o4b2o2b2o4b2o11b2o50b2o2b2o10b2o10bo2b2o10b2o$1686bo31bo56bo5b2obo
6b2obo6b2obo53bo20bo18b2o9bo$1775b2o4bob2o6bob2o6bob2o52bobo19b2o10b2o
15b2o$1686bo31bo139bo11b2o7bo11bobo15bo7b2o$1686bo31bo96b2o3b2o31b2o
16bo21b3o21bo$1686bo31bo96bobobobo31bo2b5o10bobo18bo3bo18bobo$1691b2o
19b2o102bo3bo33b2o5bob2o7b2o18b2ob2o18b2o$1686bo3bobo19bobo3bo121bo15b
2o3bob2o12bo33bo$1686bo3b2o21b2o3bo96b2o3b2o17bobo14bo4bo15b2o31b2o$
1686bo31bo91b2o2bobo3bobo2b2o12bobo15b3obo15bo33bo$1810bobob2o5b2obobo
11b2obob2o14b2o$1811bo13bo15b2obo$1689b3ob3ob3ob3ob3ob3ob3o121bob2o33b
2o14bo7bo14b2o$1811bo13bo14bo34bo13b3o5b3o13bo$1810bobob2o5b2obobo10b
3o32b3o9bo19bo9b3o$1810b2o2bobo3bobo2b2o7bobo13bo21bo10b3o17b3o10bo$
1815b2o3b2o10bo3bob2o10bo$1830b3obobob2o8bo2bo27b2o11b2ob2o11b2o$1816b
o3bo8bo4b2o10b2o30bobo11bo3bo11bobo$1815bobobobo8b4o16bobo25bo7b2o5b3o
5b2o7bo$1815b2o3b2o11bo14bobobo24b2o7bo15bo7b2o$1832bo19bo34b3o3b2obo
2b3o$1832b2o55bo3bob2o2bo3$1843bo15bo$1842bobo13bobo$1821b2ob2o16bobo
13bobo$1822bobobo13b3ob2o11b2ob3o17b2o19b2o$1822bo4bo11bo23bo14bobo12b
2o5bobo$1819b2obo5bo11b3ob2o11b2ob3o14bo5bo9bobo4bo$1819b2obo6bo12bob
2o11b2obo17bo3b2o11bo3b2obo$1822bobo5bo18bo3bo39bob2o5b3o32bo$1822bob
2o3b2o19bobo27bobo8b3o5bobo3bo30bobo$1823bo25b2ob2o27bo8bo3bobo5b3o31b
ob3o$1824b7o16bo2bobo2bo35b3o5b2obo32b2o4bo$1830bo15bobobobobobo36bob
2o3bo33bo3b3o$1826b2o18b2o2bobo2b2o38bo4bobo31b5o$1826b2o22bobo40bobo
5b2o29b2o$1851bo41b2o22bo2bo10bobo2b3o$1917b4o8b3obobo2bo$1915b2o4b2o
5bo4bobo$1914bobob2obobo5b2ob2ob2o$1897b2o8b2o5bobob2obobo6bobo$1846b
2o25b2o22bo2bo4bo2bo6b2o4b2o7bobo$1847bo25bo25b2o4b2o10b4o10bo$1847bob
o7bo13bobo26bob2obo11bo2bo$1848b2o5bo2bo5bo6b2o27bob2obo$1858bo5b2o33b
2o4b2o$1854bo10b2o30bo2bo4bo2bo$1854bo3b2o4b2o31b2o8b2o$1855b5o2$1855b
5o$1854bo3b2o4b2o$1854bo10b2o$1858bo5b2o39b2o6b2o$1848b2o5bo2bo5bo6b2o
7b2o6b2o15bobo5b2o$1847bobo7bo13bobo6bobo3bo2bo16bo$1847bo25bo8bo3b3o
22b6o$1846b2o25b2o6b2ob2o24bo6bo$1883bo2bo24b2o2b2o$1883bo2bo25bo2bo$
1884b2ob2o22bo4bo$1881b3o3bo22bo6bo$1866b2o12bo2bo3bobo19bo8bo8b2o11b
2o6b2o8b2o5b2o7b2o38b2o$1853bo11bo2bo2b2o7b2o6b2o18bo10bo7bobo9bo2bo4b
o2bo6bo2bo3bo2bo6bobo6b2ob2o3b2o5b2o4bo3bo5b2o8bo3bo$1833b2o18b3o9bobo
4bo2bo31bo12bo7b2o9bobo5bob2o6bob2o3bo2bo7b2o7bobo4bo7bo3bobobobo13bob
obobo$1833b2o21bo9bo5bobobo29bo14bo8b2o5b2obo5b2obo4b2obo7b2ob2o7b2o5b
obo5b3ob3o4bobobobo4b4o5bobobobo$1855b2o12b2obo2bo29bo6bo9bo7bobo3bo2b
o6bo2bo4bo2bo9bo2bo6bobo3b2ob2o6bobo7b2ob2o4bo4bo3b2obobob2o$1836b2o
18b2o11bo2bo31bo6bobo9bo7b2o3bobo8b2o6b2o10bo2bo7bo16bo17b2o2b2o7bo$
1836b2o19b2o7bo4bo31bo7b2o11bo12bo30b2o$1856bo2bo6b5o31bo22bo$1839b2o
15bo2b2o18b2o20bo24bobo$1839b2o16b2ob3o5bo9bobo19bo26b2o$1861bobo3bobo
9bo19bo$1842b2o19bo4bo29bo39b2o9bo27b2o25b2o4bo$1842b2o19b2o32bo29b2o
3b2o3bo2bo6b3o10b2o4b2o3b2o3bo2bo6b2o9bo7bo2b3o$1894bobo30bobobobo4b2o
6bo3b2o4b2o2bobo3bobobobo3b4o5bo2bo6b5o5bobo$1845b2o47b2o33bobo14bobob
obo3bo5bo5bobo13bob2obo4bo5bo5bobo$1845b2o19bobo58bobobobo4b4o5b2obobo
4b5o5b2ob2o4b4o4bo4bo5b5o7bobo$1867b2o25b2o31b2o3b2o3bo4bo8bo7bo16bo2b
o3b2o4b2o6bo6b3o2bo$1848b2o17bo26bobo40b2o2b2o61bo4b2o$1848b2o47bo$
1898bo$1851b2o46bo$1851b2o45b2o36b2obo$1936b2ob3o$1854b2o52bo10b2o21bo
$1854b2o26bo24bobo8bobo15b2ob3o$1880b2o25bobo7bobo17bobo$1857b2o22b2o
25bo7bobo18bobo29bo$1857b2o8bo37b3o8b2o20bo27bobobo$1868b2o35bo21b2o
37b2o2bo$1860b2o5b2o59bo41b2o$1860b2o65bo$1894b2o23bo7b2o26b2o$1863b2o
29bobo12bo8bobo34bobo$1863b2o30bo12bobo6bobo7b2o28bo$1907bobo6bobo8bob
o26bo15b2o$1908bo6bobo10bo26bo8b2o6bobo8bo$1905b3o8bo8b3o27b2o7bobo8bo
6bobo$1896b2o7bo19bo39bobo8bobo4bobo$1897bo68bobo8b2o6bo$1864b2o31bob
2o66bo16bo$1863bobo30b2o2bo18b2o63b2o$1865bo27bo4b2o7bo12bo18b2o18bo$
1893b5o8bobo10bo19bobo16bobo11b2o$1883bo7b2o4bo9bobo8bo23bo15bobo12bo$
1881b2o9bo2b2o11bo8bo25bo13b2ob2o10bo9bo$1882b2o8bobo10b3o8bo17b2o6b2o
27bo8b3o$1887bo2bobobo10bo9bo19bo32bobo8bo$1887b4ob2o21b2o17bo33b2o8bo
bo$1891bo41bo45b2o$1889bobo40bo$1889b2o19bo21b2o28b2o$1908b3o8b2o19b2o
20bobo$1907bo12bo18bo2bo5bobo12bobo$1878b3o27bo10bo19bo2bo5b2obo13bo$
1878bo26b3o10bo21b2o9bo13b2o8b2o$1879bo25bo11bo33b2o21bobo$1867b3o44bo
bo57bo$1869bo44b2o56bobo$1868bo59bo43b2o$1908b2o17bobo8bo$1907bobo18bo
bo6bobo$1907bo6bob2ob2o8bobo6bobo10b2o$1908bo5b2ob2obo9bo9bo9bo2bo27b
2o$1905b3o32b2o9bo2bo25bobo$1905bo46b2o25bobo10b2o$1879b2o99bo10bo2bo$
1879bobo34b2ob2o71bobo$1879bo34bo2b2obo72bo$1905b2o7b2o$1905bo28b2o$
1906bo27bobo31bo$1907bo27bobo29bobo$1908bo10b2o15b2o6b2o22bobo$1905b3o
8b2o2bo23bobo22bo$1905bo8bo2b2o27bo40b2o$1914b2o29bo41bobobo6b2o$1945b
2o43b2o6bobo$1962b2o36bo$1905b2o55bo37b2o$1905bobo7b2o46bo$1908bo6bo2b
2o42b2o$1909bo6b2o2bo$1906b3o10b2o53b2o29b2o$1906bo67bo2bo27bobo$1976b
2o28bo2$1919b2o$1906bobo9bobo$1906b2obo5b2o2bo$1909bo5bob2o$1906b3o69b
2o$1906bo71bobo$1962b2o15b2o$1919bo41bo2bo$1914b2o2bobo41b2o$1906b2ob
2o3bobo2bo$1907bob2o6b2o$1907bo$1906b2o2$1914b2o$1914bobo2b2o41b2o4b2o
bo4bob2o6b2obo24bo$1908b2o7bo2bo42bo4bob2o4b2obo6bob2o23bobo$1907bo2bo
7b2o42bo3b2o4b2o6b2o2b2o4b2o22bo$1906bobobo51b2o2bo5bo8bo2bo5bo$1907bo
bo57bo5bo6bo4bo5bo$1908bo53b2o2b2o4b2o6b2o2b2o4b2o$1915b2o46bo4b2obo6b
2o4bo5bo$1915bo46bo5bob2o7bo5bo5bo15b2o$1916bo2b2o41b2o8b2o4bo5b2o4b2o
15b2o$1909bo7bo2bo51bo5b2o4bo5bo$1908bobo7b2o42b2o9bo2b2o7bo5bo$1908b
2o53bo8b2o3bo6b2o4b2o$1906b2o54bo5b2obo4bo9b2obo$1905bobo54b2o4bob2o4b
2o8bob2o$1906bo12b2o$1920bo$1917b3o$1916bo$1915bobo$1916bo4$1919b2o$
1920bo$1917b3o$1916bo$1917bo$1916b2o2$2135b2o$2135b2o32$2086b4o7$2089b
2o$2090bo$2090bo10$2069b2o$2070b2o$2070bo4$2057b2o$2057b2o10$2074bo12$
2055b2o12$2037b3o40bo$2079b2o6$1992b3o$1994bo$1993bo591$1411bo12bo$
1410bobo10bobo$1409b2ob2o8b2ob2o$1409b2o14b2o$1411bo12bo$1411b4o6b4o$
1411bo2b2o4b2o2bo$1412b2o2bo2bo2b2o$1413b2ob4ob2o$1414bobo2bobo$1415bo
4bo2$1414bo6bo$1412b2ob2o2b2ob2o$1413bo8bo$1413b2o6b2o31$1425bo5bo$
1424b3o3b3o$1423bo2bo3bo2bo$1422b3o7b3o$1423bobo5bobo$1425b2o3b2o$
1421bo4bo3bo4bo$1426bo3bo$1421b2o3bo3bo3b2o$1423bo2bo3bo2bo$1425bo5bo!
Work in progress, but fairly easy so far. Everything's in rough chronological order of discovery, and I have a separate text file listing the name of everything. It's about to get more exciting, because the timeline has finally made it to 1995 when universal stable signal circuitry finally gets discovered (and I actually know something about all that stuff.)
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:Is there any hope of adding an optional attribute to a label, such that it fades into view at time = T1, and back out of view at time = T2? Otherwise the timeline is going to end up with way too much text, if I'm ambitious enough to try to label everything.
Sure. How about [[ LABELT t1 t2 ]] that sets a time range for subsequent label definitions? [[ LABELT ALL ]] to switch off the constraint?

(Which reminds me: must sort labels by zoom for drawing)
dvgrn wrote:Work in progress, but fairly easy so far. Everything's in rough chronological order of discovery, and I have a separate text file listing the name of everything. It's about to get more exciting, because the timeline has finally made it to 1995 when universal stable signal circuitry finally gets discovered (and I actually know something about all that stuff.)
Love it! Looking forward to the labelled version :)
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Sure. How about [[ LABELT t1 t2 ]] that sets a time range for subsequent label definitions?
Well... if you have to have a LABELT anyway, why not just

[[ LABELT T1 T2 X Y ZOOM "This is my message" ]]

? Then you don't need to maintain a T1 and T2 state that then has to be reset with ALL.

Your way is fine, too, though -- I'd hardly notice the difference between the above and

[[ LABELT T1 T2 LABEL X Y ZOOM "This is my message" ]]

... and then I could leave off the LABELT T1 T2 if I'm making a whole bunch of labels that all pop up at the same time. No idea whether that will happen often or not -- right now I'm imagining more narrative-style waypoint scripts with sequential popups, in which case my suggestion is one keyword less complicated. But your syntax is consistent with point size, alpha, and color, which I definitely don't want special LABEL[PS|A|C|T] commands for. "Timed labels" just seem weird enough that they could be handled a little differently.
rowett wrote:Looking forward to the labelled version :)
Me too. Just not looking forward so much to making all the labels. There's not likely to be any particularly scary resource limitations associated with having, well, hundreds of these -- right?
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

I went with the [[ LABELT ]] command. Test case is here.
dvgrn wrote:There's not likely to be any particularly scary resource limitations associated with having, well, hundreds of these -- right?
Shouldn't think so. I'm just asking the Canvas to draw text and I'm only drawing when the label is within generation range (if LABELT is specified) and in zoom range.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Updated the [[ LABELT ]] command to take three paramters <t1>, <t2>, and <fade>:
  • <t1> defines the first generation that labels should be visible
  • <t2> defines the last generation that labels should be visible
  • <fade> defines the number of generations to fade the label in (starting at <t1>) or out (ending at <t2>)
    • can not be more than number of visible generations / 2
Updated test case is here.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

LifeViewer has a maximum grid size of 8192x8192. I set it to that mostly to conserve memory in the browser but also because I suspected it was unlikely that displayed larger patterns in the browser would be common, and even if they were, animating patterns that large might be slow in Javascript.

Now you're building bigger and better animations do you see a need for 16384x16384 grids? I've tested LifeViewer and it works fine - it just uses more memory (around 800Mb). Because of the resource requirement if it was needed I'd probably have it enabled by a script command.
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Updated the [[ LABELT ]] command to take three parameters <t1>, <t2>, and <fade>...
Looks good! And that rated a new build number, I see. I've copied it out to try making labels for the timeline animation -- here's hoping I can avoid being distracted by anything else for a while.

But speaking of distractions: emailing back and forth with Will Cavendish last night, we ran into a LifeViewer limitation where the best current workaround seems to be to create multiple animations and then string them together outside of LifeViewer.

The problem is a simple one -- but I've asked you about it before, so I'm guessing it might be a headache to implement a fix for it. At the very beginning of the animation, I've put in a random scattering of polyominoes as placeholders, because that's what Conway's group was testing. They worked their way up to the R-pentomino and discovered the glider (and found themselves in the special level of Hell reserved for people who try to simulate 1103-tick methuselahs with nothing but graph paper and tile floors.)

Ideally I could focus on a single dot, show that it dies, focus on a domino spark, show that it dies, move to the two tetrominoes, show that they survive, and then jump to a nice organized set of 12 pentominoes and show how they all do boring things except for the R. But I can't jump backwards in time in a waypoint script, and I can't jump to T=0 in a new pattern which would also work fine.

There are two in-viewer tricks I could use. One would be to find multi-tick predecessor patterns for the tetrominoes and pentominoes, so that they're just getting to the pentomino stage when I get around to looking at them. But that seems a little silly.

Instead of that, I'll try using PAUSE 0 instant-jumps with different labels in different locations, to switch to each frame of the movie I want to show. Then the actual simulation only has to start when I get to the pentominoes.

-- Not that I'd mind having the option of jumping instantly to any spacetime location (disregarding some calculation time for getting to new time T from the nearest earlier saved state). But it doesn't look like I really need it in this case after all...!
rowett wrote:LifeViewer has a maximum grid size of 8192x8192. I set it to that mostly to conserve memory in the browser but also because I suspected it was unlikely that displayed larger patterns in the browser would be common, and even if they were, animating patterns that large might be slow in Javascript.

Now you're building bigger and better animations do you see a need for 16384x16384 grids? I've tested LifeViewer and it works fine - it just uses more memory (around 800Mb). Because of the resource requirement if it was needed I'd probably have it enabled by a script command.
I certainly don't mind LifeViewer having the option to use a larger grid. People do bump up against the current boundaries now and again. Did you see the latest Amazing Minstrel Remover and Detector, for example?
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:And that rated a new build number, I see.
Yes it did indeed. I'll need to post the build information here for posterity.
dvgrn wrote:I've copied it out to try making labels for the timeline animation -- here's hoping I can avoid being distracted by anything else for a while.
I'm sure you'll finish it in less than an LLtLi (for the uninitiated an LLtLi is a unit of procrastination, also known as a LifeViewer-Larger-than-Life-implementation - or in simpler terms: about a year).
dvgrn wrote:But speaking of distractions: emailing back and forth with Will Cavendish last night, we ran into a LifeViewer limitation...

-- Not that I'd mind having the option of jumping instantly to any spacetime location (disregarding some calculation time for getting to new time T from the nearest earlier saved state). But it doesn't look like I really need it in this case after all...!
I think that means I don't need to do anything :)
dvgrn wrote:Did you see the latest Amazing Minstrel Remover and Detector, for example?
Yes probably gets the award for the pattern that was closest to not fitting in LifeViewer.
Locked