Randomly enumerating glider syntheses

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
MathAndCode
Posts: 5142
Joined: August 31st, 2020, 5:58 pm

Re: Randomly enumerating glider syntheses

Post by MathAndCode » May 29th, 2021, 3:05 pm

Ian07 wrote:
May 29th, 2021, 2:37 pm
From 10G_D2_+2_stdin:
Here's an idea: What if some of the time, the run starts with a block, beehive, pond, or bi-block placed somewhere on the axis of symmetry? I list them because they have two-glider syntheses but none that conform to D2_+2 symmetry.
I am tentatively considering myself back.

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Randomly enumerating glider syntheses

Post by dvgrn » May 29th, 2021, 4:36 pm

Ian07 wrote:
May 29th, 2021, 2:37 pm
From 10G_D2_+2_stdin...
One of these things is not like the others!

The xs30_c8970v18oz311d9611 synthesis doesn't have the same symmetry as the others. The original recipe made two of them, and a glider was added to the original 8-glider recipe to suppress the creation of one of them, and then a bunch more cleanup was needed.

Now, the resulting 13-glider recipe is definitely an improvement over the existing 31-glider synthesis on Catagolue. But it's better to only build one of the xs30s in the first place. With a rather improbable 2-glider spark on the right, it only takes 7G in all (boxed):

Code: Select all

x = 57, y = 61, rule = B3/S23
8bo$9b2o$8b2o21$39bo7bo$37bobo5b2o$38b2o6b2o21$12b2o$13b2o$12bo5$4b3o$
6bo$5bo2$54b3o$bo52bo$b2o52bo$obo!

GUYTU6J
Posts: 2200
Joined: August 5th, 2016, 10:27 am
Location: 拆哪!I repeat, CHINA! (a.k.a. 种花家)
Contact:

Re: Randomly enumerating glider syntheses

Post by GUYTU6J » May 29th, 2021, 11:44 pm

dvgrn wrote:
May 29th, 2021, 4:36 pm
...With a rather improbable 2-glider spark on the right, it only takes 7G in all (boxed)...
Why not use a shorter-lived ghost Herschel predecessor? That makes the synthesis faster:

Code: Select all

x = 35, y = 32, rule = B3/S23
25bo$25bobo$25b2o2$13bo$11bobo$12b2o2$27bo$25bobo4bobo$26b2o4b2o$33bo
12$5bo$5b2o$4bobo2$23bo$22b2o$b2o19bobo$obo$2bo!
Also, upon seeing the synthesis I was reminded of one of my 8G xs20 construction:

Code: Select all

x = 55, y = 22, rule = B3/S23
10bo37b2ob2o$11b2o36bobo$10b2o36bo2bo2bo$49b2ob3o$2bo11bo36bo$3bo8b2o
37bob2o$b3o9b2o37bobo$8bo$8bobo$8b2o2$41bo$40bobo$10b2o28bo2bo$10bobo
28b2o$bo8bo$b2o43b2o$obo43bobo$46bo$7bo$6b2o$6bobo!
I suppose traffic light (or its predecessor) + glider reactions can lead to good recipes for D2_x symmetric objects, which may be worth searching.

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Randomly enumerating glider syntheses

Post by dvgrn » May 30th, 2021, 2:07 pm

GUYTU6J wrote:
May 29th, 2021, 11:44 pm
dvgrn wrote:
May 29th, 2021, 4:36 pm
...With a rather improbable 2-glider spark on the right, it only takes 7G in all (boxed)...
Why not use a shorter-lived ghost Herschel predecessor? That makes the synthesis faster:

Code: Select all

x = 35, y = 32, rule = B3/S23
25bo$25bobo$25b2o2$13bo$11bobo$12b2o2$27bo$25bobo4bobo$26b2o4b2o$33bo
12$5bo$5b2o$4bobo2$23bo$22b2o$b2o19bobo$obo$2bo!
I missed that one on a quick scan of the two-glider collisions.

There isn't a good easy way of replacing my slow synthesis on Catagolue with this faster one, is there? It would be nice to have a way to delete and re-submit a synthesis. Maybe it could still be an automatic process, if it has the same cost but runs to completion faster...?

MathAndCode
Posts: 5142
Joined: August 31st, 2020, 5:58 pm

Re: Randomly enumerating glider syntheses

Post by MathAndCode » May 30th, 2021, 4:21 pm

Ian07 wrote:
September 21st, 2020, 7:54 pm
xs21:

Code: Select all

x = 364, y = 49, rule = B3/S23
182bobo$183b2o$183bo4$200bo$obo198b2o$b2o197b2o3bo$bo203bobo$205b2o3$
31bo$29b2o171b2o$30b2o169b2o$203bo158bo$361bo$111b2o210bo37b3o$106b2ob
o2bo210bobo32b2o$105bobob3o211b2o33b2o$87bo3b2o12bo242b2obobo$88bo2b2o
13b4o210bo26bobob2obo$17bo68b3o21bo210b2o6b2o16bo6bo$18b2o88bobo197b2o
10b2o6b2o18b6o$17b2o89b2o198b2o3bo16bo$89b2o221bobo35b2o$89b2o126bo94b
obo35b2o$17b3o196b2o95bo$19bo196bobo$18bo203b2o$221b2o$223bo$9b2o$10b
2o196b3o$9bo198bo$209bo3$35b3o$35bo$36bo138b2o$176b2o$175bo3$226b2o$
225b2o$227bo!
It looks like for the object on the left, there is a useless glider that does nothing but hit a spark and die. Here's the first part of the synthesis without it:

Code: Select all

x = 32, y = 29, rule = B3/S23
obo$b2o$bo4$31bo$29b2o$30b2o8$17bo$18b2o$17b2o3$17b3o$19bo$18bo3$9b2o$10b2o$9bo!
Also, here are the fast components that I found for it:

Code: Select all

x = 235, y = 152, rule = B3/S23
181bobo$182b2o$obo179bo$b2o$bo2$212bo$210b2o$31bo179b2o$29b2o$30b2o6$
198bo$199b2o$17bo180b2o$18b2o$17b2o$198b3o$200bo$17b3o179bo$19bo$18bo
$190b2o$191b2o$9b2o179bo$10b2o$9bo4$231b2o$230b2o$50b2o180bo$49b2o$51b
o134b2o$b2o182bobo45bo$2b2o183bo44b2o$bo230bobo$49b2o$48b2o$50bo95$220b
2o$215b2obo2bo$39b2o154bo18bobob3o$34b2obo2bo155bo3b2o12bo$14bo18bobo
b3o154b3o3b2o13b4o$15bo3b2o12bo185bo$13b3o3b2o13b4o179b2o$38bo178bo$36b
2o160b2o19bo$36bo161b2o18b4o$17b2o19bo183bo$17b2o18b2o181bobo$220b2o!

dvgrn wrote:
May 30th, 2021, 2:07 pm
There isn't a good easy way of replacing my slow synthesis on Catagolue with this faster one, is there? It would be nice to have a way to delete and re-submit a synthesis. Maybe it could still be an automatic process, if it has the same cost but runs to completion faster...?
I have wanted a similar feature for staging syntheses.
I am tentatively considering myself back.

User avatar
Ian07
Moderator
Posts: 891
Joined: September 22nd, 2018, 8:48 am
Location: New Jersey, US

Re: Randomly enumerating glider syntheses

Post by Ian07 » May 30th, 2021, 8:27 pm

From 10G_D2_+1_stdin: (except some of these are actually D2_+2-symmetric because they got uploaded to the wrong symmetry apparently)

Code: Select all

x = 9331, y = 2817, rule = B3/S23
210bobo$211b2o$211bo12$241bo$239bobo$240b2o2$495bo$496bo$494b3o5$27bo$
26bo63bo162bobo$26b3o59bobo162b2o241bo78bo$89b2o163bo242bo77bobo$9bo
485b3o77b2o$10b2o2bobo321bo$9b2o4b2o73bo245bobo166bobo5bo$15bo73bobo
142bo102b2o167b2o3b2o44b2ob2o9b3o$88bo2bo143b2o114bo154bo5b2o43bo3bo$
89b2o143b2o104b2o9bobo204b3o8bo5bo$340b2o9b2o206bo9bo5bo$92b2o253b2o
210bo9bo5bo$14bobo74bobo253bobo208b3o$15b2o70b2obobo157bobo88b2o5bo
208bo3bo9b3o$15bo71bo3bo143bo15b2o6bo78bo2bobo214b3o$88b3o145b2o13bo6b
2o77bobobo2bo$235b2o21bobo77b2obo3bo160bo5b2o44b3o$251b2o89b3o161b2o3b
2o44bo3bo9b3o$88b3o160b2o252bobo5bo44b3o$15bo71bo3bo143b2o322bo9bo5bo$
15b2o70b2obobo143b2o5b3o5bo90b3o150b3o61bo9bo5bo$14bobo74bobo141bo9bo
5b2o85b2obo3bo151bo60b3o8bo5bo$92b2o150bo5bobo84bobobo2bo151bo60bo3bo$
338bo2bobo213b2ob2o9b3o$89b2o250b2o5bo$88bo2bo255bobo$15bo73bobo142b2o
111b2o226b2o$9b2o4b2o73bo144b2o103b2o9b2o222bobo$10b2o2bobo217bo105b2o
9bobo221bo$9bo341bo142b3o$89b2o246b2o157bo$26b3o59bobo245bobo156bo$26b
o63bo163bo83bo$27bo225b2o$253bobo10$240b2o$239bobo$241bo12$211bo$211b
2o$210bobo55$24bo$22b2o64bo$23b2o64bo$87b3o$91b2o$91b2o2$12bobo$13b2o$
13bo3$7bo10bobo$8bo9b2o$6b3o10bo79b2o$98bobo$97bo$98b2o$100bo$100bo$
98b2o$6b3o10bo77bo$8bo9b2o78bobo$7bo10bobo78b2o3$13bo$13b2o$12bobo4$
91b2o$23b2o66b2o$22b2o63b3o$24bo64bo$88bo65$15bo$13bobo80bobo$14b2o75b
obo2b2o$91b2o4bo$9bo82bo$7bobo$8b2o8bo$17bo$17b3o78bo$98bobo$98b2o$16b
2o$16b2o2$16b2o69bo$16b2o67bobo$86b2o2$17b3o$17bo68b2o$8b2o8bo66bobo$
7bobo77bo$9bo2$14b2o$13bobo82b2o$15bo82bobo$98bo4$92bo$91b2o4bo$91bobo
2b2o$96bobo68$1369bo$1367bobo$1368b2o4$2158bo$1565bo590bobo$1563bobo
591b2o$1564b2o2$1372bo$12bo1360bo212bo$12bobo931bo127bo296b3o19bobo
188b2o$12b2o931bo126b2o319b2o190b2o$945b3o125b2o319bo171bobo$1044bo
522b2o95bo399bo$1045bo521bo96bobo395bobo72bobo$387bo557bo97b3o23bo151b
o442b2o397b2o73b2o$386bo505bo51bobo122bobo150bo439bo271bo203bo33bo$
290bo82bo12b3o502bo51bo2bo122b2o149b3o342bobo94bo269bobo232bo4bobo$
290bobo78bobo345bo10bobo158b3o50b2o424bobo193b2o94bo270b2o231bobo3b2o$
17bo94bobo175b2o80b2o343bobo10b2o111bo395bobo36bo92b2o193bo286bo302bob
o7bo2bo$15b2o95b2o83bo90bo267bo48bo112b2o11bo110bo278bo117b2o38bo91bo
482bo5bo296b2o8b2o$16b2o75bobo17bo84b2o87bobo264b2o50bo20bo214b3o45bo
231bo117bo36b3o169bo130bo271b3o6bo73bo221bo$6bo87b2o10bobo88b2o9bo78b
2o266b2o47b3o19bo94bobo164bobo163bo65b3o158b2o167bo127b2o279b3o72bobo$
6bobo85bo11b2o99bo400b3o15b3o92b2o115bo50b2o56bo107bo68b3o153bobo165b
3o8b2o118b2o76b2o3bo271bobo312bo11bo$6b2o91bobo5bo93bo5b3o340bo72b2o
97bo113bobo58b2o47bobo104b3o168bo10bo45bo8b2o160b2o6bo196bo2b3o272bo
312bobo10bobo$100b2o97b2o84b2o91bo172bo71bobo211b2o58b2o46bo2bo276b2o
6b2o51bobo2bo160b2o3b3o198b2o588bobo10b2o$100bo99b2o84bo91bobo168b3o
72bo89bo5bo225b2ob2o177bo95b2o8b2o50b2ob2o84bobo78bo203bo586b2ob2o7bo$
6b2o277bo88bo3b2o161bobo62b2o107b2obobo228bo177bobo159bo86b2o78b2o202b
o210bo303bo72bo9bobo$6b2o276bo3bo86bo166b2o62bo2bob2o101b2o3b2o174bo
53bo174b2o2bo160bo86bo81bo199b2o210bo208b3o92bo73bo9bobo$194b2o89b4o
84b3o166bo65b3obo281bobo49b2ob2o173bob2o96b2o8b2o50b2ob2o167bo198bo2b
3o207b3o206bo94b3o70b2ob2o7bo$6b2o186b2o294bo5bo340b2o55bobo48bo2bo
177bo98b2o6b2o51bobo2bo164b2o121b2o76b2o3bo417bo167bobo$6b2o277b4o199b
obo5bobo49b2o3b2o53b3obo223bobo56bo50bobo177bo97bo10bo45bo8b2o84bo79bo
121b2o363b2o303bobo$100bo93b2o88bo3bo200b2o5b2o50b2o3b2o51bo2bob2o225b
o108bo176bob2o152bobo93b2o74b2o3b3o120bo363bo304bo$100b2o92b2o89bo320b
2o516b2o2bo152b2o92bobo74b2o6bo409b2o7b2o44bo2b3o8bo2bo$6b2o91bobo5bo
178bo202b2o5b2o50b2o3b2o69bo89b2o3b2o121b3o52b2o228bobo110bo36b3o168b
3o8b2o105bo303b2o7b2o42bobo13b5o$6bobo85bo11b2o177b2o201bobo5bobo49b2o
3b2o68bobo89b2obobo121bo54b2o154b3o72bo110b2o38bo170bo115b2o94bo261b2o
$6bo87b2o10bobo91b2o288bo5bo126b2o89bo5bo122bo45b2o164bo183bobo36bo
170bo115bobo94bo136bo9bo60b2o7b2o58b5o230b3o$16b2o75bobo17bo85b2o172b
3o166bo65b3o15b3o259bobo53b2o108bo607bo134bobo9bobo58b2o7b2o47b3o8bo2b
o231bo$15b2o95b2o87bo5b3o77b2o86bo166b2o60b3o19bo95bo167bo52bo2bo177b
3o93b3o441b2o132b2o9b2o133bo230bo$17bo94bobo92bo79bobo84bo3b2o161bobo
62bo20bo93b2o221bobo173b3o99bo148bo195bo96bobo276b2o$197b2o9bo79bo89bo
bo168b3o53bo115bobo221bo176bo98bo149b2o194b2o95bo133b2o9b2o$198b2o90b
2o86bo172bo339b3o227bo248bobo193bobo228bobo9bobo58b3o$197bo92bobo257bo
167b2o11bo159bo177b2o514b2o212bo9bo60bo$290bo426bobo10b2o160bo52b3o
121bobo512b2o285bo$555b2o162bo10bobo212bo97b3o23bo516bo570bo$554b2o
390bo98bo1111b2o8b2o$556bo487bo890bo220bobo7bo2bo$12b2o358b2o699b2o
319bo169b2o368bobo136b2o91bobo3b2o$12bobo356bobo698b2o319b2o168bobo
293b3o72bobo135bo2bo91bo4bobo$12bo360bo12b3o685bo296b3o19bobo169bo286b
3o6bo73bo136bobo97bo$386bo986bo480bo5bo212bo$387bo984bo480bo$1933b2o$
1932bobo$1934bo6$1368b2o$1367bobo786b2o$1369bo785bobo$2157bo44$3356bob
o$3356b2o$3357bo16$4629bo$4627bobo$4628b2o13$1584bo2180bo204bobo20bo$
1582bobo2181bo204b2o19bo$1583b2o1734bo444b3o204bo20b3o$3317b2o467bobo
967bo$2673bobo239bo379bo22b2o466b2o968bobo226bo203bobo$2673b2o239bo
381bo490bo188bo659bo119b2o227bobo201b2o$2362bo311bo140bo98b3o377b3o12b
o148b3o516bo656bobo2bo109bobo233b2o203bo8bo$2363b2o181bo268bobo489bobo
665b3o14bobo201bo438b2o2bobo108b2o446bo$1586bobo105bo7bo659b2o182bobo
266b2o491b2o323bo20bo114bo101bo120b2o200bobo21bo420b2o109bo101bo345b3o
$881bo460bo244b2o106bo7b2o841b2o544bo538bobo19bo116b2o98bo122bo201b2o
20bo634bobo132bo$2bo301bo575bo462bo138bo104bo7bo97b3o6b2o400bo545bo
440bo540b2o19b3o113b2o99b3o334bo9b3o303bo328b2o132bo191bo$3b2o297bobo
139bo435b3o458b3o121bo16bobo108bobo8bo372bo127b2o424bo116bobo150bo108b
obo178b3o773b2o183b2o154bo312bobo104bo357b3o187bobo12bo$2b2o299b2o138b
o280bo620b2o119bo15b2o110b2o8bobo370bobo124b2o423bobo117b2o151b2o106b
2o402bobo322bo226bo2bo181bobo152b3o313b2o105b2o116bo218bobo208b2o12bob
o$30bo412b3o106bo172bo534bo84b2o117b3o137b2o371b2o551b2o24bobo115bo
126b2o108bo402b2o324bo225bobo182bo259bo316b2o12bobo103bo6bobo209b2o
222b2o$15bo12b2o520bobo127bobo40b3o534bobo712bo390bo189b2o114b2o243bo
397bo322b3o226bo175bo6b2o259bobo156bo171b2o102b3o6b2o210bo108bo$16b2o
11b2o520b2o127b2o45bo532b2o713bo160bo216bobo8bobo190bo115b2o240b2o866b
o208bobo49bo4bo228bo32b2o155bobo172bo112bo92bobo223bo$15b2o664bo44bobo
432bo8bobo540bo198bo62bo158b2o218b2o9b2o2bobo544b2o864bo209b2o48b3o5b
2o5bo221bo29bo159b2o378b2o224b3o$306bo111bobo146bo158b2o431b2o9b2o172b
2o124bo4bo224bo11bo5bo180bo10b2o223b2o97bo119bo14b2o56bo3bo118bo350bob
o182bobo381b3o172bobo134b3o89b2o117bo52b2o4bo3bobo162bobo53b3o29bo162b
o377bo220b3o$141bo61bo100bobo2bo109b2o19bo126bobo300bo76bo212b2o9bo80b
o7bo79b2o3bo125b2obo226bo10b3o2bo182b2o2bo6b2o320bo136bo44bo10bobobobo
117bobo349b2o182b2o382bo174b2o226bo2bo169b2o4bo3bobo162b2o58b2o26bo
162bobo47bo4b2o301bo$139b2o62bobo99b2o2bobo107bo18b2o127b2o289bo11bobo
72bobo206bo96bo6b2o80bo2bo126b2o2b3o222b3o15b3o179b2o2bo329b3o178bobo
10bo3bo118b2o104bo151bo5bobo85bo184bo383bo174bo226bob2o173b2o5bo164bo
58b2o189b2o49bo2bo2bo224b2o75b2o$132bobo5b2o61b2o104b2o118bo9b2o224bo
190bobo11b2o74b2o207bo95b3o5b2o80b4o558b3o63b2o152bobo104b2o183bo12b3o
226b2o150bo4b2o627b2o425b2obobo117bo55bo9b2o460b3o3b2o225b2o74b2o16bo
124bo$28bo104b2o65b2o228bo120bobo7bo104bo190b2o289bo4b3o326b2o484bobo
152b2o105bobo423b2o149b3o5bo310bo7bo307bobo425b2obobo116b2o56b2o7bobo
415bo368b2o123bobo$26b2o105bo66b2o226b3o121b2o5b2o103b3o8bo273bo9b2o
185bobo192b4o137b2o285bo197bobo154bo106bo120b2o61bo12b3o696b2o5bo307bo
430bob2o115bobo56bo7bo296b2o4b2ob2obo108bobo52b2o220b2o83bo7b2o123b2o$
27b2o523bo7b2o112bo273bobo8bo187b2o191bo2bo424bobo131bo62bo2bo383b2o
60bobo10bo3bo694b2o6bo180bo123b2ob2o429bo2bo174bobo239b2o4b2ob2obo47bo
2b2o4b2obob2o108b2o53b2o220b2o81bobo232bo$137bo536b3o181b2o88bo2bo4bo
4bo48bo15b2o312b2o3bo136b2o283bobobo128bobo62b3o144bo302bo10bobobobo
712b2o167b2o124bobo431b2o176b2o239b2o4b2obob2o45bobo11bo472b2o231bobo$
135bobo4bo715b2o89b2o5b6o46bobo15bo223b2o92b2o136b2o120b2o152bo2b3o3bo
3bo129b2o207bobo239b2o73bo3bo599bo3bo36bo57b3o11bobo167bobo123bobo859b
o49b2o11bo111b2o53b2o109bo424bobo2bo$136b2o4bobo583b2o3b2o274b2o12bo4b
o221b2o342b2o8bobo149bobo9b3o194b3o143b2o117bo121b2o678bobo38bo67b2o2b
o293b2ob2o338b3o517bo53b2o4b2obob2o108bobo52b2o108b2o424b2ob2o$142b2o
530b2o52bo2bo2bo123b2o89b2o5b6o50bo10b6o441b2o2b3o116bobo8bo152b2o206b
o2bo260bobo179b3o616b3ob3o34b3o8b2ob2o54bob2o297bo339bo84bo425b2o4b2ob
ob2o50b2o4b2ob2obo108bo150b2o12bobo111bo81b2o231bo$200b2o472b2o54b4o
124b2o88bo2bo4bo4bo50bo237b2o219b2obo112bo7bo172b3o196bobo260bobo180bo
668b2ob2o56bo298bobo338bo82bobo124bo299b2o4b2ob2obo215b3o3b2o100b2o
115b3o6b2o80bobo231bo$201bo746bobo8bo52bo10b6o221b2o93b2o123bo4bo111b
2o172b3o3bo3bo196bobo260bo3bo176bo730bo164b2o133b2o421bo2bo122b2o478b
2o49bo2bo2bo98bo119bo6bobo81bo7b2o123b2o94b2ob2o$201bob2o101b2o366b2o
54b4o215bo9b2o62bo4bo316b2o239bobo178bobobo197b2o261b4o134bo179b2o589b
ob2o162bobo336bo220b2o106b3o14bobo477bobo47bo4b2o218bo98b2o123bobo94bo
bo2bo$202bo2bo100b2o366b2o52bo2bo2bo122b2o167bo120b2o192b3o355b3o15b3o
48bobo130b2o451bo14b2o179bobo254b3o5bo266b2ob2o54b2o2bo148b3o12bo335b
2o223b3o104bo494bo357b2o16bo124bo97bobo$203b3o522b2o3b2o121bobo11b2o
154b2o118bobo194bo357bo10b3o2bo51bo130bobo329b4o118b2o9b2o2bobo178bo
105b2o151bo4b2o214b3ob3o34b3o8b2ob2o43b3o11bobo149bo348bobo222bo105bo
245bo58b2o186b2o168b2o190b2o239bo$306b2o244bo7b2o296bo11bobo275bo4b3o
186bo121b3o233bo11bo5bo183bo328bo3bo117bobo8bobo290b2o149bo5bobo85bo
129bobo38bo71b2o148bo22b2o449b2o100bo349b2o58b2o26bo158bobo164b2o2bobo
188bo$203b3o100b2o244b2o5b2o113b3o193bo284bo95b3o5b2o205bo15b2o229bo
261bo254bobo133bo190bo98bo245b2o127bo3bo36bo53b2o6bo182b2o451b2o449bob
o53b3o29bo160bo163bobo2bo110bo99bo$142b2o58bo2bo345bobo7bo112bo479bo
96bo6b2o205bo16bobo490bo253bobo324b2o343bobo223b2o5bo184bo318b3o128bo
201bo20b3o284bo29bo326bo113b2o97b2o$136b2o4bobo56bob2o459b3o8bo484b2o
9bo80bo7bo221bo100b2o318b3o69bo254bo299b2o24bobo357b2o208bo7bo505bo
330b2o19bo285bo32b2o209b2o225bobo97bobo339b2o$27b2o106bobo4bo58bo365b
2o97bo492b2o9b2o410bobo314b2o2bo73b2o550bobo383b2o722bo330bobo20bo317b
obo207bobo232b2o209bo209b2o12bobo$26b2o109bo62b2o365bobo95bo495bo8bobo
411bo315b2o2bo6b2o64bobo131b2o418bo141b2o242bo869bo523bo211bo232bobo
208b2o102b3o102bobo12bo$28bo538bo692b2o637bo10b2o65bo132bobo559b2o127b
2o108bo720b2o19b3o130b2o418b3o547bo209bobo106b3o100bo$133bo1126bobo
430b3o6b2o208bo199bo118bo130b2o182b2o126bo127b2o106b2o175bo543bobo19bo
132bobo419bo777b3o86bo$133b2o416b2o173b2o152b3o377bo434bo7b2o525bobo
130b2o181bobo100b2o150bo108bobo173b2o545bo20bo109b3o440bo9b3o632b2o
132bo89bo121b3o$132bobo5b2o286b3o119bobo128bo44bobo151bo813bo7bo421bo
105b2o130bo183bo101bobo435bobo677bo428b2o20bo634bobo132bo210bo$139b2o
289bo121bo127b2o45bo153bo1241b2o108b3o414bo807b3o304bo428bobo21bo633bo
337bo8bo$15b2o124bo58b2o107b2o118bo9b2o239bobo40b3o1397bobo107bo581b2o
645b3o731bo992b2o$16b2o11b2o169b2o103b2o2bobo107bo18b2o285bo1508bo580b
obo644bo1522b2o202bobo$15bo12b2o173b2o99bobo2bo109b2o19bo283bo2090bo
98b3o546bo1521bobo$30bo172bobo100bo111bobo1714b2o537bo239bo2070bo$2b2o
199bo1930b2o537b2o240bo175b3o$3b2o2131bo536bobo415bo$2bo3089bo$443b3o$
303b2o138bo1660b2o$302bobo139bo1660b2o2521b2o$304bo1799bo2522bobo$
4629bo13$3357bo$3356b2o$3356bobo74$1927bo$1899bo25b2o$1244bobo650bobo
26b2o244bo$1245b2o651b2o273bo$120bo1124bo5bo790bo128b3o$119bo1129bobo
262bobo526bo131b2o$12bo106b3o1128b2o263b2o397bobo124b3o130bo2bo$10b2o
1379bo123bo398b2o259b2o$11b2o1113bo262b2o524bo$16bo1110b2o261b2o363bo$
16bobo917bo189b2o251bo376b2o136bobo$16b2o725bo191bo444bo148bobo214bo8b
2o138b2o416bo$744bo190b3o325bo114b3o148b2o89b2o125b2o146bo268bo149b2o$
111bo388bo119bobo119b3o187b2o328bo267bo86bo2b2o124b2o313bobo101bo147b
2o$102bobo4bobo7bo378b2o120b2o309bo2bo316bo10b3o276bo73bobo140bo302b2o
100b3o285bobo$103b2o5b2o6bo380b2o103bo16bo256bo53b2o189bo125bobo125bo
162bo75b2o138bobo303bo104b2o149bo132b2o$4bo98bo14b3o356bo124bobo274bo
6bo237bo5bo119b2o123bobo136bo25b3o77b2o135b2o408b2o147b2o134bo216bo$3b
o471bobo125b2o154bo117b3o7bo234b3o3b2o5bobo118b2o118b2o10bo123bobo9bob
o93b2o143bo539bo11b2o123bo225bo1935bo$3b3o470b2o14bo266bobo123b3o241b
2o4b2o119b2o128b2o125b2o10b2o236b2o541bo2bo130bobo225b3o1932bo$230bobo
258bo125bo136bo4b2o375bo250b2o136bo238b2o308bobo227b3o2bobo129b2o485bo
1247bo426b3o$9bo221b2o258b3o121b2o135b2o139bo362b2o816b2o233b2o136bo
480bobo1243bobo$9bobo219bo91bo292b2o124bo10b2o137bo363b2o802bo14bo369b
obo480b2o207bo680bobo354b2o$5b2o2b2o310b2o417bobo149b3o32b2o5bo68bo
246b2o809bo105b2o277b2o5bo682bo682b2o191bo359bo$5b2o229bo85b2o417b2o
184bobo3bobo54b2o5bo3b2o246bobo643bo163b3o105bo4b2o277b2o459bo223b3o
159bobo504bobo11bo190b2o360bobo$234bobo381bo309bo4b2o55bobo3bobo3b2o
247bo10b3o357bo272b2o271bo4bo278b2o459bo16bo367b2o506b2o203b2o187bo
171b2o$5b2o228b2o81bo299bobo370bo4b2o264bo358bobo3b2o265bobo272bobo
739b3o9bo6bobo343bo22bo506bo393bobo$5b2o2b2o308bo4bo8bo106bo6bo39b2o4b
2o123b2o308bo4b2o328bo358bo2bo2bo430b2o109b3o136b2o612bobo4b2o345bo
922b2o$9bobo233bobo69b3o4bobo6bobo102bobo6bobo37b2o4b2o432bobo3bobo55b
o4b2o625b4o288bo143b2o243b3o2bobo611b2o213bobo134b3o102bo620bo$9bo235b
2o77b2o7b2o104b2o6b2o443b3o32b2o5bo55bobo3bobo3b2o910b2o254b3o133bo2bo
828b2o140bo98bo18bo603bo$246bo240b2o4b2o397bo97b2o5bo3b2o133bo250b2o
234b4o137b2o148bobo142b2o108bobo133bo11b2o815bo4bo141b2o96b3o15bo602b
3o366bo$3b3o233b2o198b2o6b2o38b2o4b2o398bo109bo125b2o4b2o249b2o234bo2b
o2bo134b2o294b2o107bo4bo142b2o134b2o630bo48bobo144b2o13bo3bo97b3o141bo
25bo313bo487bobo$3bo235b2o197bobo6bobo168b2o502b3o3b2o5bobo238b2o10bo
232bobo3b2o136bo401bo4b2o144bo132b2o630bobo47b2o158b2o4bobo75bo164bo
23bo315bo300bo185b2o$4bo435bo6bo170bobo264b3o236bo5bo119b2o123bobo244b
o134b2o139b2o267b2o277b2o5bo629b2o209b2o3b2o76bo15b2o145b3o23b3o238bob
o70b3o123bobo175bo$239b2o377bo122b2o134b3o7bo235bo125bobo125bo147bo
230bobo138bobo26b2o131b3o251b2o130bobo605bo323bo14bo2bo412b2o20bo53b2o
109bobo9b2o173b3o10bobo$239b2o499bobo136bo6bo358bo5bo261b2o10b2o231bo
140bo25b2o134bo252b2o131bo475b2o123b2ob2o83bo256b2o413bo9bo11bo53b2o
110b2o9bo187b2o641bo$246bo495bo10b2o123bo53b2o311b2o265bobo9bobo219b2o
179bo132bo14bo237bo127b2o480bobo4b2o115bobo2b2o32bo49bo514bo167bo10bo
73bo91bo199bo642b2o$103bo14b3o124b2o244b3o122b2o134b2o177bo2bo309bobo
131b3o133bo25b3o204b2o325b2o364bobo468b3o9bo6bobo116bo36bo49bo408bo10b
obo90bobo165b3o83bo113bobo39bo778b2o$16b2o85b2o5b2o6bo126bobo243bo123b
2o137bo4b2o171b2o446bo159bo205bo8b2o317bobo365bo470bo16bo155bo456bobo
10b2o92b2o7b2ob2ob2o159b3o3b3o68b3o111b2o39bobo293bo$16bobo83bobo4bobo
7bo204b2o7b2o141b2o14bo124bo141bobo173b3o188b2o251bo161bo214b2o409b2o
283bo459bo223bo407b2o11bo100bobob2obobo224bo3b2o2b2o116bo38bo2bo4bo
118bo167bobo6bobo46b2o$16bo94bo123b2o80b3o4bobo6bobo139bobo281bo175bo
191b2o261b2o138bo89b2o133bo411b2o282b2o600bo32bo49bo521bo8bo223bobobob
o2b2o155bobo4bo120bo10b3o154b2o7b2o46bobo2bo12b2o$11b2o221bobo82bo4bo
8bo143bo125b2o331bo189bo262b2o138b2o89b2o541b3o285bobo474b2o123bo32bo
49bo266bo248bo6b8o225b2ob2o157b2ob2o5b3o116b3o176bo48bo2bobo10bo2bo3bo
$10b2o224bo81bo180b2o101bobo786bo137bobo84b2o444bo102bo762bobo122bo32b
o302b2o11bobo246bobo7bo2bo229bo160bo5b2o131bo5bo211b2obo12b2o3bo153bo
256bo71bo$12bo485b2o104bo16bo993bobo443b2o101bo763bo459bobo10bo2bo247b
o241bo160bo5b2o131bo5bo212bo19b3o145bo4bo258bo15bo53bo$231bo90b2o176bo
119b2o120b3o872bo2b2o439bobo989bo79b2o252bo5bo8b2o4bo483b2ob2o157b2ob
2o135bo5bo212bo166bo5b3o254b3o14bo54b3o$231b2o88b2o297bobo121bo875b2o
1431bo28bo50bobo252b6o13bo244bo173b3o3b3o56bobobobo2b2o155bobo352b2obo
12b2o150b3o277b3o49b2o89bo$230bobo90bo419bo771bo1537bo26bobo2b2o47bo4b
o267b3o241bobo7bo2bo152b3o72bo3b2o2b2o116bo38bo2bo301bo48bo2bobo10bo2b
o420bobo58b2o90bo10bo$119b3o1393b2o1564b2ob2o52b2o248b6o258bo6b8o152bo
10bo72b3o111b2o39bobo292b2o7b2o46bobo2bo12b2o421b2o149b3o8bobo$119bo
1394bobo658b2o909bo51bobo246bo5bo8b2o254bo8bo140bo9bo11bo72bo113bobo
39bo292bobo6bobo46b2o277bo162bo161b2o$120bo2053bo2bo1210bobo10bo2bo
253bobob2obobo140b2o20bo73bo91bo197bo5bo153bo333bo220b2o115bo$2175b2o
582bo629b2o11bobo245b2o7b2ob2ob2o140bobo74b2o110b2o9bo186bo5bo487b3o
217bobo114bo31b2o19bo$2041b3o127b3o441bo144bo642bo245bobo232b2o109bobo
9b2o185bo5bo380bo325bobo106bo8b3o28bo2bo17bo$2043bo129bo442b2o140b3o
375b3o512bo228b3o123bobo174b3o396bo98b2o3bo221bo3bo104bo38b2obo2b2o13b
3o$2042bo129bo442b2o145b2o372bo525b3o217bo302bo10b3o381b3o4bo94bo2bobo
221b4o102b3o41bobo2bo9b2o$2762b2o373bo524bo218bo302bo400b2o93bo4b2o
372bobo2bo9b2o$2624bo669b2o3b2o362bo336b3o366b2o215b2o92b2o8b2o217b4o
143b2obo2b2o$2622b2o669b2o4bobo700bo366bobo305bo3bo7bobo216bo3bo143bo
2bo$2608bo14b2o655b2o13bo3bo93b2o411bo194bo194bo172bo307b4o9bo4bo211bo
bo147b2o$2609bo671b2o94bo14bo2bo410b2o387b2o497bo213bobo104b3o$2607b3o
670bo96bo15b2o410bobo11bo362b3o10bobo479b4o9bo3b3o212b2o106bo$3275b3o
99bo441b2o190b2o171bo492bo3bo7bobo324bo8b3o$2623bobo651bo119b3o418bobo
189b2o171bo496b2o8b2o333bo$2623b2o651bo22bo79b3o15bo614bo359b2o306bo4b
2o165bo59b2o112bo$2624bo673b2o79bo18bo973bobo307bo2bobo163b2o59b2o100b
2o$2767b2o529bobo79bo991bo308b2o3bo164bobo61b3o84b3o8bobo$2767bobo
1816b2o272b3o52bo88bo10bo$2769bo1430b2o383b2o256b3o14bo55bo86bo$2768bo
3bo771b2o11bo642bobo377b3o4bo257bo15bo$2768b5o770bobo10b2o642bo381bo
261bo$3545bo10bobo1022bo$2768b5o$2768bo3bo1402b2o$2769bo1404bobo$2767b
obo770b3o23b3o607bo661b2o$2767b2o773bo23bo1272b2o$3541bo25bo1012b3o
255bo$4580bo5b3o$4581bo4bo$4587bo3$2624bo$2623b2o$2623bobo$2762b2o$
2607b3o152b2o$2609bo148b3o$2608bo14b2o135bo$2622b2o135bo$2624bo2$2615b
2o$2616b2o$2615bo7$4603b3o$4603bo$4604bo23$2668b3o$2668bo$2669bo58$
4890bo$4889bo$4889b3o9$2447bo2368bo$2445b2o2367bobo$2446b2o2367b2o10$
550bo1777bobo$548bobo117bo1660b2o$549b2o117bobo1658bo$191bobo474b2o$
192b2o$192bo577bo4599bo$541bo228bobo4418bo176bobo$108bo433bo21bo205b2o
4419bobo175b2o$20bo88bo229bo200b3o20bo1376bo3250b2o$19bo87b3o105bo124b
2o221b3o86bo1288bo3330bobo14bo$19b3o192bo90bo33b2o90bobo113bobo100bobo
111bo946bo227b3o3061bo269b2o12b2o203bobo$115bo98b3o87bo126b2o115b2o
101b2o5bo106bo946b2o102bo3187bo29bo146bo91bo14b2o203b2o$106bo7bo189b3o
125bo115bo110b2o2bobo97b3o945b2o15bo85bobo274bobo2908b3o27b2o145bobo
311bo$10bo94bo8b3o89bo92bobo356b2o3b2o114bo947bo87b2o274b2o100bo2839b
2o145b2o6bo$8bobo94b3o88bo8bo94b2o124bo237bo112b2o814bo133b3o202bo159b
o98b2o2894bo82bobo13b2o210bobo$9b2o186b2o6b3o92bo123bobo29b3o311bobo5b
2o811bobo339bo258b2o2892bo84b2o14b2o209b2o$196b2o149b2o76b2o343b2o680b
obo137b2o337b3o3152b3o82bo227bo153bo$16bobo323bo3bobo82bo339bo401bo
278b2o64bo2995bo513bo245bo107bobo166bobo2bo$16b2o85b2o235bobo3bo84bobo
740bo139bo138bo65bo195bobo282bo2514bo512bobo49bo194b2o8bo97b2o7bo159b
2o2bo25bo$11b2o4bo85b2o236b2o2b2o84b2o739b3o133bo5bobo110bobo87b3o77bo
5bo112b2o221bo58bobo77bo105bo2328b3o512b2o49bobob2o189b2o8bo98bo8bobo
88bobo21bo48bo24bo$11b2o448bo846bobo3b2o112b2o7bobo81b2o75b2o2bo113bo
117bobo103b2o57b2o78bo97bo4b2o2895bobob2o199b3o105b2o90b2o7bo12bo74b3o
$103b2o356bobo844b2o118bo9b2o11bo69b2o67bobo4b2o3b3o216bo12b2o103b2o7b
o53bo74b3o11bo83bobo5b2o2234bo660bo403bo9bo11b3o44b2o11b2o$11b2o90b2o
352b2o2b2o975bo11bo140b2o226bobo13bo110b2o54bo79b2ob2o3bo85b2o2240bo
80bobo990b3o58b2o8b2o2bo$11b2o4bo282bo40b2o2b2o110b2o991b3o138bo228b2o
4bo120b2o53bo79b2ob2o3b3o2230bobo92b3o79b2o519bo370b2o168bob3o11b3o$
16b2o282b2o38bobo3bo828bo349b2o297b2o354bo2143b2o89b2o83bo335bo183bo
56b2o4b2o187b2o118b2o168bo$16bobo280bobo40bo3bobo705bo121b2o129bo216bo
bo197bo100b2o352bo2144bo90b2o420bo14bo167b3o54bo2b2o2bo187b2o289b2o$
105b3o88b2o106b3o40b2o705bobo118b2o130bobo214b2o196b2o221b2o65b2o165b
3o1879bo773b3o14bobo223b2ob2o309b2o171bo$9b2o94bo8b3o80b2o6b3o96bo126b
2o24b2o595b2o251b2o213b2o199b2o220b2o59b2o5bo1971bo74bo112bo31bo307bob
o336b2o225bo192b2o118b2o171bo$8bobo95bo7bo81bo8bo99bo125bobo23b2o2b2o
201bo631bo223bo2bo482bo3b3o1972bobo72b3o111b2o27b2o126bo182b2o563bo
192b2o289b2o$10bo104bo90bo224bo29bobo194b2o3b2o511bo120b2o221b3o422b2o
60b4o71b2ob2o3b3o1892b2o70b2o114b2o29b2o123bobo2bo179bo173bo389b2ob2o
479bo$425b2o34bo86bo110b2o2bobo389b2o120bo12bobo103b2o425b2o220b2o135b
2ob2o3bo289bo1675bo2bo270b2o2bobo70bo281b2o153bo232bo2b2o2bo307b2o168b
ob3o11b3o$107b3o104b3o207bobo121b2o101b2o5bo325bo69bobo118b3o12b2o328b
3o68bo130b2o283b4o66b3o11bo289bo1675b2o275b2o72bo279b2o152b2o233b2o4b
2o298bo8bobo97b3o58b2o8b2o2bo$19b3o87bo104bo124b2o85bo120bobo100bobo
236bo52bo40bo12bo58bo135bo328bo2bo67b2o131bo281bo3b3o66bo299b3o1052bo
971b3o113bo172bo140bobo4b2o439b3o96b2o7bo91bo9bo11b3o44b2o11b2o$19bo
88bo106bo124b2o221b3o86bo118bo117bobo49bobo39b3o9bobo524b2o66bobo4b2o
3b3o342b2o57b2o5bo64bo304bobo828bo220bo555bobo417bo110bobo92bo77bobo
139b2o435b2o8bo97bobo99b2o7bo12bo$20bo318bo92bo107b3o20bo206b2o117b2o
49bo2bo50bo2bo526b2o72b2o2bo343b2o64b2o165b3o201b2o687bobo121bobo13bob
o218b3o533bobo19b2o331bobo83bobo109b2o92bo78b2o140bo182b3o57bo90bo103b
2o8bo113bo83bobo21bo48bo$431b2o23b3o83bo21bo205bobo5b2o148bo12b2o52b2o
57b2ob2o465bobo70bo5bo335b2o7bo230bo204bo587bo100b2o122b2o14b2o755b2o
20bo332b2o82bo2bo203b3o222bo178bo58bobob2o86b2o14b2o85bo123b2o152b2o2b
o$431bobo107bo235b2o110bo36bobo53b2o71bobobo465b2o413b2o238bo792bo99bo
123bo256bo515bo214bo139bo84b2o201b2o71bo153bo180bo57bobob2o85bobo13b2o
210bobo150bobo2bo$192bo586bo109bo37b2o53b2o60bo2b3o5bo4bo655bo222bo62b
o960bo7b3o134bobo342bo415bobo314bo235b2o189b2o72bo152b3o237bo99b2o6bo
364bo$192b2o569b3o123bo152bobo11b4o532b2o122b2o284bo89bo83b2o207bo575b
obo144b2o343b3o185bo220bobo4b2o313b3o7bo226bobo261b3o5bo485bobo$191bob
o474b2o95bo161b2o53b2o59b2o476b2o68bobo121bobo107b2o175bo88b2o82bobo5b
2o201bo575b2o145bo529bobo207bo12b2o6bo323bobo144b2o76b3o269bobo392b3o
92bo$549b2o117bobo93bo161bobo53b2o72b4o461b2o70bo230b2o105b3o65b2o90bo
bo83bo4b2o200b3o948bo11bo95bo110bo9bobo73b2o13bo194bo12bo183b2o3bo141b
2o145b2o75bo3bo191bo77b2o334b2o56bo$548bobo117bo259bo12b2o52b2o50b3o5b
o4bo456b3o300b2o4bo106bo64bobo183bo1148bobo9b2o94bobo108bobo9b2o77bo
10bo193b3o122bobo70bo2bobobo364b4o187b2o2bobo412bobo56bo185bo14b2o203b
o$550bo389bo2bo50bo2bo57bobobo459bo299bobo13bo96bo67bo760bo455bo14bo
101b2o10b2o94b2o109b2o10bo77bo10b3o317b2o70b2obob2o288b2o265bo2bo2bo
413bo162b2o80b2o12b2o204b2o$770b2o116b2o51bobo39b3o9bobo56b2ob2o391b3o
65bo208b3o91bo12b2o925bobo208bo13bobo226bobo6bobo5bobo217bobo188bo7b2o
321bo74bo291b2o75b4o187b2ob2o78b2o497bobo78bobo14bo79b2o121bobo$770bob
o114bo2bo51bo40bo12bo441bo11bo276bo106bobo924b2o210b2o11b2o228b2o6b2o
6b2o104bobo111b2o197b2o396bo368bo3bo189bo78bobo497bo176bobo$770bo117bo
bo93bo443bo9b2o11bo259b2o15bo463b2o199b2o359bo217b2o13bo113bo123bo112b
2o113bo592b2obob2o366b3o100b2o88bo72b3o5bo676bo$889bo165bo135bo104b2o
130b2o7bobo272b2o225b3o249b2o200b2o357b2o348b2o235bo517bo6bo181bo2bobo
bo271bo95bobo98bobo84b2ob2o73bo345b2o$1054bobo118b3o12b2o105b2o128bobo
281bo229bo251bo559b2o79bo266b2o2bo749bobo4b2o183b2o3bo272b2o95b2o98bo
85bo2bo2bo71bo315b3o27b2o$1055b2o120bo12bobo103bo156bo486bo452b2o437bo
bo270bobo456bo291b2o5b2o459bobo83b2o197b2o2bobo388bo29bo$1176bo130b2o
143b2o939b2o178bo172bo86b2o254b2o14b2o224b2o5b2o224bobo80b2o83bo676bo
2bo201bo80b2o143b3o160bo$1307bobo142bobo1118bobo171bo15bo72b2o251b2o
240b2o5b2o220bo3b2o80bo2bo83bo676bobo101bo180bobo142bo$1054b2o251bo
507b2o756b2o170b3o15bobo70b2o723bo85b2o82b3o600b2o75bo102b2o179bo145bo
$1054bobo118b2o637bobo946b2o324b2o240b2o5b2o219b3o90b2o81b2o593b2o2bob
o69b3o104bobo97b2o73b2o147bo$1054bo121b2o638bo750b2o520b2o14b2o224b2o
5b2o311bobo80bo2bo591bobo2bo73bo204b2o74b2o146b2o$1175bo1208b3o180b2o
2b2o532bobo544bo82b2o237bo219b2o135bo75bo208b3o69bo147bobo4b2o$1308b2o
1076bo184b2o266bo261b2o2bo119bo227bo112b2o78bo2b3o88b2o232b2o218bobo
303bo115bo225b2o$1308bobo3b2o1069bo452bobo261b2o112b2o6b2o6b2o105bo
112b2o112b2o78b4o89bobo231bobo81b2o125b3o7bo305b2o115bo226bo$1308bo5bo
bo1521bob3o258bo113bobo6bobo5bobo103b2o112bobo285bo315bo2bo126bo137bo
174bobo$1314bo1263b2o259bo3bo373bo14bo105bobo101b2o122b2o78b4o84bo2b3o
317b2o126bo138b2o$1172b3o1209bo193b2o260b4o597bobo122b2o78bo2b3o82b4o
322b3o260bobo89b2o435b2o$1174bo1208b2o949b2o10b2o95bo208bo407bo354b2o
96b3o319b3o14bobo$1173bo1209bobo454b4o489bobo9b2o304bobo80b4o232bo90bo
356b3o94bo321bo14bo$2379b3o457bo3bo491bo11bo105b3o103b3o90b2o80bo2b3o
230b2o20bo425bo95bo321bo$2381bo456bob3o266bo343bo107bo85b2o91bo228bobo
19b2o426bo$2380bo457bobo267b2o344bo105bo3b2o80bo2bo89bobo249bobo212bo$
2839bo132b2o13bo120bobo102b2o349bobo80b2o91b2o463b2o$2973b2o11b2o224bo
bo218b3o128bo170b2o119b2o5b2o340bobo$2972bo13bobo225bo220bo298bo2bo
117bobo4b2o$3434bo300b2o120bo6bo120b2o$2836b2o893b3o251bobo$2763b2o71b
2o813b2o80bo251bo$2745b3o15bobo67b2o127b2o679bo7b2o79bo$2747bo15bo68bo
bo126bobo589b2o10bo77bo10b3o$2746bo87bo128bo7b3o578bobo9b2o77bo10bo
193b3o$2582b2o389bo580bo9bobo73b2o13bo194bo12bo$2583bo169b2o217bo666bo
bo207bo12b2o6bo$2576b2o4bo169b2o887bo220bobo4b2o$2576bo2bobo172bo1114b
obo$2577b4o180b2o$2761bobo$2577b4o180bo$2576bo2bobo$2576b2o4bo$2583bo$
2582b2o8$2329bo$2329b2o$2328bobo2$4815b2o$4814bobo$4816bo$2578b2o$
2578b2o3$2571b2o$2446b2o119b2o2b2o$2445b2o120b2o$2447bo$2573b2o2314b3o
$2573bobo2313bo$2573bo2316bo21$7747bo$7745bobo$7746b2o8$8135bobo$8136b
2o$8136bo5$9296bo$8280bo1013bobo$6418bo1749bo109b2o1015b2o$6417bo1749b
o111b2o$6417b3o1747b3o$7937bo1356b2o$7936bo1356bobo$7936b3o1354b2o$
7929b3o20bo$7951bo86bo102bo125bo565bobo55bo$7934bo16b3o82bobo103b2o
124bo564b2o54bobo$7933bobo101b2o26bobo73b2o123b3o457bo107bo55b2o$7932b
o2bo11b3o115b2o210bo163bo71bo211bo178bo$7933b2o131bo209bo147bo16bobo
68bo212b3o165bo8bobo95bobo20bo75bo$6619bo1656b3o146bo15b2o69b3o378bo9b
2o96b2o18b2o75bo$6617bobo587bo1142bo72b3o83b2o209bo102bo69bo107bo20b2o
74b3o$6618b2o588bo379bo760bo159b2o208bo104bo81b2o9bo385b2o$7206b3o378b
o199bobo359bo5bobo114bo76b3o367b3o100b3o81b2o7bobo178bo188bo17b2o$
6818bo397bo42bo3b2o85bo236b3o198b2o269bo90b2o3b2o109bo6bo72b2o488bo79b
2o3bo173bobo185bobo$6816b2o399bo39bobo2bobo85bobo435bo13bo146bo108bo
90b2o5bo107bobo4b3o64b2obo4b2o367bo120bobo81bobo160bo11bobo186b2o$
6817b2o396b3o40b2o3bo86b2o67bo382bobo143bo109b3o204b2o70bob2obo370bobo
120b2o83bo159bobo12bo202bo$5057bo2281bo80bo146bo234b2o144b3o385bo5bo
371b2o366b2o107bo105bobo$5056bo2161bo121bo77b3o147bo375b2o105bo285b5o
847bobo106b2o3bo$5056b3o2060bo89bo7bo42b2o76b3o81b2o142b3o375bobo105bo
220b2o164bo55bo409b2o111bo66b2o103b2o111bo5b2o$7117b2o91bo6b3o36b2o2b
2o160b2o521bobo102b3o220b2o62b5o96bo55bobo20bo56bo80bo11bo237bobo9b3o
89bo8bobo64b2o216bo4bo2bo$6608bo10bo486bo11b2o88b3o45b2o387bo147bobo9b
o134b2o4bo389bo5bo85b2o8b3o52bo2bo19bo56bobo9bo67bobo11bobo33b2o9b2o
106bo79bo4bo5b2o94bobo6b2o171bo115bob2obo$6609bo10bo6bo103bo85bo289b2o
154b2o93bo200bo83b3o148b2o7b2o135bobo330b2o62bob2obo85bobo62b2obob2o
16b3o53bo2bo8bo69b2o11b2o34b2o9b2o107b2o77b5o6b2o94b2o70b2o107bo116bo
4bo11b2o3bo$6607b3o8b3o6bobo102b2o81b2o289b2o155bo2bo89b2o202bo5bo75bo
151bo9b2o136bo107b3o220b2o63b2obo4b2o81bo64bobobobob2o9b2o57b2obob2o5b
3o235b2o257bobo9b2o95b3o6b2o2b2o103b4o12b2o2bo$6627b2o102b2o83b2o446b
3o90b2o199b3o3b2o76b2o6b2o289bo110bo293b2o146bobobobob2o9b2o58bobobobo
b2o71b2o11b2o34b2o9b2o188bo173b2obo2bo8bobo103bo4bo123b3o$6195bo613bo
307bobo147b2o296b2o72bo4bo4bo2bo277bo2b3o5bobo2bo104bo97b2o5bo192b3o
141b2obob2o73bobobobob2o70bobo11bobo33b2o9b2o187bobo172b2obob2o9bo4bo
100b4o104b4o12b2o$6193bobo298b2o138bo105bo68bobo164bo52bo87b2o98b2o47b
o2bo165b2o202b5o6b2o276bobo11b5o203b2o3b2o108b2o82bo79bo63bo2bo75b2obo
b2o76bo11bo235bobo175bo16bo208bo4bo11b2o$6194b2o15bo281bo2bo4bo131bo
105bo55bo13b2o166bo49bobo3b2o83bo98b2o47b3o78bo83b2obobo82bo6bo126b3o
273b2o127b3o88bo5bobo106bobo4b3o76bo77bobo63bobo75bo2bo328bo104b2o70bo
16b3o99b4o103bob2obo$547bo2676bo2985bo283b2o4bo132b3o103b3o54bo178b3o
50b2o2bo2bo8b2o63bo236bo85bobo82bobo6bobo38b2o4b2o64b5o9bo288b5o111bo
207bo6bo154b2o8b3o54bo77bobo433bobo6b2o58b2obob2o9bo104bo4bo98bo4bo2bo
$548b2o2673bo1799bo26bo1159b3o184bo102b3o291b3o236bobo4b2obo2bo61bo
108b2o47b3o77b3o83bob2o82b2o6b2o39b2o4b2o64bo4bo9bo278b3o5bobo2bo112bo
212bo165bo135bo139b2o186b5o6b2o94bo8bobo57b2obo2bo8bobo94b3o6b2o2b2o
98bo5b2o$547b2o61bo2612b3o1798bo23b2o1348b2o327bo253bo52bo6bobobo62b3o
106b2o47bo2bo159b2obo209b2o297bo497bo273bobo106b2o78bo4bo5b2o103bo62bo
bo9b2o95bo107b2o3bo$609bo4412b3o24b2o1346b2o329b2o250bo59bo3bo222b2o
160b2obo85b2o6b2o39b2o4b2o67bo299bo772bo107b2o80bobo9b3o161b2o108bo
105bobo$609b3o5283bo598b2o231b2o6bo235bo8b3o58b3o220b3o79b3o83bob2o81b
obo6bobo38b2o4b2o68b3o294bobo333b3o543bo82b2o392bo$3844bo2051b2o181bo
18bo168bo134bo91b2o240bo234bobo134b3o152bo2bo79bo85bobo84bo6bo118bo
294b2o4bo194b2o133bo442b3o363b2o103b2o$1699bo2143bo2051b2o99bo83b2o15b
o97bo10bo61bo131b2o99b2o231b3o165bo5bo62b2o68b3o64bo154b2o82bo83b2obob
o508bobo118bo75b2o133bo441bo365b2o102bobo$1064bo632bobo180bobo772bo
1187b3o1182bo856bobo104bo2bo83b2o16b3o93bobo9bo60b3o132b2o5bo92b2o8bo
228b2o158bobo5bobo129bo3bo64bo98b3o45b2o177b2o128b2o377bobo118b2o74bo
124b3o240b2o209bo200bo269bo111b2o$1063bo205bo428b2o181b2o770bobo1184b
2o1187bo683bo13bo158b2o102b2o3b3o93bo102b2o9b3o62b3o134bo102bobob2o
224b2o159b2o5b2o124bo6bobobo72bo91bo6b3o36b2o2b2o296b3o3b2o378b2o91b2o
26bobo200bo240b2o409bobo380b2o$1063b3o204bo422bo187bo772b2o1184b2o424b
o606bo153b3o681bobo13bobo156bo104b2o98bobo186b2o125b3o100bobobobo451b
2o3b2o58bobo4b2obo2bo70b2o90bo7bo42b2o95b2o201bo5bo381b3o85bobo228bo
244b3o210b3o108b2o78b2o3bo174bo$1268b3o423b2o390bo1632bo544b2o605bobo
26bo811b2o13b2o362b2o186bobo229bo3bo224b2o159b2o5b2o58b2o3b2o53b2o2bo
2bo8b2o71bobo98bo137b2o201bo388bo89bo384b3o86bo212bo110bobo67b2o7bobo
83bo20b2o71bobo$1693b2o304bobo85b2o1629bo546b2o435bo169b2o26bobo1183bo
192bo123bo108b3o225b2o158bobo5bobo116bobo3b2o323bo590bo475bo15b2o70bo
212bo109bo69b2o9bo83b2o18b2o72bobo$180bo538bo537bo516bo100bo15bo107b2o
85b2o4bo1625b3o515bo260bo202bobo197b2o1185b2o189b2o124bo329b3o165bo5bo
59b2o3b2o54bo76b2o107b3o40b2o3bo903b3o254bo16bobo378b3o68bo106bobo20bo
72bo$163bo14bobo539b2o536b2o137bobo298bo73bobo12bo5bobo80bo12b2o92bobo
14bo90bo2145b2o258bobo53bo147b2o194bo472bo362bo232bobo117b2o190bo123b
3o107b3o221bo231b2o3b2o132b2o108bo39bobo2bobo157b2o142b3o225bo9b2o361b
o273bo382bo68bo9b2o$164b2o6bo6b2o538b2o536b2o138b2o297b2o75b2o12bo5b2o
79b3o13b2o92b2o105b3o561bo1580b2o18bo240b2o55bo340b2o471bobo18bobo231b
o107b2o69bo3b2o91bo67b2o306bo3bo231bo3bo211b2o6bo370bo11b2o96bo42bo3b
2o73b3o81b2o144bo225b2o7b2o363bo654bo69bo8bobo$14bo148b2o8b2o1223bo
287bo10b2o78b2o8bo6bo84bo104bo671b2o1597bo296b3o341b2o471b2o18b2o230b
2o109b2o66bobo2bo2bo91b2o65bo11bobo293b4o231bobobobo211b2o64b3o320b2o
87b3o131bo77b3o146bo225bobo9bo473b2o623bo$13bo158b2o1213bo15bo283bo88b
o2bo100bo204bo96bo472b2o1598b3o94bo123bo12bo67b2o216bo614bo231b2o101bo
75b2o3b2o91b2o3bo75b2o528bobob2o211bo68bo174b2o146bo88bo130bo80bo857b
2o610b2o$13b3o1372bo14bobo148bo119bobo8b3o89b2o4b3o3b3o86b3o199bobo2bo
bo95bo11bo157bo1997bo125bo12b2o64bo2bo145bo68bo104bo290bobo550b2o179bo
bo73bo294b4o123b3o96b2o8bo283bo13b2o160bobo233bo142b2o67bo513b2o345bo
608bobo401b2o$733bo536bobo113b3o14b2o150b2o118b2o313bobo88b2o2b2o94b3o
9b2o158bobo608bobo1081bobo300b3o121b3o11b2o66b2o146bobo3bo62b3o100bobo
291b2o278bo272b2o86b2o90b2o369bo3bo124bo96b2o236b3o67bobo159bo8b3o367b
obo579bo2bo11b3o884bo56bo401bobo$732bo537b2o120bo161b2o119bo111bo202b
2o89bo112b2o60bo96b2o609b2o1083b2o297b2o345bo9b2o3bo167b2o291bo83bo
194bo356b2o2bo2bo463bo124bo90b2o243bo69bo170bo369bo451b2o129bobo897b2o
459b2o$439bobo290b3o71bo348b2o6bo107bo120bobo60b2o111bo218bo203bo263bo
bo517bo148bobo38bo1083bo7bo23bobo164bo98bo2bo204bo140bo13b3o49bo8b2o
264bo215bobo194b3o354bo2bo2bo464b2o214b2o137b3o104bo75b2o163bo820bobo
129bo16b3o879bobo$439b2o364bo210bo138b2o5bo229b2o61bobob2o107bobo204b
2o10bo196bo271bo6bo512b2o147b2o907b2o219bobo10bo12b2o163bobo99b2o205bo
7b2o129b3o64bobo7b2o265b2o147bobo64b2o357bo194b2ob2o81b3o189b2o191bo
127b3o223bo181b2o971bo13bo148bo184bo$429bobo8bo283bo80b3o93bo115b2o12b
o130b3o292bobobo3bo4bo85bo6bo4b2o203b3obo207bo277bobo75bo11bo101bo319b
2o148bo908bobo219b2o9bo14bo164b2o306bo8bo196b2o274b2o3bo144b2o68bo111b
o77b2o156bo6bo196bo86bo80b2o5b2o101b2o190bobo125bo226bo96b2o84bo157b3o
810b2o139b3o20bo183b2o1157b2o$182bo247b2o148bobo142bo76b2o98bo113b2o
14bo228b2o5b2o187bo3bo2bobo2bo87bo3b2o209bo5bo204b3o273bo3b2o77b2o9bob
o86bo11bo1380bo3bo2bo224b3o183bo10bobo77b2o139bo76bo321bo157bobo143bo
68bo112b2o75b2o157bo5b3o194bo85bo81b2o5b2o100bo193b2o119b2o5bo91b3o
229b2o243bo809bobo146b3o196bobo1156bobo$84bo92bo3bo248bo149b2o141b3o
76b2o96b3o127b3o228b2o5b2o188b3o3b2o3b3o83b3o4b2o208b6o405bobo73bo81b
2o10b2o88bo10b3o1379b7o408b2o11b2o77bobo137bobo72b2o2b2o197b4o120bo
156b2o213bo111b2o7bo72b3o6b2o142b3o201b2ob2o278b2o177b3o127b2o92b2o4bo
126b2o102bo244bo959bo1359bo$85b2o91bo2b3o94bo302bo556b2ob2o1041b2o73bo
181b3o99bo469bo971bo13bo104bo147b2o11bo78bo139b2o72bo4bo144b2o50bo3bo
118b3o279bo12bo197b2o81bobo345bo2bo2bo163b2o5b2o105bobo172b3o133bo90bo
2bo4bo105b3o8b3o6bobo1307bo$84b2o90b3o99bobo456b2o156bo138bo102bob2o2b
o117b2o5b2o188b3o3b2o306b6o406bo65b2obobo94bo186bo3b2o471bo821b7o140bo
bo13bobo52b2o11b2o33b2o237bo5bo211b4o145b2o51b3o402b2o10bobo196b2o76b
2o2bo347b2o2bo2bo162b2o5b2o105bo176bo225b2o113bo10bo6bo$8bobo2bo82bo
181b2o457b2o157bo136bo103bo4bo118b2o5b2o187bo3bo2bobo305bo5bo302bo107b
o61bob2obo91b2o188bo3b2o379bo6bo81b3o820bo3bo2bo141b2o13b2o53b2o11b2o
34b2o236b7o552b3o129b3o130b2o11b2o67bo207bo4bo90bo8bo163b2o86b2o265b2o
16b3o167bo129b2o209bo10bo$9b2o2bobo80bobo176bo157bobo458b3o136b3o102b
4o315bobobo3bo307b3obo303b2o2b2o101bo62bo4bo92b2o185b3o240bo4bo136bobo
7bo84b2o816bobo722b4o145b2o51b3o136bo133bo210bobo208b5o88bobo8bobo160b
2o355b2o15bo96b2o9b3o190b2o417b2o$9bo3b2o81b2o90b2o83bobo42bobo113b2o
147bo153b2o66bo2b2o91b2o255b2o295bobob2o314b2o10bo195b3o94bobo2bobo
100b3o61b4o515bo8bo3bobo6bo128b2o5b3o83bobo816b2o148b2o13b2o53b2o11b2o
272b7o139b2o69bo4bo144b2o50bo3bo136bo131bo212b2o302b2o8b2o45b2o6b2o
108bo75b2o3b2o78bo192bo18bo94bobo9bo191bo418b2o$6bo84b2o95b2o84b2o43b
2o113bo148bobo151b2o62bo2bobo2bo91bobo234b4o15bobo111bo183b2o330bo197b
o99bo349bo12bo4bo88bo229b2o4b3o3b2o7bobo220bo966bobo13bobo52b2o11b2o
272bo5bo139b2o69b2o2b2o197b4o484b2o6bob2o195b5o146b2o6b2o115b2o66bobo
2bo2bo77b2o307bo10bo611bo$7bo83b2o226bo263b2o216b4ob3o93bo234bo4bo14b
2o111b2o120b2o291b3o99bo196bo267b4o180b2o11b2obo84bo3bo229b2o20b2o
1190bo13bo344bo217bo315b2o369b2o4b3obo195bo4bo89b2o8b2o169b2o69bo3b2o
77bobo92bo$5b3o180b2o139b2o5bo98bo140bo146b3o294b2o115bob2o2bo126bobo
119bobo160b3o4b2o123bo303bo99b3o157bo4bo178b2o11b2o2b3o83bo2b3o391bobo
1405bobo141b2o66bo8bo196b2o114bobo374bo4bo117b2o76b2o2bo89bobo8bobo44b
2o6b2o116bo161b2o83b2o$188b2o139b2o4bo99bobo137bobo147bo75b4ob3o93bo
117b2o116b2ob2o249bo164bo3b2o123bo10b2o78b2o4b3o3b3o86b3o109b2o99bo
159bob2obo279b3o396b2o563bo566b3o274b2o141b2o66bo7b2o129b3o64bobo7b2o
106bo374b5o117b2o81bobo89bo8bo46b2o6b2o279b2o81bobo$335b3o97b2o138bobo
146bo76bo2bobo2bo91bobo482b3o14b2o151bo6bo4b2o126b2o78bo2bo100bo109bob
o93b2o4bo157b2obobo93b2o585bo562bo556b2o9bo487bo140bo13b3o49bo8b2o596b
2o7bo72b3o6b2o433bo$91b2o182b2o299bo228bo2b2o91b2o117b2o366bo14bobo
162bobo127bo78b2o8bo6bo84bo207b2o170bo88b2o664bo484b3o553bobo10bo183b
2o94b2o345bo9b2o3bo190bo352b5o111b2o75b2o263b2o13b2o481b3o$91b2o83b3o
96b2o158b2o295b3o159b3o123b2o235b2o128bo15bo164bo204b2o12bo5b2o79b3o
13b2o194bo172bo90bo320bo341bobo1033bo7bo193b2o94bo2bo206b2o146bobo3bo
62b3o123b2o352bo4bo109bo77b2o262bobo13bobo480bo407b2o$96b2o80bo2b3o
145b2o104bobo294bo163bo361b2o138bo155b2o137b2o77bobo12bo5bobo80bo12b2o
93bo203b3o68bo3b2o271b3o130b2o339b2o2bobo1032b2o202bo94b2o134b2o70bo2b
o145bo68bo125bobo346b2o4b3obo453bo13bo466b2o15bo405bobo$5b3o88bobo78bo
3bo93b2o52b2o104bo297bo161bo361bo139b2o156b2o137b2o78bo100bo15bo92b2o
202bo74bobo75b2o10b2o93b2o2b3o83bo2b3o126b2o11bo253bo72bo5bo335bo695bo
bo196b2o102b3o129bobo71b2o216bo117b2o354b2o6bob2o189b3o151b3o586bobo
423bo$7bo88bo85bo92b2o1120bobo154bo138bo289bobo14bo188bo66bo6bo78b2o9b
obo93b2obo84bo3bo140b2o252bo74b5o337bo130bo24bobo734bobo102bo133bo66b
3o317b2o19bobo350b2o202bo155bo5b3o376b2o202bo$6bo77b2o243b2o103bo367b
2o96b3o130b3o232b3o427b2o299b2o183bo70bobo83bo11bo94bo4bo88bo139bobo
251b3o412b3o131bo17bo5b2o737bo103bo201bo316bobo19bo351bobo203bo153bo6b
o377b2o3b3o$9bo3b2o70b2o242b2o103b2o140bo225b2o98bo130bo236bo426bobo
181bo117bobo182b2o70bo415b2o337b5o339bo127b3o8bobo4b2o7bo329b2o711bo
147b2o170bo153b3o217bo365bo378bo2bo$9b2o2bobo68bo348bobo139bobo141b2o
84b3o93bo132bo234bo429bo181b2o300bobo350b3o132b2o337bo5bo337bobo138b2o
5b2o336b2o858bobo326bo360bo605bo$8bobo2bo561bobo142b2o83bo1074bobo470b
2o183bo3b2o129bo336b2o2bobo157bo179b2o139bo347b3o856bo325bo136b2o11b2o
189b2o18b2o$274b2o59b3o238bo142bo86bo223b3o1320bobo181bo3b2o470bobo
156b2o669bo411b3o217b3o11b2o675b2o10bobo76bo110bobo18bobo$273bobo53b2o
4bo247b2o431b2o14bo1320bo87b3o99bo227b2o241bo158b2o669bo410bo221bo12b
2o673bo12bo78bo112bo$172b2o101bo53b2o5bo93bo152bobo431b2o12bo1411bo10b
3o315b2o4b3o3b2o1450b2o18bo219bo12bo767bo364b2o$173b2o103b2o39bo110b2o
151bo432bo1177b2o246bo11bo316bo8bo3bobo135b2o1313b2o783b3o24b2o137bo
65b2o365b2o$172bo6b2o97bobo38b2o108bobo8bo1740b3o9b2o260bo323bo4bo136b
obo235bo1076bo260b2o525bo23b2o137b2o64bobo367bo$178bobo97bo39bobo118b
2o1742bo11bo727bo236bo9bo1094b2o230bobo523bo26bo136bobo65bo$180bo258bo
bo1740bo833bo141b3o10bo1092b2o231bo$581bo2433bobo151b3o3bo185b2o903bo
904bo$580b2o2073b2o359b2o157bobo183bobo1807b2o$13b3o564bobo2073b2o354b
3o160b2o185b2o1806bobo$13bo2641bo119b2o148bo88bo349b2o$14bo2761b2o147b
2o86bo350bo3bo4377b2o$2775bo148bobo438b4o4376bobo$7747bo$3365b4o316bo
2731b3o$2654b2o708bo3bo300bo14bo1371b3o1358bo$2653bobo708b2o301bobo14b
3o1369bo1361bo$2655bo706b2o304b2o1387bo$3361bobo$3361b2o132bo$3495b2o
5b2o$3483b3o8bobo4b2o7bo$3485bo17bo5b2o$3484bo24bobo169bo2bo$3679bobo
2bobo$3175b2o503b2o2b2o$3175bobo$3169b3o3bo178b2o143b3o$609b3o2546b3o
10bo182bobo142bo$609bo2550bo9bo184bo144bo$547b2o61bo2548bo191b3o$548b
2o2803bo$547bo2804bo$3173b2o$3172b2o$3174bo505b2o2b2o$3679bobo2bobo$
3681bo2bo6$3668b2o$3667bobo14b3o$3669bo14bo$3685bo30$3223b3o$3223bo$
3224bo10$8520bobo$8521b2o$8521bo2$3718b3o$3718bo$3719bo2$9241bo$9239bo
bo$9240b2o3$9242bo$9241bobo$9241bobo$9242bo$9148bo10bo67bo$9149b2o8bob
o63bobo$9148b2o9b2o65b2o$9023bo$9021b2o$9022b2o204bo$8629bo597bobo$
8628bo100bo339bo99bo57bobo72bo$8628b3o99bo337bo81bo16b2o59bo71bobo$
8625b2o101b3o21bo180bo77bo56b3o80b2o15b2o131b2o$7396bo1228b2o120bo2b2o
179bobo78b2o51b2o83b2o$7397bo1138bobo206b2o4b2o167bo11b2o77b2o52b2o
237b2o$7395b3o777bo361b2o19bobo185b2o95bo74bobo313b2o68b2o5b2o$8173bob
o361bo20b2o281bobo28bo46b2o14b2o297b2o5b2o65bobobo$8174b2o383bo282b2o
27bo63b2o301bobobo64bob2o$8401bo334bo115bo18b3o49b2o143b2o167bob2o66bo
4bo$7849bo550bo333bobo116bo6bo61bobo82bo60bo159b2o7bo4bo65b5o$7847b2o
342bo124bo13bo69b3o332b2o14bo99b3o6bobo59b2o81bobo4bo57bo97b2o58b2o8b
5o$7184bobo217bo443b2o342bo124b2o11bobo64b2o143bobo2bo203bobo106b2o67b
2o75b2o3bobob2o49b4obo96b2o138b5o$7185b2o27bo190b2o512bo260bo9b3o123b
2o7bobo2b2o6bo58bobo143b2o2bobo201b2o176bo82b2ob2o49bo4bo156b2o8b5o64b
o4bo$7185bo28bobo187b2o276bo235bo122bo139bo144b2o9bo60bo144bo3b2o382bo
135b4o97b2o54b2o2b2o7bo4bo64bob2o$7214b2o207bobo255bo236b3o119bo138b3o
12bo131bo10b3o51b2o236bo300b2o80b2ob2o151b2o53bobo11bob2o67bobobo$
7423b2o240bo15b3o232bo123b3o151bobo193bobo235bobo299bo3b2o70b2o3bobob
2o50b4o154bo12bobobo61b2o5b2o$7424bo241b2o247bobo276b2o194bo234b2o2bo
302bo2bo69bobo4bo53bo4bo162b2o5b2o61b2o$7665b2o249b2o105bobo361b2obo2b
o231bo6bo212b2o84b4o72bo58b4obo162b2o$7683bo340b2o73bo91bo195b2ob4o
232b7o212b2o223bo230b2o$7681b2o341bo73bo93bo738b4o133bo231bobo$4056bo
3625b2o356bo57b3o89b3o194b2ob4o232b7o212b2o85bo2bo132b2o232bo$4056bobo
1715b2o1150bo897bobo204bo6b2o7bobo337b2obo2bo231bo6bo212b2o83bo3b2o
214b2o76bo$4056b2o1716b2o1148bobo489bo245bobo159b2o206b2o5b2o6b2o36b2o
b2o300bo234b2o2bo300b2o79b2o138b2o15b2o57bobo$6925b2o487b2o93bo153b2o
48bo89bobo19bo205b2o15bo35bobob2o5b3o292bobo150bo3b2o79bobo300bo80b2o
136bo16b2o58bobo$7415b2o92bobo151bo50bo89b2o278bobo103b3o133bo10b3o51b
2o150b2o2bobo79bo299bo81bo53b2o102bo58bo$6945bo563b2o201b3o89bo5bo5bob
o266b2ob2o102bo133b2o9bo60bo143bobo2bo381b2o134b2o$5770bo1173bo327b2o
131bo100b2o208b3o89bobo5b2o270bo102bo124b2o7bobo2b2o6bo58bobo522b2o
144b3o$5769bobo1027bo144b3o325bo2bo130b2o98b2o36b2o176b2ob2o82b2o6bo
97bobobo168bo228b2o11bobo64b2o461b2o60bobo143bo157b2o$5769bobo1028b2o
397bo73b3o129b2o90b2o45bobob2o171bobobo188bob3obo164b2ob2o104b2o120bo
13bo69b3o448b3o6bobo60b2o97b2o45bo155bobo$5770bo1028b2o123bo273bo61bo
4b2o230bobob2o43bobo171bo5bo187bo5bo163bobo107bobo203bo158bo293bo6bo
74b2o84b2o125b2o9b2o66bo$5692bo12bo69b2o1148b2o7bo115b2o146b3o60bo2bo
2bo5b3o144b2o77bobo43bo4bob2o3bo163b6o188b5o111b2o15bo35bobob2o5b3o81b
3o12bo206bo135bo20b2o292bo18b3o45b2o14b2o86bo125b2o8bobo80bo$1868bo
3824bo9b2o70bobo1025bo120b2o9b2o64b2o46bo2bo156b2o48b3o3b2o6bo2bo143b
2o76bo4bob2o39b5ob2o2bo112b2o153b2o206b2o5b2o6b2o36b2ob2o91bo355b2o19b
obo281b2o27bo46bobo227bo10bo81bobo$1867bo3823b3o10b2o69bo491bobo533bo
130b2o16bobo45bo2bo6b2o38b3o142bo13b2o63b3o222b5ob2o49b3o110b2o50b6o
97b2o89b5o111bo6b2o7bobo130bo9b3o343bobo212b2o88bobo28bo47bo11b2o307bo
bo$1867b3o4397b2o462bo4b3o64bo148b2o47b3o6b2o184b2o222b2o124b5ob2o166b
o5bo187bo5bo119bo151bo558bobo89bo87bobo308bo$6268bo463b2o219bo98b3o
140b2o12b2o63b3o143b2o77b5ob2o38bo4bob2o115b2o50bobobo98b2o88bob3obo
103bo166bo543b2o14bo181bo$1444bo3998bo1027bo259b2o66b3o3b3o195b3o7b2o
36bo3bo146b3o4b2o54b2o6bo2bo221bo4bob2o39bobo120b2o51b2ob2o97b2o89bobo
bo104b2o599b2o107bobo$1128bo133bo180bo135bo3846bo15bo259bo313bo227bo
224b2o191bo16bo322bo3bo6b2o37b3o147bo61bo2bo5b3o129b2o92bobo42bobob2o
166b3o304bobo599b2o109bo503b2o$1129bo131bo181b3o128bo3bo3848b2o13b3o
256bo314bobo226b2o223b2o191b2o14bobo42b2o11b2o64bo199b3o12bo184bo61b2o
139b2o89bobob2o41b2o166b3o459b2o452b3o608bobo$1127b3o131b3o309bo4b3o
294bo162bo120bo3266b2o269bo3b3o312b2o3bo222b2o83bo332b2o15b2o43b2o11b
2o64bo213bo34b3o218b3o129bo91b2o215bo325b3o130bobo452bo612bo$1439bobo
131b3o52bo244b2o164bo118bo2733bo802bobo322bo308bobo207bo263bo199b3o11b
3o31bo3bo216bo2bo230b2o205bo95b2o6bo222bo134bo453bo116b2o$1440b2o185bo
118bobo125b2o161b3o59bobo56b3o2730bo541bo262b2o322b3o84bo221b2o208bobo
460bo3bo6b2o37b3o10b2o205b2o141b2o89b2o300bobo5b2o223bo703b2o4b2o$
1141bo298bo186b3o116b2o109bobo5bo68b2o156bobo4b2o54b2o2734b3o521bo15b
2o345bo236bobo89bobo216b2o131bo79b2o198b2o262b3o7b2o50b2o347b2o93b2o
293bo5bo5bobo928bo2b2o$1139b2o12bo280bobo134bo46bo5b2o121bo110b2o3b2o
68bo2bo109bo46b2o5bo53bo2bo2730b2o523bobo16b2o343bobo236b2o89b2o155bo
61b2o132b2o6bo68bo199b3obo308b3o15b3o345bo92bobo151bo140b2o922b3o21bo$
1136bo3b2o9b2o107bo174b2o132bobo3bo42b3o3b2o104bobo125bo5b2o67b4o108bo
47bo61b2o1345bobo1294bobo86b2o340bo183b2o22bobo336bobo72bo163bo72bo14b
2o157bo54b2o139b2o6bo68bobo197bo5bo70b2o186b3o6b2o37bo2bo15bo440bo153b
2o138bobo19bo904bo$1026bo110bo14b2o88bo16bo175bo6bo127b2o2bo46bo109b2o
312b3o48b3o1403b2o948bo347b2o426bobo18bo188b2o58b2o276b2ob2o70bobo234b
obo13b2o157b3o52bobob2o143b3o66bobo197b7o68b3obo184bo2bo6b2o38b2o17bo
592bobo159b2o903bo$1025bo109b3o105b2o14b3o180bobo129b3o41b3o110bo203b
2o212bo929bo288bobo112bobo17bo948bobo345bo428b2o16b2o190bo57bo2bo274bo
4bo70bobo235bobobo226bobo214bo272bo5bo184b2o821bobo89b2o$721bo303b3o
214b2o4bo99bo93b2o174bo4bo115bo184bo3b2o3bo2bo157bo5bo47bobo581bo344bo
bo112bo176b2o113b2o966b2o356bobo219bo24bobo188b2o248b2o276b4o70b2ob2o
236b2obo224bo3bo412b7o67b7o865b2o231bobo$719bobo312bobo212b2o98bo269b
5o116bo118b2o64bo2b2o3b3o158bo5bo48b2o386bobo18bo174bo344b2o113bo175bo
114bo699bo265bo353bo5b2o221bo23b2o163bobo331b2o291bo4bo106bo13bo114bo
3bo224b5o203b2o2bo148bo55bo5bo938b2o233bo$720b2o312b2o212b2o97b3o4bo4b
o378b3o118b2o62b3o168bo5bo50b2o2b2o3b3o375b2o16b2o173b3o125bo320bo10b
3o657bo332bobo263bo351b2o7bo219b3o24bo60bo103b2o330bo2bo147b2o68b4o70b
4o108bo11bo39b2o11b2o61b4o169b2o188bo73bo2bobo141bobo2bo57b3obo68b7o
607bo258bo234b3o$949bobo83bo316bobo4bobo257b5o304b2o3b3o215bo4bo277bo
103bo12bo5b2o298bobo321bo660bo7bo311bo21b2o188bo75bo352b2o315bo102bo
18bo308b2o3b2o148b2o67bo4bo179b3o11b3o37b2o11b2o234b2o54b5o130b2o72bob
obo142b2o2b3o57b2o69bo5bo606b2o240b2o251bo$724bobo222b2o72bo329b2o4b2o
81b2o174bo4bo235b2o67b2o3bo2bo159b3o53b4o9bo268bobo114bobo304b2o71bo
148bobo96b3o18bo63bo364bobo209bobo6b3o310bo18bo9bo172bobo4bobo508b2o3b
2o228b3o119b2o254b2o13bo38bobo223b2ob2o69b4o236b4o225bo3bo129b2o72b2ob
2o143bo135b3obo137bo469bobo240b2o251bo$213bo243bo84bo182b2o223bo72bobo
416bobo173b3o238b2o74b2o227bo269b2o115b2o177bo199bo149b2o104bo13bobo
61bobo228bobo132b2o146bobo60bobo3bo313b3o17bobo8bobo171b2o5b2o508bobo
2bobo231bo111bo6b2o252bo2bo11bobo39bo153b2o69bobo69bo4bo105b3o11b3o37b
2o11b2o61bo3bo168b2o55bobo203bo2bo283b2o137b2o450b2o259bo15b3o$211b2o
245bo82bo183bo69bo52bo174b2o322b2o86bo6bo178bo117b2o411b4o8b3o185bo79b
o109bobo78bo104bobo139bo59b3o148bo105b2o11b2o62b2o230b2o132bo147b2o62b
o3bobo316b3o13b2o9b2o172bo305bo211bo5bo230bobo108bobo56bo8b2o194b2o11b
o2bo193b2o69bobo70b2ob2o107bo11bo39b2o11b2o62b2obo168b2o53bobob2o202bo
2bo194b2o11b2o195b2o16bobo259b2o189b2o274bo$212b2o242b3o82b3o250bobo
47b2obobo96bobo398b2o86b2o137b3o41b3o3b2o113b2o192b4o214bo4bo193bobo
78bobo109b2o77bo106b2o140bo56bo111bo6b2o137b2o73b2o112bobo2bobo113bo
282bo66bo2bo340bo184bo294bobo212b5o152bo78b2o8bo101b2o54bobo8bo2bo206b
2o42b2o13bo208bo72bobo107bo13bo113bobobo224b2o207b2ob2o192b2o11b2o185b
2o9b2o248bo28bobo187bo277bo$460b2o175bo157bo47bobobobo97b2o5bo479bobo
133b2o2bo43bo5b2o307bo2bo159b3o52b2o2b2o3b3o188b2o78bobo109bo78b3o244b
3o55bobo111bo3bo2bo36b2o174b2o113b2o2b2o117bo347b2o341bo184bobo293b2o
124bo245bo86bobo157b2o9b3o203b3o43bo2bo11bobo280bobo234bobo13b2o220b2o
200bobobo392b2o7bo250b2o27bo$460b2o71bo101bobo205bo4bo98bo6bo66b2o324b
2o91bo128bobo3bo51b3o109b2o117bo5b2o68b2o213b2o193bo87bo187bo110bo144b
o51b2o109b3o3b3o30b2o3bo2bo289bo4bo117bobo503bo184bo184b2o421b2o85b5o
151b3o80b2o3bobo161b2o211bo2bo44b2o11bo2bo281bo236bo14b2o220b2o199bo2b
obo198b2o70bo120bo259bobo661b2o$272bo93bobo165b2o100b2o92bo60bo52b4o
106bo66b2o324b2o91b2o129bo55bo111b2o117b2o3b2o229bo5bo47bobo194bo273bo
bo108bo144bo202b2o3b3o172b2o239b2o135bobo5bo138bo219b2o358bo433b2o2b2o
81bo5bo164bo68bo2bo2bo162b2o6b3o202b3o59b2o537b2o154b3o63b2o196b2o2bo
143bo56b2o69bo1043b2o$15bo5bo52bo195bobo91bobobobo35b2ob2o122b2o95bo
100bo55b2obobo646bobo186bo228bobo5bo228bo5bo48bo193b3o274b2o104bo3b3o
142b3o40b2ob2o116b3o3b3o208b3obo375b2o5bo139bobo218b2o251b2o102bobo
174bo7bo254b2o80bobo2bobo162b2o70b5o170bo3bo260b3o448bo90bobo153bo65bo
bo343b2o2b3o49bo4b3o64bo140b3o902bo$16b2o2bo51bobo140bo55b2o92b2ob2o
36b2ob2o220b2o96b3o54bobobobo4b2o3bo41b4o106bo66b2o330b2o4b2o513b2o
218bo5bo515b2o106bobo191b2obobo117bo3bo2bo29b2o3b3o169bo5bo126b2o239bo
bo5bo5b3o137b2o470bo2bo103b2o86b2o87bo6bobo4bo329b2o3b2o160b2o2b2o245b
3o202b3o55bo2bo448b2o89bo156bo64bo207bo136bobo2bo264bo1576bo$15b2o3b3o
50b2o140bobo56b2o5b2o132bo43b2o2b2o165b2o7bo94b2o50bo4bo4bobo2bo41bo4b
o5b2o91bo6bo66b2o329bobo4bobo81b3o127b3o297b2o280b2o107bo14bo71bo264b
2o107b2o194bo2bo115bo6b2o29b2o3bo2bo168bo2b3o127b2o240b2o363bo172b2o
85b3o192bobo84b3o2bo3b2o3b2o111bo8bo5bo121b2o247b2o73b5o376bo2bo54b3o
448bobo435b2o81bobo141bo118b3o3b3o137bo449b3o1123b2o$76bo138b2o57b2o4b
o2bo129b2o45bo2bobo73bo99bobo92b2o51b4o5b2o3b3o39bobobobo3bo2bo90b2o5b
o392b3o4bo4bo83bo129bo4b3o157b3o134bo169b3o48b3o55bo2bo107bo12bo71bo
56b2o3bo457b2o49bo3bo159b2o169b3o371bo363bo171bo2bo282bo90b2o7b2o111b
2o4bobo3b2o118b2o2b2o321bo2bo2bo170b3o203b3o186b2o322b3o431b2o80bobo
858bo1122bobo$75bobo202bob2o85bo44b2o43bo5bo73bobo93b2o2b2o203b2obobo
4b2o3b2o85bobo400bo94bo129bo3bo161bo304bo47bo61b2o106b3o12b3o69b3o54bo
3bobo2bo199b4o250b2o50b3o463b2o379bo81b2o130bobo8b3o169b3o88b3o188b4o
90b2o120b2o6b2o4b2o118b2o250b2o72b2o3bobo168bo3bo205b2o52b3o128bobo
322bo432bo83bo265bo121b2o469bo$75bo2bo79bo9bo110b2obo85bo40b2o48b6o74b
2o94b2o97b2o51b4o5b2o50bo10bobo161b2o323bo230bo159bo306bo46b2o5bo57b3o
181b2o12b2o50b4ob4o198bo4bo460bo174b3o129b2o246b2o132b2o73b2o4bobo130b
2o4bobo263bo3bo6b2o99bo78bo349bo252b2o2b2o74bobo160b2o6b3o192b2o11bo2b
o51bo2bo129bo3b3o312b2o3bo222b2o293b2o262bo120bobo$76b2o10bo70bo7bo46b
2o7b2o53bo3bo85b3o38b2o123b2o198b2o50bo4bo4bobo60bo90bo72bobo705bo360b
obo4b2o57bo104b3o12b3o61b2o12b2o258b5o104b2o143b2o50b3o155b2o173bo2b3o
375b2o131b2o5bo68bo2bo3bo6b2o3bo119bo6b2o175b3o86b3o7b2o99bobo75bo2bo
603b2o66b2o8bo161b2o200bo2bo11bobo52b3o133bo314bobo226b2o292bobo261bo
122bo$12bo71b2o2b3o66b3o7b3o44b2o7b2o54b3o177b6o69b2o99b2o92b3o54bobob
obo4b2o53bo96b2o72bo707b2o304b3o59bobo57bo105bo12bo129b4ob4o131b2o174b
obo143b2o49bo3bo154bobo172bo5bo513bo70b6o7b2o2bo127bo175bo3bo6b2o91b3o
94b2o77b3o605bo65bobo166b2o9b3o192b2o13bo56b2o132bo146bo166bo227bo294b
o$10bobo71bo6bo276b3o38b2o48bo5bo169b2o2b2o90bo55b2obobo58bobo95bobo
83bo99b3o592bobo134b3o169bo224bo14bo62b2o12b2o49bo3bobo2bo131b2o66b5o
105bo3b3o188bo2bo331b3obo115bo4bo254b2o137b3o85b3o302b3o7b2o77b3o7b2o
2bo270b2o138b2o204b2o151b3o78bo166bobo8bo2bo263bo2bo199bo78bobo615b3o
329b2o$11b2o4b2o66b7o65b3o7b3o44b2o7b2o54b3o86bo40b2o49bo2bobo68b2o
103bobo88bo60bo60bo181b2o101bo14b2o593bo119bo170bo303b2o12b2o49b2o3bo
202bo4bo109bo187b2obobo334b2o116b2o2b2o117b2o135b2o208b6o7b2o395bo3bo
6b2o3bo174b3o93b2o7b2o128b2o204b2o153bo74b3o170bo8b2o192bo73bobo198bob
o77b2o417bo190b2o6bo332b2o$17b2o140bo7bo46b2o7b2o53bo3bo86bo44b2o43b2o
2b2o69b2o94b2o7bo394bobo99bo3b2o9b2o593b2o120bo481b3o195b2o66b4o111bo
143b3o40b2ob2o155b2o295bobo2bobo116bobo286b2o55bo2bo3bo6b2o307b3o7b2o
77b3o186bo2bo87b3o2bo3b2o3b2o250b2o86b3o148bo77bo112b2o204bo52bobo74bo
199bobo72bo422b2o191b2o6bo330bo$85b7o66bo9bo110b2obo130b2o124b2o90b2o
162bo229b3o111b2o12bo94b2o496bobo601bo197b2o325bo201bobo181b2o236bo
130bo157b2o55b2o4bobo313bo3bo6b2o188b2o77bo91bo6bobo4bo128b2o118b2o7bo
79bo227bo112bobo203b2o53b2o3b2o191b3o10b2o64bo72bobo421bobo189bo202b2o
15b2o$17b2o65bo6bo188bob2o131bo123bobo88bo163bobo228bo115bo107b2o1100b
o264b2o111b2o145bo51b2o149bo181b2o233bo133b2o219b2o315b3o84b3o110bobo
77b4o86bo7bo135b2o120bo5b2o80bo341bo6b2o171b2o22bobo56bo2bo192bo9b2o
138bobo817b2o14bobo$11b2o4b2o65b2o2b3o124b2o57b2o4bo2bo81b2ob2o36b2ob
2o128bo96b2o87bo69bo230bo215b2o4bo1367b2o110bobo138b3o55bobo334b2o230b
2o131bobo5bo5b3o142b2o465bo2bo109bo83bo357bobo427b2o171bobo16b2o64b2o
192bo12bo138bo817bo16bo$10bobo63b2o10bo126bobo56b2o5b2o81bobobobo35b2o
b2o49b2o173bobo87b2o516b2o14b3o1081b3o86bo187b2o108bo140bo56bo257b2o
76bobo228bobo138b2o5bo144b2o376b3o88b2o191bobo347bo422bo18bo172bo15b2o
$12bo62bo2bo136bo55b2o93bobo91b2o175bo86bobo400b3o112bo16bo1085bo85bob
o185bobo248bo59b3o254b2o11b2o62bo371bobo5bo521bo2bo280b2o348b2o229b3o
24bo164b2o208bo340b2o694b2o$75bobo192bobo183b3o74b2o594bo130bo1083bo
86bobo186bo309bo255bo13bobo166bo405b3o390b2o494b2o6b2o4b2o119bobo231bo
23b2o163bobo549b2o693b2o$76bo195bo185bo75b2o184b2o406bo1222b2o79bo189b
3o106b3o124b2o71bo247b3o18bo168b2o404bo586b2o301b2o4bobo3b2o353bo24bob
o188b2o176b2o420b2o621bo$73b2o382bo75bo185bobo1628bobo81b2o186bo110bo
123bobo321bo186bobo113bo284b2o5bo584bobo300bo8bo5bo549b2o16b2o178b2o
13b3o403b2o$72bobo646bo1630bo81bobo186bo108bo126bo320bo10b3o290b2o144b
o139b2o75b2o142bo371bo864bobo18bo176bo15bo$15b2o3b3o51bo137b2o327b3o
1890bo758bo289bobo17bo126b2o137bo76bo2bo134bo6b2o197bo184b2o853bo212bo
$16b2o2bo190b2o328bo719b3o1279bo648bo309b2o125bobo210bo3bobo135b2o4bob
o197bo184bobo$15bo5bo191bo328bo718bo1281b2o957bobo336bobo3bo135bobo8b
3o193bo184bo$1262bo1279bobo1238b2o56bobo6b3o141bo170b3o13b2o9b2o172bo
304b2o$2551b2o1230bobo56bo7bo144bo165b3o17bobo8bobo171b2o5b2o75bo219bo
bo$2551bobo1229bo67bo311bo18bo9bo172bobo4bobo75bo221bo$2538bo12bo5b2o
1445b2o156bo21b2o188bo75bo$2538b2o16b2o1445b2o179bobo265b2o$2537bobo
18bo1220bo225bo178bo267bobo$3778b2o672bo$3778bobo31$4056b2o$4056bobo$
4056bo77$5425bo$5426bo$5424b3o2$6059bo$6057bobo$6058b2o72bo$6130b2o$
6131b2o5$827bobo$828b2o3740bobo$828bo3742b2o$4571bo3$3029bo$2931bo96bo
$2932bo95b3o2823bo$2930b3o2919bobo16bo$5853b2o3bo10bobo$1498bobo63bobo
4290bobo10b2o$1152bo346b2o63b2o4291bo2bo$1153bo345bo65bo4292b2o$1151b
3o1123bobo256bo$1733bo543b2o6bo251b2o$1734b2o542bo5bo251b2o2886bo437bo
14bobo$1733b2o549b3o415bo2722bo435bobo8bo4b2o$2702bobo2718b3o434bo2bo
7bobo4bo$1521bo215bo534bo429b2o2283bo873b2o8bobo9b2o$1165bo56bo299b2o
160bo52bo533bo2714bo885bo9bo2bo781bobo20bo$1165bobo52bobo3b2o293b2o
159b2o53bo520bo12b3o1909bo204bo597b3o894b2o783b2o18b2o$1165b2o54b2o3b
2o299bo155b2o422bo60bo90b2o434bo1487bobo202bobo1485b3o789bo20b2o$1150b
o376bobo203b3o3b3o366bo58bo90b2o429bobo4bo1336bobo147b2o203b2o1505bo
892bo$1151bo58b2o315b2o294bo282b3o58b3o520b2o2b3o79bo1256b2o1859bo892b
o$1018bobo128b3o57bo2bo324bo199bo21bo63bobo337b3o242bo281bo80bo3bo
1258bo1433bobo423b3o387bo149bo352b3o169bo$1019b2o139bobo47b2o10b3o301b
o10bobo130bobo64bo19bobo8bo54b2o584b2o360bo3b3o807bo668bo1027bo185b2o
813bo150bobo94bo427bobo$1019bo140b2o45bo6bo147bo164bo9b2o132b2o64bo20b
2o7bobo51bo276bo309b2o295bobo63bo811bobo286bo137bo242bo1026b2o187bo
404b2o14b2o391b3o128bobo17b2o96bo12bo238bo109bo6bo57b2o$83bo1077bo45b
8o148b2o160b3o143bo95b2o52bo277bo455bobo147b2o877b2o285bo139b2o240b3o
189bo835b2o489bo100bo2bo12bo2bo387b2o133b2o113b3o10b2o238bobo102bobo2b
o6bo55b2o$84b2o278bo997b2o398b2o57bo275b3o455b2o149bo1164b3o136b2o238b
2o191bobo1015bo308b2o102b2o14b2o199bobo186b2o133bo128b2o137bo80bo18bo
2bo102b2o2b3o4b3o53b2o$83b2o213bobo63bobo91bo748b8o533bo12bo2bo654bobo
134bo216b2o811bo663b2o192b2o1013bobo304bobo2b2o310bo7b2o336bo110bo142b
obo78bobo17b2o103bo$299b2o13bo49b2o92bobo571bo174bo6bo533bo13b2o54bo
140bo459b2o352b2o588bo222bobo431bo134bo230bo49bo10b2o1011b2o159bo145b
2o102b2o211bo7bo335bo112bo141b2o65bo13b2o185b2o$87bo211bo13bo48bo95b2o
572bo177b2o10b3o131bobo315bo8bo64bo68bobo138bo138b2o3b2o70b2o244bo357b
o582b2o217bo5b2o433b2o133b2o221bo4b2o48bobo10b2o522bo293bobo352bo146bo
103b2o209b3o343b3o108b3o135bo70bobo5b2o16b2o175bo$87bo225b3o45bobo668b
o176bo2bo144b2o21bobo292b2o5bo74b2o59bobo137b3o135bo2bobo2bo70bo4b2o
301bo293bobo561bo20b2o214bobo439b2o133b2o223bo4b2o48b2o533bo111bo183b
2o6bo337bo7b3o149bo791bobo111bo70b2o5b2o16b2o176b3o$87bo273bobo532bo
313b2o145bo22b2o292b2o6b3o60bo11b2o60b2o276b2o3b2o8b2o59bo4bo2bo300bob
o72bo219b2o401bo161b2o235b2o664bo132b3o11bobo43bo531b3o108bo184bo8bo
335bobo3b2o135bobo13b2o648bobo141b2o110b3o82bo6b2o184bo3b2o$362bo532bo
132b3o3b3o327bo16bo148b2o212bobo74b2ob2o124bobo159b2o59b8o293bo7bo2bo
71bobo621b2o158b2o902b3o144b2o43bobo11b2o612bo15b3o189b3o335b2o4b2o
136b2o14b2o648b2o116bo25bo194bobo5b2o4b4o116b2o2b2o54bobo2bo$bo13bobo
65b3o3b3o788bo14b3o108bo154bo59b2o3b2o137b2o163b2o213bobo73bo3bo125b2o
55b2o3b2o11bo448bo7b2o67bo4b2o218b4o399b2o251bo6bo294b2o290bobo139bo6b
o71bo144bo43bobo7b2obobo613b2o687bo102b2o561bo118b2o139b2o78b2o10bo4bo
115bo4bo55b4o$2bo6bobo3b2o288bo143bo431b2o121bobo25bo127b2o58bobo3b2o
136b2o299b2o79b2o74b3o126bo55bo2bobo2bo8b2o86b2o59b8o292b3o75bobo222bo
4bo420bo229bobo4bo294bobo130bobo157b2o138bobo4b2o69b3obo188bo7bobobo
614b2o12bo531b4o242bo2bo678b2o140b2o90bobobo117b4o$3o6b2o5bo70bo218b2o
141bobo248bo179b2o123b2o25bo127bobo59bo307b2o133b2o81b2ob2o255b2o3b2o
10b2o70b2o3b2o8b2o59bo4bo2bo369bo2bo221b5o419b2o230bobo4b3o293bo131b2o
159bo139b2o5b2o67bo4bo135b2o58bo2bob2o627bo186b2o7b2o333bo3bo243bobo
913b3o178b4o$10bo76bo217b2o142b2o10bo239bo330bo116b3o378b2o216bo3bo69b
3o271bo2bobo2bo70bo4b2o291b3o67b2o7b2o647b2o230bo136bo13bo215b2o66bo
375b5o136b2o58b3o171bobo341bo105bo9bo186b2o7b2o333bobo244b2ob2o230bo
588b2o212b4o55bobo2bo$87bo372bo238b3o449bo212b2o299b2o82b3o69bo3bo271b
2o3b2o70b2o299bo7b2o58b2o231b5o787bobo11b2o215bobo818b2o342bo15bobo86b
o389bobo149b3o242bo4bo230bobo586b2o91b3o117bo4bo54bo3b2o$368bo75bo15b
3o228bobo313b2o141bo213b2o299b2o154b2ob2o648bo7bo2bo290bo4bo395bo5bo
175bo77b2o130b2o12b2o215bo65b2o376b5o136b2o58b3o172bo341b3o3bobo9b2o
87bo196b2o7b2o183b2o395b4o231b2o679bobobo116b2o2b2o52b3o$367bobo75b2o
245b2o307b2o4b2o156b2o582b3o67b2o187b2o3b2o10b2o393bo61bobo58b2o232b4o
394bobo3bobo8bo166bobo68b2o4bo2bo412b3o3b3o4bobo376bo4bo135b2o58bo2bob
2o516b2o11bo284b2o7b2o183bo5bobo142b3o1062b3o82b2o10bo4bo172bo$202bo
164bobo74b2o6bobo112bo124bo7bobo298b2o162bobo196b2o382bo3bo65bobo130bo
55bo2bobo2bo8b2o71b3o319b2o62bo59b2o7b2o622b2o4b2o8bobo152bo11b2o68bob
o5b2o350bo76bo378b3obo188bo7bobobo518bo95b3o3b3o392b2o142bobo146b2o96b
4o817bo81bobo5b2o4b4o173b2o$203b2o163bob2o80b2o102bobo8bobo32bo98b2o
462bo198b2o308b2o6b3o63b2ob2o64bobo131b2o55b2o3b2o11bo72bo319bobo129bo
2bo222b2o413b2o154bo80bo360b2o58bo4bobo4bo385bo144bo43bobo7b2obobo
1014bo142bo3bo144b2o95bo4bo232bo582bo83bo6b2o$202b2o166bobo80bo102b2o
4bo4b2o34bo6b2o89bo196bo133b2o641b2o5bo63b2o70bo131bobo145bo452bobo
223bobo566b3o77b2ob2o358b2o59bo4bobo4bo382b3o144b2o43bobo11b2o616bo
203b3o335b4o242b2ob2o220bobo8bo589b2o71b2o16b2o180b2o$368bo3bo184bo3bo
39b3o6bobo279bobo2bo133bo2bo490b3o146bo8bo61bobo804bo4b2o219bo647b2obo
2bo417bo4bobo4bo382bo132b3o11bobo43bo356bo273bo12b2o182bo8bo483b2o97bo
bo222b2o8b3o175b2o148bo261bobo70b2o16b2o113bo66b2o$97bo270b4o189b3o41b
3o4bo2b2o276b2o2b3o131bob2o329b2o161bo9b2o205bobo74bo136b3o202b3o92b2o
148b2o147bobo213b2o655b3o300bobo51bo64b3o3b3o519bo4b2o48b2o193bo163bo
274bo10bo2bo69b2o111b2o6bo336b2o4b2o140b2o96bo2bo222bo187bo149b2o260bo
80b2o123b2o2b3o4b3o56b2o$96bobo111bo95b2o5b2o296b2obobo276bo135b2o2bo
331b2o159bo10bobo205bo11b2o62bo136bo147b3o58b3o89b2o148b2o146bo215b2o
959b2o52bo379b2o5b2o202bo4b2o48bobo10b2o182bo162b3o283b3o68bo2bo110bob
o199bo143bobo3b2o239b2o412b3o145bobo341bobo17b2o102bobo2bo6bo58bobo$
96bo2bo97bo8bo2bo96b2o5b2o53b4o81bo157bo2bo413bo4bo330bo16bo155bo219b
2o62bo137bo148bo58bo90bo12b3o134bo297bo723b3o149b2o150bo51b3o63b3o3b3o
306bobo4b2o210bo49bo10b2o180b3o141bo16b3o285b2o71b3o312b2o144bo7b3o
646b3o2bo489bo18bo2bo107bo6bo57bo$97b3o98b2o4bobo2b3o156bo3bo79b2o102b
2o54b3o92b2o320b4o118b3o203bo22b2o145b2o142bo76bo74b2o282bo60bo102bo
433b2o719b2obo2bo149b2o266bo4bobo4bo165bo140bo6bo73b2o192b2o325bobo
299bo3bo2bo68b2o309bo5bobo151bo647bo4bo154b3o352bobo$197b2o6b2o99b2o5b
2o55bobo71b2o6bobo101b2o149b2o444bo203b2o21bobo144bobo141b2o75bo13b2o
59bobo446bo432bobo63bo654b2ob2o303b3o63bo49bo4bobo4bo164b2o221b2o191bo
bo326b2o299bo4bo2bo57bo8bo2bo308b2o159bo647b4o155bo110b2o243bo$97b3o
206b2o5b2o53bob2o73b2o165b3o414b4o119bo203bobo168bo142bobo75bo12bo2bo
58bo732bo214bo3b3o651bo152b2o150bo52b2o10bobo48bo4bobo4bo164bobo223b3o
189bo329bo192b2o103bo5b3o58bo2b3o3bo2bo128b2o176bobo409b2o556bo110b2o$
6b2o88bo3bo266bobo74bo15b3o93b2o53bo2bo92b2o319bo4bo487b2o239b2o520b3o
268b2o133bo80bo3bo653bobo5b2o143b2o151bo50bobo11b2o64bo288b2o96bo378bo
142bo192b2o168b3o9b3o127b2o589b2o396b4o142bo123bo247b3o$6b2o89b3o267bo
bo90bo95b2o53b2obobo90b2o320b2o2bo488b2o243b2o509bo5bo270bobo132b2o2b
3o79bo189bobo11bo449b2o4bo2bo151bo196bo63b3o3b3o4bobo288b2o96bo373bo2b
o143bo6b2o289bo5b3o200bo472bo512bo4bo141b2o251bo20b2o96bo$368bo80b2o
10bo143b3o4bo2b2o414bob2o327b2o157bo215bo20b2o7bobo507b2o6bo403bobo4bo
270b2o6bo2b2o457b2o151bo275b2o152b2o133bo470bobo2b3o147bo2bo183b2o103b
o4bo2bo68b3o602b2o14b2o101b2o14b2o191bo185b3o2bo139bobo17b2o232b2o18b
2o98bo$6b2o89b3o349bobo149b3o6bobo418bo2bo328b2o318b2o52bo19bobo8bo
508bobo415bo271bo5b2o4b2o609b3o428b2o604b2o153b2o184b2o103bo3bo2bo62b
3o3bo2bo601bobo13b2o101bo2bo12bo2bo190b2o8b3o176b3o159bobo102b3o125bob
o20bo$6b2o88bo3bo348bo111b3o39bo6b2o420b2o328bo319b2o53bo21bo1214b2o
370b3o84bo434bo151bo367b2o688b2o68bo2bo620bo101b2o14b2o190bobo8bo177bo
162bo106bo$97b3o457bo3bo40bo1081bo1507b2o154bo83bobo4b3o425b2o519bobo
389b4o296b3o66b2o616bo326bo176b2o267bo$197b2o6b2o349b2o4bo4b2o132bo
299b2o730b3o3b3o960b2o265bo206b2o4b2o8bobo152bo11b2o71bobo4bo427bobo
140b2o376bo390bo4bo284bo10bo2bo67b3o613b2o125b3o647b2o$97b3o98b2o4bobo
2b3o344bobo8bobo131b2o190bo107b2o4b2o1693bobo262bobo3bo201bobo3bobo8bo
166bobo71bo6bo570b2o767b4o285bo12b2o67bo2bo611bobo2b2o121bo635b3o10b2o
$96bo2bo97bo8bo2bo95b2o55bo204bo124bo7bobo190b2o2b3o107b2o490bo65bo
171bo964bo265b2o2bo204bo5bo175bo209b2o12b2o425bo635b2o421bo83b2o305b2o
308b2o123bo196b2o438bo12bo$96bobo111bo95b2o53bobo94b2o232b2o198bobo2bo
601b2o63b2o171bo1234b3o593bobo11b2o1062b2o132b4o675bobo310bo103b3o213b
obo436bo$97bo207bo55bobo94bobo230bobo204bo133bo465bobo63bobo170bo1463b
2o367bo13bo449bo148b2o594bo4bo280b3o3b3o387bo421b2o207bo$362bo95bo240b
3o303b2o25bo2167b2o831b2o148bobo460b2o132b4o1088bo9bo2bo$202b2o160b2o
335bo302bobo25bo700b2o1467bo830bobo147bo462b2o321bo99bo399bo391b2o8bob
o9b2o$203b2o159bobo333bo305bo727b2o800b2o642b2o1600b2o184b2o11bo87bo
398b2o390bo2bo7bobo4bo$202bo110b3o48bo663b3o3b3o696bo803b2o642b2o158b
2o528b3o907bo2bo177b3o3bobo9b2o87bo9bo388bobo390bobo8bo4b2o$299bo13bo
2222bo643bo161b2o243b3o281bo903bo6b2o180bo15bobo96bo782bo14bobo$299b2o
13bo717bo2308bo20b2o223bo284bo902bo187bo101b2o12bo$87bo210bobo579b2o
150bo2328b2o225bo1038b2o146bo290b2o1014b3o$10bo76bo793b2o149bo2330bo
1262bobo2b3o138b2o291bo15b3o774b2o224bo7bo$3o6b2o5bo70bo792bo14b3o
2074b3o1653bo2bo139bobo307bo775bo2bo222bo7b2o$2bo6bobo3b2o878bo2072b2o
2bo1659bo140bo16b3o289bo774bobo10b2o219bobo$bo13bobo65b3o3b3o804bo
2070bobo3bo1820b3o173b3o450b3o427b2o3bo10bobo$1019bo1949bo1824bo175bo
454bo426bobo16bo408b2o$87bo931b2o3774bo175bo452bo429bo425b2o$87bo930bo
bo1953b2o1653b3o1651b3o$87bo2879bo5b2o4b2o1650bo1651bo$2967b2o6bo2b2o
1650bo1653bo$83b2o2881bobo11bo$84b2o$83bo3$4620bo$4620b2o$4619bobo364b
3o$4986bo$4987bo14$5424b3o$5426bo$5425bo$828bo$828b2o5301b2o$827bobo
5300b2o$6058b2o72bo$6057bobo$6059bo12$4571bo$4571b2o$2930b3o1637bobo$
2932bo95b3o$2931bo96bo$3029bo38$1168bo$1166bobo$1167b2o24$4636bo$4634b
2o$4635b2o5$2449bobo$2450b2o$2450bo7$506bo5319bo$505bobo5318bobo$423bo
82b2o56bo4732bo528b2o$424bo137bobo4732bobo6bo62bo454bo$422b3o138b2o10b
2o3289bobo1428b2o6bo61bobo453bobo$568b2o5b2o730bo2559b2o1436b3o60b2o
453bobo$429bo9bo68bo9b2o47bo2bo734b2o2560bo1503bo156bo295bo$427b2o8b2o
69bo9b2o48b2o736b2o2562bo1499bobo156b2o$428b2o8b2o68bo3361bo1499bobo
155b2o$310bo193b2o1988bo1375bo1500bo$310bobo190bobo1673bo7bo305bo1249b
o429bo1208bo369bobo7bo$310b2o193bo398bo1275b2o5bobo128bo174b3o1248b2o
120b3o3b3o296bobo1207bo166bo203b2o8bobo172bo$307b2o420bo159bobo13bo
1261bo11b2o6b2o128bo1425b2o427b2o984bobo220b3o164bobo202bo8b2o174bo$
307b2o120bo298bo51bo109b2o11b3o103bobo1069bo83bobo144bo4b3o1550bo310bo
757bobo216b2o214b2o2b2o168b2o70bo315b3o$27bo399bobo78b2o59b2o157b3o50b
2o107bo118b2o679bo210bo177bobo84b2o13bo129bo160bo1397bo308bobo758b2o
217bo212bo2bo2b2o239bo$26bo215bo185b2o78b2o58bobo5b2o202b2o8b2o122bo
95bo680b2o7bo198bobo178b2o98bo130b3o159bo915bo217bo160bo101bo309b2o97b
o660bo431b3o147bobo94b3o$26b3o212bo270b2o54bo4bo3bo212b2o106bo15bobo
100bo672b2o9b2o197b2o278b3o288b3o913b2o218bobo156b2o511bobo113bo559bo
567b2o91b2o324bo$241b3o267bobo5b2o48b8o127bobo10bobo63b3o113b2o13b2o
101bobo680b2o1058bo627b2o210bobo4b2o152bo5b2o77b3o430b2o112bobo559bobo
191bo220b5o148bo92b2o322bobo$428b2o81bo4bo3bo184b2o10b2o179b2o97bo19b
2o1063bobo222bo176bobo271b2o841b2o158bobo251bobo11bo364b2o559b2o89bo
97bo3bo221bo3bo169bobo207bo186b2o$428b2o82b8o49b8o115bo12bo12bo279bo
1083b2o221bobo172bo3b2o91b2o180b2o390bo102bo346bo147bo11b2o253b2o11bob
o162bobo79b3o210bo124bo430bo99bo2b3o10bo209b3o170b2o60b2ob2o138bo4bobo
59b2ob2o112bo$231bo264bo71bo4bo3bo112bobo97bo205b3o12bo764b2o117bobo8b
o169bo6bo222b2o173bo3bo90bobo14bo555b2o102bo358bo137b2o87bobo174bo12b
2o163b2o59bo156bo77bo122bo431b3o95b3o13b2o370bobo11bo60bo3bo136bobo4b
2o61bob2o2b2o106bobo$31bobo195bobo196b2o64bobo15b8o48bobo5b2o113b2o96b
obo218bo764bo2bo117b2o9b2o165bobo233bobo166b3o94bo15bo557b2o101b3o354b
obo136b2o89b2o353bo60bo17bo5bo129b2o76b3o122b3o425b3o116b2o120b2o87b3o
158b2o74b2o138b2o67bo6bo107b2o3b2o3b2o$8bobo20b2o197b2o10bo57b2o126b2o
65b2o14bo4bo3bo48b2o218bo2bob2o214b3o686bo74bo2b2o117bo9b2o128bo4bo33b
2o233b2o261b2ob2o14b3o151bobo378bo414bo10bo57b2o227bo413b3o17bo5bo130b
2o18bo60b2o788b2o86bo3bo157bo74b2o209b6o113b2o3b2o$9b2o21bo208bo54b2o
2bo210bobo5b2o269bobobobo903bo66bo6b2obo259bo2bo136b2o132bo260bobobo
12b2o156b2o379b2o314bo98bo8bo292bo17b2o154bo157bobo78b3o13bo5bo148b2o
60bobo795bo80b5o231bo3bo$9bo10bo102bo117b3o51bo2bobo211b2o271bo5bo4bo
901b3o65bobo6bo2bo135bo120b3o2b3o134b2o393bo3bo12b2o156bo216bo162b2o
131bo134bo49bo6b2o87b3o8b3o289bobo15bo2bo154b2o156b2o250b2o60bo116bo
399bo272b2o5b2o315b5o140b2o65b6o113b2o3b2o$20bobo98bobo8bo163bobob2o
126b2o78b2o275bo6b4o908bo57b2o3bo7bo3bo134bobo163b2o2b2o216b2o269b3o
386b2o286bo8bo134bo48b3o5bo2bo153b2o8b2o224bo2bo13bo2bo154b2o4bobo150b
o84b2o3b2o6b3o135bo71bo123bo399bo24bo246b2o4bobo81b3o376b2o64bo6bo107b
2o3b2o3b2o$20b2o100b2o6b2o165bo3bo125bobo78b2o209b2o64bo918bobo54bobo
12b3o135b2o119b3o2b3o37b2o2b2o91b2o123b2o180b2o255bo221b2o283bobo8b3o
132b3o50b2o3bo2bo85b3o8b3o53b2o8b2o225b2o14b3o161b2o236bobobobo139bobo
2bobo68bobo120b3o397b3o22bobo112b2o143b2o4b3o70bo2bo2b2o226b5o206bob2o
2b2o106bobo$131b2o107b2o56b3o128bo289b2o61b2o8b4o908b2o57bo273bo2bo
136b2o305b2o87b3o166bo400bo105b2o133bo62b2o4b3o87bo8bo473bo238bobo142b
2o2b2o68bobo4b2o456bo62b2o12b2o6b2o112b2o142bobo4bo74b2o2b2o226bo3bo
140b2o63b2ob2o112bo$240b2o539bobo7bo4bo979b3o257bo4bo38b2o2b2o216b2o
268bo3bo12b2o149b3o20bobo376bo112bobo124b2o158bo10bo54b2o8b2o241b3o
156b2o242bo3bo141bo73bo4bo2bo121bo332b2o63b2o11bo2bo265bo5bo80b3o223b
2o142b2o188b2o$298b3o267b2o149b2o62bo6bobobobo970bo7bo3bo300b2o2b2o
216b2o180b2o86bobobo12b2o172b2o61bo315b3o111b2o125b2o70b3o150b2o8b2o
241bo2bo155b2o242b5o135b2o79b7o121bo327bo6b2o75bob2o7b2o110b2o231bo
226b2o330bobo$240b2o55bo3bo265bo2bo148b2o68bo2bob2o970bobo6bo2bo705b2o
87b2ob2o14b3o169bo60bobo124bo6bo174bo121bo198bo2bo403b3o539b2o207b3o
323bobo82b2obo7bobo110b2o232bo223bo3bo331bo$127bo112b2o54bobob2o266b2o
5b2o212bobo218b3o691b2o61bo6b2obo533bo264bo15bo231bo2bo125b2o4bobo170b
obo321b3o561b2o242b5o216b7o448b2o82bo4bo6bo334bo234b2ob2o137b2o$127bo
167bo2bobo127b2o8b2o68bo54b2o10b2o213bo219bo693bobo67bo2b2o135b2o159b
2o233b2o264bobo14bo156bobo71bobo125b2o5b2o172b2o248b2o226b2o249b3o155b
2o242bo3bo135b2o78bo4bo2bo532b5o340bobo159bo214bobo4b2o$127bo168b2o2bo
126b2o8b2o69bo9b2o42bobo431b3o12bo692bo70bo2bo135bobo157bobo233bobo
264b2o172b2o70b2ob2o555b2o71b3o151bobo248bo2bo161bo238bobo136b2o78bobo
4b2o291bo585bobo159b2o82b2o131bo4bobo179b3o$241b3o56b2o127bo9bo68bo9b
2o44bo433bo699b3o75b2o136bo161bo6bo96b3o123b2o443bo71bo4bo7b2o617bo2bo
153bo248b3o161b2o236bobobobo140bo74bobo295bo241b5o341bo159bobo11bo70b
2o136bo183bo$127bo113bo755bo19b2o681bo381b2o96bo124bobo171b3o342b4o8b
2o2bo117bo424b2o70b3o143bo417b2o4bobo235b2o3b2o6b3o131b2o2b2o70bo296b
3o238bo4bo6bo123b2o206b2o174b2o73b3o315bo$127bo102b2o10bo179b3o365b2o
225bobo679bo196bo9b2o174bobo81b2o13bo125bo173bo3bo354bobo115bobo295bo
126b2o216b2o242b2o14b3o156b2o387bobo2bobo75bo274bob2o8b3o242b2obo7bobo
105b3o13b2o206bobo174bobo72bo$127bo101bobo192bo280bo12bo71b2o225bo218b
obo657b2o9b2o256bobo312bo3b2o338b4o8b2o2b2o116b2o296b2o189b2o4b3o144bo
bo4b2o235bo2bo13bo2bo154bo238b3o13bo5bo133bo76bobo271b3obo255bob2o7b2o
107bo2b3o10bo207bo153bo96bo$231bo191bo82b2o197b2o10b2o68b2o221bo225b2o
220bo436bobo8bo260bo11b2o6b2o295bobo336bo4bo7b2o417bobo189b2o3bo2bo
151bobo234bobo15bo2bo388b3o17bo5bo211b2o111b2o138b2o17bo6bo240b2o11bo
2bo115bo3bo374b2o$505bobo196bobo10bobo66bobo220b2o226bo218bobo3bo617b
2o98b2o5bobo121b3o509b2ob2o421b2o132b2o58b3o5bo2bo152bo237bo17b2o313bo
77bo17bo5bo207b3o114b2o135bo2b2o17b8o168b2o70b2o12b2o6b2o113bo372bobo$
506bo281bo220bobo445b2o3bo616bobo97bo7bo123bo159b3o350bobo306b2o113bob
o8b3o120b2o61bo6b2o386bo175bo12b2o147b2o75bo155b2o77bo249bobo196bobo
66b3o22bobo717bo8b2o60bo$131b2o108b3o1218bo237b2o379bo230bo4b3o153bo
350bo2bo130b2o172bobo115bo8bo124bo59bo395b2o174b2o11bobo145bobo96b3o
131b2o77bo115b2o134b2o2b2o17b8o169bo6b2o60bo24bo269b3o240b2o202b2o8bob
o58bobo$122b2o6b2o109bo486b3o167b2o323bo4bo461b2o9b2o197b2o415bo154bo
352bobo130bobo173bo125bo133b3o442bobo173bobo11bo382bo192b2o138b2o17bo
6bo175b2o60bo149bo137b2o6bo242bobo201bobo7bo60bobo$121bobo8bo109bo64b
2o419bo170b2o13b2o308bo2bo230b3o230b2o7bo198bobo416bo507bo131bo183b3o
249bo354b2o444bo83b2o484b3obo179bo208b2o137bobo6bo241bo275bo$123bo183b
2o420bo168bo15bobo305b3o2b3o460bo210bo849bo390bo252bo354b2o442b2o83bob
o112b2o371bob2o8b3o376bobo136bo528b2o$310b2o602bo1578b3o255b2o390bo
109b3o493bo11b2o83b3o345bobo82bo113bobo387b3o255b3o782bobo$20b2o288bob
o577bo592bo1009bo256bobo199b2o5b2o292bo507bobo631bo387bo261b3o480b2o
296bo$20bobo287bo579b2o11b3o576bobo1009bo458b2o4bobo292bo506bo5b2o101b
o913bo260bo483b2o$9bo10bo868bobo13bo569b2o5b2o1280bo187bo6bo167b2o637b
2o102bo1175bo481bo$9b2o21bo871bo570bobo2b2o1281b2o363b2o638bo101bo309b
2o$8bobo20b2o1443bo4bo1258b3o20bobo361bo1051bobo431b3o$31bobo1190b2o
251b4o1261bo407b2o236b2o476b3o3b3o306bo431bo$1224b2o1515bo221b2o184b2o
236b2o354b2o427b2o440bo340b2o$1477b4o1481b2o187bo237bo354b2o124bo300bo
bo781bobo$1224b2o250bo4bo1265bo216bo778bo126bo302bo434b3o344bo$1224b2o
249bobo2b2o1265b2o1121bo739bo329bo$26b3o1446b2o5b2o1262bobo1118bo741bo
330b2o$26bo1455bobo2382b2o1070bobo$27bo1455bo2382bobo$2759b2o1852b3o$
2758b2o1853bo$1458b3o1299bo1853bo$1222b3o2b3o$1224bo2bo234bo987bo$
1223bo4bo228b2o3bo987b2o$1456bobo3bo986bobo$1458bo$1237bo$1236b2o$
1236bobo25$4635b2o$4634b2o$4636bo50$1167b2o$1166bobo$1168bo66$935bo$
933bobo4b3o$934b2o$938bo5bo$938bo5bo$938bo5bo2$940b3o5$2018bo5bobo$
2018bo5b2o$935bo1082bo6bo$933bobo$934b2o1078b3o3b3o$938bo$937bobo1078b
o$906bo29bobo1079bo1288bo$904bobo30bo1080bo1287bo$253bo651b2o2399b3o$
253bobo1521bo1317bo6bo179bo$253b2o577bo75bo858bobo7bobo1314bobo4bo156b
o23bobo232bo$830b2o76bo858b2o8b2o1315bobo4b3o155bo22b2o150bobo79bo125b
o$831b2o75bo18bo840bo462bo863bo161b3o149bo24b2o80b3o121b2o$925bobo
1303bobo1176b2o23bo205b2o82bo$926b2o4b3o1001bobo292b2o82bo783b2o308b2o
101b3o211bo$234bo942b3o197bo551bobo4b2o269bo105b2o783bo2bo156bo240bo
17b2o205b3o$232bobo369b3o323bo309bo2b3o130bo553b2o5bo267bobo106b2o708b
o74b2o158b2o6bobo230bo16b2o209b2o$155bo77b2o578bo116bo234bo72bobo135b
3o551bo275b2o96b3o323bo223bobo158bobo4b2o234b2o8b2o151bo76b3o227b2o$
155bobo87bo565bobo116bo234bobo71b2o1387b2o80bo144b2o150bo8b2o5b2o243bo
12bo137bobo$155b2o87bo567b2o112b2o228b2o7b2o593bo541bo5bo3bo316b2o77bo
bo144bo152bo7bo74b2o187bo139b2o80b2o134bo$137bo106b3o654bo3bo20b2o227b
obo15bo200bo386bo540bo5bo3bo84bo311b2o295b3o18bo63bo188b3o147bo71b2o
134bobo$135bobo464bo4b2o291bobobobo249bo15bobo64bo129bo4bobo6bo375b3o
4b2o152bo15bo365bo5bo3bo82bobo314b2o311b2o65b3o333b2o208b2o81b2o$136b
2o463bobo2b2o292bobobo2bo229bo25b2o7bobo63bobo126bobo4b2o6bo383bobo
152bo13bo272bobo185b2o314b2o312b2o67bo333b2o7bobo280bobo$426bo100bobo
72bo5bo292b2obo3bo226bobo25b2o8bo64bobo127b2o12b3o381bo152b3o13b3o270b
2o94b3o92bo692b3obo341b2o191bo92bo$242b2o181bo102b2o286bo88b4o227b2o
101bo523bo445bo189bo452bo8bo10bo218bo4bo10b2o3bo326bo70b2o120bo3bobo
86bob2o$242b2o181b3o100bo288bo340b2o21bo580b2o635bo453bo8b2o7bo219b5o
11b2o2bo399bo118b3o3b2o86b2obobo$539bobo273b3o3bobo81b4o166bo63b2o17b
2o20bo581bobo520bo429bo135b3o7b2o8b3o237b3o394b3o126bo86bo4bo$242b2o
179bo115b2o280b2o78b2obo3bo167bo62b2o39b3o826b2o272bobo428bobo374b5o
11b2o398bo5b2o210b4o$242b2o100bo77bobo115bo281bo77bobobo2bo166b3o927b
2o2bobo197bo75b2o428bo2bo2b2o142bo164b2o60bo4bo10b2o398bobobo2bo$345bo
75bobo476bobobobo270b2o824bob4o199bobo103b2o399bobo2bobo140bo165b2o61b
3obo411b2ob3o211b4o$343b3o75b2o169b2o307bo3bo20b2o249b2o824bo5bo198b2o
68bo34bo2bo91b2o306bo5bo140b3o229bo628bo4bo$532bobo53b2o3bo2b2o328b2o
158bo486bo430b5o186bo82bo5bo24b2o3bobo90bo2bo205bobo98b5o307b2o61b3o
413b2ob3o210b2obobo$16bo6bo3bobo214b3o286b2o53bo2bo5bo56b2o274bo153b2o
485b2o195bo427b2o80bo4bobo23bobo3bo87b2o3bobo206b2o410b2o60bo415bobobo
2bo210bob2o$14bobo5bo4b2o215bo171bo116bo55b8o53b2o3bo2b2o270bo154b2o
91b2o392b2o193b2o8b2o225b5o186b2o86b2o4b3o18bo92bobo3bo207bo6bo92b5o
369b2o414bo5b2o209bo$15b2o5b3o3bo113bo102bo99bobo66b5o231bo2bo5bo162bo
107bo142bo100bo3bobo63b2o393bo127bobo7bobo223bo5bo303b5o86bo219bobo89b
o5bo140b3o414b3o156bo68b3o126bo83bobo$136bobob2o91b2o111b2o65bo5bo112b
2o3b2o50b8o54b8o162b2o251bo15bo79bo2bobo4bo59bo3bobo336bo54bo138bo225b
ob4o304bo4bo88b5o212b2o89bobo2bobo140bo416bo157b2o71bo118b3o3b2o83b2o$
137b2o2b2o89bobo111bo66bobobo2bo111b2o3b2o49bo2bo5bo217b3o3bobo102b2o
4b3o137b3o15bobo77b4ob5o56bo2bobo4bo312bobo20bo55b3o363b2o2bobo303b4o
66b2o21bo4bo301bo2bo2b2o142bo234b2o167bo12bo147b2o7bobo69b2o120bo3bobo
$137bo7bo88bo116bo62b2ob4o167b2o3bo2b2o53b8o158bo107bobo162b2o144b4ob
5o314b2o20b3o50b2o372b2o370bo2b2o22b4o144bo15bo40b2o13b2o84bobo381bo2b
o156b2o8b2o158b2o201bo$145bobo202bo181b2o3b2o53b2o56bo2bo5bo156bo91bo
18bo242b4ob5o380bo16bobo55b2o677b4o61bobo175bo13bo41b2o13b2o85bo135b3o
7b2o8b3o152b2o71b2o158b2o6bobo160bo$23b2o120b2o196b2o5b3o61b2ob4o111b
2o3b2o111b2o3bo2b2o248bo261bo2bobo4bo55b4ob5o122b2o12b3o192b2o734bo4bo
61b2o2b2o22b4o143b3o13b3o279bo8b2o7bo153b2o231bo161b2o216b2o88b2o$23b
2o318b2o68bobobo2bo233b2o252bo179b2o84bo3bobo55bo2bobo4bo120bobo4b2o6b
o195bo734b5o66b2o21bo4bo200b2o13b2o222bo8bo10bo133b3o18bo67bo323bobo
80b2o134bobo87b2o$413bo5bo113bo554b2o88b2o60bo3bobo122bo4bobo6bo256bo
642b2o4b3o18bo96b5o143b3o13b3o39b2o13b2o378bo7bo77bobo4b3o317bo80b2o
134bo85b3o$23b2o228b2o88b2o69b5o114b2o370b2o337b2o128bo265b3o635bo4bob
o23bobo3bo88bo152bo13bo140b2o293bo8b2o5b2o69bobo4bo155b3o466bo$23b2o
228bobo87b2o5b3o63bo115bobo277b2o90bobo30bo150b2o553bo634bo5bo24b2o3bo
bo86bobo3bo146bo15bo51b2o86b2o301bobo4b2o71bo6bo156bo22b2o214b3o224bo$
253bo96bo460bobo92bo29bobo149b2o87b2o461b3obo633bo34bo2bo86b2o3bobo
213bobo82b2o313bo233bo23bobo124b2o89bo16b2o$351bo250bo210bo123bobo237b
2o197b3o260bo4bo274b3o13b3o376b2o91bo2bo206bo6bo83bobo144bo426bo127b2o
23bo63bo17b2o$346bo74b2o117bo60bobo334bo437bo261bo2b3o277bo13bo348b2o
122b2o207b2o91bo144b2o552bo24b2o76b3o$346b2o73bobo115b2o61bo61bo5bo
263b2o154b2o47b2o39b3o194bo261b3o278bo15bo346bobo330bobo235bobo577bobo
204b2o$15b2o5b3o3bo316bobo74bobo114bobo121bobo2b2o263bobo136b3o15bobo
46b2o17b2o20bo1104bo1230b3o121b2o$14bobo5bo4b2o394bo104bo135bo4b2o264b
o138bo15bo67b2o21bo457b3o1874bo125bo$16bo6bo3bobo498b2o301b2o240bo62b
2o500bo2b3o1873bo$425b3o99bobo300b2o253b2o48bobo25b2o8bo465bo4bo285bo
264b2o107b3o92bo$343b3o79bo178b3o225bo251b2o51bo25b2o7bobo64bo400b3obo
285b2o5bo258b2o201bo$345bo80bo659bo69bo15bobo63bobo402bo285bobo4b2o
257bo106bo5bo3bo86bo$136b2o206bo321b3o486bobo15bo64bobo399b3o293bobo
269b2o92bo5bo3bo83b2o$135bobo1018b2o7b2o72bo400bo567bobo91bo5bo3bo82bo
bo$137bo802b3o131b3o88bobo1040bo188bo$155b2o919bo88bo852bo285b3o$155bo
bo780bo5bo130bo163b2o394b2o381bo295b2o$155bo782bo5bo232b3o58bobo394b2o
381bo294b2o314b2o$938bo5bo295bo2b3o332bo59b3o568bo105bo312b2o$934b2o
641b2o59bo375b3o3b3o185b2o420bo$933bobo4b3o617bo16bobo59bo568bobo$935b
o624b2o20b3o433bo6bo$1559bobo20bo435bo5b2o$1583bo434bo5bobo2$1572b2o
632b2o$1571b2o632bobo$1573bo633bo$2231b2o$2231bobo$2231bo94$817bo$816b
o$816b3o6$534bo$533bo$533b3o13$1363bo$1363bobo$1363b2o$1361bo$1227bo
132bobo$1225b2o133bobo$1226b2o133bo$507bo3bo$508b2obobo378bo492bo$507b
2o2b2o380bo489b2o$891b3o484b2o4b2o$599bo295b2o480bo2bo$354bo147bo97bo
294b2o481bobo$355bo144bobo5bo89b3o778bo$214bo138b3o145b2o4bo94bo$213bo
293b3o91bobo$213b3o385b2o$1210bobo$362bo847b2o$28bo331bobo390bo135bo
162bo158bo166bo$28bobo172bobo155b2o250b2o136bobo136bo159bobo325bo$28b
2o173b2o168bo238bo2bo136b2o12bo121b3o160b2o140bo184bo$204bo4bo161b2o
235b2o2b3obo142bo4b2o126b2o300bo165b2o$22bo63bo121bo49bo113b2o234bo7bo
143b2o3b2o125b2o298b3o5bo159bobo$20b2o65bo120b3o48bo117bo130b2o99b7o
143b2o288bo17bo131bo155b2o4bo$21b2o62b3o169b3o117bobo128b2o537bobo15b
2o132b3o153bo2bo5bo$89b2o170b2o114b2o230b7o432b2o4bo11b2o129bo158b9o$
89b2o170b2o245b2o98bo7bo286b2o150bo139bobo$17bo9bobo478b2o98b2o2b3obo
285bo2bo147b3o140b2o158b9o$18bo8b2o227b2o354bo2bo286b2obo449bo2bo5bo$
16b3o9bo65b2ob2o89bo4bobo60b2o106b2o247b2o151bo138bob2o446b2o4bo$94b2o
b2o90b2o2b2o169b2o400bobo133b2obo2bo451bobo$188b2o4bo3bo55b6o506b2o
134b2ob3o452b2o$94b5o98bo55bo6bo103b2o395b2o434b2o179bo$94bo4bo97b3o
53b7o104b2o235b2o158b2o139b2ob3o289b2o179bo$18b2o75b4o502bobo298b2obo
2bo469bo$18b2o233b7o342bo158b2o142bob2o288b2o$95b4o154bo6bo246b3o88b3o
160b2o139b2obo291b2o$18b2o74bo4bo154b6o117b2o122b2o4bo92bo165b2o134bo
2bo$18b2o74b5o278bobo120bobo5bo90bo166bobo134b2o$256b2o119bo124bo263bo
286b3o$94b2ob2o157b2o114b2o681bo323bo$94b2ob2o272b2o675b2o4bo11b2o128b
2o180bobo$261b2o110bo133b2o2b2o379b2o153bobo15b2o128bobo179bo2bo$16b3o
9bo179b3o50b2o98b2o145b2obobo378b2o155bo17bo129bo180b2o4b2o$18bo8b2o
60b2o117bo48b3o100bobo144bo3bo376b3o308b3o181b2o$17bo9bobo59b2o113bo4b
o49bo102bo396b2o129bo308bo185bo$85b3o115b2o53bo501b2o3b2o122bo161b2o
139b3o5bo$87bo115bobo553bo4b2o284bobo141bo166bo$21b2o63bo665b2o12bo
285bo140bo166bobo$20b2o331b3o395bobo606bobo$22bo332bo397bo457bo149bo$
213b3o138bo855b2o151b2o$28b2o183bo996bobo150bobo$28bobo183bo680b2o466b
o$28bo866b2o$891b3o$893bo$892bo6$1226b2o$533b3o689b2o$533bo693bo$534bo
24$816b3o$816bo$817bo101$1183bo$1182bo$1182b3o3$1163bo$1164bo$1162b3o$
991bobo$992b2o160bo$992bo162b2o$519bo634b2o$517bobo$518b2o3b2o$522bobo
463bo$522b2o257bobo205bo12bo$782b2o203b3o12bobo$782bo219b2o$280bo230bo
8b2o637bo2bobo$274bo3b2o229bobo8b2o296bo177bo160bobo2b2o$272bobo4b2o
229b2o18bo281bo5bobo175bobo159b2o3bo$273b2o255bobo278bo6b2o169bobo4b2o
$513b2o15b2o279b3o176b2o$513b2o3bo471bo$279bo237bobo7b2o$279bobo234bo
2bo7b2o173bobo6bo$273bo5b2o236b2o184b2o5bo$73bo200b2o427bo6b3o98b2o$
25bobo44bo200b2o240b4o291bo2bo344b2o3bo$26b2o44b3o439bobo2bo290bo2bo
343bobo2b2o$26bo487bo4bo291b2o346bo2bobo$515b4o$28bo41b3o$21bobo4bobo
484b4o$22b2o4b2o44bo439bo4bo191b2o100b2o$22bo51bo439bobo2bo191b2o100b
2o175bo$68bo5bo440b4o471b2o$67bobo641b2o100b2o174bobo4b2o156b2o$24b2o
39b3ob3o445b2o192b2o100b2o181bobo156b2o$24b2o38bo7bo443bo2bo7b2o467bo
157bo$64b9o200b2o242bobo7b2o$24b2o248b2o237b2o3bo483b2o158b3o$24b2o38b
9o200bo5b2o232b2o15b2o279b2o174b3o12bobo159bo$64bo7bo206bobo248bobo
277bo2bo175bo12bo160bo$65b3ob3o207bo230b2o18bo279bo2bo174bo$22bo44bobo
439bobo8b2o181bo6b3o98b2o$22b2o4b2o38bo5bo436bo8b2o181b2o5bo471b3o$21b
obo4bobo43bo198b2o427bobo6bo470bo$28bo45bo197bobo4b2o711bo190bo$274bo
3b2o242b2o468b2o$26bo43b3o207bo241bobo286b3o177bobo$26b2o490b2o3b2o
286bo6b2o$25bobo489bobo292bo5bobo$72b3o444bo298bo$72bo$73bo708bo$782b
2o$781bobo40$361b3o$361bo$362bo142$104bo$102bobo$103b2o$106bo$27bo77bo
bo$27bobo75bobo$22bobo2b2o66bo10bo$23b2o71bo$23bo70b3o$98b2o$33bo63bob
o$33bobo62bo$33b2o$92b2ob2o$92b2ob2o2$92b5o$19b2o70bo5bo$19b2o71b6o2$
19b2o71b6o$19b2o70bo5bo$92b5o2$92b2ob2o$92b2ob2o$33b2o$33bobo62bo$33bo
63bobo$98b2o$23bo70b3o$23b2o71bo$22bobo2b2o66bo10bo$27bobo75bobo$27bo
77bobo$106bo$103b2o$102bobo$104bo95$15bobo293bo$16b2o292bo$16bo293b3o
12$138bo132bobo$136bobo133b2o$50bobo84b2o133bo$51b2o4bobo80bo$51bo5b2o
81bo10bo$58bo81bo10bobo$151b2o$148b2o$55bobo90b2o143bo$55b2o226bo8bo$
51bo4bo224bobo8b3o$49bobo230b2o$50b2o2$134b2o$133bo2bo144b2o4b2o$133b
2o2bo143b2o4b2o$138bo$133b5obo141b2o4b2o$132bo6bo141b2o4b2o$133b6o2$
133b6o$132bo6bo142b2o$50b2o81b5obo141bobo8b3o$49bobo86bo144bo8bo$51bo
4bo76b2o2bo155bo$55b2o76bo2bo$55bobo76b2o3$58bo$51bo5b2o213bo$51b2o4bo
bo212b2o$50bobo95b2o121bobo$148b2o$151b2o$140bo10bobo$140bo10bo$140bo$
137b2o$136bobo$138bo4$310b3o$310bo$16bo294bo$16b2o$15bobo160$74bobo23b
obo$75b2o19bo3b2o$75bo18b2o5bo$95b2o2$34bo$22bo9b2o60bo$21bobob2o6b2o
58bobob2o4b2o$22b2ob2o67b2ob2o4b2o2$22b2ob2o67b2ob2o4b2o$21bobob2o6b2o
58bobob2o4b2o$22bo9b2o60bo$34bo2$95b2o$94b2o5bo$96bo3b2o$100bobo!
Bonus: Components, some slow, some fast:

Code: Select all

x = 731, y = 146, rule = B3/S23
56bo$57b2o11bo170bobo$56b2o11bo172b2o$69b3o170bo6$323bo$119b2o200bobo$
65bo53b2o139bo61b2o$64bo58bo137bo$64b3o52b5o135b3o2bo$119bo144bo56b2o
2b2o135bo47bo53bo163bo$120b4o2b2o136bo56b2o2b2o136b2o6bobo37b2o6bobo
43b2o6bobo152bobo$52b2o9b2o50b3o4bobo2bo334b2o7b2o37b2o7b2o43b2o7b2o
153b2o$2bo11bo37b2o9b2o60b2o345bo47bo53bo$obo11bobo234b2o11b2o$b2o11b
2o36b2o9b2o45b3o12b2o124b2o11b2o454bo6bo$52b2o9b2o47bo2b3o4bobo2bo343b
o4bo42bo4bo48bo4bo135bobo2bo6bo$b2o11b2o95bo8b4o2b2o344bo2bo44bo2bo50b
o2bo137b2o2b3o4b3o$obo11bobo102bo146b2o64b2ob2o133b3o2b3o40b3o2b3o46b
3o2b3o135bo$2bo11bo49b3o52b5o140b3obo62bobobobo$64bo58bo139bo5bo61bo6b
o$65bo53b2o142b7o62b7o$119b2o349b3o2b3o40b3o2b3o46b3o2b3o$263b7o62b7o
133bo2bo44bo2bo50bo2bo142b2o2b2o$263bo5bo62bo5bo132bo4bo42bo4bo48bo4bo
141bo4bo$264b3obo64b3obo383b4o$266b2o67b2o$472bo50bo199b2o$462b2o7b2o
50b2o7b2o189b2o$69b3o179b2o11b2o197b2o6bobo48bobo6b2o$56b2o11bo181b2o
11b2o59bo136bo70bo$57b2o11bo254bo$56bo201b3o64bo$260bo3bo$259bo4bo56b
3o3b3o$264bo$325bo$325bo$325bo2$321b2o$322b2o$321bo49$240bobo$241b2o$
241bo6$322bo$320bobo$259bo61b2o$260bo$258b3o2bo$263bo56b2o2b2o$263bo
56b2o2b2o3$250b2o11b2o$250b2o11b2o3$265b2o64b2ob2o$263b3obo62bobobobo$
262bo5bo61bo6bo$262b7o62b7o2$262b7o62b7o$262bo5bo61bo6bo$263b3obo62bob
obobo$265b2o64b2ob2o3$250b2o11b2o$250b2o11b2o3$263bo56b2o2b2o$263bo56b
2o2b2o$258b3o2bo$260bo$259bo61b2o$320bobo$322bo6$241bo$241b2o$240bobo!
EDIT: Fixing an invalid cleanup:

Code: Select all

x = 33, y = 28, rule = B3/S23
2bo$obo$b2o2$5bo$5bo25bo$5bo24bo$30b3o$2b2o11b2o$2b2o8b2o2bo$11bob3o
11b3o$11bo$12b2o$14bo$14bo$12b2o$11bo$11bob3o11b3o$2b2o8b2o2bo$2b2o11b
2o2$5bo$5bo$5bo2$b2o$obo$2bo!
Last edited by Ian07 on May 31st, 2021, 5:04 pm, edited 1 time in total.

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: Randomly enumerating glider syntheses

Post by Extrementhusiast » May 30th, 2021, 10:23 pm

GUYTU6J wrote:
May 29th, 2021, 11:44 pm
I suppose traffic light (or its predecessor) + glider reactions can lead to good recipes for D2_x symmetric objects, which may be worth searching.
Here, let me provide every three-glider collision producing nonempty symmetrical ash, divided by symmetry group, and further sorted by final bounding box after removing gliders:
symmetricolls-groups.rle
(1.92 MiB) Downloaded 69 times
Of course, some of these form more asymmetrically than the final ash would seem to imply.
I Like My Heisenburps! (and others)

User avatar
Ian07
Moderator
Posts: 891
Joined: September 22nd, 2018, 8:48 am
Location: New Jersey, US

Re: Randomly enumerating glider syntheses

Post by Ian07 » May 13th, 2022, 7:36 pm

Would anyone like to take credit for digging up these stdin finds? A lot of these have been sitting in the synthesis database (i.e. already boxed) for weeks or even months and as far as I know no one has said anything about them:

Code: Select all

x = 1318, y = 34, rule = B3/S23
969bo$967bobo264bo$968b2o256bo6bo$1137bo88bobo4b3o79bo$1138bo87b2o76bo
10bobo$536bobo354bo163bo78b3o166b2o8b2o$537b2o57bo294b2o165b2o244b2o$
537bo57bo296b2o76bobo84b2o10bo70b3o167bo$386bo208b3o86bo286b2o3b2o89b
2o73bo165b2o$121bo265bo297bo101bo3bobo81bo95bo3b2o91b2o71bo167b2o2b2o$
122bo262b3o56bo238b3o102bo2b2o83bo8bo91bo172b3o160bobo$120b3o320bo149b
2o3bo187b3o3bo7bo73b3o8bobo173bo88bo74bo87bo$17bo262bo162b3o147b2o2bob
o198b2o85b2o96b2o77bo3b2o83bo71b2o$17bobo158bo100bo272bo44b2o200b2o
181b2o76b3o2b2o150bo6b2o$17b2o158bobo99b3o116bo41b2o109bo238b2o192bo
82bo7b2o65bo75bo93bo$178bo217b2o42bobo108b3o136bo100b2o94b3o185bobo63b
2o3b2o68b3o92b2o$179bo217b2o42b2o246bo100bo96bo187bo65bobo2bobo76bo85b
obo$179bo268b2o98bo11bobo32b2o92b3o5b2o189bo257bo78b2o$176bo3bo267bo
93bo3b2o12b2o33bobo98b2o526bobo$176b4o217b2o51bo91b2o3b2o12bo36bo99bo$
396b2o51b2o90bobo52b3o93b2o96b2o191b3o$2bo173b2o220bo196bo89b3o4bobo
96b2o190bo$obo173b2o102bo166b4o145bo90bo4bo97bo86b2o105bo$b2o140b3o
120bobo11bobo164bo2bo144b2o89bo191b2o$143bo123b2o11b2o109bo485bo$15bo
128bo122bo16b2o105b2o15b2o$14bo269bobo103bobo14b2o$14b3o4b2o158b2o101b
o124bo$20b2o117b3o38bo2bo91b2o$22bo116bo41b2o91bobo$11b2o122b2o3bo36b
2o97bo$10bobo116b2o3bobo39bobo$12bo117b2o4bo41bo$129bo!
(plus many more which don't have wiki articles)

EDIT on July 15, 2022: Carson Cheng has revealed himself to be the author of these syntheses, having both run the searches and submitted the results anonymously prior to joining the community.

carsoncheng
Posts: 475
Joined: June 11th, 2022, 11:24 pm

Re: Randomly enumerating glider syntheses

Post by carsoncheng » July 21st, 2022, 8:15 pm

Ian07 wrote:
February 18th, 2020, 11:20 pm
GUYTU6J wrote:
February 18th, 2020, 8:50 am
What tool is suitable for checking soups quickly, by the way?
I've been using lifelib to display all soups for a given object. Particularly I hacked together this code a while ago:

Code: Select all

samples = lt.download_samples('b3s23','xp30_w33z8kqrqk8zzzx33')
collisions = lt.pattern("")
shift = 0
for sample in samples['4Glider_stdin']:
    collisions += sample.shift(shift, 0)
    shift += 200
collisions.viewer()
Once the rule has been compiled, just run this in a Python notebook, replacing the apgcode with that of the desired object.
Before 2022, Glider_stdin results are usually extracted through a Python notebook running through lifelib, as far as I know. This is extremely inconvenient as it requires a lot of manual intervention, and it often takes a long time to complete such task on an entire stdin symmetry. Therefore, a few months ago, I wrote a program to search for results in the Glider_stdin censuses and have been using it weekly ever since March. However, one part of the program, which is the function that validates syntheses, is slightly modified from code taken from contrsynth.py in Adam P. Goucher's Catagolue repository. Before you run the program, clone the Shinjuku repository, and place the program into the main directory of Shinjuku. Alternatively, move the Shinjuku repository to the site-packages directory that stores Python modules, whose path depends on the operating system. Here is the program:

Code: Select all

print("Importing modules. This may take a while.")
import lifelib, ssl, urllib.request, os, math, requests
sess = lifelib.load_rules("b3s23")
lt = sess.lifetree()
ssl._create_default_https_context = ssl._create_unverified_context
def getcost(apgcode):
    if apgcode[1] == "s":
        sl_size = int(apgcode.split("s")[1].split("_")[0])
    else:
        sl_size = 0
    import requests
    synthesis = requests.get("https://catagolue.hatsya.com/textsamples/" + apgcode + "/b3s23/synthesis").text
    try:
        cost = synthesis.split("costs ")[1].split(" gliders")[0]
        if int(cost) > sl_size and sl_size > 0:
            print("This object costs " + "\u001b[33;1m\u001b[1m" + cost + "\u001b[0m gliders.")
        else:
            print("This object costs " + "\u001b[32;1m\u001b[1m" + cost + "\u001b[0m gliders.")
        return int(cost)
    except:
        print("This object is \u001b[31m\u001b[1munsynthesized\u001b[0m.")
        return None
#Credit: Adam P. Goucher
#Source file: https://gitlab.com/apgoucher/catagolue/-/blob/master/initialise/contrsynth.py
#Modified for connecting to check_glider_stdin (returning True/False value) and more effective junk removal. Most instructions from the online copy remain intact.
#Checks the validity of the synthesis
#The function 'contrsynth' is named after contrsynth.py in the Catagolue repository, which is the original source of most of the code.
import shinjuku
from shinjuku.gliderset import gset
from shinjuku.search import read_components
from shinjuku.transcode import encode_comp, decode_comp, realise_comp, remove_standard_spaceships
from shinjuku.checks import rewind_check
from shinjuku.synthtools import split_mosaic as split_synthesis
def is_good(synthline):
    out_str = decode_comp(synthline)[2]
    pat = realise_comp(synthline)
    actual_str = pat.oscar(verbose=False, return_apgcode=True).get('apgcode', 'rubbish')
    return (out_str == actual_str)
#knowns = read_components()
def contrsynth(rle_list):
    engulfed = set([])
    for rle in rle_list:
            contrib_lines = []
            for radius in [5, 8, 13, 21]:
                    try:
                        subpatterns = [c for c in split_synthesis(rle, radius=radius-1, maxtime=1024)]
                        for s in subpatterns:

                            w = s.wechsler
                            if (w != '#'):
                                if w in engulfed:
                                    continue
                                engulfed.add(w)

                            try:
                                dst = s[4096].apgcode
                                if s[4096][-4096] == s:
                                    continue
                                x = remove_standard_spaceships(s)

                                g = gset.extract(x)
                                src = (x - g.s()).apgcode

                                directions = 0

                                for salvo in g.l:
                                    if salvo.nonempty():
                                        directions += 1
                                        if (salvo[4].centre() != salvo.centre()):
                                            return False
                                if (src == 'xs0_0') and (directions <= 1):
                                    return False
                                else:
                                    c = encode_comp(s)
                                    if rewind_check(*realise_comp(c, separate=True)):
                                        contrib_lines.append(c)
                                    else:
                                        return False
                            except (ValueError, KeyError, TypeError):
                                return False
                    except (ValueError, KeyError, TypeError):
                        return False
            #contrib_lines = [s for s in set(contrib_lines) if (s not in knowns) and ('ov_' not in s)]
            contrib_lines = [s for s in contrib_lines if is_good(s)]
            if len(contrib_lines) != 0:
                return True
            else:
                return False
#To test whenever there is a change, please uncomment these statements above.
from os import listdir
from time import time
from math import floor
def get_contents(rule, symmetry, ratelimit, dir="/users/carsoncheng/hauls/"):
    allHauls = listdir(dir)
    contents_old = []
    contents = []
    #print("Defining file objects...")
    now = floor(time())
    for item in allHauls:
        if item.find(".txt") != -1:
            if ratelimit == True:
                #Restrict the collection of hauls to only the last 3 weeks
                timestamp = item.split(".")[1]
                if now - int(timestamp) < 1814400:
                    contents_old.append(open(dir + item, "r").read())
            else:
                contents_old.append(open(dir + item, "r").read())
    for report in contents_old:
        metadata = report.split("@CENSUS TABLE")[0]
        if rule == report.split("@RULE")[1].split("\n")[0] and symmetry == (metadata.split("@SYMMETRY")[1].split("\n")[0]):
            contents.append(report)
    return contents
def get_object(pref, pref2, apgcode, rule, symmetry, contents, dir="/users/carsoncheng/hauls/"):
    rule = " " + rule
    symmetry = " " + symmetry
    samplesoups = []
    #print("Collecting statistics on the object...")
    count = 0
    for report in contents:
        census = report.split("@CENSUS TABLE")[1].split("@SAMPLE_SOUPIDS")[0]
        objects = census.split("\n")
        if pref == "y":
            sample_soups = report.split("@SAMPLE_SOUPIDS")[1]
            root = report.split("@ROOT ")[1].split("\n")[0]
        for object in objects:
            if object.split(" ")[0] == apgcode:
                count += int(object.split(" ")[1])
                if pref == "y":
                    sample_objs = sample_soups.split("\n")
                    for sample_objects in sample_objs:
                        if sample_objects.split(" ")[0] == apgcode:
                            samples = sample_objects.split(" ")[1:]
                            for item in samples:
                                samplesoups.append(root + str(item))
                                length = len(samplesoups)
                                '''if length > 250:
                                    #Too many soups, stopping now.
                                    break'''
    if pref == "y":
        final_output = ""
        for item in samplesoups:
            final_output = final_output + ("https://catagolue.hatsya.com/hashsoup/" + symmetry[1:] + "/" + item + "/" + rule[1:] + "\n")
        if pref2 == "f":
            file = open(rule[1:] + symmetry[1:] + " " + apgcode + " samples.txt", "a")
            file.write(final_output)
            return final_output
        if pref2 == "r":
            return final_output
        else:
            print(final_output)


    if pref == "y":
        final_output = ""
        for item in samplesoups:
            final_output = final_output + ("https://catagolue.hatsya.com/hashsoup/" + symmetry[1:] + "/" + item + "/" + rule[1:] + "\n")
        if pref2 == "f":
            file = open(rule[1:] + symmetry[1:] + " " + apgcode + " samples.txt", "a")
            file.write(final_output)
            return final_output
        if pref2 == "r":
            return final_output
        else:
            print(final_output)


sess = lifelib.load_rules("b3s23")
lt = sess.lifetree()
prohibited_apgcodes = []
def unique(arr):
    newarr = []
    for item in arr:
        if item not in newarr:
            newarr.append(item)
    return newarr
def pop(pat):
    """Compute the minimum population of the given pattern.
    Because the latter is already associated with a rule no
    further arguments are required."""
    return min(pat[i].population for i in range(pat.period))
def check_glider_stdin(apgcode, period, minpop, symmetry, object_cost, contents):
    #print(apgcode)
    sample2 = get_object("y", "r", apgcode, "b3s23", symmetry, contents)
    #print(sample2)
    #Uncomment the line above if you want to find the date of a sample soup that is not on Catagolue.
    soups = []
    if sample2 != "":
        sample_soups = sample2.split("/hashsoup/" + symmetry)
    else:
        if symmetry == 'moog_stdin':
            object_page = urllib.request.urlopen("https://catagolue.hatsya.com/object/s1" + apgcode + "/b3s23").read() + urllib.request.urlopen("https://catagolue.hatsya.com/object/s2" + apgcode + "/b3s23").read() + urllib.request.urlopen("https://catagolue.hatsya.com/object/" + apgcode + "/b3s23").read()
        else:
            object_page = urllib.request.urlopen("https://catagolue.hatsya.com/object/" + apgcode + "/b3s23").read()
        sample_soups = unique(str(object_page).split("/hashsoup/" + symmetry))
    sample_soups.pop(0)
    for item in sample_soups:
        index = 0
        soups.append(item.split('b3s23')[0])
        index += 1
    print("Processing " + str(len(soups)) + " sample soups...")
    for item in soups:
        try:
            soup_rle = item.split("-")[1].split("/")[0]
            pattern = lt.pattern(soup_rle)
            num_gliders = math.floor(pattern.population / 5)
            pattern_ash = pattern[500]
            pop = pattern_ash.population
            """if apgcode[0] != "x" or apgcode[1] != "s":
                try:
                    encode = pattern_ash.apgcode
                except KeyError:
                    encode = 0
            else:
                encode = 0"""
            #if encode == apgcode or pop == minpop:
            if pop == minpop:
                #print("Clean glider synthesis found:\n " + soup_rle)
                try:
                    print(object_cost)
                    if object_cost > num_gliders:
                        if contrsynth([soup_rle]):
                            print("Clean glider synthesis found:")
                            print(soup_rle)
                            '''else:
                            print("\u001b[31m\u001b[1mPotentially unrewindable\u001b[0m clean glider synthesis found:")
                            print(soup_rle)'''
                            url = 'https://catagolue.hatsya.com/postsynth'
                            post = requests.post(url, data = {'content': "x = 0, y = 0, rule = B3/S23\n" + soup_rle})
                            print("RLE posted on Catagolue.")
                except:
                    if contrsynth([soup_rle]):
                        print("Clean glider synthesis found:")
                        print(soup_rle)
                        url = 'https://catagolue.hatsya.com/postsynth'
                        post = requests.post(url, data = {'content': "x = 0, y = 0, rule = B3/S23\n" + soup_rle})
                        print("RLE posted on Catagolue.")
            elif pop - minpop < 10 and pop - minpop > 0:
                if object_cost == 0:
                    object_cost = getcost(apgcode)
                try:
                    if pattern_ash.apgcode == apgcode and object_cost > num_gliders and contrsynth([soup_rle]):
                        print("\u001b[32;1m\u001b[1mClean glider synthesis found\u001b[0m:")
                        print(soup_rle)
                        url = 'https://catagolue.hatsya.com/postsynth'
                        post = requests.post(url, data = {'content': "x = 0, y = 0, rule = B3/S23\n" + soup_rle})
                        print("RLE posted on Catagolue.")
                    elif object_cost > (num_gliders + 1) and contrsynth([soup_rle]):
                        print("A glider synthesis can be obtained using just a little cleanup:")
                        print(soup_rle)
                        print("\u001b[33;1m\u001b[1mPossible reduction.\u001b[0m")
                except:
                    if contrsynth([soup_rle]):
                        print("A glider synthesis can be obtained using just a little cleanup:")
                        print(soup_rle)
                        print("\u001b[33;1m\u001b[1mPossible synthesis.\u001b[0m")
            elif pop - minpop < 20 and pop - minpop > 10:
                if object_cost == 0:
                    object_cost = getcost(apgcode)
                try:
                    if object_cost > (num_gliders + 2) and contrsynth([soup_rle]):
                        print("A glider synthesis can be obtained using slightly more cleanup:")
                        print(soup_rle)
                        print("\u001b[33;1m\u001b[1mPossible reduction.\u001b[0m")
                except:
                    if contrsynth([soup_rle]):
                        print("A glider synthesis can be obtained using slightly more cleanup:")
                        print(soup_rle)
                        print("\u001b[33;1m\u001b[1mPossible synthesis.\u001b[0m")
        except IndexError:
            #print("Invalid soup " + item + " detected. Going on anyway.")
            pass
    print("The operation completed successfully.")
symmetry = input("Which symmetry do you want to investigate? ")
try:
    num_gliders = int(symmetry.split("G")[0])
except:
    num_gliders = int(input("How many gliders should the threshold be? "))
period = 0
minpop = 0
textcensus = str(urllib.request.urlopen("https://catagolue.hatsya.com/textcensus/b3s23/" + symmetry).read())
apgcodes = textcensus.split("\\n")
print("Obtaining contents of files...")
contents = get_contents(' b3s23', ' ' + symmetry, True)
#print(contents)
print("complete.")
for item in apgcodes:
    try:
        apgcode = item.split('","')[0].split('"')[1]
        if apgcode == "apgcode":
            pass
        if apgcode[0] == "x" and apgcode[1] == "p" or apgcode[0] == "x" and apgcode[1] == "q":
            print(apgcode)
            minpop = pop(lt.pattern(apgcode))
            try:
                object_cost = getcost(apgcode)
                if object_cost > num_gliders:
                    try:
                        check_glider_stdin(apgcode, period, minpop, symmetry, object_cost, contents)
                    except:
                        check_glider_stdin(apgcode, period, minpop, symmetry, object_cost, contents)
                else:
                    print("No need to investigate this object.")
            except TypeError:
                check_glider_stdin(apgcode, period, minpop, symmetry, None, contents)
        elif apgcode[0] == "x" and apgcode[1] == "s":
            print(apgcode)
            try:
                minpop = int(apgcode.split("s")[1].split("_")[0])
            except:
                print("Failed to find minimum population!")
                minpop = 0
            if apgcode[0] == "x" and apgcode not in prohibited_apgcodes:
                object_cost = getcost(apgcode)
                try:
                    if object_cost > num_gliders:
                        try:
                            check_glider_stdin(apgcode, period, minpop, symmetry, object_cost, contents)
                        except:
                            print("Could not make connection. Not investigating this object.")
                    else:
                        print("No need to investigate this object.")
                except:
                    try:
                        check_glider_stdin(apgcode, period, minpop, symmetry, object_cost, contents)
                    except:
                        print("Could not make connection. Not investigating this object.")
    except ZeroDivisionError:
        print("It seems like all objects have been searched in this stdin symmetry.")
        raise SystemExit()
Advantages:
- It saves time by checking all objects in quick succession instead of requiring manual intervention for each object checked.
- It points out reductions by itself by measuring the soup's population in a certain generation against the minimum population of the object.

Disadvantages:
- It may omit some reductions because it only estimates the cost of cleanup by population, rather than by the number of objects in the soup.
- It does not submit syntheses to Catagolue automatically because it is currently incapable of finding optimal cleanup by itself. Therefore, it still requires manual intervention in order to get the reductions on Catagolue.

How to spot reductions:
- Wherever you find "possible reduction" in the console as you run the program, the RLE above it is the soup that was reported by the program.

Also, modify the "dir" parameter in the "get_object" and "get_contents" functions to match the directory where you store your local hauls for the Glider_stdin censuses.

carsoncheng
Posts: 475
Joined: June 11th, 2022, 11:24 pm

Re: Randomly enumerating glider syntheses

Post by carsoncheng » January 26th, 2023, 11:43 am

I modified the glider_stdin script to add C2-symmetric support (this is the 8G_C2_4_stdin script):

Code: Select all

#include <cstring>
#include <cstdio>
#include <random>
using namespace std;
//int lim = 100;
bool aray[30][30];
bool aray2[30][60];
const int glide[16] = {143, 346, 107, 286, 302, 115, 167, 370, 482, 181, 428, 241, 233, 412, 458, 157};

// 0: down right
// 1: down left
// 2: up left
// 3: up right

const int gc = 4;

inline bool inr(int x) { return 0 <= x && x <= 50; }

int main() {
    mt19937 rng; random_device rd;
    rng.seed(rd());
    int x = -1;
    while(x--) {
        memset(aray, 0, sizeof aray);
        for(int i=0; i<gc; i++) {
            int dx = rng()%20, dy = rng()%20, id=rng()%16;
            switch (id/4)
            {
                case 0: dx+=16; dy+=16; break;
                case 1: dx+=16; break;
                case 2: break;
                case 3: dy+=16; break;
                default: break;
            }
            bool f = false;
            for(int i=0;i<25;i++) if(inr(dx+i/5-1) && inr(dy+i%5-1) && aray[dx+i/5-1][dy+i%5-1]) { f = true; break; }
            if(f) continue;
            for(int i=0;i<9;i++) aray[dx+i/3][dy+i%3] |= (bool)(glide[id]&(1<<i));
        }
        for(int i=0; i<30; i++) {
            for(int j=0; j<30; j++){
                int var = aray[i][j];
                aray2[i][j] = var;
                //aray2[30-1-i][60-1-j] = var;
                aray2[29-i][59-j] = var;
            }
        }
        string rle;
        for(int i=0; i<30; i++) {
            if(i) rle += '$';
            int cnt = 0, cv = 2;
            for(int j=0; j<60; j++) {
                if(aray2[i][j] != cv) {
                    if(cv != 2) {
                        if(cnt != 1) rle += to_string(cnt);
                        rle += cv?'o':'b';
                    }
                    cnt = 1; cv = aray2[i][j];
                } else cnt++;
            }
            if(cv) rle += (to_string(cnt)+(cv?'o':'b'));
        }
        while(rle.back() == '$') rle.pop_back();
        string srle;
        int cnt = 0;
        for(char c:rle) {
            if(c == '$') {
                if(srle.length()) cnt++;
            } else {
                if(cnt) srle += (to_string(cnt)+'$');
                cnt = 0;
                srle += c;
            }
        }
        srle += '!';
        puts("x = 0, y = 0, rule = B3/S23");
        puts(srle.c_str());
    }
}
I uploaded my first results onto the 8G_C2_4_stdin symmetry (C2_2 and C2_1 support coming soon). Even though most soups are working fine, some soups such as this one below is broken.

Code: Select all

x = 0, y = 0, rule = B3/S23
15bo1$16b2o1$15b2o1$21bo1$21bobo1$21b2o3$31bo1$32bo1$30b3o2$o27b2o1$29bo1$o1$59b1o1$30bo1$30b2o27b1o2$27b3o1$27bo1$28bo3$37b2o1$36bobo1$38bo1$43b2o1$42b2o1$44bo!
Feel free to suggest any improvements to this code, including speed improvements and fixing broken soups like this.

EDIT: Some initial synthesis improvements:

xs14_69jzxpic in 8G (down from 9G):

Code: Select all

x = 62, y = 82, rule = B3/S23
bo$2bo$3o26$29bo$8bobo16b2o$9b2o9bo7b2o$9bo11bo$19b3o17$40b3o$40bo11b
o$32b2o7bo9b2o$33b2o16bobo$32bo26$59b3o$59bo$60bo!
xs12_178421e8 in 6G (down from 7G):

Code: Select all

x = 32, y = 30, rule = B3/S23
29bobo$29b2o$30bo8$26bo$25bo$14bo10b3o$12b2o$13b2o$17b2o$18b2o$4b3o10b
o$6bo$5bo8$bo$b2o$obo!
EDIT: I have also added support for C2_1 and C2_2.

8G_C2_2_stdin script:

Code: Select all

#include <cstring>
#include <cstdio>
#include <random>
using namespace std;
//int lim = 100;
bool aray[29][29];
bool aray2[29][58];
const int glide[16] = {143, 346, 107, 286, 302, 115, 167, 370, 482, 181, 428, 241, 233, 412, 458, 157};

// 0: down right
// 1: down left
// 2: up left
// 3: up right

const int gc = 4;

inline bool inr(int x) { return 0 <= x && x <= 50; }

int main() {
    mt19937 rng; random_device rd;
    rng.seed(rd());
    int x = -1;
    while(x--) {
        memset(aray, 0, sizeof aray);
        for(int i=0; i<gc; i++) {
            int dx = rng()%20, dy = rng()%20, id=rng()%16;
            switch (id/4)
            {
                case 0: dx+=16; dy+=16; break;
                case 1: dx+=16; break;
                case 2: break;
                case 3: dy+=16; break;
                default: break;
            }
            bool f = false;
            for(int i=0;i<25;i++) if(inr(dx+i/5-1) && inr(dy+i%5-1) && aray[dx+i/5-1][dy+i%5-1]) { f = true; break; }
            if(f) continue;
            for(int i=0;i<9;i++) aray[dx+i/3][dy+i%3] |= (bool)(glide[id]&(1<<i));
        }
        for(int i=0; i<29; i++) {
            for(int j=0; j<29; j++){
                int var = aray[i][j];
                aray2[i][j] = var;
                aray2[28-i][57-j] = var;
            }
        }
        string rle;
        for(int i=0; i<29; i++) {
            if(i) rle += '$';
            int cnt = 0, cv = 2;
            for(int j=0; j<58; j++) {
                if(aray2[i][j] != cv) {
                    if(cv != 2) {
                        if(cnt != 1) rle += to_string(cnt);
                        rle += cv?'o':'b';
                    }
                    cnt = 1; cv = aray2[i][j];
                } else cnt++;
            }
            if(cv) rle += (to_string(cnt)+(cv?'o':'b'));
        }
        while(rle.back() == '$') rle.pop_back();
        string srle;
        int cnt = 0;
        for(char c:rle) {
            if(c == '$') {
                if(srle.length()) cnt++;
            } else {
                if(cnt) srle += (to_string(cnt)+'$');
                cnt = 0;
                srle += c;
            }
        }
        srle += '!';
        puts("x = 0, y = 0, rule = B3/S23");
        puts(srle.c_str());
    }
}
8G_C2_1_stdin script:

Code: Select all

#include <cstring>
#include <cstdio>
#include <random>
using namespace std;
//int lim = 100;
bool aray[29][29];
bool aray2[29][57];
const int glide[16] = {143, 346, 107, 286, 302, 115, 167, 370, 482, 181, 428, 241, 233, 412, 458, 157};

// 0: down right
// 1: down left
// 2: up left
// 3: up right

const int gc = 4;

inline bool inr(int x) { return 0 <= x && x <= 50; }

int main() {
    mt19937 rng; random_device rd;
    rng.seed(rd());
    int x = -1;
    while(x--) {
        memset(aray, 0, sizeof aray);
        for(int i=0; i<gc; i++) {
            int dx = rng()%20, dy = rng()%20, id=rng()%16;
            switch (id/4)
            {
                case 0: dx+=16; dy+=16; break;
                case 1: dx+=16; break;
                case 2: break;
                case 3: dy+=16; break;
                default: break;
            }
            bool f = false;
            for(int i=0;i<25;i++) if(inr(dx+i/5-1) && inr(dy+i%5-1) && aray[dx+i/5-1][dy+i%5-1]) { f = true; break; }
            if(f) continue;
            for(int i=0;i<9;i++) aray[dx+i/3][dy+i%3] |= (bool)(glide[id]&(1<<i));
        }
        for(int i=0; i<29; i++) {
            for(int j=0; j<29; j++){
                int var = aray[i][j];
                aray2[i][j] = var;
                aray2[28-i][56-j] = var;
            }
        }
        string rle;
        for(int i=0; i<29; i++) {
            if(i) rle += '$';
            int cnt = 0, cv = 2;
            for(int j=0; j<57; j++) {
                if(aray2[i][j] != cv) {
                    if(cv != 2) {
                        if(cnt != 1) rle += to_string(cnt);
                        rle += cv?'o':'b';
                    }
                    cnt = 1; cv = aray2[i][j];
                } else cnt++;
            }
            if(cv) rle += (to_string(cnt)+(cv?'o':'b'));
        }
        while(rle.back() == '$') rle.pop_back();
        string srle;
        int cnt = 0;
        for(char c:rle) {
            if(c == '$') {
                if(srle.length()) cnt++;
            } else {
                if(cnt) srle += (to_string(cnt)+'$');
                cnt = 0;
                srle += c;
            }
        }
        srle += '!';
        puts("x = 0, y = 0, rule = B3/S23");
        puts(srle.c_str());
    }
}

Post Reply