RCT remaining tasks

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 1st, 2024, 7:40 pm

dvgrn wrote:
January 1st, 2024, 7:07 pm
I've posted the LifeHistory14 rule to Rule:LifeHistory14. That's all LifeViewer needs to display the rule without errors.

In a little while I'll try to get around to appending the rule tree version of the rule -- that will make LH14 rules run a lot faster.

Is there any reason that you don't use LifeSuper instead? I haven't analyzed all of the added states in LifeHistory14, but I'm pretty sure there are equivalents or near-equivalents in LifeSuper -- which is natively supported by Golly and LifeViewer already.
Thanks ... oops it still displays errors.

Are there dead states corresponding to live states in LifeSuper so the color notes are persistent?

I have some supporting macros for LH14 (marking start cells, deleting history states, conversion from LH ...) but that could have benn implementd to LifeSuper as well. I am just not familliar with LifeSuer yet. And my macros to put conduits together (ECCA, ECCA_unidim, ECCA_8phases9x256, Hobjects) are usisng LH14 making join marks, output marks by different startes ... that will require translation to LifeSupper as well ... .

For now it is easier for me to allow you see the results in LH14 (states above 14 are history dead, if I remember well and even states are dead as well ... and 2,3 are special)

Here is convertor to LH, but it loses some states (marked dead cells are just dead)

Code: Select all

-- LifeHistory14 to LifeHistory converter, intended to be mapped to keyboard shortcut, e.g., Alt+H
-- used for presenting variants of stable circuits
local g = golly()

local rule = g.getrule()
-- No effect if already in LifeHistory14 rule
if rule=="LifeHistory" then g.exit() end

if rule~="LifeHistory14" then
   g.warn("Convert to LifeHistory14 first or use direct convertor from "..rule)
   g.exit()
end

ruletext = [[@RULE LifeHistory14ToLifeHistory
@TABLE
n_states:255
neighborhood:oneDimensional
symmetries:none
var histories ={14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254}
var all={0,1,2,3,4,5,6,7,8,9,10,11,12,13,histories}
var all_1={all}
#converting histories
histories,all,all_1,2
#markstable1 on to start ON
13,all,all_1,5
9,all,all_1,5
#other marked except signals to ON/OFF
12,all,all_1,0
11,all,all_1,1
10,all,all_1,0
8,all,all_1,0
7,all,all_1,1
6,all,all_1,0
#marked signals to marked, 4 remains 
5,all,all_1,3
#converting old boundary to new boundary (live to 0!)
3,all,all_1,0
2,all,all_1,6
]]
   
local function CreateRule()
    local fname = g.getdir("rules").."LifeHistory14ToLifeHistory.rule"
    local f=io.open(fname,"r")
    if f~=nil then
        io.close(f)  -- rule already exists
    else 
        local f = io.open(fname, "w")
        if f then
            f:write(ruletext)
            f:close()
        else
            g.warn("Can't save LifeHistory14ToLifeHistory rule in fname:\n"..fname)
        end
    end
end
      
CreateRule()
g.setrule("LifeHistory14ToLifeHistory")
g.run(1)
step = g.getstep()
g.setrule("LifeHistory")
g.setstep(step)
g.setgen("-1")
BTW: I was editting
Hippo.69 wrote:
January 1st, 2024, 6:20 pm
while you have replied...

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

Re: RCT remaining tasks

Post by dvgrn » January 1st, 2024, 7:45 pm

Hippo.69 wrote:
January 1st, 2024, 7:40 pm
Are there dead states corresponding to live states in LifeSuper so the color notes are persistent?
Yes, there are three dead "history" states corresponding to three of the "alive" states -- alive state 1 becomes dead state 2, alive state 9 dies and becomes dead state 10, and alive state 11 becomes dead state 12. Different but related colors. The full spec is described here.

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 1st, 2024, 8:21 pm

dvgrn wrote:
January 1st, 2024, 7:45 pm
Hippo.69 wrote:
January 1st, 2024, 7:40 pm
Are there dead states corresponding to live states in LifeSuper so the color notes are persistent?
Yes, there are three dead "history" states corresponding to three of the "alive" states -- alive state 1 becomes dead state 2, alive state 9 dies and becomes dead state 10, and alive state 11 becomes dead state 12. Different but related colors. The full spec is described here.
I use 9->8 to mark starting configuration (or in sync with 0 mod 256), 5->4 to mark important signals, and 7->6 to mark temporary signals (joins of conduits). (And 1->histories).

I am not 100% consistent (I use 4(temporary 5) to write comments ... as I am color blind and I have not invented good colors for states 10,11).

I have not created LH14->LifeSuper convertor, but that would definitely must lose some information as well. For most presentations so far, I have used LH14->LH conversion ignoring lost marks (8,6), but sometimes they could be usefull. (I use macro to synchronise generation to 0 mod 256 and seting step to 2^8) so 9,8 states are important for me to see everything is in sync ... (adding out of sync signal would destroy any p256 *CA)

Yes, it is a bit problem if everybody comes with his own set of rules ... but I would prefere to have at least 3 pairs of marked live/death ... (I made them 5 to have some reserve) I understand the histories are not that much important, but they are good for documentation (see overleaf). I have not find a need for colored gliders (yet), as I am mostly making static circuits rather to spaceships.
(And it will be really difficult to make unidimensional spaceship to work colored in LifeSuper anyways).

So LifeSuper does not mach my needs ... it does not mean there are other rules that would be good for my requirements.

... It is hard to make extended enough set to satisfy all needs ...

-----
Hmmm the destruct_DBCA somehow failed with keep_best_n = 128 ... the best solution was cheaper by 10 then for keep_best_n = 64 for a while, but then it got following so far best recipe costs and evaluations: 1340,3005 1344,3010 1349,3010 1354,3010 1359,3010 1364,3010 1389,3015 ...... 7041, 3015 when I have stopped it. I do not know what happened yet.

Hmm it works differently on .mc and on .rle version of the pattern? (I run it on .mc, but published .rle)
I have added:

Code: Select all

            if i==0:
                g.new('Work')
                g.putcells(pattern)
                g.fit()
                g.update()
To see what happened. Having it out of the loop would be beter, but ...

Hmm I made 2 control runs for keep_best_n = 128 (one with stopping condition as well) and both went through smoothly decreasing recipe cost to 2181 bits. So far we have these for keep_best_n ...
2:2635, 4:2470, 8:2373, 16:2293, 32:2257, 64:2222, 128: 2181, 256:2174, 512:2143.
I suppose there is some randomnes included in the use of hash function, and may be in sorting and keep best when keys are equal ...

Hmm, I have tried to guess discount gliders for the block pulling to destroy south p256 on 256:2174 salvo, and it is highly incompatible with 512:2143 solution (an obstacle could be an advantage when it is hit by a future glider...). I have hoped I will got the same salvo for different beams, but it seems I will just stop with good enough result. ... let us finish the 1024: computation. (I would definitely not be patient to wait for 2048 computation, and 1024 is on the edge ...)

And for 1024 I got 2157 ... so the evaluation ordering is that bad the best solution of 512 had an intermediate phase which did not made it to best 1024 subresults of the wider search. (And the cut was caused by a concurency which did not fit to best 512 ...) There is probably space for improvement, but the difference is negligable so I would use the 512 result.

Oops, I have to destroy the ECCA central bouncers as well. ... and in that case south p256 would be better to destroy by destroying NW block ... the released glider starts destruction of the ECCA bouncers (and the ECCA arm block neednot be pulled that much (before pushing back)).
DBCADestryalTargetAndGliderNoBoatBL.mc
(21.55 KiB) Downloaded 10 times

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 12th, 2024, 9:00 pm

I have prepared line program for DBCA destroyal, I have worked on make_binary.py to accept commented bitfiles, and on semilate.py (the dvgrn.lua part). Here is what we get so far:
rct15.mc
(627.3 KiB) Downloaded 11 times
with auto generated

Edit...oops ... I have problems with exact timing in the script to show gliders arriving FSE to create one time reflector ...
I did last time changes to reposition the notes and mistakenly duplicated few bits in the recipe ... now both attachment and the code are replaced.
The comments at the end at FSE are not well timed, but this is not the current priority.

Code: Select all

local showtext, showtextbase = "", ""
local bn = require "../gplus.bignum"
local g = golly()

g.setbase(2)
g.setpos("0","0")

local false_literal = false
local true_literal = true
local bnParsec = BigNum.new("47244640512")
local bnParsecHalf = BigNum.mt.half(bnParsec)
local bnParsecQuarter = BigNum.mt.half(bnParsecHalf)
local bnAeon=bnParsec                   -- /c
local bnAeonHalf = bnParsecHalf         --/c  (c=1)
local bnTwoAeons=bnAeon+bnAeon          -- maybe I have to implement multiplication and division:)
local bnFourAeons=bnTwoAeons+bnTwoAeons -- -"-
local startGen = g.getgen()
local bnZero = BigNum.new(0)
local currentAeon = 0
local bnCurrentAeonBase = bnZero
local bnCurrentOffset
local nrGliderGPSECollisionsToShow = 10 -- 26 is maximum displayed, whatever bigger will be interrupted (there are 28 bits in total)
local lastfstep=11

while startGen>bnCurrentAeonBase + bnAeonHalf do
  bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
  currentAeon = currentAeon + 1
end
local startAeon = currentAeon

g.autoupdate(true_literal)

local function smoothmag(imag, fmag)
    while imag ~= fmag do
        if imag < fmag then
            imag = imag + 1
        else
            imag = imag - 1
        end
        g.setmag(imag)
        g.sleep(200)
    end
    return imag
end

local function run_for_to(n, targetAeon, targetgen, istep, fstep, mags)
    local bnTargetGen
    local bnN
    local magindex
    local enterAeon = currentAeon
    fstep = fstep or 11
    if targetAeon~=nil then
      if targetAeon+0>100 then
        targetAeon = nil
      end
    end
    if (targetgen ~= nil) and targetAeon ~= nil then
    	bnTargetGen = BigNum.new(targetgen)
        if targetAeon<currentAeon then
--          g.note(showtext.." - target Aeon smaller than current one ")
            return
        end
        while currentAeon < targetAeon do
            bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
            currentAeon = currentAeon + 1
        end
    end
    if (targetgen == nil or targetAeon==nil) and (n == nil) then
        g.note(showtext.." - run_for_to with unknown duration")
        return
    end
    bnCurrentOffset=BigNum.new(g.getgen()) - bnCurrentAeonBase
    local bnStartGen=startGen - bnCurrentAeonBase
    local bnEnterGen=bnCurrentOffset
    if n ~= nil then
        bnN = BigNum.new(n)
    end
    if (targetgen ~= nil) and (targetAeon~=nil) and (n ~= nil) then
       if bnN+bnEnterGen ~= bnTargetGen  then
          if bnStartGen > bnTargetGen then return end -- skipping milestones to restart
          if bnStartGen + bnN < bnTargetGen then -- must be script error
             if bnN+bnEnterGen > bnTargetGen+BigNum.new(2^lastfstep) then
            	g.note(showtext.."("..currentAeon..") : - run_for_to for not matching to "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
            	return
             end
          end
          --g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." running to first milestone after restart")
          bnN = bnTargetGen - bnEnterGen
       end
    end
    if (n==nil) then -- helper for editting at the end
	bnN = bnTargetGen - bnEnterGen
      --g.note(showtext.." : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    if (targetgen == nil or targetAeon == nil) then -- helper for editting
      bnTargetGen = bnN + bnEnterGen
      while bnTargetGen>bnAeonHalf do
        bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
        currentAeon = currentAeon + 1
        bnTargetGen = bnTargetGen - bnAeon
        bnEnterGen = bnEnterGen - bnAeon
      end
      g.setclipstr("run_for_to(\""..BigNum.mt.tostring(bnN).."\", "..currentAeon..", \""..BigNum.mt.tostring(bnTargetGen).."\"")
      g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    local bnGen
    local sTargetGen = BigNum.mt.tostring(bnTargetGen)
    if bnN<=0 then return end
    local nn=BigNum.mt.tostring(bnN)
    istep = istep or math.min(30, math.floor(math.log(nn)/math.log(2))-6)
    local cstep = g.getstep()
    if cstep<fstep then cstep = fstep end
    if cstep>istep then cstep = istep end
    if mags then
        magindex = 1
        currmag = mags[magindex]
        g.setmag(currmag)
        magindex = magindex + 1
    end
    local bn3Eistep = BigNum.new(3*2^istep)
    g.setstep(cstep)
    while bnN > bnZero do
        g.show(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." i"..istep.." f"..fstep)

        while (istep > fstep) and (bnN < bn3Eistep) do
            istep = istep - 2
            if istep < 0 then istep = 0 end
            bn3Eistep = BigNum.new(3*2^istep)
            cstep = istep
            if mags and magindex <= #mags then
                currmag = smoothmag(currmag, mags[magindex])
                magindex = magindex + 1
            end
            g.setstep(cstep)
        end
        g.step()
        bnGen=BigNum.new(g.getgen()) - bnCurrentAeonBase
        bnN = bnTargetGen - bnGen
        cstep = g.getstep()
        if (cstep<istep) then -- owerwriting manual slowdown
          cstep = cstep+1
          g.setstep(cstep)
        end
        if (cstep>istep) then -- owerwriting manual speedup
          cstep = cstep-1
          g.setstep(cstep)
        end
    end
    lastfstep = fstep
    if (n==nil) and (enterAeon==currentAeon) then
      -- no explicit duration when Aeon boundary is crossed
      bnN=bnGen-bnEnterGen
      g.setclipstr("run_for_to(\""..BigNum.mt.tostring(bnN).."\", "..currentAeon..", \""..BigNum.mt.tostring(bnGen).."\"")
      g.note(showtext.."("..currentAeon..") : ".." final generation: "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnGen))
    end
end

local function run_from_to(bnN, targetAeon, bnTargetGen, istep, fstep, mags)
--bnTargetgen big number not nil (bnN==nil if to new Aeon)
  if bnN==nil then
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:nil")
    run_for_to(nil, targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  else
    local bnDuration = bnTargetGen - bnN
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:"..BigNum.mt.tostring(bnDuration))
    run_for_to(BigNum.mt.tostring(bnDuration), targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  end
end

local function distance_bits(prevTime)
  -- somehow when interrupted, restart skips to "remaining bits read"
  -- ... I should check why it happens, but it is method how to speed the show up,
  -- so it looks like desired feature.
  local bngcCollisionPos = bnParsecQuarter+0
  local bngcCollisionTime = -bnAeon-bnTwoAeons
  local collisionAeon=10 -- 3rd collision only
  local bnReadTime = -bnTwoAeons
  local gnPrevTime = BigNum.new(prevTime)
  local bngcCollisionTimeOffs
  local bnReadTimeOffs
  local i
  -- 12-8 12-4 12-2   12-1     12-0.5
  -- 12-6 12-3 12-1.5 12-0.75
  for i=3,nrGliderGPSECollisionsToShow,1 do
    bngcCollisionPos=BigNum.mt.half(bngcCollisionPos)
    bngcCollisionTime=BigNum.mt.half(bngcCollisionTime)
    bnReadTime=BigNum.mt.half(bnReadTime)
    if bnReadTime>-22000 then
      -- remaining bits should be processed extra
      break
    end
    bngcCollisionTimeOffs=bngcCollisionTime+bnAeon
    bnReadTimeOffs=bnReadTime+bnAeon
    if i==3 then -- Aeon exception
      bngcCollisionTimeOffs=bngcCollisionTimeOffs+bnAeon
    end
    g.setpos(BigNum.mt.tostring(bngcCollisionPos), BigNum.mt.tostring(bngcCollisionPos))
    showtext="Fast-forwarding to FSE glider with GPSE collision nr. "..i
    run_from_to(gnPrevTime, collisionAeon, bngcCollisionTimeOffs+2048, 30, 0, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
    gnPrevTime=bngcCollisionTimeOffs+4096
    run_for_to("2048", collisionAeon, gnPrevTime, nil, 0, {0})
    g.setpos(0, 0)
    showtext="Fast-forwarding to distance bit read nr. "..i
    if i==3 then
      gnPrevTime=nil
      collisionAeon=11
    end
    run_from_to(gnPrevTime, collisionAeon, bnReadTimeOffs+2048, 30, 0, {-30, -2})
    showtext="Note the gliders going from the center ..."
    gnPrevTime=bnReadTimeOffs+4128
    run_for_to(2080, collisionAeon, gnPrevTime, nil, 0, {0})
  end
end

showtext="Startng crash FSE"
g.setpos(BigNum.mt.tostring(bnParsec), BigNum.mt.tostring(bnParsec))
run_for_to("1024",0,"1024",4,4,{-1})
showtext="Startng crash FNW"
g.setpos(BigNum.mt.tostring(-bnParsec), BigNum.mt.tostring(-bnParsec))
run_for_to("1024",0,"2048",4,4,{-1})
showtext="Fast-forwarding to first collision of gliders from GPSEs..."
g.setpos(0,0)
run_for_to(nil, 4, "960", 30, 6, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
showtext="Note the gliders going  from the center..."
run_for_to("992", 4, "1952", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecHalf), BigNum.mt.tostring(bnParsecHalf))
showtext="Fast-forwarding to first FSW glider with GPSE collision..."
run_for_to(nil, 6, "448", 30, 2, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
run_for_to("2048", 6, "2496")
g.setpos(0, 0)
showtext="Fast-forwarding to first distance bit read ..."
run_for_to(nil,8,"1280",30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("1024", 8, "2304", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecQuarter), BigNum.mt.tostring(bnParsecQuarter))
showtext="Fast-forwarding to second FSE glider with GPSE collision..."
run_for_to(nil, 9, "1184", 30,2,{-30,-27,-24,-21,-18,-16, -14, -12, -10, -8, -6, -4, -2, 0})
run_for_to("2048", 9, "3232")
g.setpos(0, 0)
showtext="Fast-forwarding to second distance bit read ..."
run_for_to(nil,10, "-1088", 30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("2048", 10, "3168", 4, 4, {0})
showtext="Fast-forwarding to first inserted MWSS bits ... here only 28 bits are encoded in pattern size"
run_for_to("194952", 10, "198120", nil, 4, {-30, -16, -8, -4, -2, 0})
showtext="Each inserted bit reduces pattern dimensions to half, there will be no chance to wait for result without the reduction"
run_for_to("1600", 10, "199720", nil, nil, {0})
showtextbase="Transform the initial crash site into a usable blinker elbow"
showtext=showtextbase
run_for_to("16580608",10,"16780328")
showtextbase="Building LWSS seed and blocks"
showtext=showtextbase
run_for_to("21102592",10,"37882920")
showtext=showtextbase.." - Creating block needed for ECCA construction and another one"
run_for_to("33882112",10,"71765032")
showtext=showtextbase.." - LWSS seed construction started"
run_for_to("125435904",10,"197200936")
g.setmag(-3)
showtext=showtextbase.." - LWSS seed construction ended, stackbottom repositioning starts"
g.setpos("600", "-600")
run_for_to("838074368",10,"1035275304")
showtext=showtextbase.." - Stackbottom repositioning ended"
g.setmag(0)
showtextbase="Building glider seed"
showtext=showtextbase
g.setpos("1200", "-1200")
showtext=showtextbase.." - Creating target block for glider seed"
run_for_to("16580608",10,"1051855912")
showtext=showtextbase.." - Start of glider seed recipe"
run_for_to("80740352",10,"1132596264")
showtext=showtextbase.." - End of glider seed recipe"
run_for_to("2228224",10,"1134824488")
g.setmag(-2)
showtext=showtextbase.." - Switch to stack items better for long fills"
g.setpos("600", "-1400")
showtextbase="Creating synced glider pair to invoke the seeds to create distant target"
showtext=showtextbase
showtext=showtextbase.." - Creating long gap on the stack"
run_for_to("35782656",10,"1170607144")
showtext=showtextbase.." - You may notice the last 3 pairs of beehive pairs differ from he rest"
run_for_to("10616832",10,"1181223976")
showtext=showtextbase.." - Expensive transformation to standard stack items ended"
run_for_to("12845056",10,"1194069032")
showtext=showtextbase.." - Target for the subrecipe created, glider pair seed recipe starts"
run_for_to("101842944",10,"1295911976")
showtext=showtextbase.." - Glider pair seed recipe ended"
run_for_to("3407872",10,"1299319848")
showtextbase="Distant target creation seed activation"
showtext=showtextbase
run_for_to("65536",10,"1299385384")
showtextbase="Distant target creation seed activated"
showtext=showtextbase
run_for_to("1638400",10,"1301023784")
showtext=showtextbase.." - Stack have to return to the position to build DBCA"
run_for_to("3145728",10,"1304169512")
showtext=showtextbase.." - Stack returned  to the position to build DBCA"
showtextbase="(Green) DBCA building recipe applied to the distant target, including cordership activation seed, the most expensive part of the RCT15 constant part "
showtext=showtextbase
run_for_to("24649596928",11,"-21290874072")
showtext=showtextbase.." - (Green) DBCA sleeping pattern is ready, we have to replace the stack by reflector targets to ignite the corderships"
run_for_to("10682368",11,"-21280191704")
showtextbase="Building 2 target blinkers for DBCA reflectors, 1 target blinker for ECCA reflectors and glider to activate the cordership"
showtext=showtextbase
showtext=showtextbase.." - Big move of stack bottom to ECCA target starts. It uses easily destroyable filler."
run_for_to("20578304",11,"-21259613400")
showtext=showtextbase.." - Expensive part converting stack top to blinker."
run_for_to("11141120",11,"-21248472280")
showtext=showtextbase.." - Filler removal."
run_for_to("10354688",11,"-21238117592")
showtext=showtextbase.." - Gap separating ECCA reflector target from 1st DBCA reflector target was created"
run_for_to("6029312",11,"-21232088280")
showtext=showtextbase.." - Gap separating 1st DBCA reflector target from 2nd DBCA reflector target was created"
run_for_to("6881280",11,"-21225207000")
showtext=showtextbase.." - Gap separating glider construction stack from the reflector targets created"
run_for_to("13303808",11,"-21211903192")
showtextbase="Activating the cordership to start DBCA reflectors"
showtext=showtextbase
run_for_to("65536",11,"-21211837656")
showtextbase="DBCA reflectors activated"
showtext=showtextbase
run_for_to("589824",11,"-21211247832")
showtextbase="remnants of the original arm removed, green DBCA activated"
showtext=showtextbase
showtextbase="Creating eater at the Green line and White target using Green DBCA"
showtext=showtextbase
run_for_to("18874368",11,"-21192373464")
showtextbase="Green portion of DBCA really finished, White portion construction begins"
showtext=showtextbase
run_for_to("1245184",11,"-21191128280")
showtext=showtextbase.." - going to debug"
run_for_to("519503872",11,"-20671624408")
showtext=showtextbase.." - White color reflector activation"
run_for_to("65536",11,"-20671558872")
showtext=showtextbase.." - White color reflector activated"
run_for_to("21430272",11,"-20650128600")
g.setmag(-3)
showtextbase="Decoder and better construction arm (DBCA) finished"
showtext=showtextbase
g.note("debug")
g.setmag(0)
showtext=showtextbase.." - cleanup of the PI explosion from the initial GPSE collision starts"
g.setpos("0", "0")
run_for_to("48168960",11,"-20601959640")
showtext=showtextbase.." - cleanup of the PI explosion from the initial GPSE collision ended"
showtext=showtextbase.." - GPSE stopping block positioned"
run_for_to("7995392",11,"-20593964248")
showtextbase="Releasing first glider FSE"
showtext=showtextbase
run_for_to("4325376",11,"-20589638872")
showtextbase="Releasing second glider FSE"
showtext=showtextbase
run_for_to("4325376",11,"-20585313496")
showtextbase="Releasing third glider FSE"
showtext=showtextbase
run_for_to("1769472",11,"-20583544024")
g.note("work in progress,\n Note that this scripts allow you restart at any generation.\n You can stop it, watch a detail and restart afterwards to let show continue.")
showtextbase="And this is end so far"
showtext=showtextbase
run_for_to("188960146432",15,"-20601959640")
showtext=showtextbase.." - First glider arriving to FSE"
g.setpos("47244640512", "47244640512")
run_for_to("131072",15,"-20601828568")
showtext=showtextbase.." - First glider arriving to FSE"
run_for_to("5373952",15,"-20596454616")
showtextbase="First glider arrived to FSE"
showtext=showtextbase
run_for_to("5046272",15,"-20591408344")
showtext=showtextbase.." - Second glider arriving to FSE"
run_for_to("65536",15,"-20591342808")
showtextbase="Second glider arrived to FSE"
showtext=showtextbase
run_for_to("4653056",15,"-20586689752")
showtext=showtextbase.." - Third glider arriving to FSE"
run_for_to("65536",15,"-20586624216")
showtextbase="Third glider arrived to FSE"
showtext=showtextbase
.
Finishing FSE patterns (dbca block destroyal) and pslmake usage in "DBCA mode" is the nearest step.
I have reused calcymans script to speedup testing:

Code: Select all

import lifelib

lt = lifelib.load_rules('b3s23').lifetree(n_layers=1)


def sanitise_line(x):
    '''
    Removes comments and parenthetical strings from a binary line.
    '''

    x = x.split('--')[0] # remove comments

    l = []
    d = 0
    for c in x:
        if c == '(':
            d += 1
        elif c == ')':
            d -= 1
        elif (d == 0):
            l.append(c if c in '12 ' else '')
    return ''.join(l)


def sanitise(x):

    return '    '.join([sanitise_line(l) for l in x.split('\n')])


def bin2patt(x, spacing=16384):

    x = sanitise(x)

    initial = lt.pattern('''x = 23553, y = 25805, rule = B3/S23
                            279b2o$279bo2bo$265bo$265b3o11bo2bo$268bo9bo2bo$267b2o9bobo$279bo$272b
                            o$271bobo5b2o$271bo2bo4b2o$272b2o11$246b2o81bo$242b2o2b2o2b2o76bobo$
                            242b2o2bo2bobo75bo3bo$248b3o66bo8bo3bo$248b2o67b3o5bo3bo$320bo3bo3bo$
                            319b2o4bobo$251bo74bo$250bobo69bo$249bo2bo68bobo$250b2o65b2o2b2o$317b
                            2o2$246b2o$245bobo$245bo87b2o$244b2o87b2o5$294b2o$287b2o5b2o$287b2o3$
                            289b2o27b2o$289b2o27b2o$283b2o$283b2o$263b2o59b2o$263b2o59b2o$320b2o$
                            320b2o4$325b2o$325b2o4$290bo$289bobo$290b2o3$362b2o5b2o$299b2o61b2o5bo
                            $299b2o66bobo$290b3o74b2o$363b2o$278b2o83bobo$278b2o84bo$368bo2$366bob
                            3o$283b2o22b2o59b2obo$283b2o22bobo58bob2o$279b2o27bo60b3obo$279b2o$
                            320b2o49bo$320b2o$285b2o27b2o$285b2o27b2o3$316b2o$309b2o5b2o$309b2o2$
                            284b2o$283bobo$284bo$303b2o$303bo$301bobo$301b2o4$245b2o$239bo5bobo$
                            239bo6bo13b2o$239bo21bo78b2o3b2o$235b2o24bobo75bo2bobo2bo$235b2o25b2o
                            70bo5b2o3b2o5bo$333bobo15bobo$334bo17bo$266b2o$265bo2bo$266bobo$267bo
                            4$262b2o$258b2o4b4o$258b2o2b2ob3o$262bo94$164bo$163bobo170b2o$162bo3bo
                            169b2o$163bo3bo$164bo3bo$165bo3bo$166bobo159bo$167bo160b3o$171bo148bo
                            10bo$170bobo146bobo8b2o$171b2o146bobo26bo$167b2o148b3ob2o23b3o$166bobo
                            147bo28bo$159b2o5bo5b2o143b3ob2o22b2o$159b2o4b2o5b2o145bob2o2$344b2o$
                            344b2o4$169bo$168b3o$167bob3o$157bo8bo3bo$157b3o5bo3bo$160bo3b3obo7b2o
                            $159b2o4b3o8b2o$166bo164b2o$162bo169bo$161bobo165b3o$157b2o2b2o166bo$
                            157b2o13$266b2o71b2o$330b2o7b2o$264bo3bo62bo$264bo4bo61bobo$266bobobo
                            8bo52b2o$267bobobo5b3o178b2o$155b2o111bo4bo2bo181bo$155b2o112bo3bo2b2o
                            72b2o107b3o$350bo110bo$270b2o2bo73bobo$273bobo72b2o$274b2o2b2o$278b2o$
                            334b2o$333bobo$333bo$332b2o$216b2o$216b2o2$214bo$203bo10bo58b2o$203b3o
                            8bo58b2o$206bo130b2o$205bobo130bo$205bobo127b3o$206bo61b3o64bo5$221b2o
                            $221b2o2$541b2o$541b2o$201b2o$200bobo38bo34bo49bo$200bo38b3o32b3o47b3o
                            33b2o$145b2o52b2o7b2o28bo34bo49bo36bo$145b2o61b2o28b2o33b2o48b2o20b2o
                            14b3o26b2o$228b2o106b2o7b2o16bo25bobo$216b2obo9bo107bo51bo$216b2ob3o7b
                            obo105bobo48b2o$222bo7b2o4b2o45bo48b2o4b2o186b2o$216b2ob3o13bo2bo44b3o
                            47bo20b2o69bobo98b2o$187bo29bobo16b2o48bo46bobo18bo69bo58b2o$186bobo
                            28bobo28b2o35b2o11b2o34b2o16bobo64b2o2bo4bo50b2o4b4o$185bo3bo28bo29b2o
                            48b2o52b2o65b2obo2bob2o50b2o2b2ob3o$107b2o66bo8bo3bo173bo60b2o58bo$
                            108bo66b3o5bo3bo31bo142bo$108bobo67bo3bo3bo30b3o137bo4bo157bo$109b2o
                            66b2o4bobo30bo139bobo160bobo$184bo31b2o137bo2bo5b3o52bo59bo39bobo$180b
                            o27b2o146b2o60bobo57bobo39bo$113b2o64bobo26b2o152bo55bo2bo56bo2bo64b2o
                            $112bo2bo59b2o2b2o53b2o3b2o32b2o48b2o37bo56b2o58b2o65bo$113bobo59b2o
                            58bo3bo20b2o11b2o35b2o11b2o37bo184b3o$114bo117b3o5b3o18bo49bo237bo$
                            232bo9bo15b3o47b3o35b2o75b2o58b2o$258bo49bo37b2o2b2o71bobo6b3o48bobo$
                            197b2o88b2o61bobo72bo59bo32b2o5b2o$106bo2b2o87bo67b2o19b2o63bo72b2o58b
                            2o32bo5b2o$105bo3b2o2b2o83bobo65b2o84b2o165bobo$105bo7b2o84b2o97b2o
                            220b2o$106b4o188bo225b2o$258bo40b3o221bobo10b2o$194b2o61bobo41bo222bo
                            11b2o$195bo62bo261bo$195bobo111b2o$196b2o111b2o207b3obo$57b2o458bob2o$
                            261b2o254b2obo$55bo3bo201b2o38bo213bob3o27b2o$55bo4bo195b2o42bobo187b
                            2o34b2o19bo$57bobobo155b2o36bobo43bo187bo2bo4b2o18bo9bo17bobo$58bobobo
                            154bo37bo233bobo5b2o28bobo15b2o$59bo4bo153b3o33b2o13b2o219bo37b2o4bo$
                            60bo3bo155bo48bo36b2o225bobo$262b2o6b3o33b2o177b2o9b2o35bobo$61b2o2bo
                            196b2o8bo213bo9b2obo34bo10b2o$64bobo232b2o182b3o13bo45bobo$65b2o190bo
                            40bobo182bo15bo47bo$61b2o194bo40bo197bo2bo47b2o93b2o$60bobo135b2o57bo
                            39b2o13b2o183b2o33b2o108bobo$60bo5b2o130b2o2b2o56b2o50bo220bo109bo$59b
                            2o5b2o134bobo55b2o43b2o6b3o214b3o$203bo3bo97b2o8bo214bo$206b2o$126bo
                            73b2o3bob2o417bo$126bo74bo2b3o2bo414b3o$126bo71b3o5bobobo412bo$191b2o
                            5bo8bobobo411b2o$191bobo14bo2b3o$177bo14b3o14b2obo$177b3o13b2o15b2o$
                            105b2o17bo39b2o14bo9b2o18bo359b2o$105b2o8b2o7b3o37b2o13b2o9b3o373b2o4b
                            4o$115bo11bo438b2o2b2ob3o54b2o$113bobo10b2o56bo385bo59b2o$113b2o68bobo
                            5b2o$183bo2bo4b2o22bo$184b2o29bo$215bo350bo$565bobo$211b3o3b3o345bo2bo
                            $566b2o$215bo$215bo$211bo3bo354b2o$210bobo357bobo$211b2o359bo57b2o$
                            572b2o40b2o14b2o$568b2o44b2o$481b2o85b2o$89b2o390b2o$89b2o45b2o292b2o$
                            136b2o288b2obo2bob2o$426b2o2bo4bo54bo$431bo57bobo$432bobo55bo3$435bo
                            220b2o$434bobo49b2o168b2o$433bo2bo49b2o$434b2o55b2o$491bobo$122b2o369b
                            o$122b2o306b2o46b2o13b2o$429bobo47bo$429bo46b3o6b2o$428b2o46bo8b2o$
                            612b2o21bo$603b2o7b2o19b3o$93b2o135b2o372bo27bo$93b2o3bo131bo373bobo
                            25b2o$97bobo128bobo374b2o$98bobo127b2o$100bo$100b2o2$639b2o$639b2o3$
                            420b2o$420b2o2$607b2o$440b2o165b2o$433bo6b2o$433b3o$436bo169b2o$435b2o
                            170bo$153bo450b3o$153b3o448bo18b2o27b2o$156bo270b2o194b2o27b2o$155b2o
                            10b2o258bo$167b2o8b2o245b2obo$177bo246bo2b3o4b2o$175bobo247b2o3bo3b2o$
                            175b2o250b4o$427bo15b2o$428b3o12bobo$431bo13bo$426b5o14b2o220b2o$426bo
                            240b2o$428bo$310b2o115b2o$4b2o304bo$2o2b2o2b2o298bobo312b2o$2o2bo2bobo
                            298b2o313b2o$6b3o$6b2o285b2o$293b2o74bo$367b3o$9bo141b2o149b2o62bo$8bo
                            bo140b2o45b2o102b2o6b2o54b2o244b2o$7bo2bo187b2o110b2o301bo19b2o$8b2o
                            603bobo17bo$614b2o15bobo$298bo327bo4b2o$4b2o282b2o7bobo45b2o278bobo$3b
                            obo282bobo7bo6b2o37bobo278bobo$3bo285bo15bo38bo269b2o10bo$2b2o302b3o
                            34b2o268bobo$308bo304bo$612b2o37b2o4b2o$348b2o277b2o22b2o4b2o$184b2o
                            161bobo277bo$75bo108b2o161bo280b3o$74b2o193bo76b2o282bo$73bob2o191bobo
                            385b2o$72b3o2bo191bobo380b2o2b2o$74bobobo191b2o379bobo7b2o$75bobobo
                            571bo8bo2bo$76bo2b3o73b2o493b2o9b2o$77b2obo74b2o3bo196b2o$78b2o79bobo
                            195b2o$78bo3bo77bobo202b2o$81bobo78bo36bo165bo314b2o$82b2o78b2o35b3o
                            164b3o260b2o49bobo$78b2o122bo165bo260b2o26b2o23bo$77bobo121b2o10b2o
                            441bobo23b2o$77bo5b2o128b2o8b2o142bo288bo$76b2o5b2o138bo142bobo286b2o
                            5b2o25b2o$221bobo142bobo292bobo25bo$221b2o142b2ob3o290bo8b2o15bobo$
                            371bo288b2o8b2o15b2o$365b2ob3o$365b2obo2$357b2o$348b2o7b2o$349bo$349bo
                            bo20b2o$350b2o20b2o2$286b2o5b2o$286b2o5bo$291bobo76b2o297b2o$291b2o77b
                            2o296bobo$171b2o24b2o88b2o379bo$171b2o24b2o45b2o41bobo377b2o$244b2o42b
                            o$291b3o$290bo64bo$290bo3bo59bobo170bo32b2o128b2o5b2o$290bo2bobo58bobo
                            169bobo29bob2o128b2o5bo$292bobo2bo57bo170bobo28bo137bobo$293bo3bo54b3o
                            170b2ob3o29bo134b2o$297bo54bo160b2o16bo24b2obo131b2o$294b3o216b2o10b2o
                            b3o25b2o121b2o10bobo$334b2o189b2obo150b2o11bo$334b2o217bo$230b2o299b2o
                            19bobo140b2o$230b2o299b2o19b2o141b2obo$556b2o141bo$556bobo137bo$250b2o
                            299b2o5bo109b2o27bob2o$250bobo275b2o21b2o5b2o109bo19b2o8b2o$251bobo
                            265bo8b2o139bobo17bo$201b2o49bo265bobo149b2o15bobo$201b2o3bo311bo2bo
                            160bo4b2o$205bobo311b2o160bobo$206bobo211b2o80b2o177bobo$208bo211b2o2b
                            2o75bobo166b2o10bo$208b2o140b2o72bobo74bo24b2o141bobo$349bo2bo72bo74b
                            2o24b2o141bo$350b2o77bo238b2o$422b2o259b2o$346bo76bo3bob3o251bo$345bob
                            o72b3o6b2obo251b3o$345bobo72bo8bob2o84b2o167bo$346bo83b3obo82b2o2$432b
                            o2$413bo$412bobo$412bobo$251b2o160bo$247b2o2b2o$185b2o59bobo$185bobo
                            59bo$186bo$242b3o4b2o$242b3o4bo$242b3o5b3o$239b3o10bo$239b3o$239b3o3$
                            518b2o$518b2o6$550bo$548b3o$352b2o193bo$350bob2o193b2o$340bo8bo$185bo
                            154b3o9bo$185bo157bo4b2obo$185bo156b2o4b2o2$345bo$344bobo$340b2o2b2o$
                            340b2o$537bo$536bobo$507bo29b2o$507b3o$510bo$509bobo$510bo3$511b2o$
                            511b2o3$531b2o$531b2o$185bo$184bobo$185b2o6$496b2o$495bo2bo$496b2o$
                            234b2o$227b2o5b2o$227b2o3$229b2o27b2o$229b2o27b2o$223b2o$223b2o260b2o$
                            264b2o220bo$264b2o220bobo$244bo15b2o225b2o$243bobo14b2o$236b3o4b2o$
                            491b2o$194bo295bo2bo$193bobo69b2o224bobo$194bo70b2o225bo3$279bo$231b2o
                            45b3o119bo86b2o$231b2o44b3obo117bobo81b2o2b2o2b2o$278bo3bo116bobo81bob
                            o2bo2b2o$279bo3bo116bo83b3o$226b2o36b2o14bob3o200b2o$226b2o35bo2bo14b
                            3o$264b2o16bo$286bo$285bobo$286b2o$218b2o62b2o$218b2o61bobo$281bo5b2o$
                            280b2o5b2o2$223b2o184b2o$223b2o184b2o$219b2o$219b2o170b2o$260b2o128bob
                            o$260b2o128bo$225b2o27b2o133b2o$225b2o27b2o3$256b2o142b2o$249b2o5b2o
                            141bobo$249b2o148bo$398b2o4$616b2o$596b2o18b2o$596bobo$597bo8$215b2o
                            320b2o$208b2o4bo2bo319b2o2b2o$208b2o5bobo323bobo$216bo325bo$546bo$209b
                            2o9b2o317b2o$207bob2o9bo319bo3bob3o$207bo13b3o313b3o6b2obo$207bo15bo
                            313bo8bob2o$207bo2bo336b3obo$208b2o$549bo3$221bo$221bo$221bo25$458bo$
                            457bobo5b2o$457b2o6b2o12$343b2o$343b2o2b2o$347bobo$348bo124b2o$352bo
                            120b2o$345b2o$346bo3bob3o7b2o59bo$343b3o6b2obo6b2o58bobo53b2o$343bo8bo
                            b2o67b2o53b2o$353b3obo2$355bo3$367bo$367bo$344b3o20bob3o$369b3o$370bo
                            13b3o$332bo37b2o$331bobo37bo$331bobo19b2o16b2o13bo$332bo52b2o$340b3o
                            10bo2bo11b2ob2o11b3o6b2o142b3o$357b2o10b3o12bo8b2o$369bo12bo$357b2o23b
                            o3b2o$358bo27b2o63b3o$352bo3bo15b2o9bo48b2o19bo$356bo3bo11b2o10bo2bo
                            44b2o18bo$317b2o65b3o$317b2o$354bo82b2o$355b3o79b2o$509bo$373bo136bo$
                            355b3o13bobo134b3o$355b3o13bobo$355b2ob2o12bo$302b2o55bo12b2o$302b2o
                            53b3o14bo$372b2o$371bobo$371bobo45b3o$373bo47bo$369bobo48bo$369bo$339b
                            2obo25bobo$338b3obo6bobo8b2o6b2o$337bo4bobo4bo10b2o5bo$338b2o6bobo3bo
                            15b2o$339bo3bo2bo2b2o18bo$342bob2o3bo$341bobo16b2o$341bobo16b2o2$330b
                            3o35b2o$329bo38b2o$329bo3bo$327b2o3b2o53b3o$326bo2bobo2bo54bo$326bo2bo
                            bo2b2o32b2o18bo$328b2ob2o2bo23b2o7b2o$329bo4bo11bo9bob4o$332b2ob2o4bo
                            3b5o5b2obo3b2o$331b4o5bobo7b2o4bo2b2ob2o$332b2o6bo7bob2o5b6o$341bo8b2o
                            6bo$342bo3b4o127bo$347b3o128bo$332bo143b3o$333bo$332bo4$337b2o$330bo5b
                            o2bo$330bo5bo2bo$330bo4b2ob2o$336b2o6$335b2o$335b2o7$349b2o12$573bo$
                            574bo$572b3o32$541bo$542bo$540b3o41$649bo$650b2o$649b2o32$617bo$618b2o
                            $617b2o20$713bo$714b2o$713b2o32$681bo$682b2o$681b2o36$777bo$778b2o$
                            777b2o32$745bo$746b2o$745b2o17$829bo$830bo$828b3o32$797bo$798bo$796b3o
                            30$893bo$894bo$892b3o34$861bo$862bo$860b3o44$957bo$958bo$956b3o36$925b
                            o$926bo$924b3o26$1030bo$1031bo$1029b3o18$998bo$999bo$997b3o36$1094bo$
                            1095bo$1093b3o14$1053bo$1054bo$1052b3o52$1158bo$1159bo$1157b3o4$1117bo
                            $1118bo$1116b3o48$1213bo$1214bo$1212b3o37$1193bo$1194b2o$1193b2o23$
                            1277bo$1278bo$1276b3o26$1245bo$1246bo$1244b3o$1354b3o8$1316b3o2$1314bo
                            5bo$1314bo5bo23bo$1314bo5bo22bobo$1331b2o10b2o$1316b3o11bo2bo$1331b2o$
                            1338b2o$1327bo10b2o$1326bobo$1326bobo$1327bo6b2o$1334b2o$1330b2o$1330b
                            obo$1325b2o5bo$1325b2o5b2o6$1327b2o$1326bo2bo$1289bo37b2o$1289bo$1289b
                            o33bo$1322bobo$1285b3o3b3o28bobo$1323bo$1289bo$1289bo$1289bo5$1296b2o$
                            1295bo2bo15bo$1296b2o15bobo$1313b2o$1292bo$1291bobo$1291bobo14b2o$
                            1292bo15b2o3$1304b2o$1304b2o$1300b2o$1300bobo$1295b2o5bo$1295b2o5b2o
                            22$1262b2o$1262b2o4$1266b3o890$243bo$243bo88b2o$243bo88b2o$259b2o$259b
                            2o$255b2o$255b2o9$220b3o41b3o2$224bo37bo$224bo37bo$224bo37bo8$227b2o$
                            226bo2bo8b2o$226bo2bo8b2o$227b2o13$364b2o$364b2o97$229b3o$231bo$230bo
                            39$182b2o$181bobo$183bo22419$22913bobo$22913bo2bo$22914b2o4$22842b2o$
                            22842b2o40b2o$22883bo2bo$22884b2o$22881bo$22881bo$22881bo2$22883b3o2$
                            22852b2o$22851bobo32b2o$22851b2o33b2o9bo$22897bo$22897bo54b2o$22951bo
                            2bo$22952b2o2$22904b3o2$22916bo$22915bobo$22915b2o2$22878b2o$22878b2o
                            66bo$22945bobo$22945bo2bo$22946b2o4$22874b2o$22874b2o40b2o$22915bo2bo$
                            22916b2o$22913bo$22913bo$22913bo2$22915b3o2$22884b2o$22883bobo32b2o$
                            22883b2o33b2o9bo$22929bo$22929bo54b2o$22983bo2bo$22984b2o2$22936b3o2$
                            22948bo$22947bobo$22947b2o2$22910b2o$22910b2o66bo$22977bobo$22977bo2bo
                            $22978b2o4$22906b2o$22906b2o40b2o$22947bo2bo$22948b2o$22945bo$22945bo$
                            22945bo2$22947b3o2$22916b2o$22915bobo32b2o$22915b2o33b2o9bo$22961bo$
                            22961bo54b2o$23015bo2bo$23016b2o2$22968b3o2$22980bo$22979bobo$22979b2o
                            2$22942b2o$22942b2o66bo$23009bobo$23009bo2bo$23010b2o4$22938b2o$22938b
                            2o40b2o$22979bo2bo$22980b2o$22977bo$22977bo$22977bo2$22979b3o2$22948b
                            2o$22947bobo32b2o$22947b2o33b2o9bo$22993bo$22993bo54b2o$23047bo2bo$
                            23048b2o2$23000b3o2$23012bo$23011bobo$23011b2o2$22974b2o$22974b2o66bo$
                            23041bobo$23041bo2bo$23042b2o4$22970b2o$22970b2o40b2o$23011bo2bo$
                            23012b2o$23009bo$23009bo$23009bo2$23011b3o2$22980b2o$22979bobo32b2o$
                            22979b2o33b2o9bo$23025bo$23025bo54b2o$23079bo2bo$23080b2o2$23032b3o2$
                            23044bo$23043bobo$23043b2o2$23006b2o$23006b2o66bo$23073bobo$23073bo2bo
                            $23074b2o4$23002b2o$23002b2o40b2o$23043bo2bo$23044b2o$23041bo$23041bo$
                            23041bo2$23043b3o2$23012b2o$23011bobo32b2o$23011b2o33b2o9bo$23057bo$
                            23057bo54b2o$23111bo2bo$23112b2o2$23064b3o2$23076bo$23075bobo$23075b2o
                            2$23038b2o$23038b2o66bo$23105bobo$23105bo2bo$23106b2o4$23034b2o$23034b
                            2o40b2o$23075bo2bo$23076b2o$23073bo$23073bo$23073bo2$23075b3o2$23044b
                            2o$23043bobo32b2o$23043b2o33b2o9bo$23089bo$23089bo54b2o$23143bo2bo$
                            23144b2o2$23096b3o2$23108bo$23107bobo$23107b2o2$23070b2o$23070b2o66bo$
                            23137bobo$23137bo2bo$23138b2o4$23066b2o$23066b2o40b2o$23107bo2bo$
                            23108b2o$23105bo$23105bo$23105bo2$23107b3o2$23076b2o$23075bobo32b2o$
                            23075b2o33b2o9bo$23121bo$23121bo54b2o$23175bo2bo$23176b2o2$23128b3o2$
                            23140bo$23139bobo$23139b2o2$23102b2o$23102b2o66bo$23169bobo$23169bo2bo
                            $23170b2o4$23098b2o$23098b2o40b2o$23139bo2bo$23140b2o$23137bo$23137bo$
                            23137bo2$23139b3o2$23108b2o$23107bobo32b2o$23107b2o33b2o9bo$23153bo$
                            23153bo54b2o$23207bo2bo$23208b2o2$23160b3o2$23172bo$23171bobo$23171b2o
                            2$23134b2o$23134b2o66bo$23201bobo$23201bo2bo$23202b2o4$23130b2o$23130b
                            2o40b2o$23171bo2bo$23172b2o$23169bo$23169bo$23169bo2$23171b3o2$23140b
                            2o$23139bobo32b2o$23139b2o33b2o9bo$23185bo$23185bo54b2o$23239bo2bo$
                            23240b2o2$23192b3o2$23204bo$23203bobo$23203b2o2$23166b2o$23166b2o66bo$
                            23233bobo$23233bo2bo$23234b2o4$23162b2o$23162b2o40b2o$23203bo2bo$
                            23204b2o$23201bo$23201bo$23201bo2$23203b3o2$23172b2o$23171bobo32b2o$
                            23171b2o33b2o9bo$23217bo$23217bo54b2o$23271bo2bo$23272b2o2$23224b3o2$
                            23236bo$23235bobo$23235b2o2$23198b2o$23198b2o66bo$23265bobo$23265bo2bo
                            $23266b2o4$23194b2o$23194b2o40b2o$23235bo2bo$23236b2o$23233bo$23233bo$
                            23233bo2$23235b3o2$23204b2o$23203bobo32b2o$23203b2o33b2o9bo$23249bo$
                            23249bo54b2o$23303bo2bo$23304b2o2$23256b3o2$23268bo$23267bobo$23267b2o
                            2$23230b2o$23230b2o66bo$23297bobo$23297bo2bo$23298b2o4$23226b2o$23226b
                            2o40b2o$23267bo2bo$23268b2o$23265bo$23265bo$23265bo2$23267b3o2$23236b
                            2o$23235bobo32b2o$23235b2o33b2o9bo$23281bo$23281bo54b2o$23335bo2bo$
                            23336b2o2$23288b3o2$23300bo$23299bobo$23299b2o2$23262b2o$23262b2o66bo$
                            23329bobo$23329bo2bo$23330b2o4$23258b2o$23258b2o40b2o$23299bo2bo$
                            23300b2o$23297bo$23297bo$23297bo2$23299b3o2$23268b2o$23267bobo32b2o$
                            23267b2o33b2o9bo$23313bo$23313bo54b2o$23367bo2bo$23368b2o2$23320b3o2$
                            23332bo$23331bobo$23331b2o2$23294b2o$23294b2o66bo$23361bobo$23361bo2bo
                            $23362b2o4$23290b2o$23290b2o40b2o$23331bo2bo$23332b2o$23329bo$23329bo$
                            23329bo2$23331b3o2$23300b2o$23299bobo32b2o$23299b2o33b2o9bo$23345bo$
                            23345bo54b2o$23399bo2bo$23400b2o2$23352b3o2$23364bo$23363bobo$23363b2o
                            2$23326b2o$23326b2o66bo$23393bobo$23393bo2bo$23394b2o4$23322b2o$23322b
                            2o40b2o$23363bo2bo$23364b2o$23361bo$23361bo$23361bo2$23363b3o2$23332b
                            2o$23331bobo32b2o$23331b2o33b2o9bo$23377bo$23377bo54b2o$23431bo2bo$
                            23432b2o2$23384b3o2$23396bo$23395bobo$23395b2o$23483b2o$23358b2o122bo
                            2bo$23358b2o66bo56b2o$23425bobo$23425bo2bo$23426b2o3$23453b3o9bo$
                            23354b2o109bo$23354b2o40b2o67bo$23395bo2bo$23396b2o63b3o3b3o$23393bo
                            79b2o$23393bo71bo6bobo$23393bo71bo6b2o$23465bo$23395b3o2$23364b2o$
                            23363bobo32b2o$23363b2o33b2o2$23422b2o36bo$23422bobo34bobo$23415b2o6bo
                            35bobo$23414bo2bo42bo$23415b2o2$23483b2o$23474b2o7b2o$23459b2o12bo2bo$
                            23458bo2bo12b2o$23390b2o66bo2bo$23390b2o67b2o3$23431bo23bo$23430bo2bo
                            21bo$23430bo2bo21bo$23432bo$23386b2o$23386b2o3$23424bo3b2o$23424bo2bob
                            o51bo8b2o$23424bo3bo51bobo6bo2bo$23480bobo6bo2bo$23481bo8b2o2$23396b2o
                            78b2o7b2o$23395bobo53b2o22bo2bo5bo2bo$23395b2o54b2o23b2o7b2o2$23481bo$
                            23480bobo$23480bobo$23464b2o15bo$23464b2o3$23480b2o$23479bo2bo$23480b
                            2o$23422b2o$23422b2o4$23461bo9b2o$23461bo9b2o$23461bo$23418b2o$23418b
                            2o3$23508bo$23507bobo$23508bo$23523bo$23465b2o56bo$23464bo2bo55bo$
                            23428b2o35b2o$23427bobo$23427b2o$23495b3o3$23505b2o$23504bo2bo$23504bo
                            2bo$23505b2o$23518bo$23496b2o19bobo$23495bo2bo3b2o13bobo$23495bo2bo2bo
                            2bo13bo$23496b2o4b2o$23511bo$23511bo$23504b2o5bo$23503bobo$23504bo2$
                            23508b2o11b2o$23508b2o10bo2bo$23521b2o$23532b2o$23531bo2bo$23504b2o25b
                            obo$23504b2o26bo3$23507b2o$23507b2o23b2o$23525b2o5b2o$23525b2o$23506b
                            2o$23506b2o28b3o$23511bo$23510bobo$23510bobo$23497b3o11bo$23551b2o$
                            23495bo5bo48bobo$23495bo5bo11b2o12b2o22bo$23495bo5bo11b2o4bo6bo2bo$
                            23518bobo6b2o$23497b3o18bo2bo$23519b2o3$23532bo$23532bo$23532bo4$
                            23498b2o$23498b2o8$23481b2o17b2o$23480bo2bo16b2o$23481b2o7$23504b2o$
                            23503bobo$23503b2o!

    ''')
    target = initial[:, :2600]+initial[:, 2800:]
    d = {'1': initial[:, 2700:2800], '2': initial[:, 2600:2800], ' ': target - target}
    initial.save('initial.mc')
    target.save('target.mc')
    d['1'].save('1.mc')
    d['2'].save('2.mc')
    #with open('c:\\Golly\\PlayBitsInitial.rle', 'r') as file:
    #    target = lt.pattern(file.read()) -- does not work, I do not know how to position the target

    def convert(s):
        if s in d:
            return d[s]
        else:
            l = len(s) >> 1
            left = convert(s[:l])
            right = convert(s[l:])
            dist = l * spacing
            res = left + right(-dist, dist)
            d[s] = res
            return res

    segsize=256

    for i in range(0, len(x), segsize):
        #if ((i & 4095) == 0):
        #    print('%d / %d' % (i, len(x)), end='\r')
        dist = i * spacing
        target += convert(x[i:i+segsize])(-dist, dist)

    print('\n\n\n')

    return target


if __name__ == '__main__':

    with open('c:\\Golly\\DBCABits.txt', 'r') as file:
        recipe = '2'+file.read()

    rct = bin2patt(recipe)
    rct.save('test.mc')
So DBCABits.txt could be easily tested (skipping first 10 aeons and the binary arm program) (of course semilate is safer to test interactions with GPSEs).:

Code: Select all

----- (0,0), 0, 'Creating eater at the Green line and White target using Green DBCA', priority=1 -----
212 212 212 212 212 212 212 212 212 212
212 212 212 212 212 212 212 212 212 212
212 212 212 212 212 212 212 212 212 212
212 212 212 212 211
111
112 222 221
111
111
111
112 112 121
112 112 122 222 221
221
112 112 112 212 211
112 112 221
112 112 221
111
112 212 222 222 221
111
112 112 122 122 121
112 222 221
112 122 122 122 122 122 122 122 122 122 221
112 212 211
112 112 122 122 221
----- (0,0), 0, 'Green portion of DBCA really finished, White portion construction begins', priority=1 -----
1121122122122122122
----- (0,0), 0, 'going to debug', priority=2  -----
21-- 21 pos -184 semistate 31 (g1%2)[-377]
112122221-- 22 pos -187 semistate 27 (g0%2)[-383]
112112121-- 23 pos -189 semistate 29 (g0%2)[-387]
212212221-- 24 pos -182 semistate 25 (g1%2)[-373]
112122221-- 25 pos -185 semistate 31 (g1%2)[-379]
112112111-- 26 pos -183 semistate 27 (g0%2)[-375]
212212212212211-- 27 pos -164 semistate 31 (g1%2)[-337]
112112221-- 28 pos -163 semistate 27 (g0%2)[-335]
112112221-- 29 pos -162 semistate 29 (g0%2)[-333]
112212221-- 30 pos -158 semistate 25 (g1%2)[-325]
121-- 31 pos -162 semistate 29 (g0%2)[-333]
112112211-- 32 pos -157 semistate 25 (g1%2)[-323]
112212212212221-- 33 pos -145 semistate 29 (g0%2)[-299]
112112121-- 34 pos -147 semistate 25 (g1%2)[-303]
112112211-- 35 pos -142 semistate 31 (g1%2)[-293]
221-- 36 pos -143 semistate 25 (g1%2)[-295]
112112121-- 37 pos -145 semistate 31 (g1%2)[-299]
112112112222221-- 38 pos -143 semistate 25 (g1%2)[-295]
112112121-- 39 pos -145 semistate 31 (g1%2)[-299]
112112212212212212221-- 40 pos -128 semistate 27 (g0%2)[-265]
112112221-- 41 pos -127 semistate 29 (g0%2)[-263]
212222221-- 42 pos -124 semistate 25 (g1%2)[-257]
112122221-- 43 pos -127 semistate 31 (g1%2)[-263]
221-- 44 pos -128 semistate 25 (g1%2)[-265]
112112222222221-- 45 pos -127 semistate 29 (g0%2)[-263]
112112122122221-- 46 pos -132 semistate 27 (g0%2)[-273]
112212212212212212212222221-- 47 pos -108 semistate 31 (g1%2)[-225]
112112121-- 48 pos -110 semistate 27 (g0%2)[-229]
112112111-- 49 pos -108 semistate 29 (g0%2)[-225]
112112122122121-- 50 pos -116 semistate 27 (g0%2)[-241]
111-- 51 pos -116 semistate 31 (g1%2)[-241]
221-- 52 pos -117 semistate 25 (g1%2)[-243]
111-- 53 pos -117 semistate 29 (g0%2)[-243]
112112112212222222221-- 54 pos -111 semistate 25 (g1%2)[-231]
111-- 55 pos -111 semistate 29 (g0%2)[-231]
112112222222221-- 56 pos -110 semistate 27 (g0%2)[-229]
112112212222221-- 57 pos -105 semistate 31 (g1%2)[-219]
122222221-- 58 pos -109 semistate 27 (g0%2)[-227]
112222221-- 59 pos -109 semistate 29 (g0%2)[-227]
112112121-- 60 pos -111 semistate 25 (g1%2)[-231]
211-- 61 pos -108 semistate 29 (g0%2)[-225]
112222221-- 62 pos -108 semistate 25 (g1%2)[-225]
112112112212221-- 63 pos -102 semistate 29 (g0%2)[-213]
221-- 64 pos -103 semistate 27 (g0%2)[-215]
112112122122222222221-- 65 pos -108 semistate 29 (g0%2)[-225]
112112122222221-- 66 pos -110 semistate 27 (g0%2)[-229]
112112122222221-- 67 pos -112 semistate 31 (g1%2)[-233]
112122221-- 68 pos -115 semistate 27 (g0%2)[-239]
111-- 69 pos -115 semistate 31 (g1%2)[-239]
221-- 70 pos -116 semistate 25 (g1%2)[-241]
112112111-- 71 pos -114 semistate 31 (g1%2)[-237]
112112211-- 72 pos -109 semistate 27 (g0%2)[-227]
222222221-- 73 pos -110 semistate 29 (g0%2)[-229]
121-- 74 pos -114 semistate 27 (g0%2)[-237]
112112122222221-- 75 pos -116 semistate 31 (g1%2)[-241]
211-- 76 pos -113 semistate 25 (g1%2)[-235]
221-- 77 pos -114 semistate 29 (g0%2)[-237]
221-- 78 pos -115 semistate 27 (g0%2)[-239]
112122121-- 79 pos -121 semistate 29 (g0%2)[-251]
221-- 80 pos -122 semistate 27 (g0%2)[-253]
112112112222221-- 81 pos -120 semistate 31 (g1%2)[-249]
112112122122121-- 82 pos -128 semistate 25 (g1%2)[-265]
212212222222221-- 83 pos -121 semistate 29 (g0%2)[-251]
112122221-- 84 pos -124 semistate 25 (g1%2)[-257]
112122122222221-- 85 pos -130 semistate 29 (g0%2)[-269]
112112111-- 86 pos -128 semistate 25 (g1%2)[-265]
112112112212222222221-- 87 pos -122 semistate 31 (g1%2)[-253]
212212222222221-- 88 pos -115 semistate 25 (g1%2)[-239]
112112221-- 89 pos -114 semistate 31 (g1%2)[-237]
112122121-- 90 pos -120 semistate 27 (g0%2)[-249]
222222221-- 91 pos -121 semistate 29 (g0%2)[-251]
112112221-- 92 pos -120 semistate 25 (g1%2)[-249]
121-- 93 pos -124 semistate 29 (g0%2)[-257]
111-- 94 pos -124 semistate 27 (g0%2)[-257]
112112112222221-- 95 pos -122 semistate 31 (g1%2)[-253]
111-- 96 pos -122 semistate 25 (g1%2)[-253]
112112211-- 97 pos -117 semistate 31 (g1%2)[-243]
112112111-- 98 pos -115 semistate 27 (g0%2)[-239]
122222221-- 99 pos -119 semistate 29 (g0%2)[-247]
112112112212222222221-- 100 pos -113 semistate 25 (g1%2)[-235]
122222221-- 101 pos -117 semistate 31 (g1%2)[-243]
112112111-- 102 pos -115 semistate 27 (g0%2)[-239]
121-- 103 pos -119 semistate 31 (g1%2)[-247]
112112212222221-- 104 pos -114 semistate 25 (g1%2)[-237]
212212211-- 105 pos -103 semistate 31 (g1%2)[-215]
112112112222221-- 106 pos -101 semistate 25 (g1%2)[-211]
112212221-- 107 pos -97 semistate 31 (g1%2)[-203]
112122122122121-- 108 pos -109 semistate 25 (g1%2)[-227]
111-- 109 pos -109 semistate 29 (g0%2)[-227]
211-- 110 pos -106 semistate 27 (g0%2)[-221]
111-- 111 pos -106 semistate 31 (g1%2)[-221]
112112221-- 112 pos -105 semistate 27 (g0%2)[-219]
112112112212211-- 113 pos -95 semistate 31 (g1%2)[-199]
112122121-- 114 pos -101 semistate 27 (g0%2)[-211]
112222221-- 115 pos -101 semistate 29 (g0%2)[-211]
212212221-- 116 pos -94 semistate 25 (g1%2)[-197]
112112211-- 117 pos -89 semistate 31 (g1%2)[-187]
112112122222221-- 118 pos -91 semistate 25 (g1%2)[-191]
112112112212212212221-- 119 pos -77 semistate 31 (g1%2)[-163]
111-- 120 pos -77 semistate 25 (g1%2)[-163]
112122221-- 121 pos -80 semistate 31 (g1%2)[-169]
212212222222221-- 122 pos -73 semistate 25 (g1%2)[-155]
112112122122122122121-- 123 pos -87 semistate 31 (g1%2)[-183]
211-- 124 pos -84 semistate 25 (g1%2)[-177]
112112111-- 125 pos -82 semistate 31 (g1%2)[-173]
112122121-- 126 pos -88 semistate 27 (g0%2)[-185]
111-- 127 pos -88 semistate 31 (g1%2)[-185]
112112112212212222221-- 128 pos -78 semistate 27 (g0%2)[-165]
222222221-- 129 pos -79 semistate 29 (g0%2)[-167]
122122221-- 130 pos -86 semistate 25 (g1%2)[-181]
112112221-- 131 pos -85 semistate 31 (g1%2)[-179]
111-- 132 pos -85 semistate 25 (g1%2)[-179]
112212221-- 133 pos -81 semistate 31 (g1%2)[-171]
121-- 134 pos -85 semistate 25 (g1%2)[-179]
122222221-- 135 pos -89 semistate 31 (g1%2)[-187]
112112121-- 136 pos -91 semistate 27 (g0%2)[-191]
112112112222221-- 137 pos -89 semistate 31 (g1%2)[-187]
111-- 138 pos -89 semistate 25 (g1%2)[-187]
211-- 139 pos -86 semistate 29 (g0%2)[-181]
112112121-- 140 pos -88 semistate 25 (g1%2)[-185]
112112221-- 141 pos -87 semistate 31 (g1%2)[-183]
112122122122221-- 142 pos -96 semistate 25 (g1%2)[-201]
221-- 143 pos -97 semistate 29 (g0%2)[-203]
112222221-- 144 pos -97 semistate 25 (g1%2)[-203]
112112122122221-- 145 pos -102 semistate 29 (g0%2)[-213]
122122121-- 146 pos -112 semistate 25 (g1%2)[-233]
212212212222221-- 147 pos -101 semistate 29 (g0%2)[-211]
112112221-- 148 pos -100 semistate 25 (g1%2)[-209]
112112121-- 149 pos -102 semistate 31 (g1%2)[-213]
112112111-- 150 pos -100 semistate 27 (g0%2)[-209]
112112221-- 151 pos -99 semistate 29 (g0%2)[-207]
112112111-- 152 pos -97 semistate 25 (g1%2)[-203]
112112212222221-- 153 pos -92 semistate 29 (g0%2)[-193]
112112122122221-- 154 pos -97 semistate 27 (g0%2)[-203]
112122121-- 155 pos -103 semistate 29 (g0%2)[-215]
111-- 156 pos -103 semistate 27 (g0%2)[-215]
111-- 157 pos -103 semistate 31 (g1%2)[-215]
112112121-- 158 pos -105 semistate 27 (g0%2)[-219]
112212211-- 159 pos -97 semistate 29 (g0%2)[-203]
112112212222221-- 160 pos -92 semistate 27 (g0%2)[-193]
111-- 161 pos -92 semistate 31 (g1%2)[-193]
112112221-- 162 pos -91 semistate 27 (g0%2)[-191]
112112111-- 163 pos -89 semistate 29 (g0%2)[-187]
112212211-- 164 pos -81 semistate 25 (g1%2)[-171]
112112122122221-- 165 pos -86 semistate 29 (g0%2)[-181]
112212212212212212222222221-- 166 pos -66 semistate 27 (g0%2)[-141]
112112112222221-- 167 pos -64 semistate 31 (g1%2)[-137]
112112221-- 168 pos -63 semistate 27 (g0%2)[-135]
112112221-- 169 pos -62 semistate 29 (g0%2)[-133]
121-- 170 pos -66 semistate 27 (g0%2)[-141]
112212222222221-- 171 pos -62 semistate 31 (g1%2)[-133]
211-- 172 pos -59 semistate 25 (g1%2)[-127]
112112111-- 173 pos -57 semistate 31 (g1%2)[-123]
222222221-- 174 pos -58 semistate 27 (g0%2)[-125]
212212222222221-- 175 pos -51 semistate 31 (g1%2)[-111]
212222221-- 176 pos -48 semistate 27 (g0%2)[-105]
112212221-- 177 pos -44 semistate 29 (g0%2)[-97]
112122121-- 178 pos -50 semistate 25 (g1%2)[-109]
122122122122122122221-- 179 pos -69 semistate 31 (g1%2)[-147]
121-- 180 pos -73 semistate 25 (g1%2)[-155]
212212221-- 181 pos -66 semistate 31 (g1%2)[-141]
121-- 182 pos -70 semistate 25 (g1%2)[-149]
112112212212221-- 183 pos -61 semistate 29 (g0%2)[-131]
111-- 184 pos -61 semistate 27 (g0%2)[-131]
221-- 185 pos -62 semistate 31 (g1%2)[-133]
112212212212221-- 186 pos -50 semistate 25 (g1%2)[-109]
212212211-- 187 pos -39 semistate 31 (g1%2)[-87]
112112221-- 188 pos -38 semistate 27 (g0%2)[-85]
112212211-- 189 pos -30 semistate 29 (g0%2)[-69]
121-- 190 pos -34 semistate 27 (g0%2)[-77]
112212222222221-- 191 pos -30 semistate 31 (g1%2)[-69]
112212211-- 192 pos -22 semistate 27 (g0%2)[-53]
112112122122222222221-- 193 pos -27 semistate 29 (g0%2)[-63]
112212212222221-- 194 pos -19 semistate 27 (g0%2)[-47]
122222221-- 195 pos -23 semistate 29 (g0%2)[-55]
112112112222221-- 196 pos -21 semistate 27 (g0%2)[-51]
112112112212221-- 197 pos -15 semistate 31 (g1%2)[-39]
111-- 198 pos -15 semistate 25 (g1%2)[-39]
112112122122122122122122122122221-- 199 pos -38 semistate 31 (g1%2)[-85]
112112221-- 200 pos -37 semistate 27 (g0%2)[-83]
221-- 201 pos -38 semistate 31 (g1%2)[-85]
211-- 202 pos -35 semistate 25 (g1%2)[-79]
112112221-- 203 pos -34 semistate 31 (g1%2)[-77]
112112211-- 204 pos -29 semistate 27 (g0%2)[-67]
112112121-- 205 pos -31 semistate 29 (g0%2)[-71]
112112112212221-- 206 pos -25 semistate 27 (g0%2)[-59]
121-- 207 pos -29 semistate 31 (g1%2)[-67]
111-- 208 pos -29 semistate 25 (g1%2)[-67]
122122221-- 209 pos -36 semistate 31 (g1%2)[-81]
212222221-- 210 pos -33 semistate 27 (g0%2)[-75]
221-- 211 pos -34 semistate 31 (g1%2)[-77]
112112111-- 212 pos -32 semistate 27 (g0%2)[-73]
212222221-- 213 pos -29 semistate 29 (g0%2)[-67]
112112122222221-- 214 pos -31 semistate 27 (g0%2)[-71]
221-- 215 pos -32 semistate 31 (g1%2)[-73]
112112122222221-- 216 pos -34 semistate 25 (g1%2)[-77]
212212221-- 217 pos -27 semistate 31 (g1%2)[-63]
111-- 218 pos -27 semistate 25 (g1%2)[-63]
112122121-- 219 pos -33 semistate 31 (g1%2)[-75]
112112112222221-- 220 pos -31 semistate 25 (g1%2)[-71]
111-- 221 pos -31 semistate 29 (g0%2)[-71]
121-- 222 pos -35 semistate 27 (g0%2)[-79]
112112221-- 223 pos -34 semistate 29 (g0%2)[-77]
112212211-- 224 pos -26 semistate 25 (g1%2)[-61]
112112111-- 225 pos -24 semistate 31 (g1%2)[-57]
221-- 226 pos -25 semistate 25 (g1%2)[-59]
111-- 227 pos -25 semistate 29 (g0%2)[-59]
112112121-- 228 pos -27 semistate 25 (g1%2)[-63]
222222221-- 229 pos -28 semistate 31 (g1%2)[-65]
112112212212211-- 230 pos -15 semistate 25 (g1%2)[-39]
112112121-- 231 pos -17 semistate 31 (g1%2)[-43]
112112222222221-- 232 pos -16 semistate 25 (g1%2)[-41]
112112221-- 233 pos -15 semistate 31 (g1%2)[-39]
112112211-- 234 pos -10 semistate 27 (g0%2)[-29]
112112122222221-- 235 pos -12 semistate 31 (g1%2)[-33]
112112112212221-- 236 pos -6 semistate 25 (g1%2)[-21]
122122122222221-- 237 pos -16 semistate 29 (g0%2)[-41]
112112222222221-- 238 pos -15 semistate 27 (g0%2)[-39]
112212211-- 239 pos -7 semistate 29 (g0%2)[-23]
112112121-- 240 pos -9 semistate 25 (g1%2)[-27]
112112221-- 241 pos -8 semistate 31 (g1%2)[-25]
112112112222221-- 242 pos -6 semistate 25 (g1%2)[-21]
122222221-- 243 pos -10 semistate 31 (g1%2)[-29]
112222221-- 244 pos -10 semistate 27 (g0%2)[-29]
112112221-- 245 pos -9 semistate 29 (g0%2)[-27]
111-- 246 pos -9 semistate 27 (g0%2)[-27]
112122222222221-- 247 pos -12 semistate 31 (g1%2)[-33]
112112122122122222221-- 248 pos -20 semistate 27 (g0%2)[-49]
112112222222221-- 249 pos -19 semistate 31 (g1%2)[-47]
112112221-- 250 pos -18 semistate 27 (g0%2)[-45]
111-- 251 pos -18 semistate 31 (g1%2)[-45]
112112222222221-- 252 pos -17 semistate 25 (g1%2)[-43]
112112121-- 253 pos -19 semistate 31 (g1%2)[-47]
112222221-- 254 pos -19 semistate 27 (g0%2)[-47]
112122122222221-- 255 pos -25 semistate 31 (g1%2)[-59]
112222221-- 256 pos -25 semistate 27 (g0%2)[-59]
122122122122122122121-- 257 pos -47 semistate 29 (g0%2)[-103]
112222221-- 258 pos -47 semistate 25 (g1%2)[-103]
112112222222221-- 259 pos -46 semistate 29 (g0%2)[-101]
111-- 260 pos -46 semistate 27 (g0%2)[-101]
112112112212211-- 261 pos -36 semistate 31 (g1%2)[-81]
112112212212222222221-- 262 pos -27 semistate 27 (g0%2)[-63]
212212212222221-- 263 pos -16 semistate 31 (g1%2)[-41]
121-- 264 pos -20 semistate 25 (g1%2)[-49]
111-- 265 pos -20 semistate 29 (g0%2)[-49]
121-- 266 pos -24 semistate 27 (g0%2)[-57]
212212221-- 267 pos -17 semistate 29 (g0%2)[-43]
122222221-- 268 pos -21 semistate 25 (g1%2)[-51]
112112212212221-- 269 pos -12 semistate 29 (g0%2)[-33]
111-- 270 pos -12 semistate 27 (g0%2)[-33]
112112111-- 271 pos -10 semistate 29 (g0%2)[-29]
112112122122221-- 272 pos -15 semistate 27 (g0%2)[-39]
212212221-- 273 pos -8 semistate 29 (g0%2)[-25]
112112121-- 274 pos -10 semistate 25 (g1%2)[-29]
112112121-- 275 pos -12 semistate 31 (g1%2)[-33]
112212222222221-- 276 pos -8 semistate 25 (g1%2)[-25]
112122121-- 277 pos -14 semistate 31 (g1%2)[-37]
112212221-- 278 pos -10 semistate 27 (g0%2)[-29]
112112211-- 279 pos -5 semistate 29 (g0%2)[-19]
112222221-- 280 pos -5 semistate 25 (g1%2)[-19]
112112211-- 281 pos 0 semistate 31 (g1%2)[-9]
112112122122122122221-- 282 pos -11 semistate 27 (g0%2)[-31]
112112122122121-- 283 pos -19 semistate 31 (g1%2)[-47]
112122122122121-- 284 pos -31 semistate 25 (g1%2)[-71]
211-- 285 pos -28 semistate 29 (g0%2)[-65]
112112121-- 286 pos -30 semistate 25 (g1%2)[-69]
112112221-- 287 pos -29 semistate 31 (g1%2)[-67]
122222221-- 288 pos -33 semistate 27 (g0%2)[-75]
212222221-- 289 pos -30 semistate 29 (g0%2)[-69]
112112111-- 290 pos -28 semistate 25 (g1%2)[-65]
112112221-- 291 pos -27 semistate 31 (g1%2)[-63]
111-- 292 pos -27 semistate 25 (g1%2)[-63]
112112122122222222221-- 293 pos -32 semistate 31 (g1%2)[-73]
112112122122222222221-- 294 pos -37 semistate 27 (g0%2)[-83]
112112122122221-- 295 pos -42 semistate 31 (g1%2)[-93]
112112221-- 296 pos -41 semistate 27 (g0%2)[-91]
112112212212211-- 297 pos -28 semistate 31 (g1%2)[-65]
221-- 298 pos -29 semistate 25 (g1%2)[-67]
112222221-- 299 pos -29 semistate 31 (g1%2)[-67]
121-- 300 pos -33 semistate 25 (g1%2)[-75]
111-- 301 pos -33 semistate 29 (g0%2)[-75]
112112112212212212211-- 302 pos -15 semistate 25 (g1%2)[-39]
112112111-- 303 pos -13 semistate 31 (g1%2)[-35]
121-- 304 pos -17 semistate 25 (g1%2)[-43]
112112211-- 305 pos -12 semistate 31 (g1%2)[-33]
112122221-- 306 pos -15 semistate 27 (g0%2)[-39]
111-- 307 pos -15 semistate 31 (g1%2)[-39]
112112212212221-- 308 pos -6 semistate 25 (g1%2)[-21]
112112121-- 309 pos -8 semistate 31 (g1%2)[-25]
111-- 310 pos -8 semistate 25 (g1%2)[-25]
112112221-- 311 pos -7 semistate 31 (g1%2)[-23]
111-- 312 pos -7 semistate 25 (g1%2)[-23]
221-- 313 pos -8 semistate 29 (g0%2)[-25]
222222221-- 314 pos -9 semistate 25 (g1%2)[-27]
112112122122221-- 315 pos -14 semistate 29 (g0%2)[-37]
112112222222221-- 316 pos -13 semistate 27 (g0%2)[-35]
112222221-- 317 pos -13 semistate 29 (g0%2)[-35]
212222221-- 318 pos -10 semistate 25 (g1%2)[-29]
112112212222221-- 319 pos -5 semistate 29 (g0%2)[-19]
112122122222221-- 320 pos -11 semistate 27 (g0%2)[-31]
112112221-- 321 pos -10 semistate 29 (g0%2)[-29]
112112221-- 322 pos -9 semistate 25 (g1%2)[-27]
112112221-- 323 pos -8 semistate 31 (g1%2)[-25]
112122221-- 324 pos -11 semistate 27 (g0%2)[-31]
111-- 325 pos -11 semistate 31 (g1%2)[-31]
112222221-- 326 pos -11 semistate 27 (g0%2)[-31]
221-- 327 pos -12 semistate 31 (g1%2)[-33]
112222221-- 328 pos -12 semistate 27 (g0%2)[-33]
112112221-- 329 pos -11 semistate 29 (g0%2)[-31]
111-- 330 pos -11 semistate 27 (g0%2)[-31]
111-- 331 pos -11 semistate 31 (g1%2)[-31]
122122221-- 332 pos -18 semistate 27 (g0%2)[-45]
212222221-- 333 pos -15 semistate 29 (g0%2)[-39]
112112112222221-- 334 pos -13 semistate 27 (g0%2)[-35]
112112111-- 335 pos -11 semistate 29 (g0%2)[-31]
112112112222221-- 336 pos -9 semistate 27 (g0%2)[-27]
112112222222221-- 337 pos -8 semistate 31 (g1%2)[-25]
112112221-- 338 pos -7 semistate 27 (g0%2)[-23]
212212211-- 339 pos 4 semistate 29 (g0%2)[-1]
122122221-- 340 pos -3 semistate 25 (g1%2)[-15]
121-- 341 pos -7 semistate 29 (g0%2)[-23]
112112122122222222221-- 342 pos -12 semistate 25 (g1%2)[-33]
112112212212222222221-- 343 pos -3 semistate 31 (g1%2)[-15]
112112222222221-- 344 pos -2 semistate 25 (g1%2)[-13]
112112122222221-- 345 pos -4 semistate 29 (g0%2)[-17]
112112122222221-- 346 pos -6 semistate 27 (g0%2)[-21]
121-- 347 pos -10 semistate 31 (g1%2)[-29]
111-- 348 pos -10 semistate 25 (g1%2)[-29]
221-- 349 pos -11 semistate 29 (g0%2)[-31]
112222221-- 350 pos -11 semistate 25 (g1%2)[-31]
112212221-- 351 pos -7 semistate 31 (g1%2)[-23]
211-- 352 pos -4 semistate 25 (g1%2)[-17]
122222221-- 353 pos -8 semistate 31 (g1%2)[-25]
112112121-- 354 pos -10 semistate 27 (g0%2)[-29]
212212221-- 355 pos -3 semistate 29 (g0%2)[-15]
112112221-- 356 pos -2 semistate 25 (g1%2)[-13]
112222221-- 357 pos -2 semistate 31 (g1%2)[-13]
122222221-- 358 pos -6 semistate 27 (g0%2)[-21]
211-- 359 pos -3 semistate 31 (g1%2)[-15]
112112221-- 360 pos -2 semistate 27 (g0%2)[-13]
112212221-- 361 pos 2 semistate 29 (g0%2)[-5]
112112121-- 362 pos 0 semistate 25 (g1%2)[-9]
112212221-- 363 pos 4 semistate 31 (g1%2)[-1]
112112122222221-- 364 pos 2 semistate 25 (g1%2)[-5]
212222221-- 365 pos 5 semistate 15 (g1%2)[1]
222222221-- 366 pos 4 semistate 11 (g0%2)[-1]
11212222222222
1-- 367 pos 1 semistate 15 (g1%2)[-7]
122122121-- 368 pos -9 semistate 11 (g0%2)[-27]
111-- 369 pos -9 semistate 15 (g1%2)[-27]
122122121-- 370 pos -19 semistate 11 (g0%2)[-47]
112122121-- 371 pos -25 semistate 13 (g0%2)[-59]
111-- 372 pos -25 semistate 11 (g0%2)[-59]
112112122122122122122122122122122122122122121
-- 373 pos -63 semistate 13 (g0%2)[-135]
112112121-- 374 pos -65 semistate 9 (g1%2)[-139]
121-- 375 pos -69 semistate 13 (g0%2)[-147]
212212221-- 376 pos -62 semistate 9 (g1%2)[-133]
112222221-- 377 pos -62 semistate 15 (g1%2)[-133]
112112112212221-- 378 pos -56 semistate 9 (g1%2)[-121]
122122122122121-- 379 pos -72 semistate 13 (g0%2)[-153]
112112122222221-- 380 pos -74 semistate 11 (g0%2)[-157]
221-- 381 pos -75 semistate 15 (g1%2)[-159]
221-- 382 pos -76 semistate 9 (g1%2)[-161]
221-- 383 pos -77 semistate 13 (g0%2)[-163]
112212221-- 384 pos -73 semistate 9 (g1%2)[-155]
112122221-- 385 pos -76 semistate 15 (g1%2)[-161]
112122221-- 386 pos -79 semistate 11 (g0%2)[-167]
212212221-- 387 pos -72 semistate 13 (g0%2)[-153]
112122222222221-- 388 pos -75 semistate 11 (g0%2)[-159]
112212221-- 389 pos -71 semistate 13 (g0%2)[-151]
121-- 390 pos -75 semistate 11 (g0%2)[-159]
112112112212221-- 391 pos -69 semistate 15 (g1%2)[-147]
112222221-- 392 pos -69 semistate 11 (g0%2)[-147]
112112122222221-- 393 pos -71 semistate 15 (g1%2)[-151]
112112111-- 394 pos -69 semistate 11 (g0%2)[-147]
221-- 395 pos -70 semistate 15 (g1%2)[-149]
221-- 396 pos -71 semistate 9 (g1%2)[-151]
112112212212221-- 397 pos -62 semistate 13 (g0%2)[-133]
112112111-- 398 pos -60 semistate 9 (g1%2)[-129]
112212222222221-- 399 pos -56 semistate 13 (g0%2)[-121]
112112221-- 400 pos -55 semistate 9 (g1%2)[-119]
112122122222221-- 401 pos -61 semistate 13 (g0%2)[-131]
112112122222221-- 402 pos -63 semistate 11 (g0%2)[-135]
121-- 403 pos -67 semistate 15 (g1%2)[-143]
211-- 404 pos -64 semistate 9 (g1%2)[-137]
112112221-- 405 pos -63 semistate 15 (g1%2)[-135]
112112122122221-- 406 pos -68 semistate 9 (g1%2)[-145]
211-- 407 pos -65 semistate 13 (g0%2)[-139]
112112211-- 408 pos -60 semistate 9 (g1%2)[-129]
112112111-- 409 pos -58 semistate 15 (g1%2)[-125]
212212221-- 410 pos -51 semistate 11 (g0%2)[-111]
112112122122122122221-- 411 pos -62 semistate 13 (g0%2)[-133]
112112122122121-- 412 pos -70 semistate 11 (g0%2)[-149]
112212222222221-- 413 pos -66 semistate 15 (g1%2)[-141]
112112222222221-- 414 pos -65 semistate 9 (g1%2)[-139]
112122121-- 415 pos -71 semistate 15 (g1%2)[-151]
112112112212222222221-- 416 pos -65 semistate 11 (g0%2)[-139]
121-- 417 pos -69 semistate 15 (g1%2)[-147]
112112111-- 418 pos -67 semistate 11 (g0%2)[-143]
112112122122122122122222221-- 419 pos -81 semistate 15 (g1%2)[-171]
112212221-- 420 pos -77 semistate 11 (g0%2)[-163]
221-- 421 pos -78 semistate 15 (g1%2)[-165]
111-- 422 pos -78 semistate 9 (g1%2)[-165]
121-- 423 pos -82 semistate 13 (g0%2)[-173]
111-- 424 pos -82 semistate 11 (g0%2)[-173]
112212211-- 425 pos -74 semistate 13 (g0%2)[-157]
111-- 426 pos -74 semistate 11 (g0%2)[-157]
112112111-- 427 pos -72 semistate 13 (g0%2)[-153]
111-- 428 pos -72 semistate 11 (g0%2)[-153]
111-- 429 pos -72 semistate 15 (g1%2)[-153]
222222221-- 430 pos -73 semistate 11 (g0%2)[-155]
111-- 431 pos -73 semistate 15 (g1%2)[-155]
222222221-- 432 pos -74 semistate 11 (g0%2)[-157]
112112112212221-- 433 pos -68 semistate 15 (g1%2)[-145]
112112111-- 434 pos -66 semistate 11 (g0%2)[-141]
112112122222221-- 435 pos -68 semistate 15 (g1%2)[-145]
122222221-- 436 pos -72 semistate 11 (g0%2)[-153]
112112122222221-- 437 pos -74 semistate 15 (g1%2)[-157]
212222221-- 438 pos -71 semistate 11 (g0%2)[-151]
212222221-- 439 pos -68 semistate 13 (g0%2)[-145]
112112122122222222221-- 440 pos -73 semistate 9 (g1%2)[-155]
212222221-- 441 pos -70 semistate 15 (g1%2)[-149]
112112111-- 442 pos -68 semistate 11 (g0%2)[-145]
122122222222221-- 443 pos -75 semistate 15 (g1%2)[-159]
112112111-- 444 pos -73 semistate 11 (g0%2)[-155]
112112222222221-- 445 pos -72 semistate 15 (g1%2)[-153]
122122121-- 446 pos -82 semistate 11 (g0%2)[-173]
121-- 447 pos -86 semistate 15 (g1%2)[-181]
211-- 448 pos -83 semistate 9 (g1%2)[-175]
112112111-- 449 pos -81 semistate 15 (g1%2)[-171]
112112221-- 450 pos -80 semistate 11 (g0%2)[-169]
121-- 451 pos -84 semistate 15 (g1%2)[-177]
221-- 452 pos -85 semistate 9 (g1%2)[-179]
221-- 453 pos -86 semistate 13 (g0%2)[-181]
112112111-- 454 pos -84 semistate 9 (g1%2)[-177]
112212222222221-- 455 pos -80 semistate 13 (g0%2)[-169]
112112121-- 456 pos -82 semistate 9 (g1%2)[-173]
112112222222221-- 457 pos -81 semistate 13 (g0%2)[-171]
112112112222221-- 458 pos -79 semistate 11 (g0%2)[-167]
112112121-- 459 pos -81 semistate 13 (g0%2)[-171]
221-- 460 pos -82 semistate 11 (g0%2)[-173]
112112121-- 461 pos -84 semistate 13 (g0%2)[-177]
121-- 462 pos -88 semistate 11 (g0%2)[-185]
112122122122122122121-- 463 pos -106 semistate 13 (g0%2)[-221]
112222221-- 464 pos -106 semistate 9 (g1%2)[-221]
122122222222221-- 465 pos -113 semistate 13 (g0%2)[-235]
211-- 466 pos -110 semistate 11 (g0%2)[-229]
112112111-- 467 pos -108 semistate 13 (g0%2)[-225]
112122221-- 468 pos -111 semistate 9 (g1%2)[-231]
221-- 469 pos -112 semistate 13 (g0%2)[-233]
112122122122222222221-- 470 pos -121 semistate 9 (g1%2)[-251]
111-- 471 pos -121 semistate 13 (g0%2)[-251]
112212221-- 472 pos -117 semistate 9 (g1%2)[-243]
112212221-- 473 pos -113 semistate 15 (g1%2)[-235]
121-- 474 pos -117 semistate 9 (g1%2)[-243]
122222221-- 475 pos -121 semistate 15 (g1%2)[-251]
112112111-- 476 pos -119 semistate 11 (g0%2)[-247]
122122222222221-- 477 pos -126 semistate 15 (g1%2)[-261]
112112222222221-- 478 pos -125 semistate 9 (g1%2)[-259]
112112211-- 479 pos -120 semistate 15 (g1%2)[-249]
112112122222221-- 480 pos -122 semistate 9 (g1%2)[-253]
112112111-- 481 pos -120 semistate 15 (g1%2)[-249]
112222221-- 482 pos -120 semistate 11 (g0%2)[-249]
112122122222221-- 483 pos -126 semistate 15 (g1%2)[-261]
112222221-- 484 pos -126 semistate 11 (g0%2)[-261]
112122221-- 485 pos -129 semistate 13 (g0%2)[-267]
221-- 486 pos -130 semistate 11 (g0%2)[-269]
221-- 487 pos -131 semistate 15 (g1%2)[-271]
121-- 488 pos -135 semistate 9 (g1%2)[-279]
112212211-- 489 pos -127 semistate 15 (g1%2)[-263]
122122222222221-- 490 pos -134 semistate 9 (g1%2)[-277]
111-- 491 pos -134 semistate 13 (g0%2)[-277]
112112121-- 492 pos -136 semistate 9 (g1%2)[-281]
122222221-- 493 pos -140 semistate 15 (g1%2)[-289]
112112211-- 494 pos -135 semistate 11 (g0%2)[-279]
112112221-- 495 pos -134 semistate 13 (g0%2)[-277]
112112122122122122122222221-- 496 pos -148 semistate 11 (g0%2)[-305]
112112112212221-- 497 pos -142 semistate 15 (g1%2)[-293]
111-- 498 pos -142 semistate 9 (g1%2)[-293]
112212221-- 499 pos -138 semistate 15 (g1%2)[-285]
111-- 500 pos -138 semistate 9 (g1%2)[-285]
112112122122222222221-- 501 pos -143 semistate 15 (g1%2)[-295]
112212221-- 502 pos -139 semistate 11 (g0%2)[-287]
112112212212211-- 503 pos -126 semistate 15 (g1%2)[-261]
112212221-- 504 pos -122 semistate 11 (g0%2)[-253]
112112212212211-- 505 pos -109 semistate 15 (g1%2)[-227]
121-- 506 pos -113 semistate 9 (g1%2)[-235]
112122122122121-- 507 pos -125 semistate 13 (g0%2)[-259]
112112122122221-- 508 pos -130 semistate 11 (g0%2)[-269]
112112212212212212212212212212221-- 509 pos -97 semistate 13 (g0%2)[-203]
112112211-- 510 pos -92 semistate 9 (g1%2)[-193]
221-- 511 pos -93 semistate 13 (g0%2)[-195]
111-- 512 pos -93 semistate 11 (g0%2)[-195]
111-- 513 pos -93 semistate 15 (g1%2)[-195]
112112221-- 514 pos -92 semistate 11 (g0%2)[-193]
112112122122122122122122221-- 515 pos -109 semistate 15 (g1%2)[-227]
111-- 516 pos -109 semistate 9 (g1%2)[-227]
112112121-- 517 pos -111 semistate 15 (g1%2)[-231]
112212221-- 518 pos -107 semistate 11 (g0%2)[-223]
112112222222221-- 519 pos -106 semistate 15 (g1%2)[-221]
122122122222221-- 520 pos -116 semistate 9 (g1%2)[-241]
112212221-- 521 pos -112 semistate 15 (g1%2)[-233]
112212212222221-- 522 pos -104 semistate 9 (g1%2)[-217]
222222221-- 523 pos -105 semistate 15 (g1%2)[-219]
112112221-- 524 pos -104 semistate 11 (g0%2)[-217]
122122121-- 525 pos -114 semistate 13 (g0%2)[-237]
211-- 526 pos -111 semistate 11 (g0%2)[-231]
221-- 527 pos -112 semistate 15 (g1%2)[-233]
221-- 528 pos -113 semistate 9 (g1%2)[-235]
112222221-- 529 pos -113 semistate 15 (g1%2)[-235]
211-- 530 pos -110 semistate 9 (g1%2)[-229]
211-- 531 pos -107 semistate 13 (g0%2)[-223]
112112221-- 532 pos -106 semistate 9 (g1%2)[-221]
112122122122222222221-- 533 pos -115 semistate 15 (g1%2)[-239]
112112212222221-- 534 pos -110 semistate 9 (g1%2)[-229]
112112111-- 535 pos -108 semistate 15 (g1%2)[-225]
121-- 536 pos -112 semistate 9 (g1%2)[-233]
122222221-- 537 pos -116 semistate 15 (g1%2)[-241]
221-- 538 pos -117 semistate 9 (g1%2)[-243]
221-- 539 pos -118 semistate 13 (g0%2)[-245]
221-- 540 pos -119 semistate 11 (g0%2)[-247]
221-- 541 pos -120 semistate 15 (g1%2)[-249]
221-- 542 pos -121 semistate 9 (g1%2)[-251]
112112121-- 543 pos -123 semistate 15 (g1%2)[-255]
112122221-- 544 pos -126 semistate 11 (g0%2)[-261]
112212221-- 545 pos -122 semistate 13 (g0%2)[-253]
112112111-- 546 pos -120 semistate 9 (g1%2)[-249]
212222221-- 547 pos -117 semistate 15 (g1%2)[-243]
112112111-- 548 pos -115 semistate 11 (g0%2)[-239]
112112122122122222221-- 549 pos -123 semistate 13 (g0%2)[-255]
122222221-- 550 pos -127 semistate 9 (g1%2)[-263]
112112112212211-- 551 pos -117 semistate 13 (g0%2)[-243]
112112112222221-- 552 pos -115 semistate 11 (g0%2)[-239]
212222221-- 553 pos -112 semistate 13 (g0%2)[-233]
112112212212211-- 554 pos -99 semistate 11 (g0%2)[-207]
212222221-- 555 pos -96 semistate 13 (g0%2)[-201]
111-- 556 pos -96 semistate 11 (g0%2)[-201]
212222221-- 557 pos -93 semistate 13 (g0%2)[-195]
112222221-- 558 pos -93 semistate 9 (g1%2)[-195]
112112122222221-- 559 pos -95 semistate 13 (g0%2)[-199]
111-- 560 pos -95 semistate 11 (g0%2)[-199]
112112122122121-- 561 pos -103 semistate 15 (g1%2)[-215]
111-- 562 pos -103 semistate 9 (g1%2)[-215]
112112222222221-- 563 pos -102 semistate 13 (g0%2)[-213]
221-- 564 pos -103 semistate 11 (g0%2)[-215]
122122221-- 565 pos -110 semistate 13 (g0%2)[-229]
221-- 566 pos -111 semistate 11 (g0%2)[-231]
112112211-- 567 pos -106 semistate 13 (g0%2)[-221]
112112112222221-- 568 pos -104 semistate 11 (g0%2)[-217]
112112221-- 569 pos -103 semistate 13 (g0%2)[-215]
112212221-- 570 pos -99 semistate 9 (g1%2)[-207]
112112121-- 571 pos -101 semistate 15 (g1%2)[-211]
112112121-- 572 pos -103 semistate 11 (g0%2)[-215]
212212221-- 573 pos -96 semistate 13 (g0%2)[-201]
112112122122221-- 574 pos -101 semistate 11 (g0%2)[-211]
112112122122221-- 575 pos -106 semistate 15 (g1%2)[-221]
112112212212221-- 576 pos -97 semistate 9 (g1%2)[-203]
112112112212222222221-- 577 pos -91 semistate 15 (g1%2)[-191]
112112111-- 578 pos -89 semistate 11 (g0%2)[-187]
112122122122122222221-- 579 pos -101 semistate 13 (g0%2)[-211]
122122121-- 580 pos -111 semistate 9 (g1%2)[-231]
221-- 581 pos -112 semistate 13 (g0%2)[-233]
112222221-- 582 pos -112 semistate 9 (g1%2)[-233]
212222221-- 583 pos -109 semistate 15 (g1%2)[-227]
112222221-- 584 pos -109 semistate 11 (g0%2)[-227]
221-- 585 pos -110 semistate 15 (g1%2)[-229]
112122221-- 586 pos -113 semistate 11 (g0%2)[-235]
112112121-- 587 pos -115 semistate 13 (g0%2)[-239]
112112211-- 588 pos -110 semistate 9 (g1%2)[-229]
111-- 589 pos -110 semistate 13 (g0%2)[-229]
112212221-- 590 pos -106 semistate 9 (g1%2)[-221]
112122121-- 591 pos -112 semistate 15 (g1%2)[-233]
112112221-- 592 pos -111 semistate 11 (g0%2)[-231]
112222221-- 593 pos -111 semistate 13 (g0%2)[-231]
112112112212221-- 594 pos -105 semistate 11 (g0%2)[-219]
112212211-- 595 pos -97 semistate 13 (g0%2)[-203]
112112122122221-- 596 pos -102 semistate 11 (g0%2)[-213]
112112222222221-- 597 pos -101 semistate 15 (g1%2)[-211]
112212221-- 598 pos -97 semistate 11 (g0%2)[-203]
112112212212221-- 599 pos -88 semistate 15 (g1%2)[-185]
112112122122221-- 600 pos -93 semistate 9 (g1%2)[-195]
112112221-- 601 pos -92 semistate 15 (g1%2)[-193]
111-- 602 pos -92 semistate 9 (g1%2)[-193]
222222221-- 603 pos -93 semistate 15 (g1%2)[-195]
122122222222221-- 604 pos -100 semistate 9 (g1%2)[-209]
112112122222221-- 605 pos -102 semistate 13 (g0%2)[-213]
112212212212222222221-- 606 pos -90 semistate 9 (g1%2)[-189]
221-- 607 pos -91 semistate 13 (g0%2)[-191]
222222221-- 608 pos -92 semistate 9 (g1%2)[-193]
112112112222221-- 609 pos -90 semistate 13 (g0%2)[-189]
111-- 610 pos -90 semistate 11 (g0%2)[-189]
122122221-- 611 pos -97 semistate 13 (g0%2)[-203]
112222221-- 612 pos -97 semistate 9 (g1%2)[-203]
121-- 613 pos -101 semistate 13 (g0%2)[-211]
112112112212221-- 614 pos -95 semistate 11 (g0%2)[-199]
221-- 615 pos -96 semistate 15 (g1%2)[-201]
112222221-- 616 pos -96 semistate 11 (g0%2)[-201]
112122122122221-- 617 pos -105 semistate 15 (g1%2)[-219]
111-- 618 pos -105 semistate 9 (g1%2)[-219]
112112111-- 619 pos -103 semistate 15 (g1%2)[-215]
112112111-- 620 pos -101 semistate 11 (g0%2)[-211]
112112211-- 621 pos -96 semistate 13 (g0%2)[-201]
112112221-- 622 pos -95 semistate 9 (g1%2)[-199]
112122221-- 623 pos -98 semistate 15 (g1%2)[-205]
221-- 624 pos -99 semistate 9 (g1%2)[-207]
111-- 625 pos -99 semistate 13 (g0%2)[-207]
122122122122122122122122122122121-- 626 pos -133 semistate 9 (g1%2)[-275]
112112122122221-- 627 pos -138 semistate 13 (g0%2)[-285]
112112112212211-- 628 pos -128 semistate 11 (g0%2)[-265]
111-- 629 pos -128 semistate 15 (g1%2)[-265]
122222221-- 630 pos -132 semistate 11 (g0%2)[-273]
222222221-- 631 pos -133 semistate 13 (g0%2)[-275]
112112211-- 632 pos -128 semistate 9 (g1%2)[-265]
222222221-- 633 pos -129 semistate 15 (g1%2)[-267]
111-- 634 pos -129 semistate 9 (g1%2)[-267]
112122222222221-- 635 pos -132 semistate 13 (g0%2)[-273]
112122121-- 636 pos -138 semistate 9 (g1%2)[-285]
112112221-- 637 pos -137 semistate 15 (g1%2)[-283]
221-- 638 pos -138 semistate 9 (g1%2)[-285]
112222221-- 639 pos -138 semistate 15 (g1%2)[-285]
222222221-- 640 pos -139 semistate 11 (g0%2)[-287]
112112111-- 641 pos -137 semistate 13 (g0%2)[-283]
112122122122222222221-- 642 pos -146 semistate 9 (g1%2)[-301]
112112222222221-- 643 pos -145 semistate 13 (g0%2)[-299]
112212221-- 644 pos -141 semistate 9 (g1%2)[-291]
112122121-- 645 pos -147 semistate 15 (g1%2)[-303]
112112112222221-- 646 pos -145 semistate 9 (g1%2)[-299]
112212222222221-- 647 pos -141 semistate 13 (g0%2)[-291]
112112111-- 648 pos -139 semistate 9 (g1%2)[-287]
121-- 649 pos -143 semistate 13 (g0%2)[-295]
112112221-- 650 pos -142 semistate 9 (g1%2)[-293]
221-- 651 pos -143 semistate 13 (g0%2)[-295]
112112122222221-- 652 pos -145 semistate 11 (g0%2)[-299]
212222221-- 653 pos -142 semistate 13 (g0%2)[-293]
112122121-- 654 pos -148 semistate 9 (g1%2)[-305]
112212222222221-- 655 pos -144 semistate 13 (g0%2)[-297]
112112221-- 656 pos -143 semistate 9 (g1%2)[-295]
121-- 657 pos -147 semistate 13 (g0%2)[-303]
221-- 658 pos -148 semistate 11 (g0%2)[-305]
112212221-- 659 pos -144 semistate 13 (g0%2)[-297]
112112211-- 660 pos -139 semistate 9 (g1%2)[-287]
112112212212221-- 661 pos -130 semistate 13 (g0%2)[-269]
121-- 662 pos -134 semistate 11 (g0%2)[-277]
111-- 663 pos -134 semistate 15 (g1%2)[-277]
111-- 664 pos -134 semistate 9 (g1%2)[-277]
222222221-- 665 pos -135 semistate 15 (g1%2)[-279]
112222221-- 666 pos -135 semistate 11 (g0%2)[-279]
112112112212221-- 667 pos -129 semistate 15 (g1%2)[-267]
111-- 668 pos -129 semistate 9 (g1%2)[-267]
112112222222221-- 669 pos -128 semistate 13 (g0%2)[-265]
112112211-- 670 pos -123 semistate 9 (g1%2)[-255]
121-- 671 pos -127 semistate 13 (g0%2)[-263]
111-- 672 pos -127 semistate 11 (g0%2)[-263]
112112122222221-- 673 pos -129 semistate 15 (g1%2)[-267]
211-- 674 pos -126 semistate 9 (g1%2)[-261]
221-- 675 pos -127 semistate 13 (g0%2)[-263]
112222221-- 676 pos -127 semistate 9 (g1%2)[-263]
112212221-- 677 pos -123 semistate 15 (g1%2)[-255]
211-- 678 pos -120 semistate 9 (g1%2)[-249]
221-- 679 pos -121 semistate 13 (g0%2)[-251]
112112122122122222221-- 680 pos -129 semistate 9 (g1%2)[-267]
211-- 681 pos -126 semistate 13 (g0%2)[-261]
212222221-- 682 pos -123 semistate 9 (g1%2)[-255]
112112122122122222221-- 683 pos -131 semistate 15 (g1%2)[-271]
112222221-- 684 pos -131 semistate 11 (g0%2)[-271]
122122122122221-- 685 pos -144 semistate 15 (g1%2)[-297]
112122122122121-- 686 pos -156 semistate 9 (g1%2)[-321]
112212221-- 687 pos -152 semistate 15 (g1%2)[-313]
111-- 688 pos -152 semistate 9 (g1%2)[-313]
112112122122221-- 689 pos -157 semistate 13 (g0%2)[-323]
112112112212222222221-- 690 pos -151 semistate 9 (g1%2)[-311]
112112112212221-- 691 pos -145 semistate 13 (g0%2)[-299]
112122121-- 692 pos -151 semistate 9 (g1%2)[-311]
112112121-- 693 pos -153 semistate 15 (g1%2)[-315]
112112122222221-- 694 pos -155 semistate 9 (g1%2)[-319]
112222221-- 695 pos -155 semistate 15 (g1%2)[-319]
112122221-- 696 pos -158 semistate 11 (g0%2)[-325]
112222221-- 697 pos -158 semistate 13 (g0%2)[-325]
212212222222221-- 698 pos -151 semistate 11 (g0%2)[-311]
211-- 699 pos -148 semistate 15 (g1%2)[-305]
111-- 700 pos -148 semistate 9 (g1%2)[-305]
111-- 701 pos -148 semistate 13 (g0%2)[-305]
112112111-- 702 pos -146 semistate 9 (g1%2)[-301]
212222221-- 703 pos -143 semistate 15 (g1%2)[-295]
112122222222221-- 704 pos -146 semistate 9 (g1%2)[-301]
112122222222221-- 705 pos -149 semistate 13 (g0%2)[-307]
112112221-- 706 pos -148 semistate 9 (g1%2)[-305]
112112122122221-- 707 pos -153 semistate 13 (g0%2)[-315]
112112211-- 708 pos -148 semistate 9 (g1%2)[-305]
111-- 709 pos -148 semistate 13 (g0%2)[-305]
122122221-- 710 pos -155 semistate 9 (g1%2)[-319]
112122221-- 711 pos -158 semistate 15 (g1%2)[-325]
212212221-- 712 pos -151 semistate 11 (g0%2)[-311]
112112122222221-- 713 pos -153 semistate 15 (g1%2)[-315]
112122222222221-- 714 pos -156 semistate 9 (g1%2)[-321]
112112212222221-- 715 pos -151 semistate 13 (g0%2)[-311]
221-- 716 pos -152 semistate 11 (g0%2)[-313]
112112111-- 717 pos -150 semistate 13 (g0%2)[-309]
112112221-- 718 pos -149 semistate 9 (g1%2)[-307]
212212221-- 719 pos -142 semistate 15 (g1%2)[-293]
112112122122221-- 720 pos -147 semistate 9 (g1%2)[-303]
112112112212221-- 721 pos -141 semistate 13 (g0%2)[-291]
112112221-- 722 pos -140 semistate 9 (g1%2)[-289]
112222221-- 723 pos -140 semistate 15 (g1%2)[-289]
222222221-- 724 pos -141 semistate 11 (g0%2)[-291]
221-- 725 pos -142 semistate 15 (g1%2)[-293]
112112122122222222221-- 726 pos -147 semistate 11 (g0%2)[-303]
212212221-- 727 pos -140 semistate 13 (g0%2)[-289]
112112212212211-- 728 pos -127 semistate 11 (g0%2)[-263]
112122221-- 729 pos -130 semistate 13 (g0%2)[-269]
112212221-- 730 pos -126 semistate 9 (g1%2)[-261]
121-- 731 pos -130 semistate 13 (g0%2)[-269]
112112111-- 732 pos -128 semistate 9 (g1%2)[-265]
221-- 733 pos -129 semistate 13 (g0%2)[-267]
112112111-- 734 pos -127 semistate 9 (g1%2)[-263]
112212222222221-- 735 pos -123 semistate 13 (g0%2)[-255]
112112221-- 736 pos -122 semistate 9 (g1%2)[-253]
112122122222221-- 737 pos -128 semistate 13 (g0%2)[-265]
112112122222221-- 738 pos -130 semistate 11 (g0%2)[-269]
121-- 739 pos -134 semistate 15 (g1%2)[-277]
112112211-- 740 pos -129 semistate 11 (g0%2)[-267]
212222221-- 741 pos -126 semistate 13 (g0%2)[-261]
211-- 742 pos -123 semistate 11 (g0%2)[-255]
112212221-- 743 pos -119 semistate 13 (g0%2)[-247]
112212221-- 744 pos -115 semistate 9 (g1%2)[-239]
112122121-- 745 pos -121 semistate 15 (g1%2)[-251]
112112221-- 746 pos -120 semistate 11 (g0%2)[-249]
112222221-- 747 pos -120 semistate 13 (g0%2)[-249]
211-- 748 pos -117 semistate 11 (g0%2)[-243]
211-- 749 pos -114 semistate 15 (g1%2)[-237]
112212221-- 750 pos -110 semistate 11 (g0%2)[-229]
212212221-- 751 pos -103 semistate 13 (g0%2)[-215]
112222221-- 752 pos -103 semistate 9 (g1%2)[-215]
122122221-- 753 pos -110 semistate 15 (g1%2)[-229]
112212211-- 754 pos -102 semistate 11 (g0%2)[-213]
121-- 755 pos -106 semistate 15 (g1%2)[-221]
112122121-- 756 pos -112 semistate 11 (g0%2)[-233]
122122221-- 757 pos -119 semistate 13 (g0%2)[-247]
112122221-- 758 pos -122 semistate 9 (g1%2)[-253]
112212221-- 759 pos -118 semistate 15 (g1%2)[-245]
111-- 760 pos -118 semistate 9 (g1%2)[-245]
112112111-- 761 pos -116 semistate 15 (g1%2)[-241]
112112222222221-- 762 pos -115 semistate 9 (g1%2)[-239]
211-- 763 pos -112 semistate 13 (g0%2)[-233]
112112122122122122122122122122121-- 764 pos -138 semistate 9 (g1%2)[-285]
112112122222221-- 765 pos -140 semistate 13 (g0%2)[-289]
122222221-- 766 pos -144 semistate 9 (g1%2)[-297]
112112112222221-- 767 pos -142 semistate 13 (g0%2)[-293]
122122121-- 768 pos -152 semistate 9 (g1%2)[-313]
112112221-- 769 pos -151 semistate 15 (g1%2)[-311]
112112122222221-- 770 pos -153 semistate 9 (g1%2)[-315]
221-- 771 pos -154 semistate 13 (g0%2)[-317]
112122221-- 772 pos -157 semistate 9 (g1%2)[-323]
111-- 773 pos -157 semistate 13 (g0%2)[-323]
212212222222221-- 774 pos -150 semistate 11 (g0%2)[-309]
112212221-- 775 pos -146 semistate 13 (g0%2)[-301]
112112221-- 776 pos -145 semistate 9 (g1%2)[-299]
111-- 777 pos -145 semistate 13 (g0%2)[-299]
112112121-- 778 pos -147 semistate 9 (g1%2)[-303]
122222221-- 779 pos -151 semistate 15 (g1%2)[-311]
122122122122122122121-- 780 pos -173 semistate 11 (g0%2)[-355]
112212221-- 781 pos -169 semistate 13 (g0%2)[-347]
112122221-- 782 pos -172 semistate 9 (g1%2)[-353]
121-- 783 pos -176 semistate 13 (g0%2)[-361]
112212221-- 784 pos -172 semistate 9 (g1%2)[-353]
112112211-- 785 pos -167 semistate 15 (g1%2)[-343]
112122122122221-- 786 pos -176 semistate 9 (g1%2)[-361]
112112111-- 787 pos -174 semistate 15 (g1%2)[-357]
112212211-- 788 pos -166 semistate 11 (g0%2)[-341]
212222221-- 789 pos -163 semistate 13 (g0%2)[-335]
112112111-- 790 pos -161 semistate 9 (g1%2)[-331]
112112122122122122221-- 791 pos -172 semistate 15 (g1%2)[-353]
221-- 792 pos -173 semistate 9 (g1%2)[-355]
112112221-- 793 pos -172 semistate 15 (g1%2)[-353]
112112211-- 794 pos -167 semistate 11 (g0%2)[-343]
112112122122122122122122221-- 795 pos -184 semistate 15 (g1%2)[-377]
112112122122221-- 796 pos -189 semistate 9 (g1%2)[-387]
112112221-- 797 pos -188 semistate 15 (g1%2)[-385]
112112211-- 798 pos -183 semistate 11 (g0%2)[-375]
112112112212211-- 799 pos -173 semistate 15 (g1%2)[-355]
112112112222221-- 800 pos -171 semistate 9 (g1%2)[-351]
112112112222221-- 801 pos -169 semistate 13 (g0%2)[-347]
122122221-- 802 pos -176 semistate 9 (g1%2)[-361]
112112212222221-- 803 pos -171 semistate 13 (g0%2)[-351]
112212211-- 804 pos -163 semistate 9 (g1%2)[-335]
122122221-- 805 pos -170 semistate 15 (g1%2)[-349]
112112112222221-- 806 pos -168 semistate 9 (g1%2)[-345]
112122222222221-- 807 pos -171 semistate 13 (g0%2)[-351]
112222221-- 808 pos -171 semistate 9 (g1%2)[-351]
221-- 809 pos -172 semistate 13 (g0%2)[-353]
112112122122122122221-- 810 pos -183 semistate 9 (g1%2)[-375]
112112111-- 811 pos -181 semistate 15 (g1%2)[-371]
121-- 812 pos -185 semistate 9 (g1%2)[-379]
112222221-- 813 pos -185 semistate 15 (g1%2)[-379]
212212211-- 814 pos -174 semistate 11 (g0%2)[-357]
122222221-- 815 pos -178 semistate 13 (g0%2)[-365]
211-- 816 pos -175 semistate 11 (g0%2)[-359]
122122221-- 817 pos -182 semistate 13 (g0%2)[-373]
112112122122122122221-- 818 pos -193 semistate 9 (g1%2)[-395]
111-- 819 pos -193 semistate 13 (g0%2)[-395]
121-- 820 pos -197 semistate 11 (g0%2)[-403]
112112112212211-- 821 pos -187 semistate 15 (g1%2)[-383]
112112221-- 822 pos -186 semistate 11 (g0%2)[-381]
112122122122222222221-- 823 pos -195 semistate 13 (g0%2)[-399]
112112112212211-- 824 pos -185 semistate 11 (g0%2)[-379]
112212221-- 825 pos -181 semistate 13 (g0%2)[-371]
211-- 826 pos -178 semistate 11 (g0%2)[-365]
112112121-- 827 pos -180 semistate 13 (g0%2)[-369]
111-- 828 pos -180 semistate 11 (g0%2)[-369]
112212221-- 829 pos -176 semistate 13 (g0%2)[-361]
112122221-- 830 pos -179 semistate 9 (g1%2)[-367]
112112111-- 831 pos -177 semistate 15 (g1%2)[-363]
11211
----- (0,0), 0, 'White color reflector activation', offset = (400,-1900), setmag = 0, priority=2 -----
1
----- (0,0), 0, 'White color reflector activated', priority=2 -----
112211-- 832 pos -172 semistate 7 (g1%2)[-353]
112112122122221-- 833 pos -177 semistate 1 (g1%2)[-363]
122122122122221-- 834 pos -190 semistate 5 (g0%2)[-389]
112112111-- 835 pos -188 semistate 1 (g1%2)[-385]
112122121-- 836 pos -194 semistate 7 (g1%2)[-397]
222222221-- 837 pos -195 semistate 3 (g0%2)[-399]
112122121-- 838 pos -201 semistate 5 (g0%2)[-411]
112112122122221-- 839 pos -206 semistate 3 (g0%2)[-421]
212212212212212212222222221-- 840 pos -183 semistate 7 (g1%2)[-375]
112112121-- 841 pos -185 semistate 3 (g0%2)[-379]
121-- 842 pos -189 semistate 7 (g1%2)[-387]
112212211-- 843 pos -181 semistate 3 (g0%2)[-371]
112112112222221-- 844 pos -179 semistate 7 (g1%2)[-367]
122122221-- 845 pos -186 semistate 3 (g0%2)[-381]
112222221-- 846 pos -186 semistate 5 (g0%2)[-381]
112122221-- 847 pos -189 semistate 1 (g1%2)[-387]
112112211-- 848 pos -184 semistate 7 (g1%2)[-377]
112122121-- 849 pos -190 semistate 3 (g0%2)[-389]
112112112222221-- 850 pos -188 semistate 7 (g1%2)[-385]
121-- 851 pos -192 semistate 1 (g1%2)[-393]
212212221-- 852 pos -185 semistate 7 (g1%2)[-379]
221-- 853 pos -186 semistate 1 (g1%2)[-381]
221-- 854 pos -187 semistate 5 (g0%2)[-383]
112112212222221-- 855 pos -182 semistate 3 (g0%2)[-373]
112122122122122122121-- 856 pos -200 semistate 5 (g0%2)[-409]
112112121-- 857 pos -202 semistate 1 (g1%2)[-413]
112112122222221-- 858 pos -204 semistate 5 (g0%2)[-417]
112112112222221-- 859 pos -202 semistate 3 (g0%2)[-413]
112122222222221-- 860 pos -205 semistate 7 (g1%2)[-419]
112112221-- 861 pos -204 semistate 3 (g0%2)[-417]
----- (0,0), 0, 'Decoder and better construction arm (DBCA) finished', setmag=-3, priority=1 -----
11221221221221221221221221221221221221221221221221221221221221221221221221221221
22122122122122122122122122122122122122122122122122122122122122122122122122122122
12212212212212212212212212212212212212212212212212212212212212212212212212212212
21221221221221221221221221221221221221221221221221221221221221221221221221221221
22122122122122122122122122122122122122122122122122122122122122122122122122122122
12212212212212212212212212212212212212212212212212212212212212212212212212212212
21221221221221221221221221221221221221221221221221221221221221221221221221221221
2212212212212212212212212211-- 1 pos -41 semistate 2 (g1%2)[-82]
212221-- 2 pos -38 semistate 1 (g1%2)[-85]
222222221-- 3 pos -39 semistate 7 (g1%2)[-87]
112112212211-- 4 pos -30 semistate 6 (g0%2)[-60]
221-- 5 pos -31 semistate 0 (g0%2)[-62]
121-- 6 pos -35 semistate 4 (g1%2)[-70]
111-- 7 pos -35 semistate 2 (g1%2)[-70]
212212221-- 8 pos -28 semistate 4 (g1%2)[-56]
112212221-- 9 pos -24 semistate 0 (g0%2)[-48]
212211-- 10 pos -17 semistate 3 (g0%2)[-43]
212212212212212221-- 11 pos 2 semistate 0 (g0%2)[4]
212222222221-- 12 pos 5 semistate 1 (g1%2)[1]
112112122122122222222221-- 13 pos -3 semistate 0 (g0%2)[-6]
122221-- 14 pos -7 semistate 3 (g0%2)[-23]
112112221-- 15 pos -6 semistate 5 (g0%2)[-21]
112122122222221-- 16 pos -12 semistate 3 (g0%2)[-33]
111-- 17 pos -12 semistate 7 (g1%2)[-33]
112212212212212212212212212212212212212212212212221
-- 18 pos 48 semistate 1 (g1%2)[87]
112121-- 19 pos 45 semistate 2 (g1%2)[90]
112112222222221-- 20 pos 46 semistate 6 (g0%2)[92]
112222221-- 21 pos 46 semistate 2 (g1%2)[92]
211-- 22 pos 49 semistate 6 (g0%2)[98]
112112112221-- 23 pos 51 semistate 7 (g1%2)[93]
112112122121-- 24 pos 46 semistate 6 (g0%2)[92]
112212221-- 25 pos 50 semistate 2 (g1%2)[100]
112221-- 26 pos 50 semistate 1 (g1%2)[91]
221-- 27 pos 49 semistate 5 (g0%2)[89]
112212221-- 28 pos 53 semistate 1 (g1%2)[97]
112221-- 29 pos 53 semistate 2 (g1%2)[106]
112121-- 30 pos 50 semistate 1 (g1%2)[91]
112112112212211-- 31 pos 60 semistate 5 (g0%2)[111]
112112122121-- 32 pos 55 semistate 4 (g1%2)[110]
112212221-- 33 pos 59 semistate 0 (g0%2)[118]
112221-- 34 pos 59 semistate 3 (g0%2)[109]
112112122221-- 35 pos 57 semistate 2 (g1%2)[114]
121-- 36 pos 53 semistate 6 (g0%2)[106]
211-- 37 pos 56 semistate 0 (g0%2)[112]
122222222221-- 38 pos 52 semistate 1 (g1%2)[95]
212221-- 39 pos 55 semistate 2 (g1%2)[110]
121-- 40 pos 51 semistate 6 (g0%2)[102]
112221-- 41 pos 51 semistate 5 (g0%2)[93]
112212221-- 42 pos 55 semistate 1 (g1%2)[101]
112122122121-- 43 pos 46 semistate 0 (g0%2)[92]
And for FSEDBCABits (of course It would require all 4 versions of even semistate to test all variants of DBCA programs, but so far, I am concentrating on debuging linephase programs so version for semistate 0 suffices):

Code: Select all

import lifelib

lt = lifelib.load_rules('b3s23').lifetree(n_layers=1)


def sanitise_line(x):
    '''
    Removes comments and parenthetical strings from a binary line.
    '''

    x = x.split('--')[0] # remove comments

    l = []
    d = 0
    for c in x:
        if c == '(':
            d += 1
        elif c == ')':
            d -= 1
        elif (d == 0):
            l.append(c if c in '12 ' else '')
    return ''.join(l)


def sanitise(x):

    return '    '.join([sanitise_line(l) for l in x.split('\n')])


def bin2patt(x, spacing=16384):

    x = sanitise(x)

    initial = lt.pattern('''x = 23553, y = 25805, rule = B3/S23
                            279b2o$279bo2bo$265bo$265b3o11bo2bo$268bo9bo2bo$267b2o9bobo$279bo$272b
                            o$271bobo5b2o$271bo2bo4b2o$272b2o8$264bo$264b2o$263bobo$246b2o81bo$
                            242b2o2b2o2b2o76bobo$242b2o2bo2bobo75bo3bo$248b3o66bo8bo3bo$248b2o67b
                            3o5bo3bo$320bo3bo3bo$319b2o4bobo$251bo74bo$250bobo69bo$249bo2bo68bobo$
                            250b2o65b2o2b2o$317b2o2$246b2o$245bobo$245bo87b2o$244b2o87b2o5$294b2o$
                            287b2o5b2o$287b2o3$289b2o27b2o$289b2o27b2o$283b2o$283b2o$263b2o59b2o$
                            263b2o37b3o19b2o$304bo15b2o$303bo16b2o4$325b2o$325b2o5$326bo$327bo$
                            325b3o2$362b2o5b2o$299b2o61b2o5bo$299b2o66bobo$367b2o$363b2o$278b2o83b
                            obo$278b2o84bo$299b2o2bobo62bo$301b2o2bo$298bo2b2o2bo60bob3o$283b2o13b
                            obo2b2o48bo14b2obo$283b2o68bobo12bob2o$279b2o72b2o14b3obo$279b2o$320b
                            2o10bo38bo$320b2o8bobo$285b2o27b2o15b2o$285b2o27b2o3$316b2o$309b2o5b2o
                            $309b2o5$303b2o$303bo$301bobo$301b2o4$245b2o$239bo5bobo$239bo6bo13b2o$
                            239bo21bo78b2o3b2o$235b2o24bobo75bo2bobo2bo$235b2o25b2o70bo5b2o3b2o5bo
                            $333bobo15bobo$334bo17bo$268bo$266b2obo$269bo$266b3o4$262b2o$258b2o4b
                            4o$258b2o2b2ob3o$262bo8$390bo$391bo$389b3o6$294bobo93bobo$294b2o95b2o$
                            295bo95bo34$331bo$332b2o$331b2o18$454bo$455bo$453b3o6$230bobo221bobo$
                            230b2o223b2o$231bo223bo12$164bo$163bobo170b2o$162bo3bo169b2o$163bo3bo$
                            164bo3bo$165bo3bo$166bobo159bo$167bo160b3o$171bo148bo10bo$170bobo146bo
                            bo8b2o$171b2o146bobo26bo$167b2o148b3ob2o23b3o$166bobo147bo28bo$159b2o
                            5bo5b2o143b3ob2o22b2o$159b2o4b2o5b2o145bob2o2$344b2o$344b2o4$169bo$
                            168b3o224bo$167bob3o224b2o$157bo8bo3bo224b2o$157b3o5bo3bo$160bo3b3obo
                            7b2o$159b2o4b3o8b2o$166bo164b2o$162bo169bo$161bobo165b3o$157b2o2b2o
                            166bo$157b2o10$518bo$519bo$517b3o$266b2o71b2o$330b2o7b2o$264bo3bo62bo$
                            264bo4bo61bobo$266bobobo8bo52b2o$166bobo98bobobo5b3o238bobo$155b2o9b2o
                            100bo4bo2bo242b2o$155b2o10bo101bo3bo2b2o72b2o167bo$350bo$270b2o2bo73bo
                            bo$273bobo72b2o$274b2o2b2o$278b2o$334b2o$333bobo$333bo$332b2o$216b2o$
                            216b2o2$214bo$203bo10bo58b2o$203b3o8bo58b2o$206bo130b2o$205bobo130bo$
                            205bobo127b3o$206bo61b3o64bo5$221b2o$221b2o2$541b2o$541b2o$201b2o$200b
                            obo38bo34bo49bo$200bo38b3o32b3o47b3o33b2o$145bo53b2o7b2o28bo34bo49bo
                            36bo$144bobo61b2o28b2o33b2o48b2o20b2o14b3o26b2o129b2o$144bobo81b2o106b
                            2o7b2o16bo25bobo67bo60bobo$145bo70b2obo9bo107bo51bo70b2o60bo$216b2ob3o
                            7bobo105bobo48b2o69b2o$149b2o71bo7b2o4b2o45bo48b2o4b2o186b2o$148bo2bo
                            64b2ob3o13bo2bo44b3o47bo20b2o69bobo98b2o$149b2o36bo29bobo16b2o48bo46bo
                            bo18bo69bo58b2o$186bobo28bobo28b2o35b2o11b2o34b2o16bobo64b2o2bo4bo50b
                            2o4b4o$185bo3bo28bo29b2o48b2o52b2o65b2obo2bob2o50b2o2b2ob3o$107b2o66bo
                            8bo3bo173bo60b2o58bo$108bo66b3o5bo3bo31bo142bo$108bobo67bo3bo3bo30b3o
                            137bo4bo157bo$109b2o66b2o4bobo30bo139bobo160bobo$184bo31b2o137bo2bo5b
                            3o52bo59bo39bobo$141b2o37bo27b2o146b2o60bobo57bobo39bo$113b2o26b2o36bo
                            bo26b2o152bo55bo2bo56bo2bo64b2o$112bo2bo59b2o2b2o53b2o3b2o32b2o48b2o
                            37bo56b2o58b2o65bo$113bobo59b2o58bo3bo20b2o11b2o35b2o11b2o37bo184b3o$
                            114bo117b3o5b3o18bo49bo237bo$232bo9bo15b3o47b3o35b2o75b2o58b2o$258bo
                            49bo37b2o2b2o71bobo6b3o48bobo$197b2o88b2o61bobo72bo59bo32b2o5b2o$106bo
                            2b2o87bo67b2o19b2o63bo72b2o58b2o32bo5b2o$105bo3b2o2b2o83bobo65b2o84b2o
                            165bobo$105bo7b2o84b2o97b2o220b2o$106b4o188bo225b2o$258bo40b3o221bobo
                            10b2o$194b2o61bobo41bo222bo11b2o$195bo62bo261bo$195bobo111b2o$196b2o
                            111b2o207b3obo$57b2o204b2o252bob2o$263b2o252b2obo$55bo3bo241bo213bob3o
                            27b2o$55bo4bo195b2o42bobo187b2o34b2o19bo$57bobobo155b2o36bobo43bo187bo
                            2bo4b2o18bo9bo17bobo$58bobobo154bo37bo233bobo5b2o28bobo15b2o$59bo4bo
                            153b3o33b2o13b2o219bo37b2o4bo$60bo3bo155bo48bo263bobo$262b2o6b3o31b2o
                            179b2o9b2o35bobo$61b2o2bo196b2o8bo31b2o180bo9b2obo34bo10b2o$64bobo232b
                            2o179b2ob3o13bo45bobo$65b2o190bo40bobo178bobobo15bo47bo$61b2o194bo40bo
                            181bo15bo2bo47b2o93b2o$60bobo135b2o57bo39b2o13b2o183b2o33b2o108bobo$
                            60bo5b2o130b2o2b2o56b2o50bo220bo109bo$59b2o5b2o134bobo55b2o43b2o6b3o
                            214b3o$203bo3bo97b2o8bo214bo$206b2o$126bo73b2o3bob2o417bo$126bo74bo2b
                            3o2bo414b3o$126bo71b3o5bobobo412bo$191b2o5bo8bobobo411b2o$191bobo14bo
                            2b3o$177bo14b3o14b2obo$177b3o13b2o15b2o$105b2o17bo39b2o14bo9b2o18bo
                            359b2o$105b2o8b2o7b3o37b2o13b2o9b3o373b2o4b4o$115bo11bo438b2o2b2ob3o
                            54b2o$113bobo10b2o56bo385bo59b2o$113b2o68bobo5b2o$183bo2bo4b2o22bo$
                            184b2o29bo$215bo350bo$565bobo$211b3o3b3o345bo2bo$566b2o$179b3o33bo$
                            181bo33bo$180bo30bo3bo354b2o$210bobo357bobo$211b2o359bo$572b2o40b2o$
                            568b2o44b2o$481b2o85b2o$89b2o390b2o$89b2o45b2o292b2o$136b2o288b2obo2bo
                            b2o$426b2o2bo4bo54bo$431bo57bobo$432bobo55bo3$435bo220b2o$434bobo49b2o
                            168b2o$433bo2bo49b2o$434b2o55b2o$62bo428bobo$62b2o58b2o369bo$61bobo58b
                            2o306b2o46b2o13b2o$429bobo47bo$429bo46b3o6b2o$428b2o46bo8b2o$446b2o
                            164b2o21bo$445b2o156b2o7b2o19b3o$93b2o135b2o215bo156bo27bo$93b2o3bo
                            131bo373bobo25b2o$97bobo128bobo374b2o$98bobo127b2o$100bo$100b2o2$639b
                            2o$639b2o3$420b2o$420b2o2$607b2o$440b2o165b2o$433bo6b2o$433b3o$436bo
                            169b2o$435b2o170bo$153bo450b3o$153b3o448bo18b2o27b2o$156bo270b2o194b2o
                            27b2o$155b2o10b2o258bo$167b2o8b2o245b2obo$177bo63bo182bo2b3o4b2o$175bo
                            bo64b2o181b2o3bo3b2o$175b2o64b2o184b4o$427bo15b2o$428b3o12bobo$431bo
                            13bo$426b5o14b2o220b2o$426bo240b2o$428bo$310b2o115b2o$4b2o304bo$2o2b2o
                            2b2o105b3o190bobo312b2o$2o2bo2bobo107bo190b2o313b2o$6b3o107bo$6b2o285b
                            2o$293b2o74bo$367b3o$9bo141b2o149b2o62bo$8bobo140b2o45b2o102b2o6b2o54b
                            2o244b2o$7bo2bo187b2o110b2o301bo19b2o$8b2o603bobo17bo$614b2o15bobo$
                            298bo327bo4b2o$4b2o282b2o7bobo45b2o278bobo$3bobo282bobo7bo6b2o37bobo
                            278bobo$3bo285bo15bo38bo269b2o10bo$2b2o302b3o34b2o268bobo$308bo304bo$
                            612b2o37b2o4b2o$22b2o324b2o277b2o22b2o4b2o$22bobo159b2o161bobo277bo$
                            22bo52bo108b2o161bo280b3o$74b2o270b2o282bo$73bob2o579b2o$72b3o2bo574b
                            2o2b2o$74bobobo572bobo$75bobobo571bo$76bo2b3o73b2o353b2o138b2o$77b2obo
                            74b2o3bo196b2o150b2o$78b2o79bobo195b2o152bo$78bo3bo77bobo202b2o$81bobo
                            78bo36bo165bo314b2o$82b2o78b2o35b3o164b3o260b2o49bobo$78b2o122bo165bo
                            260b2o26b2o23bo$77bobo121b2o10b2o441bobo23b2o$77bo5b2o128b2o8b2o142bo
                            288bo$76b2o5b2o138bo142bobo286b2o5b2o25b2o$221bobo142bobo292bobo25bo$
                            221b2o142b2ob3o290bo8b2o15bobo$371bo288b2o8b2o15b2o$365b2ob3o$365b2obo
                            2$357b2o$348b2o7b2o$349bo$349bobo20b2o$350b2o20b2o2$286b2o5b2o$286b2o
                            5bo$291bobo76b2o297b2o$291b2o77b2o296bobo$171b2o24b2o88b2o379bo$171b2o
                            24b2o45b2o41bobo15bo361b2o$244b2o42bo17b2o$291b3o11b2o$290bo64bo$290bo
                            3bo59bobo170bo32b2o128b2o5b2o$290bo2bobo58bobo169bobo29bob2o128b2o5bo$
                            292bobo2bo57bo170bobo28bo137bobo$293bo3bo54b3o170b2ob3o29bo134b2o$297b
                            o54bo160b2o16bo24b2obo131b2o$294b3o216b2o10b2ob3o25b2o121b2o10bobo$
                            120bo404b2obo150b2o11bo39bo$119b2o432bo178b3o$119bobo108b2o299b2o19bob
                            o140b2o38bo$230b2o299b2o19b2o141b2obo15b2o18b2o$556b2o141bo14bobo$556b
                            obo137bo18bo$551b2o5bo109b2o27bob2o34b2o2b2o$528b2o21b2o5b2o109bo19b2o
                            8b2o34b2o2b2o$519bo8b2o139bobo17bo29bo$201b2o315bobo149b2o15bobo28bobo
                            $201b2o3bo311bo2bo160bo4b2o29bobo$205bobo311b2o160bobo35bo$206bobo211b
                            2o80b2o177bobo43bo$208bo109b2o100b2o2b2o75bobo166b2o10bo43bobo$208b2o
                            108b2o30b2o72bobo74bo24b2o141bobo54bo2bo$349bo2bo72bo74b2o24b2o141bo
                            57b2o8b2o$350b2o77bo238b2o39b2o26b2o$422b2o259b2o24b2o$346bo76bo3bob3o
                            251bo$86b2o257bobo72b3o6b2obo251b3o$86bobo256bobo72bo8bob2o84b2o167bo$
                            86bo259bo83b3obo82b2o2$432bo2$413bo$412bobo$412bobo108b3o221b2o$251b2o
                            160bo111bo221b2o$247b2o2b2o271bo$185b2o59bobo492bo$185bobo59bo491b3o$
                            186bo551bo$242b3o4b2o487b2o$242b3o4bo508b2o$242b3o5b3o505bo$239b3o10bo
                            50b2o451bobo$239b3o62b2o450b2o$239b3o61bo2$742b2o$518b2o221bobo$518b2o
                            221bo$740b2o2$729b2o$729b2o2$550bo$548b3o$352b2o193bo197b2o$350bob2o
                            193b2o197bo$340bo8bo393b3o$185bo154b3o9bo390bo$185bo157bo4b2obo$185bo
                            156b2o4b2o2$345bo415b2o$344bobo414bobo$340b2o2b2o417bo$340b2o421b2o$
                            537bo$536bobo$507bo29b2o$184bo322b3o$183b2o325bo$183bobo323bobo$510bo
                            242b2o$744b2o7b2o$745bo$511b2o232bobo$511b2o233b2o3$531b2o231b2o$531b
                            2o231bo$762bobo$762b2o3$748b2o$747bobo$747bo$150b2o594b2o$150bobo343b
                            2o316b2o$150bo344bo2bo315b2o$496b2o$234b2o$227b2o5b2o$227b2o$751b2o$
                            459b3o290bo$229b2o27b2o201bo287b3o$229b2o27b2o200bo288bo$223b2o574b2o$
                            223b2o260b2o312b2o$264b2o220bo$264b2o220bobo278b2o$260b2o225b2o278bobo
                            $260b2o507bo$239b2o528b2o$240b2o249b2o$194bo44bo250bo2bo$193bobo69b2o
                            224bobo105b2o$194bo70b2o225bo105bo2bo22b2o$599b2o23b2o193b2o$819bo$
                            279bo479b2o59b3o$278b3o119bo86b2o261b2o7b2o61bo$277b3obo117bobo81b2o2b
                            2o2b2o258bo$278bo3bo116bobo81bobo2bo2b2o258bobo$279bo3bo116bo83b3o265b
                            2o$264b2o14bob3o200b2o$263bo2bo14b3o$226bo37b2o16bo487b2o56b2o$226bo
                            59bo483bo57bo$285bobo480bobo38b2o15bobo$286b2o480b2o39b2o15b2o$218b2o
                            62b2o$218b2o2b2o15bo41bobo$222b2o5b2o5b5o40bo5b2o350bo114b2o$229bo11bo
                            38b2o5b2o349bobo112bobo$224b3o12b2o397bobo112bo$223bo3bo10b2o169b2o
                            228bo112b2o$222bo5bo8bo29bobo139b2o231b2o$219b4obob2o40b2o371bobo$219b
                            3obo44bo122b2o249bo101bo$260b2o128bobo350bobo$260b2o128bo352bobo$225b
                            2o27b2o133b2o353bo63b2o$225b2o27b2o501b2o48bobo$758bo48bo$755b3o48b2o$
                            256b2o142b2o353bo44b3o$249b2o5b2o141bobo$249b2o148bo$398b2o$824b2o$
                            824bobo$799b2o25bo$800bo25b2o$596b2o169b2o21b2o8bobo15b2o$596bobo168b
                            2o20bo2bo8b2o15b2o$597bo25b2o165b2o$623bo$624b3o18bo$626bo17bobo$214b
                            2o428bobo$214bobo428bo110b2o$214bo542bo19b2o$757bobo17bo$218bo318b2o
                            219b2o15bobo$208b2o6bobo318b2o2b2o227bo4b2o$208b2o6b3o322bobo225bobo
                            23b2o$542bo226bobo23b2o22b2o$395b3o148bo211b2o10bo48bobo$209b2o9b2o
                            175bo141b2o216bobo61bo$207bob2o9bo175bo143bo3bob3o208bo63b2o$207bo13b
                            3o313b3o6b2obo206b2o$207bo15bo313bo8bob2o221b2o$207bo2bo336b3obo219bo$
                            208b2o562b3o$549bo224bo3$221bo$221bo587b2o$221bo587b2o5$698b2o$698b2o
                            120b2o$799b2o19bo$800bo17bobo$800bobo15b2o$781b2o18b2o4bo$781b2o23bobo
                            $806bobo$807bo10b2o$679bo138bobo$679b3o138bo$682bo137b2o$681bobo121b2o
                            $681bobo122bo$682bo73b2o45b3o$755bo2bo44bo$331bobo422b2o$332b2o$332bo$
                            791b2o$700b2o89b2o$700b2o3$677b2o55b2o$676bobo55b2o$676bo$670bo4b2o7b
                            2o$670bo13b2o$670bo$692b2obo$692b2ob3o$698bo$692b2ob3o$343b2o348bobo$
                            343b2o2b2o344bobo$347bobo344bo$348bo$352bo342bo$345b2o346b3o$346bo3bob
                            3o337bo100b2o$343b3o6b2obo336b2o99b2o$343bo8bob2o328b2o$353b3obo326b2o
                            $792b2o$355bo436b2o4$385b2o286b2o190b2o$344b3o38b2o287bo190bo$674bobo
                            190bo$675b2o170b2o14b5o$332bo515bo13bo$331bobo514bobo12b3o$331bobo515b
                            2o15bo$332bo340b2o188b4o$340b3o194b3o133b2o183b2o3bo3b2o$858b2o4b3o2bo
                            $866bob2o$866bo$865b2o2$336b2o355b2o$336b2o355bo163b2o$694b3o160bo$
                            696bo161b3o$706bo153bo$705bobo165b2o$705b2o165bo2bo$873b2o$344b2o$344b
                            2o7$714b2o$713bobo$713bo$712b2o14$311b2o$311b2o47$744b2o$744b2o$733bo$
                            732bobo$732b2o6$759b2o$758bo2bo4b2o$758bobo4bo2bo$759bo5bo$765bo$754b
                            2o9bob2o$755bo11b2o$752b3o$752bo$766b2o$766b2o510$1590bo$1591bo$1589b
                            3o45$1638bo6b2o$1637bobo5b2o$1637b2o27$1636b2o$1636b2o3$1632b2o$1632b
                            2o16$1650b2o$1649bobo$1629b2o18bo$1629bobo6b2o8b2o$1630bo7b2o4$1650b2o
                            $1650b2o63$1391b2o2$1390bo3bo$1389bo4bo$1379bo8bobobo$1379b3o5bobobo$
                            1382bo2bo4bo$1381b2o2bo3bo2$1384bo2b2o$1383bobo$1379b2o2b2o$1379b2o6$
                            1367b3o$1370bo$1366bo3bo$1356bo8bobo2bo$1356b3o4bo2bobo$1359bo3bo3bo$
                            1358b2o3bo$1364b3o$1361bo$1360bobo$1356b2o2b2o$1356b2o30$1334bo$1333bo
                            bo$1332bo3bo$1331bo3bo$1330bo3bo$1329bo3bo$1330bobo$1331bo$1327bo$
                            1326bobo$1326b2o$1330b2o$1330bobo$1325b2o5bo$1325b2o5b2o6$1327b2o$
                            1326bo2bo$1327b2o2$1323bo$1322bobo$1322bobo$1323bo10$1304b2o$1302bob2o
                            $1301bo$1304bo$1300b2obo$1300b2o2$1297bo$1296bobo$1296b2o$1300b2o$
                            1300bobo$1295b2o5bo$1295b2o5b2o898$308b2o$308b2o55$433b2o$433bobo6bo$
                            434bo6bobo$442bo3$423b2o$423b2o35$466bo6b2o$465bobo5bobo$464bo2bo6bobo
                            $465b2o8bo5$460bo$459bobo$458bobo$458b2o51$229b3o$231bo$230bo39$182b2o
                            $181bobo$183bo22425$22842b2o$22842b2o40b2o$22883bo2bo$22884b2o$22881bo
                            $22881bo$22881bo2$22883b3o2$22852b2o$22851bobo32b2o$22851b2o33b2o9bo$
                            22897bo$22897bo54b2o$22951bo2bo$22952b2o2$22904b3o2$22916bo$22915bobo$
                            22915b2o2$22878b2o$22878b2o66bo$22945bobo$22945bo2bo$22946b2o4$22874b
                            2o$22874b2o40b2o$22915bo2bo$22916b2o$22913bo$22913bo$22913bo2$22915b3o
                            2$22884b2o$22883bobo32b2o$22883b2o33b2o9bo$22929bo$22929bo54b2o$22983b
                            o2bo$22984b2o2$22936b3o2$22948bo$22947bobo$22947b2o2$22910b2o$22910b2o
                            66bo$22977bobo$22977bo2bo$22978b2o4$22906b2o$22906b2o40b2o$22947bo2bo$
                            22948b2o$22945bo$22945bo$22945bo2$22947b3o2$22916b2o$22915bobo32b2o$
                            22915b2o33b2o9bo$22961bo$22961bo54b2o$23015bo2bo$23016b2o2$22968b3o2$
                            22980bo$22979bobo$22979b2o2$22942b2o$22942b2o66bo$23009bobo$23009bo2bo
                            $23010b2o4$22938b2o$22938b2o40b2o$22979bo2bo$22980b2o$22977bo$22977bo$
                            22977bo2$22979b3o2$22948b2o$22947bobo32b2o$22947b2o33b2o9bo$22993bo$
                            22993bo54b2o$23047bo2bo$23048b2o2$23000b3o2$23012bo$23011bobo$23011b2o
                            2$22974b2o$22974b2o66bo$23041bobo$23041bo2bo$23042b2o4$22970b2o$22970b
                            2o40b2o$23011bo2bo$23012b2o$23009bo$23009bo$23009bo2$23011b3o2$22980b
                            2o$22979bobo32b2o$22979b2o33b2o9bo$23025bo$23025bo54b2o$23079bo2bo$
                            23080b2o2$23032b3o2$23044bo$23043bobo$23043b2o2$23006b2o$23006b2o66bo$
                            23073bobo$23073bo2bo$23074b2o4$23002b2o$23002b2o40b2o$23043bo2bo$
                            23044b2o$23041bo$23041bo$23041bo2$23043b3o2$23012b2o$23011bobo32b2o$
                            23011b2o33b2o9bo$23057bo$23057bo54b2o$23111bo2bo$23112b2o2$23064b3o2$
                            23076bo$23075bobo$23075b2o2$23038b2o$23038b2o66bo$23105bobo$23105bo2bo
                            $23106b2o4$23034b2o$23034b2o40b2o$23075bo2bo$23076b2o$23073bo$23073bo$
                            23073bo2$23075b3o2$23044b2o$23043bobo32b2o$23043b2o33b2o9bo$23089bo$
                            23089bo54b2o$23143bo2bo$23144b2o2$23096b3o2$23108bo$23107bobo$23107b2o
                            2$23070b2o$23070b2o66bo$23137bobo$23137bo2bo$23138b2o4$23066b2o$23066b
                            2o40b2o$23107bo2bo$23108b2o$23105bo$23105bo$23105bo2$23107b3o2$23076b
                            2o$23075bobo32b2o$23075b2o33b2o9bo$23121bo$23121bo54b2o$23175bo2bo$
                            23176b2o2$23128b3o2$23140bo$23139bobo$23139b2o2$23102b2o$23102b2o66bo$
                            23169bobo$23169bo2bo$23170b2o4$23098b2o$23098b2o40b2o$23139bo2bo$
                            23140b2o$23137bo$23137bo$23137bo2$23139b3o2$23108b2o$23107bobo32b2o$
                            23107b2o33b2o9bo$23153bo$23153bo54b2o$23207bo2bo$23208b2o2$23160b3o2$
                            23172bo$23171bobo$23171b2o2$23134b2o$23134b2o66bo$23201bobo$23201bo2bo
                            $23202b2o4$23130b2o$23130b2o40b2o$23171bo2bo$23172b2o$23169bo$23169bo$
                            23169bo2$23171b3o2$23140b2o$23139bobo32b2o$23139b2o33b2o9bo$23185bo$
                            23185bo54b2o$23239bo2bo$23240b2o2$23192b3o2$23204bo$23203bobo$23203b2o
                            2$23166b2o$23166b2o66bo$23233bobo$23233bo2bo$23234b2o4$23162b2o$23162b
                            2o40b2o$23203bo2bo$23204b2o$23201bo$23201bo$23201bo2$23203b3o2$23172b
                            2o$23171bobo32b2o$23171b2o33b2o9bo$23217bo$23217bo54b2o$23271bo2bo$
                            23272b2o2$23224b3o2$23236bo$23235bobo$23235b2o2$23198b2o$23198b2o66bo$
                            23265bobo$23265bo2bo$23266b2o4$23194b2o$23194b2o40b2o$23235bo2bo$
                            23236b2o$23233bo$23233bo$23233bo2$23235b3o2$23204b2o$23203bobo32b2o$
                            23203b2o33b2o9bo$23249bo$23249bo54b2o$23303bo2bo$23304b2o2$23256b3o2$
                            23268bo$23267bobo$23267b2o2$23230b2o$23230b2o66bo$23297bobo$23297bo2bo
                            $23298b2o4$23226b2o$23226b2o40b2o$23267bo2bo$23268b2o$23265bo$23265bo$
                            23265bo2$23267b3o2$23236b2o$23235bobo32b2o$23235b2o33b2o9bo$23281bo$
                            23281bo54b2o$23335bo2bo$23336b2o2$23288b3o2$23300bo$23299bobo$23299b2o
                            2$23262b2o$23262b2o66bo$23329bobo$23329bo2bo$23330b2o4$23258b2o$23258b
                            2o40b2o$23299bo2bo$23300b2o$23297bo$23297bo$23297bo2$23299b3o2$23268b
                            2o$23267bobo32b2o$23267b2o33b2o9bo$23313bo$23313bo54b2o$23367bo2bo$
                            23368b2o2$23320b3o2$23332bo$23331bobo$23331b2o2$23294b2o$23294b2o66bo$
                            23361bobo$23361bo2bo$23362b2o4$23290b2o$23290b2o40b2o$23331bo2bo$
                            23332b2o$23329bo$23329bo$23329bo2$23331b3o2$23300b2o$23299bobo32b2o$
                            23299b2o33b2o9bo$23345bo$23345bo54b2o$23399bo2bo$23400b2o2$23352b3o2$
                            23364bo$23363bobo$23363b2o2$23326b2o$23326b2o66bo$23393bobo$23393bo2bo
                            $23394b2o4$23322b2o$23322b2o40b2o$23363bo2bo$23364b2o$23361bo$23361bo$
                            23361bo2$23363b3o2$23332b2o$23331bobo32b2o$23331b2o33b2o9bo$23377bo$
                            23377bo54b2o$23431bo2bo48b2o$23432b2o49b2o2$23384b3o93b2o7b2o$23479bo
                            2bo5bo2bo$23396bo83b2o7b2o$23395bobo$23395b2o88bo$23484bobo$23358b2o
                            124bobo$23358b2o66bo58bo$23425bobo$23425bo2bo$23426b2o3$23453b3o9bo$
                            23354b2o109bo$23354b2o40b2o67bo$23395bo2bo$23396b2o63b3o3b3o$23393bo
                            79b2o$23393bo71bo6bobo$23393bo71bo6b2o$23465bo$23395b3o2$23364b2o$
                            23363bobo32b2o$23363b2o33b2o2$23422b2o36bo$23422bobo34bobo$23415b2o6bo
                            35bobo$23414bo2bo42bo$23415b2o2$23483b2o$23474b2o7b2o$23459b2o12bo2bo$
                            23458bo2bo12b2o$23390b2o66bo2bo$23390b2o67b2o3$23431bo23bo$23430bo2bo
                            21bo$23430bo2bo21bo$23432bo$23386b2o$23386b2o3$23424bo3b2o$23424bo2bob
                            o51bo8b2o$23424bo3bo51bobo6bo2bo$23480bobo6bo2bo$23481bo8b2o2$23396b2o
                            78b2o7b2o$23395bobo53b2o22bo2bo5bo2bo$23395b2o54b2o23b2o7b2o2$23481bo$
                            23480bobo$23480bobo$23464b2o15bo$23464b2o3$23480b2o$23479bo2bo$23480b
                            2o$23422b2o$23422b2o4$23461bo9b2o$23461bo9b2o$23461bo$23418b2o$23418b
                            2o3$23508bo$23507bobo$23508bo$23523bo$23465b2o56bo$23464bo2bo55bo$
                            23428b2o35b2o$23427bobo$23427b2o$23495b3o3$23505b2o$23504bo2bo$23504bo
                            2bo$23505b2o$23518bo$23496b2o19bobo$23495bo2bo3b2o13bobo$23495bo2bo2bo
                            2bo13bo$23496b2o4b2o$23511bo$23511bo$23504b2o5bo$23503bobo$23504bo2$
                            23508b2o11b2o$23508b2o10bo2bo$23521b2o$23532b2o$23531bo2bo$23504b2o25b
                            obo$23504b2o26bo3$23507b2o$23507b2o23b2o$23525b2o5b2o$23525b2o$23506b
                            2o$23506b2o28b3o$23511bo$23510bobo$23510bobo$23497b3o11bo$23551b2o$
                            23495bo5bo48bobo$23495bo5bo11b2o12b2o22bo$23495bo5bo11b2o4bo6bo2bo$
                            23518bobo6b2o$23497b3o18bo2bo$23519b2o3$23532bo$23532bo$23532bo4$
                            23498b2o$23498b2o8$23481b2o17b2o$23480bo2bo16b2o$23481b2o7$23504b2o$
                            23503bobo$23503b2o!
    ''')
    target = initial[:, :2630]+initial[:, 2800:]
    d = {'1': initial[:, 2700:2800], '2': initial[:, 2630:2800], ' ': target - target}
    initial.save('initial.mc')
    target.save('target.mc')
    d['1'].save('1.mc')
    d['2'].save('2.mc')
    #with open('c:\\Golly\\PlayBitsInitial.rle', 'r') as file:
    #    target = lt.pattern(file.read()) -- does not work, I do not know how to position the target

    def convert(s):
        if s in d:
            return d[s]
        else:
            l = len(s) >> 1
            left = convert(s[:l])
            right = convert(s[l:])
            dist = l * spacing
            res = left + right(-dist, dist)
            d[s] = res
            return res

    segsize=256

    for i in range(0, len(x), segsize):
        #if ((i & 4095) == 0):
        #    print('%d / %d' % (i, len(x)), end='\r')
        dist = i * spacing
        target += convert(x[i:i+segsize])(-dist, dist)

    print('\n\n\n')

    return target


if __name__ == '__main__':

    with open('c:\\Golly\\DBCABits.txt', 'r') as file:
        recipe = file.read()

    rct = bin2patt(recipe)
    rct.save('test.mc')
CorderAbsorbers4pslmakeR.mc
(6.51 KiB) Downloaded 11 times
pslmake p1 target
Reflectors4pslmakeR.mc
(3.96 KiB) Downloaded 14 times
pslmake p8 target with only 4 allowed glider signatures (DBCA gliders). With an avoid zone denoted by a big cluster.

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 14th, 2024, 3:31 pm

Partial targets for pslmake:
GreenECCA4pslmake.mc
(19.66 KiB) Downloaded 16 times

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 19th, 2024, 7:28 pm

Seems line phase programs for FSE are debuged, so I could check absorbers count ranges for all possible semistates.
Hmmm, it ends on even line with no option for odd one ... I should probably modify the end. (May be even is actually OK).
rct15.mc
(714.47 KiB) Downloaded 11 times

Code: Select all


local showtext, showtextbase = "", ""
local bn = require "../gplus.bignum"
local g = golly()

g.setbase(2)
g.setpos("0","0")

local false_literal = false
local true_literal = true
local bnParsec = BigNum.new("45097156992")
local bnParsecHalf = BigNum.mt.half(bnParsec)
local bnParsecQuarter = BigNum.mt.half(bnParsecHalf)
local bnAeon=bnParsec                   -- /c
local bnAeonHalf = bnParsecHalf         --/c  (c=1)
local bnTwoAeons=bnAeon+bnAeon          -- maybe I have to implement multiplication and division:)
local bnFourAeons=bnTwoAeons+bnTwoAeons -- -"-
local startGen = g.getgen()
local bnZero = BigNum.new(0)
local currentAeon = 0
local bnCurrentAeonBase = bnZero
local bnCurrentOffset
local nrGliderGPSECollisionsToShow = 10 -- 26 is maximum displayed, whatever bigger will be interrupted (there are 28 bits in total)
local lastfstep=11

while startGen>bnCurrentAeonBase + bnAeonHalf do
  bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
  currentAeon = currentAeon + 1
end
local startAeon = currentAeon

g.autoupdate(true_literal)

local function smoothmag(imag, fmag)
    while imag ~= fmag do
        if imag < fmag then
            imag = imag + 1
        else
            imag = imag - 1
        end
        g.setmag(imag)
        g.sleep(200)
    end
    return imag
end

local function run_for_to(n, targetAeon, targetgen, istep, fstep, mags, note)
    local bnTargetGen
    local bnN
    local magindex
    local enterAeon = currentAeon
    fstep = fstep or 11
    if targetAeon~=nil then
      if targetAeon+0>100 then
        targetAeon = nil
      end
    end
    if (targetgen ~= nil) and targetAeon ~= nil then
    	bnTargetGen = BigNum.new(targetgen)
        if targetAeon<currentAeon then
--          g.note(showtext.." - target Aeon smaller than current one ")
            return
        end
        while currentAeon < targetAeon do
            bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
            currentAeon = currentAeon + 1
        end
    end
    if (targetgen == nil or targetAeon==nil) and (n == nil) then
        g.note(showtext.." - run_for_to with unknown duration")
        return
    end
    bnCurrentOffset=BigNum.new(g.getgen()) - bnCurrentAeonBase
    local bnStartGen=startGen - bnCurrentAeonBase
    local bnEnterGen=bnCurrentOffset
    if n ~= nil then
        bnN = BigNum.new(n)
    end
    if (targetgen ~= nil) and (targetAeon~=nil) and (n ~= nil) then
       if bnN+bnEnterGen ~= bnTargetGen  then
          if bnStartGen > bnTargetGen then return end -- skipping milestones to restart
          if bnStartGen + bnN < bnTargetGen then -- must be script error
             if bnN+bnEnterGen > bnTargetGen+BigNum.new(2^lastfstep) then
            	g.note(showtext.."("..currentAeon..") : - run_for_to for not matching to "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
            	return
             end
          end
          --g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." running to first milestone after restart")
          bnN = bnTargetGen - bnEnterGen
       end
    end
    if (n==nil) then -- helper for editting at the end
	bnN = bnTargetGen - bnEnterGen
      --g.note(showtext.." : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    if (targetgen == nil or targetAeon == nil) then -- helper for editting
      bnTargetGen = bnN + bnEnterGen
      while bnTargetGen>bnAeonHalf do
        bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
        currentAeon = currentAeon + 1
        bnTargetGen = bnTargetGen - bnAeon
        bnEnterGen = bnEnterGen - bnAeon
      end
      g.setclipstr("run_for_to(\""..BigNum.mt.tostring(bnN).."\", "..currentAeon..", \""..BigNum.mt.tostring(bnTargetGen).."\"")
      g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    local bnGen
    local sTargetGen = BigNum.mt.tostring(bnTargetGen)
    if bnN<=0 then return end
    local nn=BigNum.mt.tostring(bnN)
    istep = istep or math.min(30, math.floor(math.log(nn)/math.log(2))-6)
    local cstep = g.getstep()
    if cstep<fstep then cstep = fstep end
    if cstep>istep then cstep = istep end
    if mags then
        magindex = 1
        currmag = mags[magindex]
        g.setmag(currmag)
        magindex = magindex + 1
    end
    local bn3Eistep = BigNum.new(3*2^istep)
    g.setstep(cstep)
    while bnN > bnZero do
        g.show(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." i"..istep.." f"..fstep)

        while (istep > fstep) and (bnN < bn3Eistep) do
            istep = istep - 2
            if istep < 0 then istep = 0 end
            bn3Eistep = BigNum.new(3*2^istep)
            cstep = istep
            if mags and magindex <= #mags then
                currmag = smoothmag(currmag, mags[magindex])
                magindex = magindex + 1
            end
            g.setstep(cstep)
        end
        g.step()
        bnGen=BigNum.new(g.getgen()) - bnCurrentAeonBase
        bnN = bnTargetGen - bnGen
        cstep = g.getstep()
        if (cstep<istep) then -- owerwriting manual slowdown
          cstep = cstep+1
          g.setstep(cstep)
        end
        if (cstep>istep) then -- owerwriting manual speedup
          cstep = cstep-1
          g.setstep(cstep)
        end
    end
    lastfstep = fstep
    if (n==nil) and (enterAeon==currentAeon) then
      -- no explicit duration when Aeon boundary is crossed
      bnN=bnGen-bnEnterGen
      g.setclipstr("run_for_to(\""..BigNum.mt.tostring(bnN).."\", "..currentAeon..", \""..BigNum.mt.tostring(bnGen).."\"")
      g.note(showtext.."("..currentAeon..") : ".." final generation: "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnGen))
    end
    if note~=nil then
      g.note(note)
    end
end

local function run_from_to(bnN, targetAeon, bnTargetGen, istep, fstep, mags)
--bnTargetgen big number not nil (bnN==nil if to new Aeon)
  if bnN==nil then
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:nil")
    run_for_to(nil, targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  else
    local bnDuration = bnTargetGen - bnN
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:"..BigNum.mt.tostring(bnDuration))
    run_for_to(BigNum.mt.tostring(bnDuration), targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  end
end

local function distance_bits(prevTime)
  -- somehow when interrupted, restart skips to "remaining bits read"
  -- ... I should check why it happens, but it is method how to speed the show up,
  -- so it looks like desired feature.
  local bngcCollisionPos = bnParsecQuarter+0
  local bngcCollisionTime = -bnAeon-bnTwoAeons
  local collisionAeon=10 -- 3rd collision only
  local bnReadTime = -bnTwoAeons
  local gnPrevTime = BigNum.new(prevTime)
  local bngcCollisionTimeOffs
  local bnReadTimeOffs
  local i
  -- 12-8 12-4 12-2   12-1     12-0.5
  -- 12-6 12-3 12-1.5 12-0.75
  for i=3,nrGliderGPSECollisionsToShow,1 do
    bngcCollisionPos=BigNum.mt.half(bngcCollisionPos)
    bngcCollisionTime=BigNum.mt.half(bngcCollisionTime)
    bnReadTime=BigNum.mt.half(bnReadTime)
    if bnReadTime>-22000 then
      -- remaining bits should be processed extra
      break
    end
    bngcCollisionTimeOffs=bngcCollisionTime+bnAeon
    bnReadTimeOffs=bnReadTime+bnAeon
    if i==3 then -- Aeon exception
      bngcCollisionTimeOffs=bngcCollisionTimeOffs+bnAeon
    end
    g.setpos(BigNum.mt.tostring(bngcCollisionPos), BigNum.mt.tostring(bngcCollisionPos))
    showtext="Fast-forwarding to FSE glider with GPSE collision nr. "..i
    run_from_to(gnPrevTime, collisionAeon, bngcCollisionTimeOffs+2048, 30, 0, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
    gnPrevTime=bngcCollisionTimeOffs+4096
    run_for_to("2048", collisionAeon, gnPrevTime, nil, 0, {0})
    g.setpos(0, 0)
    showtext="Fast-forwarding to distance bit read nr. "..i
    if i==3 then
      gnPrevTime=nil
      collisionAeon=11
    end
    run_from_to(gnPrevTime, collisionAeon, bnReadTimeOffs+2048, 30, 0, {-30, -2})
    showtext="Note the gliders going from the center ..."
    gnPrevTime=bnReadTimeOffs+4128
    run_for_to(2080, collisionAeon, gnPrevTime, nil, 0, {0})
  end
end

showtext="Startng crash FSE"
g.setpos(BigNum.mt.tostring(bnParsec), BigNum.mt.tostring(bnParsec))
run_for_to("1024",0,"1024",4,4,{-1})
showtext="Startng crash FNW"
g.setpos(BigNum.mt.tostring(-bnParsec), BigNum.mt.tostring(-bnParsec))
run_for_to("1024",0,"2048",4,4,{-1})
showtext="Fast-forwarding to first collision of gliders from GPSEs..."
g.setpos(0,0)
run_for_to(nil, 4, "960", 30, 6, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
showtext="Note the gliders going  from the center..."
run_for_to("992", 4, "1952", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecHalf), BigNum.mt.tostring(bnParsecHalf))
showtext="Fast-forwarding to first FSW glider with GPSE collision..."
run_for_to(nil, 6, "448", 30, 2, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
run_for_to("2048", 6, "2496")
g.setpos(0, 0)
showtext="Fast-forwarding to first distance bit read ..."
run_for_to(nil,8,"1280",30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("1024", 8, "2304", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecQuarter), BigNum.mt.tostring(bnParsecQuarter))
showtext="Fast-forwarding to second FSE glider with GPSE collision..."
run_for_to(nil, 9, "1184", 30,2,{-30,-27,-24,-21,-18,-16, -14, -12, -10, -8, -6, -4, -2, 0})
run_for_to("2048", 9, "3232")
g.setpos(0, 0)
showtext="Fast-forwarding to second distance bit read ..."
run_for_to(nil,10, "-1088", 30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("2048", 10, "3168", 4, 4, {0})
showtext="Fast-forwarding to first inserted MWSS bits ... here only 28 bits are encoded in pattern size"
run_for_to("194952", 10, "198120", nil, 4, {-24, -16, -8, -4, -2, 0})
showtext="Each inserted bit reduces pattern dimensions to half, there will be no chance to wait for result without the reduction"
run_for_to("1600", 10, "199720", nil, nil, {0})
showtextbase="Transform the initial crash site into a usable blinker elbow"
showtext=showtextbase
showtextbase="Building LWSS seed and blocks"
showtext=showtextbase
run_for_to("16449536",10,"16649256",nil,nil,nil,nil)
showtext=showtextbase..
" - Creating block needed for ECCA construction and another one to construct a GPSE stopper"run_for_to("21102592",10,"37751848",nil,nil,nil,nil)
showtext=showtextbase..
" - LWSS seed construction started"run_for_to("33882112",10,"71633960",nil,nil,nil,nil)
showtext=showtextbase..
" - LWSS seed construction ended, stackbottom repositioning starts"run_for_to("125435904",10,"197069864",nil,nil,{0,-3},nil)
g.setpos("600", "-600")
showtext=showtextbase..
" - Stackbottom repositioning ended"run_for_to("838074368",10,"1035144232",nil,nil,nil,nil)
showtextbase="Building glider seed"
showtext=showtextbase
g.setpos("1200", "-1200")
showtext=showtextbase..
" - Creating target block for glider seed"showtext=showtextbase..
" - Start of glider seed recipe"run_for_to("16580608",10,"1051724840",nil,nil,nil,nil)
showtext=showtextbase..
" - End of glider seed recipe"run_for_to("80740352",10,"1132465192",nil,nil,nil,nil)
showtext=showtextbase..
" - Switch to stack items better for long fills"run_for_to("2228224",10,"1134693416",nil,nil,{0,-2},nil)
g.setpos("600", "-1400")
showtextbase="Creating synced glider pair to invoke the seeds to create distant target"
showtext=showtextbase
showtext=showtextbase..
" - Creating long gap on the stack"showtext=showtextbase..
" - You may notice the last 3 pairs of beehive pairs differ from he rest"run_for_to("35782656",10,"1170476072",nil,nil,nil,nil)
showtext=showtextbase..
" - Expensive transformation to standard stack items ended"run_for_to("10616832",10,"1181092904",nil,nil,nil,nil)
showtext=showtextbase..
" - Target for the subrecipe created, glider pair seed recipe starts"run_for_to("12845056",10,"1193937960",nil,nil,nil,nil)
showtext=showtextbase..
" - Glider pair seed recipe ended"run_for_to("101842944",10,"1295780904",nil,nil,nil,nil)
showtextbase="Distant target creation seed activation"
showtext=showtextbase
run_for_to("3407872",10,"1299188776",nil,nil,nil,nil)
showtextbase="Distant target creation seed activated"
showtext=showtextbase
run_for_to("65536",10,"1299254312",nil,nil,nil,nil)
showtext=showtextbase..
" - Stack have to return to the position to build DBCA"run_for_to("1638400",10,"1300892712",nil,nil,nil,nil)
showtext=showtextbase..
" - Stack returned  to the position to build DBCA"run_for_to("3145728",10,"1304038440",nil,nil,nil,nil)
showtextbase="(Green) DBCA building recipe applied to the distant target, including cordership activation seed, the most expensive part of the RCT15 constant part "
showtext=showtextbase
showtext=showtextbase..
" - (Green) DBCA sleeping pattern is ready, we have to replace the stack by reflector targets to ignite the corderships"run_for_to("24649596928",11,"-19143521624",nil,nil,nil,nil)
showtextbase="Building 2 target blinkers for DBCA reflectors, 1 target blinker for ECCA reflectors and glider to activate the cordership"
showtext=showtextbase
run_for_to("10682368",11,"-19132839256",nil,nil,nil,nil)
showtext=showtextbase..
" - Big move of stack bottom to ECCA target starts. It uses easily destroyable filler."showtext=showtextbase..
" - Expensive part converting stack top to blinker."run_for_to("20578304",11,"-19112260952",nil,nil,nil,nil)
showtext=showtextbase..
" - Filler removal."run_for_to("11141120",11,"-19101119832",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating ECCA reflector target from 1st DBCA reflector target was created"run_for_to("10354688",11,"-19090765144",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating 1st DBCA reflector target from 2nd DBCA reflector target was created"run_for_to("6029312",11,"-19084735832",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating glider construction stack from the reflector targets created"run_for_to("6881280",11,"-19077854552",nil,nil,nil,nil)
showtextbase="Activating the cordership to start DBCA reflectors"
showtext=showtextbase
run_for_to("13303808",11,"-19064550744",nil,nil,nil,nil)
showtextbase="DBCA reflectors activated"
showtext=showtextbase
run_for_to("65536",11,"-19064485208",nil,nil,nil,nil)
showtextbase="remnants of the original arm removed, green DBCA activated"
showtext=showtextbase
run_for_to("589824",11,"-19063895384",nil,nil,nil,nil)
showtextbase="Creating eater at the Green line and White target using Green DBCA"
showtext=showtextbase
showtextbase="Green portion of DBCA really finished, White portion construction begins"
showtext=showtextbase
run_for_to("18874368",11,"-19045021016",nil,nil,nil,nil)
showtext=showtextbase..
" - White color reflector activation"run_for_to("520749056",11,"-18524271960",nil,nil,nil,nil)
showtext=showtextbase..
" - White color reflector activated"run_for_to("65536",11,"-18524206424",nil,nil,nil,nil)
showtextbase="Decoder and better construction arm (DBCA) finished"
showtext=showtextbase
run_for_to("21430272",11,"-18502776152",nil,nil,{-2,-3},nil)
showtext=showtextbase..
" - cleanup of the PI explosion from the initial GPSE collision starts"g.setpos("0", "0")
showtext=showtextbase..
" - cleanup of the PI explosion from the initial GPSE collision ended"run_for_to("48168960",11,"-18454607192",nil,nil,nil,nil)
showtext=showtextbase..
" - GPSE stopping block positioned"showtextbase="Releasing first glider FSE"
showtext=showtextbase
run_for_to("8192000",11,"-18446415192",nil,nil,nil,nil)
showtext=showtextbase..
" - Releasing second glider FSE"run_for_to("4128768",11,"-18442286424",nil,nil,nil,nil)
showtextbase="Releasing third glider FSE"
showtext=showtextbase
run_for_to("4325376",11,"-18437961048",nil,nil,nil,nil)
showtextbase="Creating ECCA (Fake)"
showtext=showtextbase
run_for_to("1835008",11,"-18436126040",nil,nil,nil,nil)
showtextbase="Fake ECCA built"
showtext=showtextbase
run_for_to("31457280",11,"-18404668760",nil,nil,nil,nil)
showtext=showtextbase..
" - Dummy Switch FSE"g.setpos("0", "0")
showtext=showtextbase..
" - Dummy Switch FSE ready"run_for_to("255590400",11,"-18149078360",nil,nil,{0,0},nil)
g.setpos("0", "0")
showtextbase="Dummy Switched FSE"
showtext=showtextbase
run_for_to("3473408",11,"-18145604952",nil,nil,{0,0},'debug switching next bit')
g.setpos("0", "0")
showtextbase="And this is end so far"
showtext=showtextbase
run_for_to("1374945280",11,"-16770659672",nil,nil,nil,'work in progress,\n Note that this scripts allow you restart at any generation.\n You can stop it, watch a detail and restart afterwards to let show continue.')
showtextbase="First glider arrived to FSE"
showtext=showtextbase
run_for_to("178712872448",15,"-18446415192",nil,nil,nil,nil)
g.setpos("45097156992", "45097156992")
showtext=showtextbase..
" - Second glider arrived to FSE"run_for_to("4128768",15,"-18442286424",nil,nil,nil,nil)
showtextbase="Third glider arrived to FSE"
showtext=showtextbase
run_for_to("4325376",15,"-18437961048",nil,nil,nil,nil)
showtext=showtextbase..
" - Dummy Switched FSE"run_for_to("292356096",15,"-18145604952",nil,nil,{0,-1},'debug switching next bit')
g.setpos("45097156992", "45097156992")
showtextbase="Dummy Switched FSE"
showtext=showtextbase
run_for_to("65536",15,"-18145539416",nil,nil,{-1,-1},'debug switched')
g.setpos("45097156992", "45097156992")
showtextbase="FSE Cleanup"
showtext=showtextbase
g.setpos("45097156992", "45097156992")
showtextbase="FSE Cleanup finished"
showtext=showtextbase
run_for_to("27721728",15,"-18117817688",nil,nil,nil,'cleanup ended')
g.setpos("45097156992", "45097156992")
showtextbase="Building FSE ECCA reflectors"
showtext=showtextbase
g.setpos("45097157292", "45097156692")
showtextbase="FSE Reflectors ready"
showtext=showtextbase
run_for_to("533004288",15,"-17584813400",nil,nil,{-2,-1},'debug FSE refectors ready')
g.setpos("45097156992", "45097156992")
showtextbase="Building FSE corderabsorbers"
showtext=showtextbase
g.setpos("45097157292", "45097157092")
showtextbase="FSE corderabsorbers ready"
showtext=showtextbase
run_for_to("812187648",15,"-16772625752",nil,nil,nil,'debug FSE corderabsorbers ready')
.
pslmake for ECCA
GreenECCA4pslmake8.mc
(19.68 KiB) Downloaded 10 times
would take weeks on my notebook (if I would choose nontrivial beam width). Now I am after half a day on 3% with beam width 40.
(on ECCA without the seed of destruction).

Hmm, when run on beamwidth 10, I have reached almost 21% when no improvement was found and the search ended :(.
I am not sure wider search would avoid this problem..
Here is the last progres file:

Code: Select all

#CLL state-numbering golly
x = 199216, y = 198297, rule = B3/S23
541b2o$541b2o$527bo$527b3o$530bo10b3o$529b2o11b2o$539b2o$534bo4b3o
$533bobo4bobo$533bo2bo4b2o$534b2o55$919b2o2$917bo3bo$917bo4bo$919b
obobo8bo$920bobobo5b3o$921bo4bo2bo$922bo3bo2b2o2$923b2o2bo$926bobo
$927b2o2b2o$931b2o52$337bo$336bobo$337b2o4$917b2o$917bobo$919bo4b
2o$915b4ob2o2bo2bo$915bo2bobobobob2o$918bobobobo$919b2obobo$923bo
2$909b2o$910bo7b2o$910bobo5b2o$911b2o7$921b2o$921bo$391b2o529b3o$
391b2o531bo2$387bo$386bobo$387bo10$283b2o5b2o$284bo5b2o$284bobo$
285b2o$289b2o$288bobo$289bo$285bo2$283b3obo$282bob2o$282b2obo512b
2o$280bob3o513b2o$784bo13b2o$282bo60bo440b3o12bo$249b2o92b3o441bo
10bobo$249b2o95bo439b2o9b2obo$249b2o13bo80b2o$249bo12b3o526bo$248b
obo10bo528bobo5b2o$248bob2o9b2o527bo2bo4b2o$791b2o$257bo$249b2o5bo
bo$249b2o4bo2bo$256b2o9$374b3o$373bo$373bo3bo$373bo2bobo8bo$375bob
o2bo4b3o$376bo3bo3bo$380bo3b2o$160b2o215b3o$161bo220bo$161bobo217b
obo$162b2o218b2o2b2o$386b2o2$166b2o872bo$165bo2bo128b2o$166bobo
128b2o5b2o732b3obo$167bo136b2o722bo8bob2o$1028b3o6b2obo$1031bo3bob
3o$273b2o27b2o726b2o$162b2o109b2o27b2o733bo$158b2o4b4o140b2o723bo$
158b2o2b2ob3o140b2o722bobo$162bo104b2o759b2o2b2o$267b2o759b2o$271b
2o15bo$271b2o14bobo5bo122b2o$288b2o5bo122b2o$295bo2$266b2o$266b2o
10$300b2o126b2o$300bobo125b2o$301bo2$313b2o$313b2o4$308b2o$308b2o$
312b2o$312b2o$271b2o$271b2o$277b2o27b2o$277b2o27b2o3$275b2o866b2o$
275b2o5b2o859bobo$282b2o861bo4b2o$1141b4ob2o2bo2bo$1141bo2bobobobo
b2o$1144bobobobo$1145b2obobo$1149bo2$1135b2o$1136bo7b2o$1136bobo5b
2o$1137b2o3$1071bo$1069b3o$1068bo$1068b2o$1053b2o92b2o$1054bo92bo$
1054bobo91b3o$217b2o836b2o10bo82bo$218bo847bobo$218bobo845bobo$
219b2o846bo4b2o$1055b2o15bobo$1054bobo17bo$147b2o5b2o67b2o829bo19b
2o$148bo5b2o66bo2bo827b2o$148bobo72bobo853bo$149b2o73bo852b3o83b2o
$153b2o871bo49bo86b2o$152bobo871b3o47b2o$153bo875bo$220bo505bo301b
2o6bo27b2o$148b3o64b3ob2o2b2o501b3o306bobo26b2o$148b3o64b4o4b2o
504bo306bo$148b3o68b2o507b2o6bo$145b3o587bobo$145b3o588bo286b2o$
145b3o329b2o544b2o6b2o$477b2o251b2o299b2o$723b2o5b2o$723b2o315b2o$
1040b2o10b2o$1053bo$740b2o283b2o26bobo$740b2o282bobo27b2o$1024bo$
725b2o296b2o$724bobo$724bo$723b2o7$25b2o1028b2o15b2o$25bobo836bo
190b2o15bobo$26bobo833b3o209bo$27bo833bo212b2o$861b2o$846b2o$847bo
$847bobo$32b2o8bo614b2o189b2o10bo$31bo2bo6bobo614bo200bobo$32bobo
5bobo615bobo198bobo205b2o$33bo6b2o617b2o199bo4b2o200bo$848b2o15bob
o197bobo$847bobo17bo9bo187b2o$663b2o182bo19b2o7b3o$662bo2bo180b2o
27bob3o$663bobo208bo3bo$664bo208bo3bo$282b2o588b3obo$282b2o589b3o
252b2o$661bobo210bo149bo103bo$660bo71b2o11bo111b2o11bo153b3o103bo$
655b2o2bo4bo67b2o10bobo110b2o10bobo155bo82b2o14b5o$655b2obo2bob2o
79bobo31b2o89b2o155b2o6bo76bo13bo$659b2o82b2ob3o2b2o25bo94b2o158bo
bo75bobo12b3o$314bo434bo2bo23bobo94bobo158bo12b2o15b2o46b2o15bo$
312b3o428b2ob3o3bobo21b2o90b2o5bo170bobo15b2o60b4o$311bo431b2obo6b
2o113b2o5b2o151b2o16bo74b2o3bo3b2o$311b2o708b2o5b2o15b2o74b2o4b3o
2bo$1021b2o106bob2o$1129bo$845b2o281b2o$846bo191b2o$846bobo189b2o$
740b2o13b2o90b2o271b2o$314b2o424b2o13b2o266b2o27b2o66bo$314b2o409b
2o295bobo28bo67b3o$724bo2bo294bo30bobo67bo$723bob2o294b2o31b2o$
723bo$210b2o59bo450b2o$209b3o59b3o463b2o$208bobo2bo2b2o56bo462bo$
208b2o2b2o2b2o55bobo462b3o23b2o$212b2o60bo465bo24bo$664bo97b3o4b2o
67bo$664b3o95bo6b2o67b3o7b2o15b2o$275b2o38b2o350bo173bo6b2o15bobo$
217bo57b2o38bobo348b2o172b2o25bo$216bobo98bo369b2o178b2o$9bo205bo
2bo98b2o368b2o366b2o15b2o$bo6bobo205b2o77b2o361b2o395b2o15bobo$obo
6bo285b2o361bo415bo$2o653b2obo415b2o$212b2o441bo2b3o4b2o$211bobo
442b2o3bo3b2o$211bo446b4o198b2o$210b2o446bo15b2o184bo$659b3o12bobo
181bobo$662bo13bo181b2o$657b5o14b2o389b2o$657bo409bo$659bo405bobo$
658b2o405b2o$1074bo$1072b3o$1071bo$1071b2o$1050b2o$1051bo$1051bobo
29b2o$840b2o15b2o193b2o29bo$839bobo15b2o222bobo$839bo241b2o$838b2o
7$845b2o$346b2o498bo$346b2o498bobo$847b2o5$378bo$376b3o$375bo$375b
2o$1059b2o$1059b2o2$848b2o15b2o$848b2o15bobo$867bo$378b2o487b2o$
378b2o$1054b2o$1054b2o2$335bo$335b3o523bo$338bo520b3o$337bobo518bo
$338bo519b2o3$339b2o38b2o$339b2o38bobo$381bo666bo$381b2o663b3o$
359b2o684bo$359b2o684b2o$1030b2o$1031bo$845b2o184bob2o$845b2o185bo
2bo$1033b2o$868b2obo$844b2o22b2ob3o$845bo28bo$842b3o23b2ob3o$842bo
26bobo$859b2o8bobo154b2o$859bo10bo155b2o$860b3o$862bo9$956b2o$955b
obo43b2o$949b2o4bo45b2o$947bo2bo2b2ob4o$947b2obobobobo2bo$950bobob
obo$950bobob2o$822b2o127bo$411b2o409b2o$411b2o551b2o$955b2o7bo$
955b2o5bobo$962b2o3$443bo$441b3o179b2o$440bo182b2o212b2o$440b2o
395b2o$952b2o$953bo$601b2o347b3o$600bo2bo4b2o340bo$600bobo5b2o$
601bo6b2o54b2o$443b2o163bo55b3o$443b2o151b2o9bobo48b2o2bo2bobo$
597bo9bob2o47b2o2b2o2b2o$594b3o65b2o$594bo$400bo207b2o$400b3o205b
2o$403bo254bo$402bobo252bobo$403bo253bo2bo$658b2o2$404b2o38b2o$
404b2o38bobo215b2o$446bo215bobo$446b2o216bo$424b2o238b2o$424b2o
531b2o$957b2o6$847b2o$847bobo$849bo$455b2o392b2o$455b2o6$487bo$
485b3o473b2o$484bo476b2o$484b2o3$520b2o$519b3o$518bobo2bo2b2o$518b
2o2b2o2b2o$487b2o33b2o$487b2o3$527bo$444bo81bobo$444b3o78bo2bo$
447bo78b2o$446bobo$447bo$522b2o$521bobo$448b2o38b2o31bo331b2o5b2o$
448b2o38bobo29b2o331b2o5b2o$490bo$490b2o$468b2o126bo$468b2o124b3o$
593bo$593b2o7$583b2o$582bobo5b2o$582bo7b2o$581b2o2$503b2o90bo$503b
2o86b2obobo$590bobobobo$587bo2bobobobob2o$587b4ob2o2bo2bo126b2o$
591bo4b2o129bo$589bobo135bobo$535bo53b2o137b2o$533b3o207b2o$532bo
210b2o$532b2o3$737b2o$733b4o4b2o$582b2o149b3ob2o2b2o$582bo155bo$
535b2o47bo$535b2o27b2o14b5o$565bo13bo$565bobo12b3o159bo$566b2o15bo
157bobo$492bo87b4o156bo2bo240b3o$492b3o80b2o3bo3b2o155b2o240bo$
495bo79b2o4b3o2bo396bo3bo$494bobo86bob2o396bo2bobo$495bo87bo153b2o
246bobo2bo$582b2o152bobo247bo3bo$736bo253bo$496b2o38b2o197b2o250b
3o$496b2o38bobo35b2o416bo$538bo35bo416bobo$538b2o35b3o414b2o$516b
2o59bo$516b2o5$542b2o$542b2o6$574bo$572b3o$571bo$571b2o3$699b2o$
699b2o$714bo$699bo12b3o$574b2o122bobo10bo$574b2o122bo2bo9b2o$699bo
2bo$707bo$699bo2bo3bobo$531bo167b2o4bo2bo$531b3o172b2o$534bo$533bo
bo$534bo$735b2o$735bo40bo$535b2o196bobo40b3o$535b2o195bobo44bo$
684b2o42b2o3bo44b2o$685bo42b2o$555b2o128bobo$555b2o12b2o115b2o$
569bo$570b3o$572bo117b2o$689bo2bo64b2o$690bobo64b2o$691bo$792b2o$
792b2o2$687bo$682b3ob2o2b2o78b2o$682b4o4b2o78b2o9b2o$599b2o5b2o78b
2o92bo2bo$599b2o5bo173bobo$604bobo174bo$604b2o$600b2o122b2o$600bob
o121b2o$601bo189b2obo$604b3o169b2o13b2ob3o$603bo172b2o19bo$603bo3b
o129bo45b2o6b2ob3o$603bo2bobo127bobo44b2o7bobo$605bobo2bo125b2o54b
obo$606bo3bo182bo$610bo$607b3o4$817b2o$817b2o$748b2o$748bobo$750bo
$750b2o58bo$784bo9bo15b3o$784b3o5b3o18bo$787bo3bo20b2o$786b2o3b2o
4$803b2o$803b2o3$800b2o$800b2o$788b2o$787bo2bo$782b2o4b2o$781bobo$
781bo$780b2o$790b2o$790bo$791b3o$793bo4$701b2o$700bobo$700bo$699b
2o10$588b2o$588bo$586bobo$586b2o3$582b2o$581bo2bo$581bobo$582bo4$
586b2o$582b4o4b2o$582b3ob2o2b2o$571b2o14bo$564b2o4bo2bo$563bo2bo4b
obo$566bo5bo$566bo$563b2obo9b2o$563b2o11bo$577b3o$579bo$564b2o$
564b2o92b2o$658b2o50$1245b3o$1245bo$1246bo126$1373b3o$1373bo$1374b
o127$1507b3o$1507bo$1508bo126$1623b3o$1623bo$1624bo126$1755b3o$
1755bo$1756bo126$1873b3o$1873bo$1874bo125$2009b3o$2009bo$2010bo
126$2133b3o$2133bo$2134bo127$2265b3o$2265bo$2266bo125$2393b3o$
2393bo$2394bo126$2511b3o$2511bo$2512bo126$2639b3o$2639bo$2640bo
126$2765b3o$2765bo$2766bo127$2897b3o$2897bo$2898bo125$3019b3o$
3019bo$3020bo126$3145b3o$3145bo$3146bo127$3265b3o$3265bo$3266bo
126$3393b3o$3393bo$3394bo126$3525b3o$3525bo$3526bo125$3638bo$3637b
2o$3637bobo126$3778b2o$3777b2o$3779bo126$3605b3o$3605bo$3606bo127$
4021b3o$4021bo$4022bo126$4159b3o$4159bo$4160bo126$4287b3o$4287bo$
4288bo125$4417b3o$4417bo$4418bo126$4542bo$4541b2o$4541bobo126$
4658b2o$4657b2o$4659bo127$4503b3o$4503bo$4504bo126$4621b3o$4621bo$
4622bo125$4747b3o$4747bo$4748bo127$4875b3o$4875bo$4876bo125$5001b
3o$5001bo$5002bo127$5139b3o$5139bo$5140bo125$5269b3o$5269bo$5270bo
126$5395b3o$5395bo$5396bo127$5521b3o$5521bo$5522bo125$6149b3o$
6149bo$6150bo127$6271b3o$6271bo$6272bo125$6413b3o$6413bo$6414bo
126$6522b2o$6521b2o$6523bo127$6145b3o$6145bo$6146bo125$6697b3o$
6697bo$6698bo127$6823b3o$6823bo$6824bo125$6956bo$6955b2o$6955bobo
127$6647b3o$6647bo$6648bo125$6773b3o$6773bo$6774bo126$6901b3o$
6901bo$6902bo126$7027b3o$7027bo$7028bo126$7153b3o$7153bo$7154bo
127$7279b3o$7279bo$7280bo126$7393b3o$7393bo$7394bo126$7543b3o$
7543bo$7544bo126$7657b3o$7657bo$7658bo125$7785b3o$7785bo$7786bo
126$7901b3o$7901bo$7902bo126$8048bo$8047b2o$8047bobo127$8161b3o$
8161bo$8162bo126$8277b3o$8277bo$8278bo125$8423b3o$8423bo$8424bo
127$8521b3o$8521bo$8522bo125$8649b3o$8649bo$8650bo126$8766b2o$
8765b2o$8767bo126$8902bo$8901b2o$8901bobo126$9022b2o$9021b2o$9023b
o126$9154bo$9153b2o$9153bobo126$9283b3o$9283bo$9284bo126$9407b3o$
9407bo$9408bo126$9540bo$9539b2o$9539bobo126$9662bo$9661b2o$9661bob
o126$9779b3o$9779bo$9780bo126$9911b3o$9911bo$9912bo127$10049b3o$
10049bo$10050bo125$10166bo$10165b2o$10165bobo126$10300bo$10299b2o$
10299bobo126$10428bo$10427b2o$10427bobo126$10545b3o$10545bo$10546b
o126$10671b3o$10671bo$10672bo127$10807b3o$10807bo$10808bo125$
10935b3o$10935bo$10936bo126$11073b3o$11073bo$11074bo126$11203b3o$
11203bo$11204bo126$11331b3o$11331bo$11332bo127$11463b3o$11463bo$
11464bo126$11583b3o$11583bo$11584bo125$11713b3o$11713bo$11714bo
126$11848b2o$11847b2o$11849bo126$12333b3o$12333bo$12334bo126$
12461b3o$12461bo$12462bo126$12591b3o$12591bo$12592bo126$12719b3o$
12719bo$12720bo127$12855b3o$12855bo$12856bo125$12971b3o$12971bo$
12972bo127$13083b3o$13083bo$13084bo125$13200b2o$13199b2o$13201bo
126$13327b3o$13327bo$13328bo126$13453b3o$13453bo$13454bo126$13579b
3o$13579bo$13580bo127$13709b3o$13709bo$13710bo125$13833b3o$13833bo
$13834bo126$13953b3o$13953bo$13954bo126$13771b3o$13771bo$13772bo
127$13901b3o$13901bo$13902bo125$14029b3o$14029bo$14030bo126$14157b
3o$14157bo$14158bo126$14285b3o$14285bo$14286bo127$14407b3o$14407bo
$14408bo125$14542b2o$14541b2o$14543bo127$14675b3o$14675bo$14676bo
125$14804bo$14803b2o$14803bobo127$14923b3o$14923bo$14924bo125$
15047b3o$15047bo$15048bo126$15187b3o$15187bo$15188bo127$15305b3o$
15305bo$15306bo125$15437b3o$15437bo$15438bo126$15569b3o$15569bo$
15570bo126$15692b2o$15691b2o$15693bo127$15827b3o$15827bo$15828bo
126$15955b3o$15955bo$15956bo125$16091b3o$16091bo$16092bo126$16223b
3o$16223bo$16224bo127$16341b3o$16341bo$16342bo125$16468b2o$16467b
2o$16469bo127$16599b3o$16599bo$16600bo126$16725b3o$16725bo$16726bo
126$16849b3o$16849bo$16850bo125$16979b3o$16979bo$16980bo127$17109b
3o$17109bo$17110bo125$17237b3o$17237bo$17238bo126$17653b3o$17653bo
$17654bo126$17785b3o$17785bo$17786bo126$17911b3o$17911bo$17912bo
127$18037b3o$18037bo$18038bo126$17879b3o$17879bo$17880bo125$18007b
3o$18007bo$18008bo126$18155b3o$18155bo$18156bo127$18801b3o$18801bo
$18802bo125$18421b3o$18421bo$18422bo126$19055b3o$19055bo$19056bo
126$19193b3o$19193bo$19194bo127$19313b3o$19313bo$19314bo126$19437b
3o$19437bo$19438bo125$19580b2o$19579b2o$19581bo127$19721b3o$19721b
o$19722bo125$19817b3o$19817bo$19818bo127$19975b3o$19975bo$19976bo
126$20109b3o$20109bo$20110bo126$19703b3o$19703bo$19704bo125$19831b
3o$19831bo$19832bo126$19949b3o$19949bo$19950bo126$20143b3o$20143bo
$20144bo127$20275b3o$20275bo$20276bo125$20405b3o$20405bo$20406bo
127$20515b3o$20515bo$20516bo125$20656b2o$20655b2o$20657bo126$
20782b2o$20781b2o$20783bo127$20855b3o$20855bo$20856bo125$20979b3o$
20979bo$20980bo127$21113b3o$21113bo$21114bo125$21242bo$21241b2o$
21241bobo126$21355b3o$21355bo$21356bo126$21500b2o$21499b2o$21501bo
127$21623b3o$21623bo$21624bo125$21745b3o$21745bo$21746bo127$21867b
3o$21867bo$21868bo125$21990b2o$21989b2o$21991bo126$22909b3o$22909b
o$22910bo126$23033b3o$23033bo$23034bo126$23153b3o$23153bo$23154bo
126$23295b3o$23295bo$23296bo126$23407b3o$23407bo$23408bo126$23545b
3o$23545bo$23546bo126$23692bo$23691b2o$23691bobo127$23259b3o$
23259bo$23260bo125$23397b3o$23397bo$23398bo126$23523b3o$23523bo$
23524bo127$23653b3o$23653bo$23654bo125$23511b3o$23511bo$23512bo
126$23639b3o$23639bo$23640bo126$23770bo$23769b2o$23769bobo126$
23906bo$23905b2o$23905bobo126$24038bo$24037b2o$24037bobo126$24155b
3o$24155bo$24156bo127$24275b3o$24275bo$24276bo125$24406bo$24405b2o
$24405bobo126$24541b3o$24541bo$24542bo127$24661b3o$24661bo$24662bo
126$24793b3o$24793bo$24794bo125$24925b3o$24925bo$24926bo126$25047b
3o$25047bo$25048bo127$25171b3o$25171bo$25172bo126$25309b3o$25309bo
$25310bo126$25427b3o$25427bo$25428bo125$25553b3o$25553bo$25554bo
126$25694b2o$25693b2o$25695bo126$25808b2o$25807b2o$25809bo127$
25947b3o$25947bo$25948bo125$26063b3o$26063bo$26064bo126$26196bo$
26195b2o$26195bobo126$26331b3o$26331bo$26332bo127$26469b3o$26469bo
$26470bo125$26599b3o$26599bo$26600bo126$26712b2o$26711b2o$26713bo
126$26860b2o$26859b2o$26861bo126$26993b3o$26993bo$26994bo126$
27098bo$27097b2o$27097bobo126$27246bo$27245b2o$27245bobo127$27367b
3o$27367bo$27368bo126$27571b3o$27571bo$27572bo125$27689b3o$27689bo
$27690bo127$27819b3o$27819bo$27820bo125$27951b3o$27951bo$27952bo
127$28067b3o$28067bo$28068bo125$28199b3o$28199bo$28200bo126$28323b
3o$28323bo$28324bo126$28443b3o$28443bo$28444bo126$28584b2o$28583b
2o$28585bo126$28707b3o$28707bo$28708bo126$28832bo$28831b2o$28831bo
bo126$28963b3o$28963bo$28964bo127$29101b3o$29101bo$29102bo125$
29216b2o$29215b2o$29217bo127$29353b3o$29353bo$29354bo126$29471b3o$
29471bo$29472bo126$29609b3o$29609bo$29610bo126$29737b3o$29737bo$
29738bo126$29851b3o$29851bo$29852bo125$29983b3o$29983bo$29984bo
126$30103b3o$30103bo$30104bo126$30240bo$30239b2o$30239bobo126$
30356b2o$30355b2o$30357bo127$30503b3o$30503bo$30504bo125$30639b3o$
30639bo$30640bo127$30759b3o$30759bo$30760bo126$30883b3o$30883bo$
30884bo125$31010bo$31009b2o$31009bobo126$31132b2o$31131b2o$31133bo
126$31279b3o$31279bo$31280bo127$31397b3o$31397bo$31398bo125$31538b
o$31537b2o$31537bobo126$31653b3o$31653bo$31654bo126$32022b2o$
32021b2o$32023bo126$32150b2o$32149b2o$32151bo126$32274b2o$32273b2o
$32275bo126$32394bo$32393b2o$32393bobo126$32540bo$32539b2o$32539bo
bo127$32655b3o$32655bo$32656bo125$32779b3o$32779bo$32780bo127$
33131b3o$33131bo$33132bo125$33071b3o$33071bo$33072bo127$33175b3o$
33175bo$33176bo126$33329b3o$33329bo$33330bo125$33429b3o$33429bo$
33430bo126$33585b3o$33585bo$33586bo127$33685b3o$33685bo$33686bo
126$33843b3o$33843bo$33844bo125$33939b3o$33939bo$33940bo126$34099b
3o$34099bo$34100bo127$34195b3o$34195bo$34196bo126$34357b3o$34357bo
$34358bo125$34449b3o$34449bo$34450bo126$34613b3o$34613bo$34614bo
127$34483b3o$34483bo$34484bo125$34613b3o$34613bo$34614bo127$34745b
3o$34745bo$34746bo126$34867b3o$34867bo$34868bo125$34997b3o$34997bo
$34998bo126$35134bo$35133b2o$35133bobo126$35419b3o$35419bo$35420bo
126$35551b3o$35551bo$35552bo126$35690b2o$35689b2o$35691bo126$
35808b2o$35807b2o$35809bo126$35932b2o$35931b2o$35933bo127$36037b3o
$36037bo$36038bo125$36161b3o$36161bo$36162bo126$36304bo$36303b2o$
36303bobo127$36419b3o$36419bo$36420bo125$36557b3o$36557bo$36558bo
126$36685b3o$36685bo$36686bo126$36813b3o$36813bo$36814bo126$36939b
3o$36939bo$36940bo127$37073b3o$37073bo$37074bo125$37188bo$37187b2o
$37187bobo126$37330bo$37329b2o$37329bobo126$37460b2o$37459b2o$
37461bo127$37567b3o$37567bo$37568bo125$37687b3o$37687bo$37688bo
126$37821b3o$37821bo$37822bo127$37957b3o$37957bo$37958bo125$38076b
2o$38075b2o$38077bo126$38196b2o$38195b2o$38197bo126$38358bo$38357b
2o$38357bobo127$38477b3o$38477bo$38478bo125$38603b3o$38603bo$
38604bo126$38734b2o$38733b2o$38735bo126$38866bo$38865b2o$38865bobo
126$38982bo$38981b2o$38981bobo126$39106b2o$39105b2o$39107bo126$
39238b2o$39237b2o$39239bo126$39380bo$39379b2o$39379bobo126$39492bo
$39491b2o$39491bobo126$39627b3o$39627bo$39628bo127$39757b3o$39757b
o$39758bo125$39875b3o$39875bo$39876bo126$39996b2o$39995b2o$39997bo
126$40134bo$40133b2o$40133bobo126$40274b2o$40273b2o$40275bo126$
40382b2o$40381b2o$40383bo126$40526b2o$40525b2o$40527bo127$40511b3o
$40511bo$40512bo125$40647b3o$40647bo$40648bo126$40775b3o$40775bo$
40776bo126$40899b3o$40899bo$40900bo126$41032b2o$41031b2o$41033bo
127$41163b3o$41163bo$41164bo125$41278b2o$41277b2o$41279bo127$
41411b3o$41411bo$41412bo125$41533b3o$41533bo$41534bo126$41661b3o$
41661bo$41662bo126$41793b3o$41793bo$41794bo126$41919b3o$41919bo$
41920bo126$42053b3o$42053bo$42054bo127$42193b3o$42193bo$42194bo
125$42316bo$42315b2o$42315bobo127$42463b3o$42463bo$42464bo126$
42587b3o$42587bo$42588bo126$42711b3o$42711bo$42712bo125$42839b3o$
42839bo$42840bo127$42965b3o$42965bo$42966bo125$43114b2o$43113b2o$
43115bo126$43229b3o$43229bo$43230bo127$43341b3o$43341bo$43342bo
125$43473b3o$43473bo$43474bo126$43578bo$43577b2o$43577bobo126$
43734bo$43733b2o$43733bobo126$43848bo$43847b2o$43847bobo127$43983b
3o$43983bo$43984bo125$44089b3o$44089bo$44090bo126$44211b3o$44211bo
$44212bo127$44345b3o$44345bo$44346bo125$44465b3o$44465bo$44466bo
126$44593b3o$44593bo$44594bo126$44721b3o$44721bo$44722bo126$44851b
3o$44851bo$44852bo126$44975b3o$44975bo$44976bo126$45098b2o$45097b
2o$45099bo126$45231b3o$45231bo$45232bo126$45355b3o$45355bo$45356bo
126$45488bo$45487b2o$45487bobo126$45617b3o$45617bo$45618bo127$
45739b3o$45739bo$45740bo126$45867b3o$45867bo$45868bo126$46005b3o$
46005bo$46006bo126$46133b3o$46133bo$46134bo126$46247b3o$46247bo$
46248bo125$46379b3o$46379bo$46380bo126$46499b3o$46499bo$46500bo
126$46636bo$46635b2o$46635bobo126$46752b2o$46751b2o$46753bo127$
46899b3o$46899bo$46900bo125$47035b3o$47035bo$47036bo127$47155b3o$
47155bo$47156bo126$47279b3o$47279bo$47280bo125$47406bo$47405b2o$
47405bobo126$47528b2o$47527b2o$47529bo126$47675b3o$47675bo$47676bo
127$47793b3o$47793bo$47794bo125$47934bo$47933b2o$47933bobo126$
48049b3o$48049bo$48050bo127$48103b3o$48103bo$48104bo125$48225b3o$
48225bo$48226bo126$48370bo$48369b2o$48369bobo126$48479b3o$48479bo$
48480bo126$48627b3o$48627bo$48628bo126$48729b3o$48729bo$48730bo
127$48863b3o$48863bo$48864bo126$48983b3o$48983bo$48984bo125$49119b
3o$49119bo$49120bo126$49244bo$49243b2o$49243bobo126$49370b2o$
49369b2o$49371bo126$49497b3o$49497bo$49498bo126$50413b3o$50413bo$
50414bo126$50541b3o$50541bo$50542bo126$50681b3o$50681bo$50682bo
126$50807b3o$50807bo$50808bo127$50935b3o$50935bo$50936bo126$51047b
3o$51047bo$51048bo125$51168bo$51167b2o$51167bobo127$51279b3o$
51279bo$51280bo125$51417b3o$51417bo$51418bo127$51511b3o$51511bo$
51512bo125$51637b3o$51637bo$51638bo126$51775b3o$51775bo$51776bo
126$51893b3o$51893bo$51894bo126$52021b3o$52021bo$52022bo127$52161b
3o$52161bo$52162bo125$52285b3o$52285bo$52286bo126$52423b3o$52423bo
$52424bo126$52541b3o$52541bo$52542bo127$52645b3o$52645bo$52646bo
126$52767b3o$52767bo$52768bo125$52891b3o$52891bo$52892bo126$53011b
3o$53011bo$53012bo126$53152bo$53151b2o$53151bobo126$53276bo$53275b
2o$53275bobo126$53399b3o$53399bo$53400bo127$53529b3o$53529bo$
53530bo125$53659b3o$53659bo$53660bo126$53775b3o$53775bo$53776bo
127$53915b3o$53915bo$53916bo125$54037b3o$54037bo$54038bo126$54161b
3o$54161bo$54162bo127$54359b3o$54359bo$54360bo126$54491b3o$54491bo
$54492bo125$54622bo$54621b2o$54621bobo126$54724b2o$54723b2o$54725b
o126$54846b2o$54845b2o$54847bo126$55016bo$55015b2o$55015bobo127$
55109b3o$55109bo$55110bo125$55237b3o$55237bo$55238bo126$55354b2o$
55353b2o$55355bo127$55493b3o$55493bo$55494bo125$55622b2o$55621b2o$
55623bo126$55729b3o$55729bo$55730bo127$55859b3o$55859bo$55860bo
125$55971b3o$55971bo$55972bo127$56115b3o$56115bo$56116bo125$56238b
o$56237b2o$56237bobo126$56371b3o$56371bo$56372bo127$56487b3o$
56487bo$56488bo126$56611b3o$56611bo$56612bo125$56754b2o$56753b2o$
56755bo126$56895b3o$56895bo$56896bo127$56983b3o$56983bo$56984bo
126$57121b3o$57121bo$57122bo125$57257b3o$57257bo$57258bo127$57379b
3o$57379bo$57380bo125$57512b2o$57511b2o$57513bo127$57629b3o$57629b
o$57630bo125$57766bo$57765b2o$57765bobo126$57888bo$57887b2o$57887b
obo127$58047b3o$58047bo$58048bo125$58167b3o$58167bo$58168bo126$
58307b3o$58307bo$58308bo126$58431b3o$58431bo$58432bo127$58555b3o$
58555bo$58556bo125$58692bo$58691b2o$58691bobo126$58806bo$58805b2o$
58805bobo126$58934b2o$58933b2o$58935bo127$59079b3o$59079bo$59080bo
126$59211b3o$59211bo$59212bo126$59347b3o$59347bo$59348bo125$59472b
2o$59471b2o$59473bo126$59584bo$59583b2o$59583bobo127$59707b3o$
59707bo$59708bo125$59840bo$59839b2o$59839bobo126$59978bo$59977b2o$
59977bobo126$59855b3o$59855bo$59856bo127$59975b3o$59975bo$59976bo
125$60111b3o$60111bo$60112bo127$60247b3o$60247bo$60248bo125$60366b
2o$60365b2o$60367bo127$60501b3o$60501bo$60502bo126$60641b3o$60641b
o$60642bo125$60767b3o$60767bo$60768bo126$60891b3o$60891bo$60892bo
126$61015b3o$61015bo$61016bo126$61144b2o$61143b2o$61145bo127$
61275b3o$61275bo$61276bo126$61403b3o$61403bo$61404bo125$61527b3o$
61527bo$61528bo126$61670bo$61669b2o$61669bobo127$61795b3o$61795bo$
61796bo125$61906bo$61905b2o$61905bobo126$62032b2o$62031b2o$62033bo
127$62193b3o$62193bo$62194bo126$62317b3o$62317bo$62318bo126$62445b
3o$62445bo$62446bo126$62579b3o$62579bo$62580bo125$62687b3o$62687bo
$62688bo126$62828bo$62827b2o$62827bobo126$62972bo$62971b2o$62971bo
bo126$63071b3o$63071bo$63072bo126$63209b3o$63209bo$63210bo127$
63339b3o$63339bo$63340bo125$63451b3o$63451bo$63452bo126$63585b3o$
63585bo$63586bo126$63706b2o$63705b2o$63707bo126$63838b2o$63837b2o$
63839bo127$63967b3o$63967bo$63968bo125$64103b3o$64103bo$64104bo
126$64231b3o$64231bo$64232bo127$64349b3o$64349bo$64350bo125$64477b
3o$64477bo$64478bo126$64606bo$64605b2o$64605bobo126$64732b2o$
64731b2o$64733bo126$64885b3o$64885bo$64886bo127$65011b3o$65011bo$
65012bo125$65145b3o$65145bo$65146bo126$65261b3o$65261bo$65262bo
126$65381b3o$65381bo$65382bo127$65511b3o$65511bo$65512bo125$65651b
3o$65651bo$65652bo127$65751b3o$65751bo$65752bo125$65886b2o$65885b
2o$65887bo127$66005b3o$66005bo$66006bo125$66173b3o$66173bo$66174bo
127$66309b3o$66309bo$66310bo126$66439b3o$66439bo$66440bo125$66547b
3o$66547bo$66548bo126$66688bo$66687b2o$66687bobo126$66809b3o$
66809bo$66810bo127$66947b3o$66947bo$66948bo126$66629b3o$66629bo$
66630bo125$66755b3o$66755bo$66756bo126$66886b2o$66885b2o$66887bo
126$67018bo$67017b2o$67017bobo127$67139b3o$67139bo$67140bo125$
67276bo$67275b2o$67275bobo126$67404b2o$67403b2o$67405bo127$67535b
3o$67535bo$67536bo125$68123b3o$68123bo$68124bo127$68251b3o$68251bo
$68252bo126$68377b3o$68377bo$68378bo125$68498b2o$68497b2o$68499bo
127$68633b3o$68633bo$68634bo125$68758b2o$68757b2o$68759bo127$
68813b3o$68813bo$68814bo125$68943b3o$68943bo$68944bo126$69069b3o$
69069bo$69070bo126$69196b2o$69195b2o$69197bo126$69336b2o$69335b2o$
69337bo127$68969b3o$68969bo$68970bo125$69093b3o$69093bo$69094bo
126$69219b3o$69219bo$69220bo127$69339b3o$69339bo$69340bo125$69475b
3o$69475bo$69476bo126$69599b3o$69599bo$69600bo127$69745b3o$69745bo
$69746bo126$69881b3o$69881bo$69882bo125$70007b3o$70007bo$70008bo
126$70148b2o$70147b2o$70149bo126$70262b2o$70261b2o$70263bo127$
70403b3o$70403bo$70404bo126$70527b3o$70527bo$70528bo125$70668bo$
70667b2o$70667bobo126$70770bo$70769b2o$70769bobo127$70897b3o$
70897bo$70898bo125$71489b3o$71489bo$71490bo127$71615b3o$71615bo$
71616bo126$71735b3o$71735bo$71736bo125$71874b2o$71873b2o$71875bo
126$71998b2o$71997b2o$71999bo127$72123b3o$72123bo$72124bo125$
72269b3o$72269bo$72270bo126$72389b3o$72389bo$72390bo126$72529b3o$
72529bo$72530bo126$72654bo$72653b2o$72653bobo126$72781b3o$72781bo$
72782bo126$72917b3o$72917bo$72918bo126$73019b3o$73019bo$73020bo
127$73145b3o$73145bo$73146bo125$73268b2o$73267b2o$73269bo127$
73405b3o$73405bo$73406bo126$73533b3o$73533bo$73534bo125$73671b3o$
73671bo$73672bo126$73795b3o$73795bo$73796bo126$73940b2o$73939b2o$
73941bo126$74044b2o$74043b2o$74045bo126$74174b2o$74173b2o$74175bo
126$74315b3o$74315bo$74316bo126$74433b3o$74433bo$74434bo127$74575b
3o$74575bo$74576bo126$74695b3o$74695bo$74696bo125$74827b3o$74827bo
$74828bo126$74957b3o$74957bo$74958bo127$75069b3o$75069bo$75070bo
125$75193b3o$75193bo$75194bo126$75320b2o$75319b2o$75321bo126$
75446b2o$75445b2o$75447bo127$75581b3o$75581bo$75582bo125$75706b2o$
75705b2o$75707bo127$75833b3o$75833bo$75834bo126$75961b3o$75961bo$
75962bo126$76201b3o$76201bo$76202bo125$76331b3o$76331bo$76332bo
126$76462b2o$76461b2o$76463bo126$76598bo$76597b2o$76597bobo126$
76699b3o$76699bo$76700bo126$76856bo$76855b2o$76855bobo126$76931b3o
$76931bo$76932bo126$77063b3o$77063bo$77064bo126$77191b3o$77191bo$
77192bo127$77315b3o$77315bo$77316bo126$77449b3o$77449bo$77450bo
126$77573b3o$77573bo$77574bo125$77705b3o$77705bo$77706bo126$77842b
o$77841b2o$77841bobo126$77967b3o$77967bo$77968bo126$78107b3o$
78107bo$78108bo127$78229b3o$78229bo$78230bo126$78355b3o$78355bo$
78356bo125$78481b3o$78481bo$78482bo126$78627b3o$78627bo$78628bo
127$78755b3o$78755bo$78756bo125$78872b2o$78871b2o$78873bo127$
78989b3o$78989bo$78990bo125$79130b2o$79129b2o$79131bo126$79274bo$
79273b2o$79273bobo126$79399b3o$79399bo$79400bo127$79531b3o$79531bo
$79532bo125$79670bo$79669b2o$79669bobo126$79796bo$79795b2o$79795bo
bo126$79910bo$79909b2o$79909bobo126$80047b3o$80047bo$80048bo126$
80147b3o$80147bo$80148bo126$80313b3o$80313bo$80314bo126$80437b3o$
80437bo$80438bo127$80563b3o$80563bo$80564bo126$80709b3o$80709bo$
80710bo125$80820bo$80819b2o$80819bobo127$80967b3o$80967bo$80968bo
125$81096bo$81095b2o$81095bobo126$81233b3o$81233bo$81234bo127$
81329b3o$81329bo$81330bo125$81448b2o$81447b2o$81449bo127$81585b3o$
81585bo$81586bo126$81709b3o$81709bo$81710bo125$81835b3o$81835bo$
81836bo126$81967b3o$81967bo$81968bo126$82103b3o$82103bo$82104bo
127$82221b3o$82221bo$82222bo125$82367b3o$82367bo$82368bo126$82478b
2o$82477b2o$82479bo126$82626bo$82625b2o$82625bobo126$82742b2o$
82741b2o$82743bo126$82867b3o$82867bo$82868bo127$82999b3o$82999bo$
83000bo126$83135b3o$83135bo$83136bo126$83261b3o$83261bo$83262bo
125$83396bo$83395b2o$83395bobo126$83516bo$83515b2o$83515bobo126$
83660bo$83659b2o$83659bobo127$83759b3o$83759bo$83760bo126$83885b3o
$83885bo$83886bo126$84013b3o$84013bo$84014bo125$84156bo$84155b2o$
84155bobo126$84277b3o$84277bo$84278bo127$84397b3o$84397bo$84398bo
125$84526b2o$84525b2o$84527bo126$84650b2o$84649b2o$84651bo127$
84797b3o$84797bo$84798bo125$84916bo$84915b2o$84915bobo127$84911b3o
$84911bo$84912bo125$85041b3o$85041bo$85042bo126$85167b3o$85167bo$
85168bo126$85301b3o$85301bo$85302bo126$85426bo$85425b2o$85425bobo
126$85550bo$85549b2o$85549bobo127$85653b3o$85653bo$85654bo125$
85804bo$85803b2o$85803bobo126$85921b3o$85921bo$85922bo126$86067b3o
$86067bo$86068bo127$86207b3o$86207bo$86208bo125$86325b3o$86325bo$
86326bo126$86453b3o$86453bo$86454bo127$86579b3o$86579bo$86580bo
125$86707b3o$86707bo$86708bo126$86838b2o$86837b2o$86839bo126$
86970b2o$86969b2o$86971bo126$87086b2o$87085b2o$87087bo127$87223b3o
$87223bo$87224bo125$87341b3o$87341bo$87342bo126$87473b3o$87473bo$
87474bo126$87612b2o$87611b2o$87613bo127$87725b3o$87725bo$87726bo
125$87856b2o$87855b2o$87857bo127$87979b3o$87979bo$87980bo126$
88113b3o$88113bo$88114bo125$88143b3o$88143bo$88144bo127$88269b3o$
88269bo$88270bo125$88403b3o$88403bo$88404bo127$88535b3o$88535bo$
88536bo126$88657b3o$88657bo$88658bo125$88791b3o$88791bo$88792bo
126$88932bo$88931b2o$88931bobo127$89463b3o$89463bo$89464bo126$
89595b3o$89595bo$89596bo125$89734bo$89733b2o$89733bobo126$89845b3o
$89845bo$89846bo127$89991b3o$89991bo$89992bo125$90100bo$90099b2o$
90099bobo126$89821b3o$89821bo$89822bo127$89947b3o$89947bo$89948bo
125$90071b3o$90071bo$90072bo126$90200b2o$90199b2o$90201bo126$
90324bo$90323b2o$90323bobo126$90447b3o$90447bo$90448bo126$90597b3o
$90597bo$90598bo126$90715b3o$90715bo$90716bo127$90845b3o$90845bo$
90846bo125$91399b3o$91399bo$91400bo126$91523b3o$91523bo$91524bo
126$91668bo$91667b2o$91667bobo126$91802bo$91801b2o$91801bobo126$
91918bo$91917b2o$91917bobo126$92046b2o$92045b2o$92047bo127$91979b
3o$91979bo$91980bo125$92109b3o$92109bo$92110bo126$92226bo$92225b2o
$92225bobo126$92360bo$92359b2o$92359bobo126$92499b3o$92499bo$
92500bo126$92615b3o$92615bo$92616bo127$92731b3o$92731bo$92732bo
125$92858b2o$92857b2o$92859bo126$92791b3o$92791bo$92792bo127$
92927b3o$92927bo$92928bo126$93055b3o$93055bo$93056bo126$93185b3o$
93185bo$93186bo126$93293b3o$93293bo$93294bo126$93441b3o$93441bo$
93442bo125$93303b3o$93303bo$93304bo127$93421b3o$93421bo$93422bo
126$93573b3o$93573bo$93574bo125$93701b3o$93701bo$93702bo127$93825b
3o$93825bo$93826bo126$93947b3o$93947bo$93948bo126$94063b3o$94063bo
$94064bo125$94201b3o$94201bo$94202bo126$94317b3o$94317bo$94318bo
126$94449b3o$94449bo$94450bo126$94576bo$94575b2o$94575bobo127$
94701b3o$94701bo$94702bo125$94819b3o$94819bo$94820bo127$94945b3o$
94945bo$94946bo125$95078bo$95077b2o$95077bobo127$95703b3o$95703bo$
95704bo125$95829b3o$95829bo$95830bo126$95958bo$95957b2o$95957bobo
126$96088bo$96087b2o$96087bobo126$96225b3o$96225bo$96226bo126$
96348b2o$96347b2o$96349bo127$96475b3o$96475bo$96476bo126$96599b3o$
96599bo$96600bo125$96724bo$96723b2o$96723bobo126$96843b3o$96843bo$
96844bo126$96976b2o$96975b2o$96977bo126$97103b3o$97103bo$97104bo
126$97261b3o$97261bo$97262bo126$97391b3o$97391bo$97392bo126$97519b
3o$97519bo$97520bo127$97659b3o$97659bo$97660bo125$97778b2o$97777b
2o$97779bo127$97909b3o$97909bo$97910bo126$98035b3o$98035bo$98036bo
125$98168bo$98167b2o$98167bobo126$98255b3o$98255bo$98256bo127$
98381b3o$98381bo$98382bo125$98500bo$98499b2o$98499bobo126$98646bo$
98645b2o$98645bobo126$98758bo$98757b2o$98757bobo127$98935b3o$
98935bo$98936bo126$99063b3o$99063bo$99064bo125$99189b3o$99189bo$
99190bo126$99307b3o$99307bo$99308bo126$99440bo$99439b2o$99439bobo
126$99584bo$99583b2o$99583bobo126$99670bo$99669b2o$99669bobo126$
99798bo$99797b2o$99797bobo127$99937b3o$99937bo$99938bo126$100053b
3o$100053bo$100054bo125$100184b2o$100183b2o$100185bo127$100329b3o$
100329bo$100330bo126$100447b3o$100447bo$100448bo125$100581b3o$
100581bo$100582bo127$100707b3o$100707bo$100708bo126$100835b3o$
100835bo$100836bo125$100953b3o$100953bo$100954bo127$101085b3o$
101085bo$101086bo125$101228b2o$101227b2o$101229bo127$101341b3o$
101341bo$101342bo126$101463b3o$101463bo$101464bo125$101593b3o$
101593bo$101594bo126$101730b2o$101729b2o$101731bo126$101856bo$
101855b2o$101855bobo126$101987b3o$101987bo$101988bo126$102112b2o$
102111b2o$102113bo126$102239b3o$102239bo$102240bo126$102359b3o$
102359bo$102360bo126$102629b3o$102629bo$102630bo127$102761b3o$
102761bo$102762bo125$102896bo$102895b2o$102895bobo127$103013b3o$
103013bo$103014bo126$103145b3o$103145bo$103146bo125$103267b3o$
103267bo$103268bo127$103415b3o$103415bo$103416bo126$103543b3o$
103543bo$103544bo125$103670bo$103669b2o$103669bobo127$103791b3o$
103791bo$103792bo125$103912b2o$103911b2o$103913bo126$104056b2o$
104055b2o$104057bo126$104184b2o$104183b2o$104185bo126$104083b3o$
104083bo$104084bo126$104215b3o$104215bo$104216bo126$104352b2o$
104351b2o$104353bo126$104486b2o$104485b2o$104487bo127$104605b3o$
104605bo$104606bo125$104730bo$104729b2o$104729bobo126$104859b3o$
104859bo$104860bo126$104976bo$104975b2o$104975bobo127$104951b3o$
104951bo$104952bo126$105079b3o$105079bo$105080bo125$105212b2o$
105211b2o$105213bo127$105329b3o$105329bo$105330bo125$105447b3o$
105447bo$105448bo126$105573b3o$105573bo$105574bo126$105708bo$
105707b2o$105707bobo126$105856bo$105855b2o$105855bobo126$105954bo$
105953b2o$105953bobo127$106089b3o$106089bo$106090bo126$106293b3o$
106293bo$106294bo126$106411b3o$106411bo$106412bo126$106539b3o$
106539bo$106540bo125$106679b3o$106679bo$106680bo126$106798bo$
106797b2o$106797bobo127$106937b3o$106937bo$106938bo126$107063b3o$
107063bo$107064bo125$107175b3o$107175bo$107176bo127$107263b3o$
107263bo$107264bo125$107387b3o$107387bo$107388bo126$107508b2o$
107507b2o$107509bo126$107629b3o$107629bo$107630bo127$107755b3o$
107755bo$107756bo125$107890b2o$107889b2o$107891bo126$108024b2o$
108023b2o$108025bo126$108161b3o$108161bo$108162bo127$108679b3o$
108679bo$108680bo125$108809b3o$108809bo$108810bo126$108946b2o$
108945b2o$108947bo126$109078b2o$109077b2o$109079bo127$109199b3o$
109199bo$109200bo125$109326b2o$109325b2o$109327bo126$109441b3o$
109441bo$109442bo126$109602b2o$109601b2o$109603bo126$109503b3o$
109503bo$109504bo127$109625b3o$109625bo$109626bo125$109759b3o$
109759bo$109760bo126$109903b3o$109903bo$109904bo126$109999b3o$
109999bo$110000bo127$110143b3o$110143bo$110144bo125$110279b3o$
110279bo$110280bo126$110416b2o$110415b2o$110417bo127$110527b3o$
110527bo$110528bo126$110875b3o$110875bo$110876bo125$111005b3o$
111005bo$111006bo127$111137b3o$111137bo$111138bo126$111259b3o$
111259bo$111260bo125$111389b3o$111389bo$111390bo126$111521b3o$
111521bo$111522bo127$111641b3o$111641bo$111642bo125$111759b3o$
111759bo$111760bo127$111889b3o$111889bo$111890bo126$112015b3o$
112015bo$112016bo125$112149b3o$112149bo$112150bo126$112274bo$
112273b2o$112273bobo126$112395b3o$112395bo$112396bo126$112530b2o$
112529b2o$112531bo127$112649b3o$112649bo$112650bo126$112809b3o$
112809bo$112810bo125$112943b3o$112943bo$112944bo126$113059b3o$
113059bo$113060bo126$113191b3o$113191bo$113192bo127$113319b3o$
113319bo$113320bo125$113444bo$113443b2o$113443bobo126$113582bo$
113581b2o$113581bobo127$113715b3o$113715bo$113716bo125$113835b3o$
113835bo$113836bo127$113943b3o$113943bo$113944bo125$114047b3o$
114047bo$114048bo127$113513b3o$113513bo$113514bo125$113643b3o$
113643bo$113644bo126$113768b2o$113767b2o$113769bo126$113879b3o$
113879bo$113880bo127$113999b3o$113999bo$114000bo125$114133b3o$
114133bo$114134bo126$114251b3o$114251bo$114252bo126$114388b2o$
114387b2o$114389bo126$114519b3o$114519bo$114520bo127$114647b3o$
114647bo$114648bo125$114771b3o$114771bo$114772bo126$115125b3o$
115125bo$115126bo127$115263b3o$115263bo$115264bo126$115391b3o$
115391bo$115392bo125$115521b3o$115521bo$115522bo126$115644b2o$
115643b2o$115645bo126$115759b3o$115759bo$115760bo126$115878b2o$
115877b2o$115879bo127$116019b3o$116019bo$116020bo125$116150b2o$
116149b2o$116151bo127$116267b3o$116267bo$116268bo125$116369b3o$
116369bo$116370bo126$116497b3o$116497bo$116498bo126$116640b2o$
116639b2o$116641bo126$116750b2o$116749b2o$116751bo127$116881b3o$
116881bo$116882bo125$117018bo$117017b2o$117017bobo126$117134bo$
117133b2o$117133bobo126$117284bo$117283b2o$117283bobo127$117381b3o
$117381bo$117382bo125$117519b3o$117519bo$117520bo127$117635b3o$
117635bo$117636bo125$117771b3o$117771bo$117772bo126$117891b3o$
117891bo$117892bo126$118017b3o$118017bo$118018bo127$118165b3o$
118165bo$118166bo125$118282b2o$118281b2o$118283bo127$118395b3o$
118395bo$118396bo125$118531b3o$118531bo$118532bo127$118659b3o$
118659bo$118660bo125$118783b3o$118783bo$118784bo126$118909b3o$
118909bo$118910bo126$119047b3o$119047bo$119048bo127$119169b3o$
119169bo$119170bo126$119307b3o$119307bo$119308bo125$119428bo$
119427b2o$119427bobo127$119551b3o$119551bo$119552bo125$119679b3o$
119679bo$119680bo127$119807b3o$119807bo$119808bo126$119933b3o$
119933bo$119934bo126$120061b3o$120061bo$120062bo125$120197b3o$
120197bo$120198bo127$120329b3o$120329bo$120330bo125$120460bo$
120459b2o$120459bobo126$120582b2o$120581b2o$120583bo126$120709b3o$
120709bo$120710bo126$120842b2o$120841b2o$120843bo126$120953b3o$
120953bo$120954bo127$121079b3o$121079bo$121080bo125$121200bo$
121199b2o$121199bobo126$121322bo$121321b2o$121321bobo126$121457b3o
$121457bo$121458bo126$121590b2o$121589b2o$121591bo127$121715b3o$
121715bo$121716bo125$121856b2o$121855b2o$121857bo126$121965b3o$
121965bo$121966bo126$122097b3o$122097bo$122098bo126$122225b3o$
122225bo$122226bo127$122339b3o$122339bo$122340bo126$122473b3o$
122473bo$122474bo125$122600b2o$122599b2o$122601bo126$122747b3o$
122747bo$122748bo126$122871b3o$122871bo$122872bo127$122901b3o$
122901bo$122902bo125$123017b3o$123017bo$123018bo126$123157b3o$
123157bo$123158bo126$123295b3o$123295bo$123296bo126$123391b3o$
123391bo$123392bo126$123563b3o$123563bo$123564bo127$123695b3o$
123695bo$123696bo126$123831b3o$123831bo$123832bo125$123948b2o$
123947b2o$123949bo126$124080b2o$124079b2o$124081bo127$124201b3o$
124201bo$124202bo126$124343b3o$124343bo$124344bo126$124445b3o$
124445bo$124446bo125$124571b3o$124571bo$124572bo126$124698b2o$
124697b2o$124699bo126$124828bo$124827b2o$124827bobo127$124943b3o$
124943bo$124944bo125$125102b2o$125101b2o$125103bo127$125239b3o$
125239bo$125240bo125$125155b3o$125155bo$125156bo127$125287b3o$
125287bo$125288bo125$125418bo$125417b2o$125417bobo126$125548b2o$
125547b2o$125549bo126$125666b2o$125665b2o$125667bo127$125809b3o$
125809bo$125810bo125$125926bo$125925b2o$125925bobo127$126055b3o$
126055bo$126056bo126$126193b3o$126193bo$126194bo125$126307b3o$
126307bo$126308bo126$126441b3o$126441bo$126442bo126$126569b3o$
126569bo$126570bo126$126696b2o$126695b2o$126697bo126$126823b3o$
126823bo$126824bo127$126969b3o$126969bo$126970bo125$127071b3o$
127071bo$127072bo126$127401b3o$127401bo$127402bo126$127521b3o$
127521bo$127522bo126$127647b3o$127647bo$127648bo127$127787b3o$
127787bo$127788bo126$127903b3o$127903bo$127904bo126$128019b3o$
128019bo$128020bo126$128139b3o$128139bo$128140bo126$128271b3o$
128271bo$128272bo126$128409b3o$128409bo$128410bo126$128533b3o$
128533bo$128534bo125$128635b3o$128635bo$128636bo127$128763b3o$
128763bo$128764bo126$128919b3o$128919bo$128920bo126$129039b3o$
129039bo$129040bo126$129173b3o$129173bo$129174bo125$129297b3o$
129297bo$129298bo126$129446b2o$129445b2o$129447bo127$129567b3o$
129567bo$129568bo125$129698b2o$129697b2o$129699bo127$129815b3o$
129815bo$129816bo126$129939b3o$129939bo$129940bo125$130075b3o$
130075bo$130076bo127$130045b3o$130045bo$130046bo125$130175b3o$
130175bo$130176bo126$130295b3o$130295bo$130296bo127$130417b3o$
130417bo$130418bo125$130556b2o$130555b2o$130557bo127$130671b3o$
130671bo$130672bo125$130806bo$130805b2o$130805bobo126$130936bo$
130935b2o$130935bobo126$131074bo$131073b2o$131073bobo126$131299b3o
$131299bo$131300bo127$131425b3o$131425bo$131426bo125$131558bo$
131557b2o$131557bobo127$131721b3o$131721bo$131722bo125$131843b3o$
131843bo$131844bo126$131988bo$131987b2o$131987bobo126$132119b3o$
132119bo$132120bo126$132213b3o$132213bo$132214bo126$132375b3o$
132375bo$132376bo127$132483b3o$132483bo$132484bo126$132615b3o$
132615bo$132616bo125$132728b2o$132727b2o$132729bo126$132854bo$
132853b2o$132853bobo126$133006bo$133005b2o$133005bobo126$133108bo$
133107b2o$133107bobo127$133239b3o$133239bo$133240bo125$133987b3o$
133987bo$133988bo127$134115b3o$134115bo$134116bo126$134257b3o$
134257bo$134258bo126$134377b3o$134377bo$134378bo125$134518bo$
134517b2o$134517bobo127$134631b3o$134631bo$134632bo125$134727b3o$
134727bo$134728bo127$134909b3o$134909bo$134910bo125$135035b3o$
135035bo$135036bo126$135159b3o$135159bo$135160bo126$135283b3o$
135283bo$135284bo126$135421b3o$135421bo$135422bo126$135538b2o$
135537b2o$135539bo127$135693b3o$135693bo$135694bo126$135825b3o$
135825bo$135826bo125$135938b2o$135937b2o$135939bo126$136071b3o$
136071bo$136072bo126$136207b3o$136207bo$136208bo127$136357b3o$
136357bo$136358bo125$136491b3o$136491bo$136492bo126$136605b3o$
136605bo$136606bo126$136745b3o$136745bo$136746bo127$136867b3o$
136867bo$136868bo126$136995b3o$136995bo$136996bo126$137133b3o$
137133bo$137134bo125$137267b3o$137267bo$137268bo127$137381b3o$
137381bo$137382bo125$137517b3o$137517bo$137518bo126$137650bo$
137649b2o$137649bobo126$137777b3o$137777bo$137778bo126$137897b3o$
137897bo$137898bo126$138047b3o$138047bo$138048bo127$138175b3o$
138175bo$138176bo126$138315b3o$138315bo$138316bo126$138445b3o$
138445bo$138446bo125$138580bo$138579b2o$138579bobo126$138706bo$
138705b2o$138705bobo127$138835b3o$138835bo$138836bo125$138969b3o$
138969bo$138970bo127$139101b3o$139101bo$139102bo125$139216b2o$
139215b2o$139217bo127$139351b3o$139351bo$139352bo125$139492bo$
139491b2o$139491bobo127$139617b3o$139617bo$139618bo126$139771b3o$
139771bo$139772bo126$139901b3o$139901bo$139902bo126$140031b3o$
140031bo$140032bo125$140153b3o$140153bo$140154bo127$140297b3o$
140297bo$140298bo125$140416bo$140415b2o$140415bobo126$140555b3o$
140555bo$140556bo126$140671b3o$140671bo$140672bo127$140803b3o$
140803bo$140804bo126$140923b3o$140923bo$140924bo125$141067b3o$
141067bo$141068bo126$141181b3o$141181bo$141182bo126$141310bo$
141309b2o$141309bobo127$141443b3o$141443bo$141444bo126$141547b3o$
141547bo$141548bo126$141683b3o$141683bo$141684bo125$141795b3o$
141795bo$141796bo127$141945b3o$141945bo$141946bo125$142064bo$
142063b2o$142063bobo127$142199b3o$142199bo$142200bo125$142317b3o$
142317bo$142318bo126$142449b3o$142449bo$142450bo126$142569b3o$
142569bo$142570bo126$142701b3o$142701bo$142702bo126$142824bo$
142823b2o$142823bobo126$142971b3o$142971bo$142972bo127$143095b3o$
143095bo$143096bo125$143091b3o$143091bo$143092bo127$143209b3o$
143209bo$143210bo125$143361b3o$143361bo$143362bo127$143487b3o$
143487bo$143488bo125$143618b2o$143617b2o$143619bo126$143723b3o$
143723bo$143724bo126$143861b3o$143861bo$143862bo127$143983b3o$
143983bo$143984bo125$144102bo$144101b2o$144101bobo126$144242b2o$
144241b2o$144243bo127$144367b3o$144367bo$144368bo125$144497b3o$
144497bo$144498bo126$144630b2o$144629b2o$144631bo127$144765b3o$
144765bo$144766bo125$144883b3o$144883bo$144884bo127$145019b3o$
145019bo$145020bo126$145219b3o$145219bo$145220bo125$145335b3o$
145335bo$145336bo127$145499b3o$145499bo$145500bo125$145627b3o$
145627bo$145628bo126$145677b3o$145677bo$145678bo126$145801b3o$
145801bo$145802bo126$145928b2o$145927b2o$145929bo126$146056bo$
146055b2o$146055bobo126$146178bo$146177b2o$146177bobo126$146310bo$
146309b2o$146309bobo126$146444bo$146443b2o$146443bobo126$146561b3o
$146561bo$146562bo127$146687b3o$146687bo$146688bo125$146811b3o$
146811bo$146812bo126$146941b3o$146941bo$146942bo127$147075b3o$
147075bo$147076bo125$147198bo$147197b2o$147197bobo126$147340bo$
147339b2o$147339bobo126$147464bo$147463b2o$147463bobo126$147600bo$
147599b2o$147599bobo127$147727b3o$147727bo$147728bo125$147866b2o$
147865b2o$147867bo126$147990bo$147989b2o$147989bobo126$148085b3o$
148085bo$148086bo127$148207b3o$148207bo$148208bo126$148347b3o$
148347bo$148348bo125$148468b2o$148467b2o$148469bo126$148602b2o$
148601b2o$148603bo126$148738bo$148737b2o$148737bobo127$148841b3o$
148841bo$148842bo126$148981b3o$148981bo$148982bo125$149099b3o$
149099bo$149100bo127$149241b3o$149241bo$149242bo126$149361b3o$
149361bo$149362bo126$149493b3o$149493bo$149494bo125$149622b2o$
149621b2o$149623bo126$149707b3o$149707bo$149708bo127$149833b3o$
149833bo$149834bo125$149968b2o$149967b2o$149969bo127$150101b3o$
150101bo$150102bo125$150217b3o$150217bo$150218bo127$150363b3o$
150363bo$150364bo125$150479b3o$150479bo$150480bo126$150611b3o$
150611bo$150612bo127$150761b3o$150761bo$150762bo125$150885b3o$
150885bo$150886bo126$151010bo$151009b2o$151009bobo126$151145b3o$
151145bo$151146bo127$151251b3o$151251bo$151252bo126$151387b3o$
151387bo$151388bo126$151515b3o$151515bo$151516bo125$151631b3o$
151631bo$151632bo126$151753b3o$151753bo$151754bo127$151881b3o$
151881bo$151882bo125$152043b3o$152043bo$152044bo127$152163b3o$
152163bo$152164bo125$152297b3o$152297bo$152298bo126$152440b2o$
152439b2o$152441bo127$152551b3o$152551bo$152552bo126$152683b3o$
152683bo$152684bo126$152815b3o$152815bo$152816bo125$152928b2o$
152927b2o$152929bo126$153054bo$153053b2o$153053bobo127$153185b3o$
153185bo$153186bo126$153305b3o$153305bo$153306bo125$153443b3o$
153443bo$153444bo126$153598bo$153597b2o$153597bobo126$153723b3o$
153723bo$153724bo126$153847b3o$153847bo$153848bo126$153967b3o$
153967bo$153968bo126$154095b3o$154095bo$154096bo126$154236b2o$
154235b2o$154237bo126$154360b2o$154359b2o$154361bo126$154466bo$
154465b2o$154465bobo126$154610bo$154609b2o$154609bobo126$154738bo$
154737b2o$154737bobo126$154875b3o$154875bo$154876bo127$155007b3o$
155007bo$155008bo125$155120bo$155119b2o$155119bobo126$155268bo$
155267b2o$155267bobo127$155401b3o$155401bo$155402bo125$155504b2o$
155503b2o$155505bo126$155652b2o$155651b2o$155653bo126$155773b3o$
155773bo$155774bo127$155925b3o$155925bo$155926bo125$156051b3o$
156051bo$156052bo126$156188b2o$156187b2o$156189bo126$156318bo$
156317b2o$156317bobo126$156450bo$156449b2o$156449bobo127$156567b3o
$156567bo$156568bo125$156701b3o$156701bo$156702bo126$156815b3o$
156815bo$156816bo126$156955b3o$156955bo$156956bo127$157077b3o$
157077bo$157078bo126$157205b3o$157205bo$157206bo126$156549b3o$
156549bo$156550bo126$156677b3o$156677bo$156678bo126$156809b3o$
156809bo$156810bo126$156941b3o$156941bo$156942bo126$157069b3o$
157069bo$157070bo126$157197b3o$157197bo$157198bo125$157595b3o$
157595bo$157596bo126$157727b3o$157727bo$157728bo126$157847b3o$
157847bo$157848bo126$157984b2o$157983b2o$157985bo126$158114b2o$
158113b2o$158115bo126$158226bo$158225b2o$158225bobo126$158939b3o$
158939bo$158940bo126$159063b3o$159063bo$159064bo126$159208bo$
159207b2o$159207bobo126$159331b3o$159331bo$159332bo126$159454bo$
159453b2o$159453bobo126$159578bo$159577b2o$159577bobo126$159694b2o
$159693b2o$159695bo126$159830b2o$159829b2o$159831bo126$159966bo$
159965b2o$159965bobo126$159327b3o$159327bo$159328bo127$159453b3o$
159453bo$159454bo125$159586bo$159585b2o$159585bobo127$160479b3o$
160479bo$160480bo126$160603b3o$160603bo$160604bo125$160744b2o$
160743b2o$160745bo126$160859b3o$160859bo$160860bo127$160995b3o$
160995bo$160996bo126$161119b3o$161119bo$161120bo125$161245b3o$
161245bo$161246bo126$161389b3o$161389bo$161390bo126$161521b3o$
161521bo$161522bo126$161652b2o$161651b2o$161653bo126$161771b3o$
161771bo$161772bo126$161898b2o$161897b2o$161899bo126$162018bo$
162017b2o$162017bobo126$162165b3o$162165bo$162166bo126$162289b3o$
162289bo$162290bo127$162409b3o$162409bo$162410bo125$162525b3o$
162525bo$162526bo126$162653b3o$162653bo$162654bo126$162779b3o$
162779bo$162780bo126$162922b2o$162921b2o$162923bo126$163026bo$
163025b2o$163025bobo126$163174b2o$163173b2o$163175bo127$163299b3o$
163299bo$163300bo125$163428bo$163427b2o$163427bobo126$163569b3o$
163569bo$163570bo126$163693b3o$163693bo$163694bo126$163820b2o$
163819b2o$163821bo126$163942bo$163941b2o$163941bobo127$164079b3o$
164079bo$164080bo126$164211b3o$164211bo$164212bo125$164335b3o$
164335bo$164336bo127$164471b3o$164471bo$164472bo126$164601b3o$
164601bo$164602bo126$164723b3o$164723bo$164724bo125$164857b3o$
164857bo$164858bo127$164975b3o$164975bo$164976bo126$165103b3o$
165103bo$165104bo125$165234b2o$165233b2o$165235bo126$165350bo$
165349b2o$165349bobo126$165494bo$165493b2o$165493bobo126$165620b2o
$165619b2o$165621bo126$165763b3o$165763bo$165764bo127$165889b3o$
165889bo$165890bo126$166017b3o$166017bo$166018bo125$166144bo$
166143b2o$166143bobo126$166275b3o$166275bo$166276bo126$166404b2o$
166403b2o$166405bo127$166529b3o$166529bo$166530bo126$166665b3o$
166665bo$166666bo125$166799b3o$166799bo$166800bo126$166921b3o$
166921bo$166922bo127$167043b3o$167043bo$167044bo125$167180b2o$
167179b2o$167181bo126$167316b2o$167315b2o$167317bo126$167401b3o$
167401bo$167402bo127$167541b3o$167541bo$167542bo126$167635b3o$
167635bo$167636bo126$167753b3o$167753bo$167754bo126$167891b3o$
167891bo$167892bo125$168049b3o$168049bo$168050bo127$168181b3o$
168181bo$168182bo125$168312bo$168311b2o$168311bobo127$168431b3o$
168431bo$168432bo125$168558bo$168557b2o$168557bobo126$168676b2o$
168675b2o$168677bo127$168825b3o$168825bo$168826bo126$168949b3o$
168949bo$168950bo125$169068b2o$169067b2o$169069bo126$169211b3o$
169211bo$169212bo126$169339b3o$169339bo$169340bo126$169466b2o$
169465b2o$169467bo126$169592bo$169591b2o$169591bobo126$169732bo$
169731b2o$169731bobo126$169862b2o$169861b2o$169863bo126$169986b2o$
169985b2o$169987bo126$170102bo$170101b2o$170101bobo126$170246bo$
170245b2o$170245bobo126$170363b3o$170363bo$170364bo127$170491b3o$
170491bo$170492bo125$170627b3o$170627bo$170628bo126$170764b2o$
170763b2o$170765bo126$170884bo$170883b2o$170883bobo126$170998b2o$
170997b2o$170999bo126$171146b2o$171145b2o$171147bo126$171258b2o$
171257b2o$171259bo127$171213b3o$171213bo$171214bo125$171337b3o$
171337bo$171338bo126$171462b2o$171461b2o$171463bo126$171600b2o$
171599b2o$171601bo126$171726b2o$171725b2o$171727bo127$171839b3o$
171839bo$171840bo125$171979b3o$171979bo$171980bo126$172227b3o$
172227bo$172228bo126$172355b3o$172355bo$172356bo126$172472b2o$
172471b2o$172473bo126$172592b2o$172591b2o$172593bo126$172738bo$
172737b2o$172737bobo126$172862bo$172861b2o$172861bobo126$173018bo$
173017b2o$173017bobo127$172997b3o$172997bo$172998bo125$173121b3o$
173121bo$173122bo126$173266b2o$173265b2o$173267bo127$173383b3o$
173383bo$173384bo126$173497b3o$173497bo$173498bo125$173639b3o$
173639bo$173640bo126$173753b3o$173753bo$173754bo127$173905b3o$
173905bo$173906bo126$174029b3o$174029bo$174030bo125$174150bo$
174149b2o$174149bobo126$174272b2o$174271b2o$174273bo126$174398bo$
174397b2o$174397bobo127$174543b3o$174543bo$174544bo125$174672b2o$
174671b2o$174673bo126$174785b3o$174785bo$174786bo127$174907b3o$
174907bo$174908bo126$175035b3o$175035bo$175036bo125$175166bo$
175165b2o$175165bobo126$175291b3o$175291bo$175292bo127$175431b3o$
175431bo$175432bo125$175544bo$175543b2o$175543bobo126$175681b3o$
175681bo$175682bo127$175823b3o$175823bo$175824bo125$175949b3o$
175949bo$175950bo126$176081b3o$176081bo$176082bo126$176212b2o$
176211b2o$176213bo126$176341b3o$176341bo$176342bo126$176475b3o$
176475bo$176476bo126$176586b2o$176585b2o$176587bo127$176805b3o$
176805bo$176806bo126$176923b3o$176923bo$176924bo125$177085b3o$
177085bo$177086bo127$177215b3o$177215bo$177216bo126$177333b3o$
177333bo$177334bo125$177487b3o$177487bo$177488bo127$177619b3o$
177619bo$177620bo126$177747b3o$177747bo$177748bo125$177864bo$
177863b2o$177863bobo126$177992bo$177991b2o$177991bobo127$178087b3o
$178087bo$178088bo125$178223b3o$178223bo$178224bo127$178345b3o$
178345bo$178346bo125$178464bo$178463b2o$178463bobo126$178607b3o$
178607bo$178608bo126$178743b3o$178743bo$178744bo127$178857b3o$
178857bo$178858bo126$178981b3o$178981bo$178982bo125$179122b2o$
179121b2o$179123bo126$179241b3o$179241bo$179242bo126$179366b2o$
179365b2o$179367bo126$179491b3o$179491bo$179492bo126$179615b3o$
179615bo$179616bo126$179758bo$179757b2o$179757bobo126$179886b2o$
179885b2o$179887bo127$179999b3o$179999bo$180000bo126$180127b3o$
180127bo$180128bo126$180259b3o$180259bo$180260bo125$180372bo$
180371b2o$180371bobo126$180524bo$180523b2o$180523bobo126$180650bo$
180649b2o$180649bobo126$180771b3o$180771bo$180772bo126$180889b3o$
180889bo$180890bo127$181025b3o$181025bo$181026bo125$181165b3o$
181165bo$181166bo126$181281b3o$181281bo$181282bo127$181419b3o$
181419bo$181420bo126$181547b3o$181547bo$181548bo126$181663b3o$
181663bo$181664bo126$181797b3o$181797bo$181798bo125$181936b2o$
181935b2o$181937bo126$182044b2o$182043b2o$182045bo126$182171b3o$
182171bo$182172bo127$182307b3o$182307bo$182308bo125$182427b3o$
182427bo$182428bo126$182553b3o$182553bo$182554bo126$182689b3o$
182689bo$182690bo127$182807b3o$182807bo$182808bo126$182957b3o$
182957bo$182958bo126$183077b3o$183077bo$183078bo126$182421b3o$
182421bo$182422bo126$182559b3o$182559bo$182560bo126$182663b3o$
182663bo$182664bo125$182789b3o$182789bo$182790bo127$182923b3o$
182923bo$182924bo126$183057b3o$183057bo$183058bo126$183465b3o$
183465bo$183466bo125$183599b3o$183599bo$183600bo126$183721b3o$
183721bo$183722bo126$183853b3o$183853bo$183854bo126$183994bo$
183993b2o$183993bobo126$184096bo$184095b2o$184095bobo127$184231b3o
$184231bo$184232bo126$184881b3o$184881bo$184882bo125$185011b3o$
185011bo$185012bo126$185150b2o$185149b2o$185151bo126$185274bo$
185273b2o$185273bobo126$185394b2o$185393b2o$185395bo126$185523b3o$
185523bo$185524bo127$185663b3o$185663bo$185664bo125$185797b3o$
185797bo$185798bo126$185919b3o$185919bo$185920bo127$186051b3o$
186051bo$186052bo125$186160bo$186159b2o$186159bobo126$186293b3o$
186293bo$186294bo126$186420bo$186419b2o$186419bobo126$186557b3o$
186557bo$186558bo126$186689b3o$186689bo$186690bo127$186809b3o$
186809bo$186810bo126$186905b3o$186905bo$186906bo126$187033b3o$
187033bo$187034bo125$187178bo$187177b2o$187177bobo127$187289b3o$
187289bo$187290bo125$187432b2o$187431b2o$187433bo126$187545b3o$
187545bo$187546bo126$187678b2o$187677b2o$187679bo126$187091b3o$
187091bo$187092bo127$187217b3o$187217bo$187218bo126$187345b3o$
187345bo$187346bo126$187463b3o$187463bo$187464bo125$187592bo$
187591b2o$187591bobo126$187718b2o$187717b2o$187719bo126$187848bo$
187847b2o$187847bobo127$187991b3o$187991bo$187992bo125$188115b3o$
188115bo$188116bo126$188248bo$188247b2o$188247bobo127$188449b3o$
188449bo$188450bo126$188573b3o$188573bo$188574bo125$188696b2o$
188695b2o$188697bo127$188833b3o$188833bo$188834bo126$188973b3o$
188973bo$188974bo126$189101b3o$189101bo$189102bo125$189231b3o$
189231bo$189232bo126$189351b3o$189351bo$189352bo126$189491b3o$
189491bo$189492bo126$189614b2o$189613b2o$189615bo126$189746bo$
189745b2o$189745bobo127$189881b3o$189881bo$189882bo125$189995b3o$
189995bo$189996bo127$189943b3o$189943bo$189944bo126$190079b3o$
190079bo$190080bo125$190189b3o$190189bo$190190bo126$190332bo$
190331b2o$190331bobo126$190455b3o$190455bo$190456bo127$190577b3o$
190577bo$190578bo125$190717b3o$190717bo$190718bo126$190828b2o$
190827b2o$190829bo126$190970bo$190969b2o$190969bobo126$191278bo$
191277b2o$191277bobo126$191233b3o$191233bo$191234bo126$191369b3o$
191369bo$191370bo126$191499b3o$191499bo$191500bo127$191609b3o$
191609bo$191610bo125$191748b2o$191747b2o$191749bo127$191889b3o$
191889bo$191890bo125$192009b3o$192009bo$192010bo126$192132b2o$
192131b2o$192133bo127$193073b3o$193073bo$193074bo126$193197b3o$
193197bo$193198bo125$193338b2o$193337b2o$193339bo126$193448bo$
193447b2o$193447bobo127$193569b3o$193569bo$193570bo126$193701b3o$
193701bo$193702bo126$193319b3o$193319bo$193320bo125$193443b3o$
193443bo$193444bo126$193571b3o$193571bo$193572bo126$193689b3o$
193689bo$193690bo126$193818b2o$193817b2o$193819bo126$193946bo$
193945b2o$193945bobo126$194074b2o$194073b2o$194075bo126$194217b3o$
194217bo$194218bo127$194343b3o$194343bo$194344bo125$194474b2o$
194473b2o$194475bo127$194317b3o$194317bo$194318bo125$194443b3o$
194443bo$194444bo126$194574b2o$194573b2o$194575bo127$194701b3o$
194701bo$194702bo125$194839b3o$194839bo$194840bo127$194963b3o$
194963bo$194964bo126$195091b3o$195091bo$195092bo125$195291b3o$
195291bo$195292bo126$195409b3o$195409bo$195410bo127$195551b3o$
195551bo$195552bo126$195691b3o$195691bo$195692bo125$195819b3o$
195819bo$195820bo127$195953b3o$195953bo$195954bo125$196069b3o$
196069bo$196070bo126$196197b3o$196197bo$196198bo126$196939b3o$
196939bo$196940bo127$197065b3o$197065bo$197066bo126$197201b3o$
197201bo$197202bo126$197317b3o$197317bo$197318bo125$197452bo$
197451b2o$197451bobo126$197576b2o$197575b2o$197577bo126$197695b3o$
197695bo$197696bo127$197837b3o$197837bo$197838bo125$197963b3o$
197963bo$197964bo127$198181b3o$198181bo$198182bo126$198319b3o$
198319bo$198320bo126$198447b3o$198447bo$198448bo125$198577b3o$
198577bo$198578bo127$198705b3o$198705bo$198706bo125$198832bo$
198831b2o$198831bobo126$198956bo$198955b2o$198955bobo126$199096bo$
199095b2o$199095bobo126$199214b2o$199213b2o$199215bo!
Current plan is to select cheap n-gliders absorber allowing cheap recipes for all DBCA starting semistates on FSE.
Then the north switching circuitry could be finished.
After Green ECCA recipe (without seed of destruction would be finished), I would apply already prepared line program for DBCA destruction.
And White portion of ECCA would be computed and implemented.
A lot of ECCA patterns/line programs could be probably recycled, so I could continue on GPSE remnants cleanup ...

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: RCT remaining tasks

Post by calcyman » January 20th, 2024, 6:11 am

Hippo.69 wrote:
January 19th, 2024, 7:28 pm
Hmm, when run on beamwidth 10, I have reached almost 21% when no improvement was found and the search ended :(.
I am not sure wider search would avoid this problem..
Here is the last progres file:
If you get 'stuck' in this way, you can feed the progress file as the input file to pslmake and it will 'resume' from there. (You may need to add the state-4 cells back into the pattern.) Would it be helpful if pslmake does this itself?

In any case, though, you want a high beamwidth if you care about minimising the number of gliders in the salvo. The different tasks in the beam search run in parallel, so find the biggest machine that you can SSH into, and run pslmake on that.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 20th, 2024, 10:29 am

calcyman wrote:
January 20th, 2024, 6:11 am
If you get 'stuck' in this way, you can feed the progress file as the input file to pslmake and it will 'resume' from there. (You may need to add the state-4 cells back into the pattern.) Would it be helpful if pslmake does this itself?

In any case, though, you want a high beamwidth if you care about minimising the number of gliders in the salvo. The different tasks in the beam search run in parallel, so find the biggest machine that you can SSH into, and run pslmake on that.
Yes, it is nice, you can restart any time. Life history save with starting info could spead up the process.

I have computed FSE salvos with bandwidth 1000. But the ECCA is not the final version so speed is more important. I need it for debugging next stages .. yes I should probably install cygwin on a remote comp to run psmake there ...

BTW: For starting semistates 0,2,5,7 optimal bit FSE programs are for number of even lines in range 906-1052
For starting semistates 1,3,4,6 optimal bit programs are for number of even lines in range 914-1053
So I am working on a cheap n-gliders absorber for these ranges (914-1052) ... (I can compile for prescribed number of even lines).
1044 gliders absorber requires one block and one eater (so trash 404 from white construction would be used as a target).

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 24th, 2024, 9:36 pm

Version with the glider absorber ...
rct15.mc
(713.03 KiB) Downloaded 15 times

Code: Select all


local showtext, showtextbase = "", ""
local bn = require "../gplus.bignum"
local g = golly()

g.setbase(2)
g.setpos("0","0")

local false_literal = false
local true_literal = true
local bnParsec = BigNum.new("45097156992")
local bnParsecHalf = BigNum.mt.half(bnParsec)
local bnParsecQuarter = BigNum.mt.half(bnParsecHalf)
local bnAeon=bnParsec                   -- /c
local bnAeonHalf = bnParsecHalf         --/c  (c=1)
local bnTwoAeons=bnAeon+bnAeon          -- maybe I have to implement multiplication and division:)
local bnFourAeons=bnTwoAeons+bnTwoAeons -- -"-
local startGen = g.getgen()
local bnZero = BigNum.new(0)
local currentAeon = 0
local bnCurrentAeonBase = bnZero
local bnCurrentOffset
local nrGliderGPSECollisionsToShow = 10 -- 26 is maximum displayed, whatever bigger will be interrupted (there are 28 bits in total)
local lastfstep=11

while startGen>bnCurrentAeonBase + bnAeonHalf do
  bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
  currentAeon = currentAeon + 1
end
local startAeon = currentAeon

g.autoupdate(true_literal)

local function smoothmag(imag, fmag)
    while imag ~= fmag do
        if imag < fmag then
            imag = imag + 1
        else
            imag = imag - 1
        end
        g.setmag(imag)
        g.sleep(200)
    end
    return imag
end

local function run_for_to(n, targetAeon, targetgen, istep, fstep, mags, note)
    local bnTargetGen
    local bnN
    local magindex
    local enterAeon = currentAeon
    fstep = fstep or 11
    if targetAeon~=nil then
      if targetAeon+0>100 then
        targetAeon = nil
      end
    end
    if (targetgen ~= nil) and targetAeon ~= nil then
    	bnTargetGen = BigNum.new(targetgen)
        if targetAeon<currentAeon then
--          g.note(showtext.." - target Aeon smaller than current one ")
            return
        end
        while currentAeon < targetAeon do
            bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
            currentAeon = currentAeon + 1
        end
    end
    if (targetgen == nil or targetAeon==nil) and (n == nil) then
        g.note(showtext.." - run_for_to with unknown duration")
        return
    end
    bnCurrentOffset=BigNum.new(g.getgen()) - bnCurrentAeonBase
    local bnStartGen=startGen - bnCurrentAeonBase
    local bnEnterGen=bnCurrentOffset
    if n ~= nil then
        bnN = BigNum.new(n)
    end
    if (targetgen ~= nil) and (targetAeon~=nil) and (n ~= nil) then
       if bnN+bnEnterGen ~= bnTargetGen  then
          if bnStartGen > bnTargetGen then return end -- skipping milestones to restart
          if bnStartGen + bnN < bnTargetGen then -- must be script error
             if bnN+bnEnterGen > bnTargetGen+BigNum.new(2^lastfstep) then
            	g.note(showtext.."("..currentAeon..") : - run_for_to for not matching to "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
            	return
             end
          end
          --g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." running to first milestone after restart")
          bnN = bnTargetGen - bnEnterGen
       end
    end
    if (n==nil) then -- helper for editting at the end
	bnN = bnTargetGen - bnEnterGen
      --g.note(showtext.." : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    if (targetgen == nil or targetAeon == nil) then -- helper for editting
      bnTargetGen = bnN + bnEnterGen
      while bnTargetGen>bnAeonHalf do
        bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
        currentAeon = currentAeon + 1
        bnTargetGen = bnTargetGen - bnAeon
        bnEnterGen = bnEnterGen - bnAeon
      end
      g.setclipstr("run_for_to(\""..BigNum.mt.tostring(bnN).."\", "..currentAeon..", \""..BigNum.mt.tostring(bnTargetGen).."\"")
      g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    local bnGen
    local sTargetGen = BigNum.mt.tostring(bnTargetGen)
    if bnN<=0 then return end
    local nn=BigNum.mt.tostring(bnN)
    istep = istep or math.min(30, math.floor(math.log(nn)/math.log(2))-6)
    local cstep = g.getstep()
    if cstep<fstep then cstep = fstep end
    if cstep>istep then cstep = istep end
    if mags then
        magindex = 1
        currmag = mags[magindex]
        g.setmag(currmag)
        magindex = magindex + 1
    end
    local bn3Eistep = BigNum.new(3*2^istep)
    g.setstep(cstep)
    while bnN > bnZero do
        g.show(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." i"..istep.." f"..fstep)

        while (istep > fstep) and (bnN < bn3Eistep) do
            istep = istep - 2
            if istep < 0 then istep = 0 end
            bn3Eistep = BigNum.new(3*2^istep)
            cstep = istep
            if mags and magindex <= #mags then
                currmag = smoothmag(currmag, mags[magindex])
                magindex = magindex + 1
            end
            g.setstep(cstep)
        end
        g.step()
        bnGen=BigNum.new(g.getgen()) - bnCurrentAeonBase
        bnN = bnTargetGen - bnGen
        cstep = g.getstep()
        if (cstep<istep) then -- owerwriting manual slowdown
          cstep = cstep+1
          g.setstep(cstep)
        end
        if (cstep>istep) then -- owerwriting manual speedup
          cstep = cstep-1
          g.setstep(cstep)
        end
    end
    lastfstep = fstep
    if (n==nil) and (enterAeon==currentAeon) then
      -- no explicit duration when Aeon boundary is crossed
      bnN=bnGen-bnEnterGen
      g.setclipstr("run_for_to(\""..BigNum.mt.tostring(bnN).."\", "..currentAeon..", \""..BigNum.mt.tostring(bnGen).."\"")
      g.note(showtext.."("..currentAeon..") : ".." final generation: "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnGen))
    end
    if note~=nil then
      g.note(note)
    end
end

local function run_from_to(bnN, targetAeon, bnTargetGen, istep, fstep, mags)
--bnTargetgen big number not nil (bnN==nil if to new Aeon)
  if bnN==nil then
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:nil")
    run_for_to(nil, targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  else
    local bnDuration = bnTargetGen - bnN
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:"..BigNum.mt.tostring(bnDuration))
    run_for_to(BigNum.mt.tostring(bnDuration), targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  end
end

local function distance_bits(prevTime)
  -- somehow when interrupted, restart skips to "remaining bits read"
  -- ... I should check why it happens, but it is method how to speed the show up,
  -- so it looks like desired feature.
  local bngcCollisionPos = bnParsecQuarter+0
  local bngcCollisionTime = -bnAeon-bnTwoAeons
  local collisionAeon=10 -- 3rd collision only
  local bnReadTime = -bnTwoAeons
  local gnPrevTime = BigNum.new(prevTime)
  local bngcCollisionTimeOffs
  local bnReadTimeOffs
  local i
  -- 12-8 12-4 12-2   12-1     12-0.5
  -- 12-6 12-3 12-1.5 12-0.75
  for i=3,nrGliderGPSECollisionsToShow,1 do
    bngcCollisionPos=BigNum.mt.half(bngcCollisionPos)
    bngcCollisionTime=BigNum.mt.half(bngcCollisionTime)
    bnReadTime=BigNum.mt.half(bnReadTime)
    if bnReadTime>-22000 then
      -- remaining bits should be processed extra
      break
    end
    bngcCollisionTimeOffs=bngcCollisionTime+bnAeon
    bnReadTimeOffs=bnReadTime+bnAeon
    if i==3 then -- Aeon exception
      bngcCollisionTimeOffs=bngcCollisionTimeOffs+bnAeon
    end
    g.setpos(BigNum.mt.tostring(bngcCollisionPos), BigNum.mt.tostring(bngcCollisionPos))
    showtext="Fast-forwarding to FSE glider with GPSE collision nr. "..i
    run_from_to(gnPrevTime, collisionAeon, bngcCollisionTimeOffs+2048, 30, 0, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
    gnPrevTime=bngcCollisionTimeOffs+4096
    run_for_to("2048", collisionAeon, gnPrevTime, nil, 0, {0})
    g.setpos(0, 0)
    showtext="Fast-forwarding to distance bit read nr. "..i
    if i==3 then
      gnPrevTime=nil
      collisionAeon=11
    end
    run_from_to(gnPrevTime, collisionAeon, bnReadTimeOffs+2048, 30, 0, {-30, -2})
    showtext="Note the gliders going from the center ..."
    gnPrevTime=bnReadTimeOffs+4128
    run_for_to(2080, collisionAeon, gnPrevTime, nil, 0, {0})
  end
end

showtext="Startng crash FSE"
g.setpos(BigNum.mt.tostring(bnParsec), BigNum.mt.tostring(bnParsec))
run_for_to("1024",0,"1024",4,4,{-1})
showtext="Startng crash FNW"
g.setpos(BigNum.mt.tostring(-bnParsec), BigNum.mt.tostring(-bnParsec))
run_for_to("1024",0,"2048",4,4,{-1})
showtext="Fast-forwarding to first collision of gliders from GPSEs..."
g.setpos(0,0)
run_for_to(nil, 4, "960", 30, 6, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
showtext="Note the gliders going  from the center..."
run_for_to("992", 4, "1952", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecHalf), BigNum.mt.tostring(bnParsecHalf))
showtext="Fast-forwarding to first FSW glider with GPSE collision..."
run_for_to(nil, 6, "448", 30, 2, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
run_for_to("2048", 6, "2496")
g.setpos(0, 0)
showtext="Fast-forwarding to first distance bit read ..."
run_for_to(nil,8,"1280",30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("1024", 8, "2304", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecQuarter), BigNum.mt.tostring(bnParsecQuarter))
showtext="Fast-forwarding to second FSE glider with GPSE collision..."
run_for_to(nil, 9, "1184", 30,2,{-30,-27,-24,-21,-18,-16, -14, -12, -10, -8, -6, -4, -2, 0})
run_for_to("2048", 9, "3232")
g.setpos(0, 0)
showtext="Fast-forwarding to second distance bit read ..."
run_for_to(nil,10, "-1088", 30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("2048", 10, "3168", 4, 4, {0})
showtext="Fast-forwarding to first inserted MWSS bits ... here only 28 bits are encoded in pattern size"
run_for_to("194952", 10, "198120", nil, 4, {-24, -16, -8, -4, -2, 0})
showtext="Each inserted bit reduces pattern dimensions to half, there will be no chance to wait for result without the reduction"
run_for_to("1600", 10, "199720", nil, nil, {0})
showtextbase="Transform the initial crash site into a usable blinker elbow"
showtext=showtextbase
showtextbase="Building LWSS seed and blocks"
showtext=showtextbase
run_for_to("16449536",10,"16649256",nil,nil,nil,nil)
showtext=showtextbase..
" - Creating block needed for ECCA construction and another one to construct a GPSE stopper"run_for_to("21102592",10,"37751848",nil,nil,nil,nil)
showtext=showtextbase..
" - LWSS seed construction started"run_for_to("33882112",10,"71633960",nil,nil,nil,nil)
showtext=showtextbase..
" - LWSS seed construction ended, stackbottom repositioning starts"run_for_to("125435904",10,"197069864",nil,nil,{0,-3},nil)
g.setpos("600", "-600")
showtext=showtextbase..
" - Stackbottom repositioning ended"run_for_to("838074368",10,"1035144232",nil,nil,nil,nil)
showtextbase="Building glider seed"
showtext=showtextbase
g.setpos("1200", "-1200")
showtext=showtextbase..
" - Creating target block for glider seed"showtext=showtextbase..
" - Start of glider seed recipe"run_for_to("16580608",10,"1051724840",nil,nil,nil,nil)
showtext=showtextbase..
" - End of glider seed recipe"run_for_to("80740352",10,"1132465192",nil,nil,nil,nil)
showtext=showtextbase..
" - Switch to stack items better for long fills"run_for_to("2228224",10,"1134693416",nil,nil,{0,-2},nil)
g.setpos("600", "-1400")
showtextbase="Creating synced glider pair to invoke the seeds to create distant target"
showtext=showtextbase
showtext=showtextbase..
" - Creating long gap on the stack"showtext=showtextbase..
" - You may notice the last 3 pairs of beehive pairs differ from he rest"run_for_to("35782656",10,"1170476072",nil,nil,nil,nil)
showtext=showtextbase..
" - Expensive transformation to standard stack items ended"run_for_to("10616832",10,"1181092904",nil,nil,nil,nil)
showtext=showtextbase..
" - Target for the subrecipe created, glider pair seed recipe starts"run_for_to("12845056",10,"1193937960",nil,nil,nil,nil)
showtext=showtextbase..
" - Glider pair seed recipe ended"run_for_to("101842944",10,"1295780904",nil,nil,nil,nil)
showtextbase="Distant target creation seed activation"
showtext=showtextbase
run_for_to("3407872",10,"1299188776",nil,nil,nil,nil)
showtextbase="Distant target creation seed activated"
showtext=showtextbase
run_for_to("65536",10,"1299254312",nil,nil,nil,nil)
showtext=showtextbase..
" - Stack have to return to the position to build DBCA"run_for_to("1638400",10,"1300892712",nil,nil,nil,nil)
showtext=showtextbase..
" - Stack returned  to the position to build DBCA"run_for_to("3145728",10,"1304038440",nil,nil,nil,nil)
showtextbase="(Green) DBCA building recipe applied to the distant target, including cordership activation seed, the most expensive part of the RCT15 constant part "
showtext=showtextbase
showtext=showtextbase..
" - (Green) DBCA sleeping pattern is ready, we have to replace the stack by reflector targets to ignite the corderships"run_for_to("24649596928",11,"-19143521624",nil,nil,nil,nil)
showtextbase="Building 2 target blinkers for DBCA reflectors, 1 target blinker for ECCA reflectors and glider to activate the cordership"
showtext=showtextbase
run_for_to("10682368",11,"-19132839256",nil,nil,nil,nil)
showtext=showtextbase..
" - Big move of stack bottom to ECCA target starts. It uses easily destroyable filler."showtext=showtextbase..
" - Expensive part converting stack top to blinker."run_for_to("20578304",11,"-19112260952",nil,nil,nil,nil)
showtext=showtextbase..
" - Filler removal."run_for_to("11141120",11,"-19101119832",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating ECCA reflector target from 1st DBCA reflector target was created"run_for_to("10354688",11,"-19090765144",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating 1st DBCA reflector target from 2nd DBCA reflector target was created"run_for_to("6029312",11,"-19084735832",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating glider construction stack from the reflector targets created"run_for_to("6881280",11,"-19077854552",nil,nil,nil,nil)
showtextbase="Activating the cordership to start DBCA reflectors"
showtext=showtextbase
run_for_to("13303808",11,"-19064550744",nil,nil,nil,nil)
showtextbase="DBCA reflectors activated"
showtext=showtextbase
run_for_to("65536",11,"-19064485208",nil,nil,nil,nil)
showtextbase="remnants of the original arm removed, green DBCA activated"
showtext=showtextbase
run_for_to("589824",11,"-19063895384",nil,nil,nil,nil)
showtextbase="Creating eater at the Green line and White target using Green DBCA"
showtext=showtextbase
showtextbase="Green portion of DBCA really finished, White portion construction begins"
showtext=showtextbase
run_for_to("18874368",11,"-19045021016",nil,nil,nil,nil)
showtextbase="Decoder and better construction arm (DBCA) finished"
showtext=showtextbase
run_for_to("536936448",11,"-18508084568",nil,nil,{-2,-3},nil)
showtext=showtextbase..
" - Half of 1044 gliders absorber finished"run_for_to("15925248",11,"-18492159320",nil,nil,nil,nil)
showtext=showtextbase..
" - cleanup of the PI explosion from the initial GPSE collision starts"g.setpos("0", "0")
showtext=showtextbase..
" - cleanup of the PI explosion from the initial GPSE collision ended,"run_for_to("34996224",11,"-18457163096",nil,nil,nil,nil)
showtext=showtextbase..
" - GPSE stopping block positioned"run_for_to("5701632",11,"-18451461464",nil,nil,nil,nil)
showtextbase="Releasing first glider FSE"
showtext=showtextbase
run_for_to("7995392",11,"-18443466072",nil,nil,nil,nil)
showtext=showtextbase..
" - Releasing second glider FSE"run_for_to("4325376",11,"-18439140696",nil,nil,nil,nil)
showtextbase="Releasing third glider FSE"
showtext=showtextbase
run_for_to("4325376",11,"-18434815320",nil,nil,nil,nil)
showtext=showtextbase..
" - Target for ECCA construction and SW switching circuitry ready"run_for_to("1835008",11,"-18432980312",nil,nil,nil,nil)
showtextbase="Creating ECCA (Fake)"
showtext=showtextbase
showtextbase="Fake ECCA built"
showtext=showtextbase
run_for_to("31457280",11,"-18401523032",nil,nil,nil,nil)
showtext=showtextbase..
" - Switch FSE"g.setpos("0", "0")
showtext=showtextbase..
" - Switch FSE ready"run_for_to("180289536",11,"-18221233496",nil,nil,{0,0},nil)
g.setpos("0", "0")
showtextbase="Switched FSE"
showtext=showtextbase
run_for_to("3473408",11,"-18217760088",nil,nil,{0,0},'debug switching next bit')
g.setpos("0", "0")
showtextbase="And this is end so far"
showtext=showtextbase
run_for_to("1414856704",11,"-16802903384",nil,nil,nil,'work in progress,\n Note that this scripts allow you restart at any generation.\n You can stop it, watch a detail and restart afterwards to let show continue.')
showtextbase="First glider arrived to FSE"
showtext=showtextbase
run_for_to("178748065280",15,"-18443466072",nil,nil,nil,nil)
g.setpos("45097156992", "45097156992")
showtext=showtextbase..
" - Second glider arrived to FSE"run_for_to("4325376",15,"-18439140696",nil,nil,nil,nil)
showtextbase="Third glider arrived to FSE"
showtext=showtextbase
run_for_to("4325376",15,"-18434815320",nil,nil,nil,nil)
showtext=showtextbase..
" - Switched FSE"run_for_to("217055232",15,"-18217760088",nil,nil,{0,-1},'debug switching next bit')
g.setpos("45097156992", "45097156992")
showtextbase="FSE Cleanup"
showtext=showtextbase
run_for_to("65536",15,"-18217694552",nil,nil,{-1,-1},'debug')
g.setpos("45097156992", "45097156992")
showtextbase="FSE Cleanup finished"
showtext=showtextbase
run_for_to("24969216",15,"-18192725336",nil,nil,nil,'cleanup ended')
g.setpos("45097156992", "45097156992")
showtextbase="Building FSE corderabsorbers"
showtext=showtextbase
run_for_to("573898752",15,"-17618826584",nil,nil,{-1,-2},'debug?')
g.setpos("45097157292", "45097157092")
showtextbase="FSE corderabsorbers ready"
showtext=showtextbase
run_for_to("812384256",15,"-16806442328",nil,nil,nil,'debug FSE corderabsorbers ready')

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: RCT remaining tasks

Post by calcyman » January 24th, 2024, 10:13 pm

Hippo.69 wrote:
January 24th, 2024, 9:36 pm
Version with the glider absorber ...
rct15.mc
Awesome! Do you have a modified copy of the https://gitlab.com/apgoucher/rct16/-/tree/master repo that you're using?

I don't have the gplus.bignum library so I can't run the script that you've provided. I'm wondering why a custom script is necessary -- when you run https://gitlab.com/apgoucher/rct16/-/bl ... emilate.py it automatically generates both a Python and a Lua Golly script with no dependencies, which includes a calculated chronology of events for viewing.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 25th, 2024, 7:27 am

calcyman wrote:
January 24th, 2024, 10:13 pm
Hippo.69 wrote:
January 24th, 2024, 9:36 pm
Version with the glider absorber ...
rct15.mc
Awesome! Do you have a modified copy of the https://gitlab.com/apgoucher/rct16/-/tree/master repo that you're using?

I don't have the gplus.bignum library so I can't run the script that you've provided. I'm wondering why a custom script is necessary -- when you run https://gitlab.com/apgoucher/rct16/-/bl ... emilate.py it automatically generates both a Python and a Lua Golly script with no dependencies, which includes a calculated chronology of events for viewing.
Would you mind me pushing a new branch to your repository? Here is sufficent verson of bignum:

Code: Select all

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{1
--
--  File Name:              bignum.lua
--  Package Name:           BigNum 
--
--  Project:    Big Numbers library for Lua
--  Mantainers: fmp - Frederico Macedo Pessoa
--              msm - Marco Serpa Molinaro
--              vm  - Vladan Majerech
--
--  History:
--     Version      Autor       Date            Notes
--      2.0      vm         12/11/2022   Edited for personal needs (just +,-,<,=,>,tostring) bug fixing tostring
--      1.1      fmp/msm    12/11/2004   Some bug fixes (thanks Isaac Gouy)
--      alfa     fmp/msm    03/22/2003   Start of Development
--      beta     fmp/msm    07/11/2003   Release
--
--  Description:
--    Big numbers manipulation library for Lua.
--    A Big Number is a table with as many numbers as necessary to represent
--       its value in base 'RADIX'. It has a field 'len' containing the num-
--       ber of such numbers and a field 'signal' that may assume the values
--       '+' and '-'.
--
--$.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


--%%%%%%%%  Constants used in the file %%%%%%%%--{{{1
   RADIX_LEN = 6 ;
   RADIX_FIL = "000000" ; -- length >= RADIX_LEN
   RADIX = 10^RADIX_LEN ;

--%%%%%%%%        Start of Code        %%%%%%%%--

BigNum = {} ;
BigNum.mt = {} ;


--BigNum.new{{{1
--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
--  Function: New 
--
--
--  Description:
--     Creates a new Big Number based on the parameter num.
--
--  Parameters:
--     num - a string, number or BigNumber.
--
--  Returns:
--     A Big Number, or a nil value if an error occured.
--
--
--  %%%%%%%% --

function BigNum.new( num ) --{{{2
   local bignum = {} ;
   setmetatable( bignum , BigNum.mt ) ;
   BigNum.change( bignum , num ) ;
   return bignum ;
end

--%%%%%%%%%%%%%%%%%%%% Functions for metatable %%%%%%%%%%%%%%%%%%%%--{{{1
--BigNum.mt.sub{{{2
function BigNum.mt.sub( num1 , num2 )
   local temp = BigNum.new() ;
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   BigNum.sub( bnum1 , bnum2 , temp ) ;
   return temp ;
end

--BigNum.mt.add{{{2
function BigNum.mt.add( num1 , num2 )
   local temp = BigNum.new() ;
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   BigNum.add( bnum1 , bnum2 , temp ) ;
   return temp ;
end

--BigNum.mt.tostring{{{2
function BigNum.mt.tostring( bnum )
   local i = 0
   local j
   local temp = ""
   local str
   local dotpos
   if bnum == nil then
      return "nil"
   elseif bnum.len > 0 then
      for i = bnum.len - 2 , 0 , -1  do
         str = tostring(bnum[i])
         dotpos = string.find(str..".","%.") 
         temp = temp .. string.sub(RADIX_FIL..string.sub(str,1,dotpos-1),-RADIX_LEN)
      end
      str = tostring(bnum[bnum.len - 1])
      dotpos = string.find(str..".","%.")
      temp = string.sub(str,1,dotpos-1) .. temp
      if bnum.signal == '-' then
         temp = bnum.signal .. temp
      end
      return temp
   else
      return ""
   end
end

--BigNum.mt.eq{{{2
function BigNum.mt.eq( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.eq( bnum1 , bnum2 ) ;
end

--BigNum.mt.lt{{{2
function BigNum.mt.lt( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.lt( bnum1 , bnum2 ) ;
end

--BigNum.mt.le{{{2
function BigNum.mt.le( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.le( bnum1 , bnum2 ) ;
end

--BigNum.mt.unm{{{2
function BigNum.mt.unm( num )
   local ret = BigNum.new( num )
   if ret.signal == '+' then
      ret.signal = '-'
   else
      ret.signal = '+'
   end
   return ret
end

--BigNum.mt.half{{{2
function BigNum.mt.half( num )
   local ret = BigNum.new()
   local bnum = BigNum.new( num ) ;
   BigNum.half( bnum , ret ) ;
   return ret ;
end

--%%%%%%%%%%%%%%%%%%%% Metatable Definitions %%%%%%%%%%%%%%%%%%%%--{{{1

BigNum.mt.__metatable = "hidden"           ; -- answer to getmetatable(aBignum)
-- BigNum.mt.__index     = "inexistent field" ; -- attempt to acess nil valued field 
-- BigNum.mt.__newindex  = "not available"    ; -- attempt to create new field
BigNum.mt.__tostring  = BigNum.mt.tostring ;
-- arithmetics
BigNum.mt.__add = BigNum.mt.add ;
BigNum.mt.__sub = BigNum.mt.sub ;
BigNum.mt.__unm = BigNum.mt.unm ;
-- Comparisons
BigNum.mt.__eq = BigNum.mt.eq   ; 
BigNum.mt.__le = BigNum.mt.le   ;
BigNum.mt.__lt = BigNum.mt.lt   ;
--concatenation
-- BigNum.me.__concat = ???

setmetatable( BigNum.mt, { __index = "inexistent field", __newindex = "not available", __metatable="hidden" } ) ;

--%%%%%%%%%%%%%%%%%%%% Basic Functions %%%%%%%%%%%%%%%%%%%%--{{{1
--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: ADD 
--
--
--  Description:
--     Adds two Big Numbers.
--
--  Parameters:
--     bnum1, bnum2 - Numbers to be added.
--     bnum3 - result
--
--  Returns:
--     0
--
--  Exit assertions:
--     bnum3 is the result of the sum.
--
--  %%%%%%%% --
--Funcao BigNum.add{{{2
function BigNum.add( bnum1 , bnum2 , bnum3 )
   local maxlen = 0 ;
   local i = 0 ;
   local carry = 0 ;
   local signal = '+' ;
   local old_len = 0 ;
   --Handle the signals
   if bnum1 == nil or bnum2 == nil or bnum3 == nil then
      error("Function BigNum.add: parameter nil") ;
   elseif bnum1.signal == '-' and bnum2.signal == '+' then
      bnum1.signal = '+' ;
      BigNum.sub( bnum2 , bnum1 , bnum3 ) ;

      if not rawequal(bnum1, bnum3) then
         bnum1.signal = '-' ;
      end
      return 0 ;
   elseif bnum1.signal == '+' and bnum2.signal == '-' then   
      bnum2.signal = '+' ;
      BigNum.sub( bnum1 , bnum2 , bnum3 ) ;
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = '-' ;
      end
      return 0 ;
   elseif bnum1.signal == '-' and bnum2.signal == '-' then
      signal = '-' ;
   end
   --
   old_len = bnum3.len ;
   if bnum1.len > bnum2.len then
      maxlen = bnum1.len ;
   else
      maxlen = bnum2.len ;
      bnum1 , bnum2 = bnum2 , bnum1 ;
   end
   --School grade sum
   for i = 0 , maxlen - 1 do
      if bnum2[i] ~= nil then
         bnum3[i] = bnum1[i] + bnum2[i] + carry ;
      else
         bnum3[i] = bnum1[i] + carry ;
      end
      if bnum3[i] >= RADIX then
         bnum3[i] = bnum3[i] - RADIX ;
         carry = 1 ;
      else
         carry = 0 ;
      end
   end
   --Update the answer's size
   if carry == 1 then
      bnum3[maxlen] = 1 ;
   end
   bnum3.len = maxlen + carry ;
   bnum3.signal = signal ;
   for i = bnum3.len, old_len do
      bnum3[i] = nil ;
   end
   return 0 ;
end


--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: SUB 
--
--
--  Description:
--     Subtracts two Big Numbers.
--
--  Parameters:
--     bnum1, bnum2 - Numbers to be subtracted.
--     bnum3 - result
--
--  Returns:
--     0
--
--  Exit assertions:
--     bnum3 is the result of the subtraction.
--
--  %%%%%%%% --
--Funcao BigNum.sub{{{2
function BigNum.sub( bnum1 , bnum2 , bnum3 )
   local maxlen = 0 ;
   local i = 0 ;
   local carry = 0 ;
   local old_len = 0 ;
   --Handle the signals
   
   if bnum1 == nil or bnum2 == nil or bnum3 == nil then
      error("Function BigNum.sub: parameter nil") ;
   elseif bnum1.signal == '-' and bnum2.signal == '+' then
      bnum1.signal = '+' ;
      BigNum.add( bnum1 , bnum2 , bnum3 ) ;
      bnum3.signal = '-' ;
      if not rawequal(bnum1, bnum3) then
         bnum1.signal = '-' ;
      end
      return 0 ;
   elseif bnum1.signal == '-' and bnum2.signal == '-' then
      bnum1.signal = '+' ;
      bnum2.signal = '+' ;
      BigNum.sub( bnum2, bnum1 , bnum3 ) ;
      if not rawequal(bnum1, bnum3) then
         bnum1.signal = '-' ;
      end
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = '-' ;
      end
      return 0 ;
   elseif bnum1.signal == '+' and bnum2.signal == '-' then
      bnum2.signal = '+' ;
      BigNum.add( bnum1 , bnum2 , bnum3 ) ;
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = '-' ;
      end
      return 0 ;
   end
   --Tests if bnum2 > bnum1
   if BigNum.compareAbs( bnum1 , bnum2 ) == 2 then
      BigNum.sub( bnum2 , bnum1 , bnum3 ) ;
      bnum3.signal = '-' ;
      return 0 ;
   else
      maxlen = bnum1.len ;
   end
   old_len = bnum3.len ;
   bnum3.len = 0 ;
   --School grade subtraction
   for i = 0 , maxlen - 1 do
      if bnum2[i] ~= nil then
         bnum3[i] = bnum1[i] - bnum2[i] - carry ;
      else
         bnum3[i] = bnum1[i] - carry ;
      end
      if bnum3[i] < 0 then
         bnum3[i] = RADIX + bnum3[i] ;
         carry = 1 ;
      else
         carry = 0 ;
      end

      if bnum3[i] ~= 0 then
         bnum3.len = i + 1 ;
      end
   end
   bnum3.signal = '+' ;
   --Check if answer's size if zero
   if bnum3.len == 0 then
      bnum3.len = 1 ;
      bnum3[0]  = 0 ;
   end
   if carry == 1 then
      error( "Error in function sub" ) ;
   end
   for i = bnum3.len , max( old_len , maxlen - 1 ) do
      bnum3[i] = nil ;
   end
   return 0 ;
end

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: HALF
--
--
--  Description:
--     Divides absolute value by 2.
--
--  Parameters:
--     bnum1 - Number to be halved.
--     bnum2 - result
--
--  Returns:
--     boolean ... was the bnum1 odd?
--
--  Exit assertions:
--     bnum2 is the result of the halving.
--
--  %%%%%%%% --
--Funcao BigNum.half{{{2
function BigNum.half( bnum1 , bnum2 )
   local maxlen = bnum1.len ;
   local i = 0 ;
   if bnum1 == nil or bnum2 == nil then
      error("Function BigNum.half: parameter nil") ;
   end
   for i = maxlen, bnum2.len-1, 1 do
      bnum2[i] = nil ;
   end
   bnum2.len = maxlen
   local carry = 0
   if bnum1[maxlen-1]<2 then
     bnum2[maxlen-1]=nil
     bnum2.len=maxlen-1
     carry = bnum1[maxlen-1] % 2
   end
   for i = bnum2.len - 1,0,-1 do
     bnum2[i] = (bnum1[i] + carry * RADIX)//2
     carry = bnum1[i] % 2
   end
   bnum2.signal = bnum1.signal ;
   --Check if answer's size if zero
   if bnum2.len == 0 then
      bnum2.len = 1 ;
      bnum2[0]  = 0 ;
   end
   return carry == 1 ;
end

--%%%%%%%%%%%%%%%%%%%% Comparison Functions %%%%%%%%%%%%%%%%%%%%--{{{1
--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: EQ
--
--
--  Description:
--     Compares two Big Numbers.
--
--  Parameters:
--     bnum1, bnum2 - numbers
--
--  Returns:
--     Returns true if they are equal or false otherwise.
--
--  %%%%%%%% --
--BigNum.eq{{{2
function BigNum.eq( bnum1 , bnum2 )
   if BigNum.compare( bnum1 , bnum2 ) == 0 then
      return true ;
   else
      return false ;
   end
end

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: LT
--
--
--  Description:
--     Verifies if bnum1 is lesser than bnum2.
--
--  Parameters:
--     bnum1, bnum2 - numbers
--
--  Returns:
--     Returns true if bnum1 is lesser than bnum2 or false otherwise.
--
--  %%%%%%%% --
--BigNum.lt{{{2
function BigNum.lt( bnum1 , bnum2 )
   if BigNum.compare( bnum1 , bnum2 ) == 2 then
      return true ;
   else
      return false ;
   end
end


--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: LE
--
--
--  Description:
--     Verifies if bnum1 is lesser or equal than bnum2.
--
--  Parameters:
--     bnum1, bnum2 - numbers
--
--  Returns:
--     Returns true if bnum1 is lesser or equal than bnum2 or false otherwise.
--
--  %%%%%%%% --
--BigNum.le{{{2
function BigNum.le( bnum1 , bnum2 )
   local temp = -1 ;
   temp = BigNum.compare( bnum1 , bnum2 )
   if temp == 0 or temp == 2 then
      return true ;
   else
      return false ;
   end
end

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: Compare Absolute Values
--
--
--  Description:
--     Compares absolute values of bnum1 and bnum2.
--
--  Parameters:
--     bnum1, bnum2 - numbers
--
--  Returns:
--     1 - |bnum1| > |bnum2|
--     2 - |bnum1| < |bnum2|
--     0 - |bnum1| = |bnum2|
--
--  %%%%%%%% --
--BigNum.compareAbs{{{2
function BigNum.compareAbs( bnum1 , bnum2 )
   if bnum1 == nil or bnum2 == nil then
      error("Function compare: parameter nil") ;
   elseif bnum1.len > bnum2.len then
      return 1 ;
   elseif bnum1.len < bnum2.len then
      return 2 ;
   else
      local i ;
      for i = bnum1.len - 1 , 0 , -1 do
         if bnum1[i] > bnum2[i] then
            return 1 ;
         elseif bnum1[i] < bnum2[i] then
            return 2 ;
         end
      end
   end
   return 0 ;
end


--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: Compare 
--
--
--  Description:
--     Compares values of bnum1 and bnum2.
--
--  Parameters:
--     bnum1, bnum2 - numbers
--
--  Returns:
--     1 - |bnum1| > |bnum2|
--     2 - |bnum1| < |bnum2|
--     0 - |bnum1| = |bnum2|
--
--  %%%%%%%% --
--BigNum.compare{{{2
function BigNum.compare( bnum1 , bnum2 )
   local signal = 0 ;
   
   if bnum1 == nil or bnum2 == nil then
      error("Funtion BigNum.compare: parameter nil") ;
   elseif bnum1.signal == '+' and bnum2.signal == '-' then
      return 1 ;
   elseif bnum1.signal == '-' and bnum2.signal == '+' then
      return 2 ;
   elseif bnum1.signal == '-' and bnum2.signal == '-' then
      signal = 1 ;
   end
   if bnum1.len > bnum2.len then
      return 1 + signal ;
   elseif bnum1.len < bnum2.len then
      return 2 - signal ;
   else
      local i ;
      for i = bnum1.len - 1 , 0 , -1 do
         if bnum1[i] > bnum2[i] then
            return 1 + signal ;
	 elseif bnum1[i] < bnum2[i] then
	    return 2 - signal ;
	 end
      end
   end
   return 0 ;
end         


--%%%%%%%%%%%%%%%%%%%% Low level Functions %%%%%%%%%%%%%%%%%%%%--{{{1
--BigNum.copy{{{2
function BigNum.copy( bnum1 , bnum2 )
   if bnum1 ~= nil and bnum2 ~= nil then
      local i ;
      for i = 0 , bnum1.len - 1 do
         bnum2[i] = bnum1[i] ;
      end
      bnum2.len = bnum1.len ;
   else
      error("Function BigNum.copy: parameter nil") ;
   end
end


--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{2
--
--  Function: Change
--
--  Description:
--     Changes the value of a BigNum.
--     This function is called by BigNum.new.
--
--  Parameters:
--     bnum1, bnum2 - numbers
--
--  Returns:
--     1 - |bnum1| > |bnum2|
--     2 - |bnum1| < |bnum2|
--     0 - |bnum1| = |bnum2|
--
--  %%%%%%%% --
--BigNum.change{{{2
function BigNum.change( bnum1 , num )
   local j = 0 ;
   local len = 0  ;
   local num = num ;
   local l ;
   local oldLen = 0 ;
   if bnum1 == nil then
      error( "BigNum.change: parameter nil" ) ;
   elseif type( bnum1 ) ~= "table" then
      error( "BigNum.change: parameter error, type unexpected" ) ;
   elseif num == nil then
      bnum1.len = 1 ;
      bnum1[0] = 0 ;
      bnum1.signal = "+";
   elseif type( num ) == "table" and num.len ~= nil then  --check if num is a big number
      --copy given table to the new one
      for i = 0 , num.len do
         bnum1[i] = num[i] ;
      end
      if num.signal ~= '-' and num.signal ~= '+' then
         bnum1.signal = '+' ;
      else
         bnum1.signal = num.signal ;
      end
      oldLen = bnum1.len ;
      bnum1.len = num.len ;
   elseif type( num ) == "string" or type( num ) == "number" then
      if string.sub( num , 1 , 1 ) == '+' or string.sub( num , 1 , 1 ) == '-' then
         bnum1.signal = string.sub( num , 1 , 1 ) ;
         num = string.sub(num, 2) ;
      else
         bnum1.signal = '+' ;
      end
      num = string.gsub( num , " " , "" )
      local sf = string.find( num , "e" )
      --Handles if the number is in exp notation
      if sf ~= nil then
         local e = string.sub( num , sf + 1 )
         num = string.sub( num , 1 , sf - 1 )
         e = tonumber(e) ;
         if e ~= nil and e > 0 then 
            e = tonumber(e) ;
         else
            error( "Function BigNum.change: string is not a valid number" ) ;
         end
         local dotpos=string.find(num..".","%.")
         num = string.gsub( num , "%." , "" )
         local dotshift = string.len(num)+1-dotpos
         for i = 1 , e do
            num = num .. "0"
         end
         if dotshift>0 then num = string.sub(num,1,-dotshift-1) end
      else
         sf = string.find( num , "%." ) ;
         if sf ~= nil then
            num = string.sub( num , 1 , sf - 1 ) ;
         end
      end

      l = string.len( num ) ;
      oldLen = bnum1.len ;
      if (l > RADIX_LEN) then
         local mod = l-( math.floor( l / RADIX_LEN ) * RADIX_LEN ) ;
         for i = 1 , l-mod, RADIX_LEN do
            bnum1[j] = tonumber( string.sub( num, -( i + RADIX_LEN - 1 ) , -i ) );
            --Check if string dosn't represents a number
            if bnum1[j] == nil then
               error( "Function BigNum.change: string is not a valid number" ) ;
               bnum1.len = 0 ;
               return 1 ;
            end
            j = j + 1 ; 
            len = len + 1 ;
         end
         if (mod ~= 0) then
            bnum1[j] = tonumber( string.sub( num , 1 , mod ) ) ;
            bnum1.len = len + 1 ;
         else
            bnum1.len = len ;            
         end
         --Eliminate trailing zeros
         for i = bnum1.len - 1 , 1 , -1 do
            if bnum1[i] == 0 then
               bnum1[i] = nil ;
               bnum1.len = bnum1.len - 1 ;
            else
               break ;
            end
         end
         
      else     
         -- string.len(num) <= RADIX_LEN
         bnum1[j] = tonumber( num ) ;
         bnum1.len = 1 ;
      end
   else
      error( "Function BigNum.change: parameter error, type unexpected" ) ;
   end

   --eliminates the deprecated higher order 'algarisms'
   if oldLen ~= nil then
      for i = bnum1.len , oldLen do
         bnum1[i] = nil ;
      end
   end

   return 0 ;
end 

--BigNum.put{{{2
--Places int in the position pos of bignum, fills before with zeroes and
--after with nil.
function BigNum.put( bnum , int , pos )
   if bnum == nil then
      error("Function BigNum.put: parameter nil") ;
   end
   local i = 0 ;
   for i = 0 , pos - 1 do
      bnum[i] = 0 ;
   end
   bnum[pos] = int ;
   for i = pos + 1 , bnum.len do
      bnum[i] = nil ;
   end
   bnum.len = pos ;
   return 0 ;
end

--printraw{{{2
function printraw( bnum )
   local i = 0 ;
   if bnum == nil then
      error( "Function printraw: parameter nil" ) ;
   end
   while 1 == 1 do
      if bnum[i] == nil then
         io.write( ' len '..bnum.len ) ;
         if i ~= bnum.len then
            io.write( ' ERRO!!!!!!!!' ) ;
         end
         io.write( "\n" ) ;
         return 0 ;
      end
      io.write( 'r'..bnum[i] ) ;
      i = i + 1 ;
   end
end
--max{{{2
function max( int1 , int2 )
   if int1 > int2 then
      return int1 ;
   else
      return int2 ;
   end
end

--decr{{{2
function decr( bnum1 )
   local temp = {} ;
   temp = BigNum.new( "1" ) ;
   BigNum.sub( bnum1 , temp , bnum1 ) ;
   return 0 ;
end
I generate both dvgrn.lua and .py by moified semilate15 (with modified make_binary generated json.tags), but I have not implemented the modified features to .py version.

And here is new version of generated lua script:

Code: Select all


local showtext, showtextbase = "", ""
local g = golly()

-----------------------------------------------------
local RADIX_LEN = 6 ;
local RADIX_FIL = "000000" ; -- length >= RADIX_LEN
local RADIX = 10^RADIX_LEN ;

BigNum = {} ;
BigNum.mt = {} ;

function BigNum.new( num )
   local bignum = {} ;
   setmetatable( bignum , BigNum.mt ) ;
   BigNum.change( bignum , num ) ;
   return bignum ;
end

function BigNum.mt.sub( num1 , num2 )
   local temp = BigNum.new() ;
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   BigNum.sub( bnum1 , bnum2 , temp ) ;
   return temp ;
end

function BigNum.mt.add( num1 , num2 )
   local temp = BigNum.new() ;
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   BigNum.add( bnum1 , bnum2 , temp ) ;
   return temp ;
end

function BigNum.mt.tostring( bnum )
   local i = 0
   local j
   local temp = ""
   local str
   local dotpos
   if bnum == nil then
      return "nil"
   elseif bnum.len > 0 then
      for i = bnum.len - 2 , 0 , -1  do
         str = tostring(bnum[i])
         dotpos = string.find(str..".","%.")
         temp = temp .. string.sub(RADIX_FIL..string.sub(str,1,dotpos-1),-RADIX_LEN)
      end
      str = tostring(bnum[bnum.len - 1])
      dotpos = string.find(str..".","%.")
      temp = string.sub(str,1,dotpos-1) .. temp
      if bnum.signal == '-' then
         temp = bnum.signal .. temp
      end
      return temp
   else
      return ""
   end
end

function BigNum.mt.eq( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.eq( bnum1 , bnum2 ) ;
end

function BigNum.mt.lt( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.lt( bnum1 , bnum2 ) ;
end

function BigNum.mt.le( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.le( bnum1 , bnum2 ) ;
end

function BigNum.mt.unm( num )
   local ret = BigNum.new( num )
   if ret.signal == "+" then
      ret.signal = "-"
   else
      ret.signal = "+"
   end
   return ret
end

function BigNum.mt.half( num )
   local ret = BigNum.new()
   local bnum = BigNum.new( num ) ;
   BigNum.half( bnum , ret ) ;
   return ret ;
end

BigNum.mt.__metatable = "hidden"
BigNum.mt.__tostring  = BigNum.mt.tostring ;
BigNum.mt.__add = BigNum.mt.add ;
BigNum.mt.__sub = BigNum.mt.sub ;
BigNum.mt.__unm = BigNum.mt.unm ;
BigNum.mt.__eq = BigNum.mt.eq   ;
BigNum.mt.__le = BigNum.mt.le   ;
BigNum.mt.__lt = BigNum.mt.lt   ;

setmetatable( BigNum.mt, { __index = "inexistent field", __newindex = "not available", __metatable="hidden" } ) ;

function BigNum.add( bnum1 , bnum2 , bnum3 )
   local maxlen = 0 ;
   local i = 0 ;
   local carry = 0 ;
   local signal = "+" ;
   local old_len = 0 ;
   if bnum1 == nil or bnum2 == nil or bnum3 == nil then
      error("Function BigNum.add: parameter nil") ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      bnum1.signal = "+" ;
      BigNum.sub( bnum2 , bnum1 , bnum3 ) ;

      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      bnum2.signal = "+" ;
      BigNum.sub( bnum1 , bnum2 , bnum3 ) ;
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      signal = "-" ;
   end
   old_len = bnum3.len ;
   if bnum1.len > bnum2.len then
      maxlen = bnum1.len ;
   else
      maxlen = bnum2.len ;
      bnum1 , bnum2 = bnum2 , bnum1 ;
   end
   for i = 0 , maxlen - 1 do
      if bnum2[i] ~= nil then
         bnum3[i] = bnum1[i] + bnum2[i] + carry ;
      else
         bnum3[i] = bnum1[i] + carry ;
      end
      if bnum3[i] >= RADIX then
         bnum3[i] = bnum3[i] - RADIX ;
         carry = 1 ;
      else
         carry = 0 ;
      end
   end
   if carry == 1 then
      bnum3[maxlen] = 1 ;
   end
   bnum3.len = maxlen + carry ;
   bnum3.signal = signal ;
   for i = bnum3.len, old_len do
      bnum3[i] = nil ;
   end
   return 0 ;
end

function BigNum.sub( bnum1 , bnum2 , bnum3 )
   local maxlen = 0 ;
   local i = 0 ;
   local carry = 0 ;
   local old_len = 0 ;

   if bnum1 == nil or bnum2 == nil or bnum3 == nil then
      error("Function BigNum.sub: parameter nil") ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      bnum1.signal = "+" ;
      BigNum.add( bnum1 , bnum2 , bnum3 ) ;
      bnum3.signal = "-" ;
      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      bnum1.signal = "+" ;
      bnum2.signal = "+" ;
      BigNum.sub( bnum2, bnum1 , bnum3 ) ;
      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      bnum2.signal = "+" ;
      BigNum.add( bnum1 , bnum2 , bnum3 ) ;
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   end
   if BigNum.compareAbs( bnum1 , bnum2 ) == 2 then
      BigNum.sub( bnum2 , bnum1 , bnum3 ) ;
      bnum3.signal = "-" ;
      return 0 ;
   else
      maxlen = bnum1.len ;
   end
   old_len = bnum3.len ;
   bnum3.len = 0 ;
   for i = 0 , maxlen - 1 do
      if bnum2[i] ~= nil then
         bnum3[i] = bnum1[i] - bnum2[i] - carry ;
      else
         bnum3[i] = bnum1[i] - carry ;
      end
      if bnum3[i] < 0 then
         bnum3[i] = RADIX + bnum3[i] ;
         carry = 1 ;
      else
         carry = 0 ;
      end

      if bnum3[i] ~= 0 then
         bnum3.len = i + 1 ;
      end
   end
   bnum3.signal = "+" ;
   if bnum3.len == 0 then
      bnum3.len = 1 ;
      bnum3[0]  = 0 ;
   end
   if carry == 1 then
      error( "Error in function sub" ) ;
   end
   for i = bnum3.len , max( old_len , maxlen - 1 ) do
      bnum3[i] = nil ;
   end
   return 0 ;
end

function BigNum.half( bnum1 , bnum2 )
   local maxlen = bnum1.len ;
   local i = 0 ;
   if bnum1 == nil or bnum2 == nil then
      error("Function BigNum.half: parameter nil") ;
   end
   for i = maxlen, bnum2.len-1, 1 do
      bnum2[i] = nil ;
   end
   bnum2.len = maxlen
   local carry = 0
   if bnum1[maxlen-1]<2 then
     bnum2[maxlen-1]=nil
     bnum2.len=maxlen-1
     carry = bnum1[maxlen-1] % 2
   end
   for i = bnum2.len - 1,0,-1 do
     bnum2[i] = (bnum1[i] + carry * RADIX)//2
     carry = bnum1[i] % 2
   end
   bnum2.signal = bnum1.signal ;
   if bnum2.len == 0 then
      bnum2.len = 1 ;
      bnum2[0]  = 0 ;
   end
   return carry == 1 ;
end

function BigNum.eq( bnum1 , bnum2 )
   if BigNum.compare( bnum1 , bnum2 ) == 0 then
      return true ;
   else
      return false ;
   end
end

function BigNum.lt( bnum1 , bnum2 )
   if BigNum.compare( bnum1 , bnum2 ) == 2 then
      return true ;
   else
      return false ;
   end
end

function BigNum.le( bnum1 , bnum2 )
   local temp = -1 ;
   temp = BigNum.compare( bnum1 , bnum2 )
   if temp == 0 or temp == 2 then
      return true ;
   else
      return false ;
   end
end

function BigNum.compareAbs( bnum1 , bnum2 )
   if bnum1 == nil or bnum2 == nil then
      error("Function compare: parameter nil") ;
   elseif bnum1.len > bnum2.len then
      return 1 ;
   elseif bnum1.len < bnum2.len then
      return 2 ;
   else
      local i ;
      for i = bnum1.len - 1 , 0 , -1 do
         if bnum1[i] > bnum2[i] then
            return 1 ;
         elseif bnum1[i] < bnum2[i] then
            return 2 ;
         end
      end
   end
   return 0 ;
end

function BigNum.compare( bnum1 , bnum2 )
   local signal = 0 ;

   if bnum1 == nil or bnum2 == nil then
      error("Funtion BigNum.compare: parameter nil") ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      return 1 ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      return 2 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      signal = 1 ;
   end
   if bnum1.len > bnum2.len then
      return 1 + signal ;
   elseif bnum1.len < bnum2.len then
      return 2 - signal ;
   else
      local i ;
      for i = bnum1.len - 1 , 0 , -1 do
         if bnum1[i] > bnum2[i] then
            return 1 + signal ;
	 elseif bnum1[i] < bnum2[i] then
	    return 2 - signal ;
	 end
      end
   end
   return 0 ;
end

function BigNum.copy( bnum1 , bnum2 )
   if bnum1 ~= nil and bnum2 ~= nil then
      local i ;
      for i = 0 , bnum1.len - 1 do
         bnum2[i] = bnum1[i] ;
      end
      bnum2.len = bnum1.len ;
   else
      error("Function BigNum.copy: parameter nil") ;
   end
end

function BigNum.change( bnum1 , num )
   local j = 0 ;
   local len = 0  ;
   local num = num ;
   local l ;
   local oldLen = 0 ;
   if bnum1 == nil then
      error( "BigNum.change: parameter nil" ) ;
   elseif type( bnum1 ) ~= "table" then
      error( "BigNum.change: parameter error, type unexpected" ) ;
   elseif num == nil then
      bnum1.len = 1 ;
      bnum1[0] = 0 ;
      bnum1.signal = "+";
   elseif type( num ) == "table" and num.len ~= nil then  --check if num is a big number
      for i = 0 , num.len do
         bnum1[i] = num[i] ;
      end
      if num.signal ~= "-" and num.signal ~= "+" then
         bnum1.signal = "+" ;
      else
         bnum1.signal = num.signal ;
      end
      oldLen = bnum1.len ;
      bnum1.len = num.len ;
   elseif type( num ) == "string" or type( num ) == "number" then
      if string.sub( num , 1 , 1 ) == "+" or string.sub( num , 1 , 1 ) == "-" then
         bnum1.signal = string.sub( num , 1 , 1 ) ;
         num = string.sub(num, 2) ;
      else
         bnum1.signal = "+" ;
      end
      num = string.gsub( num , " " , "" )
      local sf = string.find( num , "e" )
      if sf ~= nil then
         local e = string.sub( num , sf + 1 )
         num = string.sub( num , 1 , sf - 1 )
         e = tonumber(e) ;
         if e ~= nil and e > 0 then
            e = tonumber(e) ;
         else
            error( "Function BigNum.change: string is not a valid number" ) ;
         end
         local dotpos=string.find(num..".","%.")
         num = string.gsub( num , "%." , "" )
         local dotshift = string.len(num)+1-dotpos
         for i = 1 , e do
            num = num .. "0"
         end
         if dotshift>0 then num = string.sub(num,1,-dotshift-1) end
      else
         sf = string.find( num , "%." ) ;
         if sf ~= nil then
            num = string.sub( num , 1 , sf - 1 ) ;
         end
      end

      l = string.len( num ) ;
      oldLen = bnum1.len ;
      if (l > RADIX_LEN) then
         local mod = l-( math.floor( l / RADIX_LEN ) * RADIX_LEN ) ;
         for i = 1 , l-mod, RADIX_LEN do
            bnum1[j] = tonumber( string.sub( num, -( i + RADIX_LEN - 1 ) , -i ) );
            --Check if string dosn't represents a number
            if bnum1[j] == nil then
               error( "Function BigNum.change: string is not a valid number" ) ;
               bnum1.len = 0 ;
               return 1 ;
            end
            j = j + 1 ;
            len = len + 1 ;
         end
         if (mod ~= 0) then
            bnum1[j] = tonumber( string.sub( num , 1 , mod ) ) ;
            bnum1.len = len + 1 ;
         else
            bnum1.len = len ;
         end
         for i = bnum1.len - 1 , 1 , -1 do
            if bnum1[i] == 0 then
               bnum1[i] = nil ;
               bnum1.len = bnum1.len - 1 ;
            else
               break ;
            end
         end

      else
         bnum1[j] = tonumber( num ) ;
         bnum1.len = 1 ;
      end
   else
      error( "Function BigNum.change: parameter error, type unexpected" ) ;
   end

   if oldLen ~= nil then
      for i = bnum1.len , oldLen do
         bnum1[i] = nil ;
      end
   end

   return 0 ;
end

function BigNum.put( bnum , int , pos )
   if bnum == nil then
      error("Function BigNum.put: parameter nil") ;
   end
   local i = 0 ;
   for i = 0 , pos - 1 do
      bnum[i] = 0 ;
   end
   bnum[pos] = int ;
   for i = pos + 1 , bnum.len do
      bnum[i] = nil ;
   end
   bnum.len = pos ;
   return 0 ;
end

function printraw( bnum )
   local i = 0 ;
   if bnum == nil then
      error( "Function printraw: parameter nil" ) ;
   end
   while 1 == 1 do
      if bnum[i] == nil then
         io.write( " len "..bnum.len ) ;
         if i ~= bnum.len then
            io.write( " ERROR! " ) ;
         end
         io.write( "\n" ) ;
         return 0 ;
      end
      io.write( "r"..bnum[i] ) ;
      i = i + 1 ;
   end
end

function max( int1 , int2 )
   if int1 > int2 then
      return int1 ;
   else
      return int2 ;
   end
end

function decr( bnum1 )
   local temp = {} ;
   temp = BigNum.new( "1" ) ;
   BigNum.sub( bnum1 , temp , bnum1 ) ;
   return 0 ;
end
---------------------------------------------

g.setbase(2)
g.setpos("0","0")

local false_literal = false
local true_literal = true
local bnParsec = BigNum.new("45097156992")
local bnParsecHalf = BigNum.mt.half(bnParsec)
local bnParsecQuarter = BigNum.mt.half(bnParsecHalf)
local bnAeon=bnParsec                   -- /c
local bnAeonHalf = bnParsecHalf         --/c  (c=1)
local bnTwoAeons=bnAeon+bnAeon          -- maybe I have to implement multiplication and division:)
local bnFourAeons=bnTwoAeons+bnTwoAeons -- -"-
local startGen = g.getgen()
local bnZero = BigNum.new(0)
local currentAeon = 0
local bnCurrentAeonBase = bnZero
local bnCurrentOffset
local nrGliderGPSECollisionsToShow = 10 -- 26 is maximum displayed, whatever bigger will be interrupted (there are 28 bits in total)
local lastfstep=11

while startGen>bnCurrentAeonBase + bnAeonHalf do
  bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
  currentAeon = currentAeon + 1
end
local startAeon = currentAeon

g.autoupdate(true_literal)

local function smoothmag(imag, fmag)
    while imag ~= fmag do
        if imag < fmag then
            imag = imag + 1
        else
            imag = imag - 1
        end
        g.setmag(imag)
        g.sleep(200)
    end
    return imag
end

local function run_for_to(n, targetAeon, targetgen, istep, fstep, mags, note)
    local bnTargetGen
    local bnN
    local magindex
    local enterAeon = currentAeon
    fstep = fstep or 11
    if targetAeon~=nil then
      if targetAeon+0>100 then
        targetAeon = nil
      end
    end
    if (targetgen ~= nil) and targetAeon ~= nil then
    	bnTargetGen = BigNum.new(targetgen)
        if targetAeon<currentAeon then
--          g.note(showtext.." - target Aeon smaller than current one ")
            return
        end
        while currentAeon < targetAeon do
            bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
            currentAeon = currentAeon + 1
        end
    end
    if (targetgen == nil or targetAeon==nil) and (n == nil) then
        g.note(showtext.." - run_for_to with unknown duration")
        return
    end
    bnCurrentOffset=BigNum.new(g.getgen()) - bnCurrentAeonBase
    local bnStartGen=startGen - bnCurrentAeonBase
    local bnEnterGen=bnCurrentOffset
    if n ~= nil then
        bnN = BigNum.new(n)
    end
    if (targetgen ~= nil) and (targetAeon~=nil) and (n ~= nil) then
       if bnN+bnEnterGen ~= bnTargetGen  then
          if bnStartGen > bnTargetGen then return end -- skipping milestones to restart
          if bnStartGen + bnN < bnTargetGen then -- must be script error
             if bnN+bnEnterGen > bnTargetGen+BigNum.new(2^lastfstep) then
            	g.note(showtext.."("..currentAeon..") : - run_for_to for not matching to "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
            	return
             end
          end
          --g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." running to first milestone after restart")
          bnN = bnTargetGen - bnEnterGen
       end
    end
    if (n==nil) then -- helper for editting at the end
	bnN = bnTargetGen - bnEnterGen
      --g.note(showtext.." : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    if (targetgen == nil or targetAeon == nil) then -- helper for editting
      bnTargetGen = bnN + bnEnterGen
      while bnTargetGen>bnAeonHalf do
        bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
        currentAeon = currentAeon + 1
        bnTargetGen = bnTargetGen - bnAeon
        bnEnterGen = bnEnterGen - bnAeon
      end
      g.setclipstr('run_for_to("'..BigNum.mt.tostring(bnN)..'", '..currentAeon..', "'..BigNum.mt.tostring(bnTargetGen)..'"')
      g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    local bnGen
    local sTargetGen = BigNum.mt.tostring(bnTargetGen)
    if bnN<=0 then return end
    local nn=BigNum.mt.tostring(bnN)
    istep = istep or math.min(30, math.floor(math.log(nn)/math.log(2))-6)
    local cstep = g.getstep()
    if cstep<fstep then cstep = fstep end
    if cstep>istep then cstep = istep end
    if mags then
        magindex = 1
        currmag = mags[magindex]
        g.setmag(currmag)
        magindex = magindex + 1
    end
    local bn3Eistep = BigNum.new(3*2^istep)
    g.setstep(cstep)
    while bnN > bnZero do
        g.show(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." i"..istep.." f"..fstep)

        while (istep > fstep) and (bnN < bn3Eistep) do
            istep = istep - 2
            if istep < 0 then istep = 0 end
            bn3Eistep = BigNum.new(3*2^istep)
            cstep = istep
            if mags and magindex <= #mags then
                currmag = smoothmag(currmag, mags[magindex])
                magindex = magindex + 1
            end
            g.setstep(cstep)
        end
        g.step()
        bnGen=BigNum.new(g.getgen()) - bnCurrentAeonBase
        bnN = bnTargetGen - bnGen
        cstep = g.getstep()
        if (cstep<istep) then -- owerwriting manual slowdown
          cstep = cstep+1
          g.setstep(cstep)
        end
        if (cstep>istep) then -- owerwriting manual speedup
          cstep = cstep-1
          g.setstep(cstep)
        end
    end
    lastfstep = fstep
    if (n==nil) and (enterAeon==currentAeon) then
      -- no explicit duration when Aeon boundary is crossed
      bnN=bnGen-bnEnterGen
      g.setclipstr('run_for_to("'..BigNum.mt.tostring(bnN)..'", '..currentAeon..', "'..BigNum.mt.tostring(bnTargetGen)..'"')
      g.note(showtext.."("..currentAeon..") : ".." final generation: "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnGen))
    end
    if note~=nil then
      g.note(note)
    end
end

local function run_from_to(bnN, targetAeon, bnTargetGen, istep, fstep, mags)
--bnTargetgen big number not nil (bnN==nil if to new Aeon)
  if bnN==nil then
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:nil")
    run_for_to(nil, targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  else
    local bnDuration = bnTargetGen - bnN
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:"..BigNum.mt.tostring(bnDuration))
    run_for_to(BigNum.mt.tostring(bnDuration), targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  end
end

local function distance_bits(prevTime)
  -- somehow when interrupted, restart skips to "remaining bits read"
  -- ... I should check why it happens, but it is method how to speed the show up,
  -- so it looks like desired feature.
  local bngcCollisionPos = bnParsecQuarter+0
  local bngcCollisionTime = -bnAeon-bnTwoAeons
  local collisionAeon=10 -- 3rd collision only
  local bnReadTime = -bnTwoAeons
  local gnPrevTime = BigNum.new(prevTime)
  local bngcCollisionTimeOffs
  local bnReadTimeOffs
  local i
  -- 12-8 12-4 12-2   12-1     12-0.5
  -- 12-6 12-3 12-1.5 12-0.75
  for i=3,nrGliderGPSECollisionsToShow,1 do
    bngcCollisionPos=BigNum.mt.half(bngcCollisionPos)
    bngcCollisionTime=BigNum.mt.half(bngcCollisionTime)
    bnReadTime=BigNum.mt.half(bnReadTime)
    if bnReadTime>-22000 then
      -- remaining bits should be processed extra
      break
    end
    bngcCollisionTimeOffs=bngcCollisionTime+bnAeon
    bnReadTimeOffs=bnReadTime+bnAeon
    if i==3 then -- Aeon exception
      bngcCollisionTimeOffs=bngcCollisionTimeOffs+bnAeon
    end
    g.setpos(BigNum.mt.tostring(bngcCollisionPos), BigNum.mt.tostring(bngcCollisionPos))
    showtext="Fast-forwarding to FSE glider with GPSE collision nr. "..i
    run_from_to(gnPrevTime, collisionAeon, bngcCollisionTimeOffs+2048, 30, 0, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
    gnPrevTime=bngcCollisionTimeOffs+4096
    run_for_to("2048", collisionAeon, gnPrevTime, nil, 0, {0})
    g.setpos(0, 0)
    showtext="Fast-forwarding to distance bit read nr. "..i
    if i==3 then
      gnPrevTime=nil
      collisionAeon=11
    end
    run_from_to(gnPrevTime, collisionAeon, bnReadTimeOffs+2048, 30, 0, {-30, -2})
    showtext="Note the gliders going from the center ..."
    gnPrevTime=bnReadTimeOffs+4128
    run_for_to(2080, collisionAeon, gnPrevTime, nil, 0, {0})
  end
end

showtext="Startng crash FSE"
g.setpos(BigNum.mt.tostring(bnParsec), BigNum.mt.tostring(bnParsec))
run_for_to("1024",0,"1024",4,4,{-1})
showtext="Startng crash FNW"
g.setpos(BigNum.mt.tostring(-bnParsec), BigNum.mt.tostring(-bnParsec))
run_for_to("1024",0,"2048",4,4,{-1})
showtext="Fast-forwarding to first collision of gliders from GPSEs..."
g.setpos(0,0)
run_for_to(nil, 4, "960", 30, 6, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
showtext="Note the gliders going  from the center..."
run_for_to("992", 4, "1952", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecHalf), BigNum.mt.tostring(bnParsecHalf))
showtext="Fast-forwarding to first FSW glider with GPSE collision..."
run_for_to(nil, 6, "448", 30, 2, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
run_for_to("2048", 6, "2496")
g.setpos(0, 0)
showtext="Fast-forwarding to first distance bit read ..."
run_for_to(nil,8,"1280",30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("1024", 8, "2304", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecQuarter), BigNum.mt.tostring(bnParsecQuarter))
showtext="Fast-forwarding to second FSE glider with GPSE collision..."
run_for_to(nil, 9, "1184", 30,2,{-30,-27,-24,-21,-18,-16, -14, -12, -10, -8, -6, -4, -2, 0})
run_for_to("2048", 9, "3232")
g.setpos(0, 0)
showtext="Fast-forwarding to second distance bit read ..."
run_for_to(nil,10, "-1088", 30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("2048", 10, "3168", 4, 4, {0})
showtext="Fast-forwarding to first inserted MWSS bits ... here only 28 bits are encoded in pattern size"
run_for_to("194952", 10, "198120", nil, 4, {-24, -16, -8, -4, -2, 0})
showtext="Each inserted bit reduces pattern dimensions to half, there will be no chance to wait for result without the reduction"
run_for_to("1600", 10, "199720", nil, nil, {0})
showtextbase="Transform the initial crash site into a usable blinker elbow"
showtext=showtextbase
showtextbase="Building LWSS seed and blocks"
showtext=showtextbase
run_for_to("16449536",10,"16649256",nil,nil,nil,nil)
showtext=showtextbase..
" - Creating block needed for ECCA construction and another one to construct a GPSE stopper"run_for_to("21102592",10,"37751848",nil,nil,nil,nil)
showtext=showtextbase..
" - LWSS seed construction started"run_for_to("33882112",10,"71633960",nil,nil,nil,nil)
showtext=showtextbase..
" - LWSS seed construction ended, stackbottom repositioning starts"run_for_to("125435904",10,"197069864",nil,nil,{0,-3},nil)
g.setpos("600", "-600")
showtext=showtextbase..
" - Stackbottom repositioning ended"run_for_to("838074368",10,"1035144232",nil,nil,nil,nil)
showtextbase="Building glider seed"
showtext=showtextbase
g.setpos("1200", "-1200")
showtext=showtextbase..
" - Creating target block for glider seed"showtext=showtextbase..
" - Start of glider seed recipe"run_for_to("16580608",10,"1051724840",nil,nil,nil,nil)
showtext=showtextbase..
" - End of glider seed recipe"run_for_to("80740352",10,"1132465192",nil,nil,nil,nil)
showtext=showtextbase..
" - Switch to stack items better for long fills"run_for_to("2228224",10,"1134693416",nil,nil,{0,-2},nil)
g.setpos("600", "-1400")
showtextbase="Creating synced glider pair to invoke the seeds to create distant target"
showtext=showtextbase
showtext=showtextbase..
" - Creating long gap on the stack"showtext=showtextbase..
" - You may notice the last 3 pairs of beehive pairs differ from he rest"run_for_to("35782656",10,"1170476072",nil,nil,nil,nil)
showtext=showtextbase..
" - Expensive transformation to standard stack items ended"run_for_to("10616832",10,"1181092904",nil,nil,nil,nil)
showtext=showtextbase..
" - Target for the subrecipe created, glider pair seed recipe starts"run_for_to("12845056",10,"1193937960",nil,nil,nil,nil)
showtext=showtextbase..
" - Glider pair seed recipe ended"run_for_to("101842944",10,"1295780904",nil,nil,nil,nil)
showtextbase="Distant target creation seed activation"
showtext=showtextbase
run_for_to("3407872",10,"1299188776",nil,nil,nil,nil)
showtextbase="Distant target creation seed activated"
showtext=showtextbase
run_for_to("65536",10,"1299254312",nil,nil,nil,nil)
showtext=showtextbase..
" - Stack have to return to the position to build DBCA"run_for_to("1638400",10,"1300892712",nil,nil,nil,nil)
showtext=showtextbase..
" - Stack returned  to the position to build DBCA"run_for_to("3145728",10,"1304038440",nil,nil,nil,nil)
showtextbase="(Green) DBCA building recipe applied to the distant target, including cordership activation seed, the most expensive part of the RCT15 constant part "
showtext=showtextbase
showtext=showtextbase..
" - (Green) DBCA sleeping pattern is ready, we have to replace the stack by reflector targets to ignite the corderships"run_for_to("24649596928",11,"-19143521624",nil,nil,nil,nil)
showtextbase="Building 2 target blinkers for DBCA reflectors, 1 target blinker for ECCA reflectors and glider to activate the cordership"
showtext=showtextbase
run_for_to("10682368",11,"-19132839256",nil,nil,nil,nil)
showtext=showtextbase..
" - Big move of stack bottom to ECCA target starts. It uses easily destroyable filler."showtext=showtextbase..
" - Expensive part converting stack top to blinker."run_for_to("20578304",11,"-19112260952",nil,nil,nil,nil)
showtext=showtextbase..
" - Filler removal."run_for_to("11141120",11,"-19101119832",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating ECCA reflector target from 1st DBCA reflector target was created"run_for_to("10354688",11,"-19090765144",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating 1st DBCA reflector target from 2nd DBCA reflector target was created"run_for_to("6029312",11,"-19084735832",nil,nil,nil,nil)
showtext=showtextbase..
" - Gap separating glider construction stack from the reflector targets created"run_for_to("6881280",11,"-19077854552",nil,nil,nil,nil)
showtextbase="Activating the cordership to start DBCA reflectors"
showtext=showtextbase
run_for_to("13303808",11,"-19064550744",nil,nil,nil,nil)
showtextbase="DBCA reflectors activated"
showtext=showtextbase
run_for_to("65536",11,"-19064485208",nil,nil,nil,nil)
showtextbase="remnants of the original arm removed, green DBCA activated"
showtext=showtextbase
run_for_to("589824",11,"-19063895384",nil,nil,nil,nil)
showtextbase="Creating eater at the Green line and White target using Green DBCA"
showtext=showtextbase
showtextbase="Green portion of DBCA really finished, White portion construction begins"
showtext=showtextbase
run_for_to("18874368",11,"-19045021016",nil,nil,nil,nil)
showtextbase="Decoder and better construction arm (DBCA) finished"
showtext=showtextbase
run_for_to("536936448",11,"-18508084568",nil,nil,{-2,-3},nil)
showtext=showtextbase..
" - Half of 1044 gliders absorber finished"run_for_to("15925248",11,"-18492159320",nil,nil,nil,nil)
showtext=showtextbase..
" - cleanup of the PI explosion from the initial GPSE collision starts"g.setpos("0", "0")
showtext=showtextbase..
" - cleanup of the PI explosion from the initial GPSE collision ended,"run_for_to("34996224",11,"-18457163096",nil,nil,nil,nil)
showtext=showtextbase..
" - GPSE stopping block positioned"run_for_to("5701632",11,"-18451461464",nil,nil,nil,nil)
showtextbase="Releasing first glider FSE"
showtext=showtextbase
run_for_to("7995392",11,"-18443466072",nil,nil,nil,nil)
showtext=showtextbase..
" - Releasing second glider FSE"run_for_to("4325376",11,"-18439140696",nil,nil,nil,nil)
showtextbase="Releasing third glider FSE"
showtext=showtextbase
run_for_to("4325376",11,"-18434815320",nil,nil,nil,nil)
showtext=showtextbase..
" - Target for ECCA construction and SW switching circuitry ready"run_for_to("1835008",11,"-18432980312",nil,nil,nil,nil)
showtextbase="Creating ECCA (Fake)"
showtext=showtextbase
showtextbase="Fake ECCA built"
showtext=showtextbase
run_for_to("31457280",11,"-18401523032",nil,nil,nil,nil)
showtext=showtextbase..
" - Switch FSE"g.setpos("0", "0")
showtext=showtextbase..
" - Switch FSE ready"run_for_to("180289536",11,"-18221233496",nil,nil,{0,0},nil)
g.setpos("0", "0")
showtextbase="Switched FSE"
showtext=showtextbase
run_for_to("3473408",11,"-18217760088",nil,nil,{0,-4},'debug switching next bit')
g.setpos("500", "-500")
showtextbase="And this is end so far"
showtext=showtextbase
run_for_to("1414856704",11,"-16802903384",nil,nil,nil,'work in progress,\n Note that this scripts allow you restart at any generation.\n You can stop it, watch a detail and restart afterwards to let show continue.')
showtextbase="First glider arrived to FSE"
showtext=showtextbase
run_for_to("178748065280",15,"-18443466072",nil,nil,nil,nil)
g.setpos("45097156992", "45097156992")
showtext=showtextbase..
" - Second glider arrived to FSE"run_for_to("4325376",15,"-18439140696",nil,nil,nil,nil)
showtextbase="Third glider arrived to FSE"
showtext=showtextbase
run_for_to("4325376",15,"-18434815320",nil,nil,nil,nil)
showtext=showtextbase..
" - Switched FSE"run_for_to("217055232",15,"-18217760088",nil,nil,{-4,-1},'debug switching next bit')
g.setpos("45097156992", "45097156992")
showtextbase="FSE Cleanup"
showtext=showtextbase
run_for_to("65536",15,"-18217694552",nil,nil,{-1,-1},'debug')
g.setpos("45097156992", "45097156992")
showtextbase="FSE Cleanup finished"
showtext=showtextbase
run_for_to("24969216",15,"-18192725336",nil,nil,nil,'cleanup ended')
g.setpos("45097156992", "45097156992")
showtextbase="Building FSE corderabsorbers"
showtext=showtextbase
run_for_to("573898752",15,"-17618826584",nil,nil,{-1,-2},'debug?')
g.setpos("45097157292", "45097157092")
showtextbase="FSE corderabsorbers ready"
showtext=showtextbase
run_for_to("812384256",15,"-16806442328",nil,nil,nil,'debug FSE corderabsorbers ready')

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » January 27th, 2024, 9:49 am

Hippo.69 wrote:
January 20th, 2024, 10:29 am
BTW: For starting semistates 0,2,5,7 optimal bit FSE programs are for number of even lines in range 906-1052
For starting semistates 1,3,4,6 optimal bit programs are for number of even lines in range 914-1053
So I am working on a cheap n-gliders absorber for these ranges (914-1052) ... (I can compile for prescribed number of even lines).
1044 gliders absorber requires one block and one eater (so trash 404 from white construction would be used as a target).
I have decided for 1045 gliders absorber (due to its simplicity), but I had bug in positioning of the reflectors, after beamwidth 100 recomputed salvo, the even number of lines were in the range. Now when I have finished beamwidth 1000 search and the salvo is by about 30 gliders shorter, I am not sure it will be in the optimal range. It could happen I would choose another number of gliders to be absorbed ... so recomputing one of the absorbers parts, fortunately, they are rather simple. Fortunately optimum range is from 945 to 1098 even gliders (and I bet it would not differ too much when ECCA program changes), so no need for change.

In any case I am stuck. I have to find fast enough comp to compute working ECCA. (Now I am on 76% of "fast" computing ECCA portion having only inc4 instruction to test correctness of positioning/timing). It would be fine to have working ECCA to test rest of the RCT15 program.
(Ignoring fact we do not have seed of destroyal prepared yet).

Unfortunately the target pattern for testing ECCA was wrong. (I have repositioned FSE reflectors and compansated them by shifting p256 starting turners to got p256 sync. But the reaction envelope of the east turner colides with the blocks of HB64 from the p256 gun.)
Unfortunately, the turner cannot be easily repositioned so it would be better to return to the original position shifted 4fd SE. (Both in ECCA one time turners to start the ECCA, and FSE reflectors as well. Recomputation of FSE reflectors would not be that big problem and ECCA should be recomputed anyways. I have planned to use p8 reflector to reset the ECCA whenever signal 2 comes (signal 1 does reset naturaly), but I forgot the other output of the bistable switch should be closed as this is the last (the only) bistable switch. Recomputing this fake ECCA is very time consuming so I prefere the solution to stop the view and correct the positions manualy ... Now while position of FSE reflectors is not corrected, the wrong p256 synchronization causes inc4+reset instruction to do just inc1 and "the other reset should be corrected", anyway the FSE destroyal and glider comming to hit the destroyal seed worked well.

Hmm, I have added one extra glider to the Build FSE reflectors recipe (to anihilate some p1 trash) and the length of the DBCA bit sequence is now 67194, rather to previous 67371. I have expected I would not prolong the sequence as I have carefully chosen the place, but 59*3 bits shortening surprised me. Let us hope I would not need to switch the parity back.

Code: Select all


local showtext, showtextbase = "", ""
local g = golly()

-----------------------------------------------------
local RADIX_LEN = 6 ;
local RADIX_FIL = "000000" ; -- length >= RADIX_LEN
local RADIX = 10^RADIX_LEN ;

BigNum = {} ;
BigNum.mt = {} ;

function BigNum.new( num )
   local bignum = {} ;
   setmetatable( bignum , BigNum.mt ) ;
   BigNum.change( bignum , num ) ;
   return bignum ;
end

function BigNum.mt.sub( num1 , num2 )
   local temp = BigNum.new() ;
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   BigNum.sub( bnum1 , bnum2 , temp ) ;
   return temp ;
end

function BigNum.mt.add( num1 , num2 )
   local temp = BigNum.new() ;
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   BigNum.add( bnum1 , bnum2 , temp ) ;
   return temp ;
end

function BigNum.mt.tostring( bnum )
   local i = 0
   local j
   local temp = ""
   local str
   local dotpos
   if bnum == nil then
      return "nil"
   elseif bnum.len > 0 then
      for i = bnum.len - 2 , 0 , -1  do
         str = tostring(bnum[i])
         dotpos = string.find(str..".","%.")
         temp = temp .. string.sub(RADIX_FIL..string.sub(str,1,dotpos-1),-RADIX_LEN)
      end
      str = tostring(bnum[bnum.len - 1])
      dotpos = string.find(str..".","%.")
      temp = string.sub(str,1,dotpos-1) .. temp
      if bnum.signal == '-' then
         temp = bnum.signal .. temp
      end
      return temp
   else
      return ""
   end
end

function BigNum.mt.eq( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.eq( bnum1 , bnum2 ) ;
end

function BigNum.mt.lt( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.lt( bnum1 , bnum2 ) ;
end

function BigNum.mt.le( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.le( bnum1 , bnum2 ) ;
end

function BigNum.mt.unm( num )
   local ret = BigNum.new( num )
   if ret.signal == "+" then
      ret.signal = "-"
   else
      ret.signal = "+"
   end
   return ret
end

function BigNum.mt.half( num )
   local ret = BigNum.new()
   local bnum = BigNum.new( num ) ;
   BigNum.half( bnum , ret ) ;
   return ret ;
end

BigNum.mt.__metatable = "hidden"
BigNum.mt.__tostring  = BigNum.mt.tostring ;
BigNum.mt.__add = BigNum.mt.add ;
BigNum.mt.__sub = BigNum.mt.sub ;
BigNum.mt.__unm = BigNum.mt.unm ;
BigNum.mt.__eq = BigNum.mt.eq   ;
BigNum.mt.__le = BigNum.mt.le   ;
BigNum.mt.__lt = BigNum.mt.lt   ;

setmetatable( BigNum.mt, { __index = "inexistent field", __newindex = "not available", __metatable="hidden" } ) ;

function BigNum.add( bnum1 , bnum2 , bnum3 )
   local maxlen = 0 ;
   local i = 0 ;
   local carry = 0 ;
   local signal = "+" ;
   local old_len = 0 ;
   if bnum1 == nil or bnum2 == nil or bnum3 == nil then
      error("Function BigNum.add: parameter nil") ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      bnum1.signal = "+" ;
      BigNum.sub( bnum2 , bnum1 , bnum3 ) ;

      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      bnum2.signal = "+" ;
      BigNum.sub( bnum1 , bnum2 , bnum3 ) ;
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      signal = "-" ;
   end
   old_len = bnum3.len ;
   if bnum1.len > bnum2.len then
      maxlen = bnum1.len ;
   else
      maxlen = bnum2.len ;
      bnum1 , bnum2 = bnum2 , bnum1 ;
   end
   for i = 0 , maxlen - 1 do
      if bnum2[i] ~= nil then
         bnum3[i] = bnum1[i] + bnum2[i] + carry ;
      else
         bnum3[i] = bnum1[i] + carry ;
      end
      if bnum3[i] >= RADIX then
         bnum3[i] = bnum3[i] - RADIX ;
         carry = 1 ;
      else
         carry = 0 ;
      end
   end
   if carry == 1 then
      bnum3[maxlen] = 1 ;
   end
   bnum3.len = maxlen + carry ;
   bnum3.signal = signal ;
   for i = bnum3.len, old_len do
      bnum3[i] = nil ;
   end
   return 0 ;
end

function BigNum.sub( bnum1 , bnum2 , bnum3 )
   local maxlen = 0 ;
   local i = 0 ;
   local carry = 0 ;
   local old_len = 0 ;

   if bnum1 == nil or bnum2 == nil or bnum3 == nil then
      error("Function BigNum.sub: parameter nil") ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      bnum1.signal = "+" ;
      BigNum.add( bnum1 , bnum2 , bnum3 ) ;
      bnum3.signal = "-" ;
      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      bnum1.signal = "+" ;
      bnum2.signal = "+" ;
      BigNum.sub( bnum2, bnum1 , bnum3 ) ;
      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      bnum2.signal = "+" ;
      BigNum.add( bnum1 , bnum2 , bnum3 ) ;
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   end
   if BigNum.compareAbs( bnum1 , bnum2 ) == 2 then
      BigNum.sub( bnum2 , bnum1 , bnum3 ) ;
      bnum3.signal = "-" ;
      return 0 ;
   else
      maxlen = bnum1.len ;
   end
   old_len = bnum3.len ;
   bnum3.len = 0 ;
   for i = 0 , maxlen - 1 do
      if bnum2[i] ~= nil then
         bnum3[i] = bnum1[i] - bnum2[i] - carry ;
      else
         bnum3[i] = bnum1[i] - carry ;
      end
      if bnum3[i] < 0 then
         bnum3[i] = RADIX + bnum3[i] ;
         carry = 1 ;
      else
         carry = 0 ;
      end

      if bnum3[i] ~= 0 then
         bnum3.len = i + 1 ;
      end
   end
   bnum3.signal = "+" ;
   if bnum3.len == 0 then
      bnum3.len = 1 ;
      bnum3[0]  = 0 ;
   end
   if carry == 1 then
      error( "Error in function sub" ) ;
   end
   for i = bnum3.len , max( old_len , maxlen - 1 ) do
      bnum3[i] = nil ;
   end
   return 0 ;
end

function BigNum.half( bnum1 , bnum2 )
   local maxlen = bnum1.len ;
   local i = 0 ;
   if bnum1 == nil or bnum2 == nil then
      error("Function BigNum.half: parameter nil") ;
   end
   for i = maxlen, bnum2.len-1, 1 do
      bnum2[i] = nil ;
   end
   bnum2.len = maxlen
   local carry = 0
   if bnum1[maxlen-1]<2 then
     bnum2[maxlen-1]=nil
     bnum2.len=maxlen-1
     carry = bnum1[maxlen-1] % 2
   end
   for i = bnum2.len - 1,0,-1 do
     bnum2[i] = (bnum1[i] + carry * RADIX)//2
     carry = bnum1[i] % 2
   end
   bnum2.signal = bnum1.signal ;
   if bnum2.len == 0 then
      bnum2.len = 1 ;
      bnum2[0]  = 0 ;
   end
   return carry == 1 ;
end

function BigNum.eq( bnum1 , bnum2 )
   if BigNum.compare( bnum1 , bnum2 ) == 0 then
      return true ;
   else
      return false ;
   end
end

function BigNum.lt( bnum1 , bnum2 )
   if BigNum.compare( bnum1 , bnum2 ) == 2 then
      return true ;
   else
      return false ;
   end
end

function BigNum.le( bnum1 , bnum2 )
   local temp = -1 ;
   temp = BigNum.compare( bnum1 , bnum2 )
   if temp == 0 or temp == 2 then
      return true ;
   else
      return false ;
   end
end

function BigNum.compareAbs( bnum1 , bnum2 )
   if bnum1 == nil or bnum2 == nil then
      error("Function compare: parameter nil") ;
   elseif bnum1.len > bnum2.len then
      return 1 ;
   elseif bnum1.len < bnum2.len then
      return 2 ;
   else
      local i ;
      for i = bnum1.len - 1 , 0 , -1 do
         if bnum1[i] > bnum2[i] then
            return 1 ;
         elseif bnum1[i] < bnum2[i] then
            return 2 ;
         end
      end
   end
   return 0 ;
end

function BigNum.compare( bnum1 , bnum2 )
   local signal = 0 ;

   if bnum1 == nil or bnum2 == nil then
      error("Funtion BigNum.compare: parameter nil") ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      return 1 ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      return 2 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      signal = 1 ;
   end
   if bnum1.len > bnum2.len then
      return 1 + signal ;
   elseif bnum1.len < bnum2.len then
      return 2 - signal ;
   else
      local i ;
      for i = bnum1.len - 1 , 0 , -1 do
         if bnum1[i] > bnum2[i] then
            return 1 + signal ;
	 elseif bnum1[i] < bnum2[i] then
	    return 2 - signal ;
	 end
      end
   end
   return 0 ;
end

function BigNum.copy( bnum1 , bnum2 )
   if bnum1 ~= nil and bnum2 ~= nil then
      local i ;
      for i = 0 , bnum1.len - 1 do
         bnum2[i] = bnum1[i] ;
      end
      bnum2.len = bnum1.len ;
   else
      error("Function BigNum.copy: parameter nil") ;
   end
end

function BigNum.change( bnum1 , num )
   local j = 0 ;
   local len = 0  ;
   local num = num ;
   local l ;
   local oldLen = 0 ;
   if bnum1 == nil then
      error( "BigNum.change: parameter nil" ) ;
   elseif type( bnum1 ) ~= "table" then
      error( "BigNum.change: parameter error, type unexpected" ) ;
   elseif num == nil then
      bnum1.len = 1 ;
      bnum1[0] = 0 ;
      bnum1.signal = "+";
   elseif type( num ) == "table" and num.len ~= nil then  --check if num is a big number
      for i = 0 , num.len do
         bnum1[i] = num[i] ;
      end
      if num.signal ~= "-" and num.signal ~= "+" then
         bnum1.signal = "+" ;
      else
         bnum1.signal = num.signal ;
      end
      oldLen = bnum1.len ;
      bnum1.len = num.len ;
   elseif type( num ) == "string" or type( num ) == "number" then
      if string.sub( num , 1 , 1 ) == "+" or string.sub( num , 1 , 1 ) == "-" then
         bnum1.signal = string.sub( num , 1 , 1 ) ;
         num = string.sub(num, 2) ;
      else
         bnum1.signal = "+" ;
      end
      num = string.gsub( num , " " , "" )
      local sf = string.find( num , "e" )
      if sf ~= nil then
         local e = string.sub( num , sf + 1 )
         num = string.sub( num , 1 , sf - 1 )
         e = tonumber(e) ;
         if e ~= nil and e > 0 then
            e = tonumber(e) ;
         else
            error( "Function BigNum.change: string is not a valid number" ) ;
         end
         local dotpos=string.find(num..".","%.")
         num = string.gsub( num , "%." , "" )
         local dotshift = string.len(num)+1-dotpos
         for i = 1 , e do
            num = num .. "0"
         end
         if dotshift>0 then num = string.sub(num,1,-dotshift-1) end
      else
         sf = string.find( num , "%." ) ;
         if sf ~= nil then
            num = string.sub( num , 1 , sf - 1 ) ;
         end
      end

      l = string.len( num ) ;
      oldLen = bnum1.len ;
      if (l > RADIX_LEN) then
         local mod = l-( math.floor( l / RADIX_LEN ) * RADIX_LEN ) ;
         for i = 1 , l-mod, RADIX_LEN do
            bnum1[j] = tonumber( string.sub( num, -( i + RADIX_LEN - 1 ) , -i ) );
            --Check if string dosn't represents a number
            if bnum1[j] == nil then
               error( "Function BigNum.change: string is not a valid number" ) ;
               bnum1.len = 0 ;
               return 1 ;
            end
            j = j + 1 ;
            len = len + 1 ;
         end
         if (mod ~= 0) then
            bnum1[j] = tonumber( string.sub( num , 1 , mod ) ) ;
            bnum1.len = len + 1 ;
         else
            bnum1.len = len ;
         end
         for i = bnum1.len - 1 , 1 , -1 do
            if bnum1[i] == 0 then
               bnum1[i] = nil ;
               bnum1.len = bnum1.len - 1 ;
            else
               break ;
            end
         end

      else
         bnum1[j] = tonumber( num ) ;
         bnum1.len = 1 ;
      end
   else
      error( "Function BigNum.change: parameter error, type unexpected" ) ;
   end

   if oldLen ~= nil then
      for i = bnum1.len , oldLen do
         bnum1[i] = nil ;
      end
   end

   return 0 ;
end

function BigNum.put( bnum , int , pos )
   if bnum == nil then
      error("Function BigNum.put: parameter nil") ;
   end
   local i = 0 ;
   for i = 0 , pos - 1 do
      bnum[i] = 0 ;
   end
   bnum[pos] = int ;
   for i = pos + 1 , bnum.len do
      bnum[i] = nil ;
   end
   bnum.len = pos ;
   return 0 ;
end

function printraw( bnum )
   local i = 0 ;
   if bnum == nil then
      error( "Function printraw: parameter nil" ) ;
   end
   while 1 == 1 do
      if bnum[i] == nil then
         io.write( " len "..bnum.len ) ;
         if i ~= bnum.len then
            io.write( " ERROR! " ) ;
         end
         io.write( "\n" ) ;
         return 0 ;
      end
      io.write( "r"..bnum[i] ) ;
      i = i + 1 ;
   end
end

function max( int1 , int2 )
   if int1 > int2 then
      return int1 ;
   else
      return int2 ;
   end
end

function decr( bnum1 )
   local temp = {} ;
   temp = BigNum.new( "1" ) ;
   BigNum.sub( bnum1 , temp , bnum1 ) ;
   return 0 ;
end
---------------------------------------------

g.setbase(2)
g.setpos("0","0")

local false_literal = false
local true_literal = true
local bnParsec = BigNum.new("45097156992")
local bnParsecHalf = BigNum.mt.half(bnParsec)
local bnParsecQuarter = BigNum.mt.half(bnParsecHalf)
local bnAeon=bnParsec                   -- /c
local bnAeonHalf = bnParsecHalf         --/c  (c=1)
local bnTwoAeons=bnAeon+bnAeon          -- maybe I have to implement multiplication and division:)
local bnFourAeons=bnTwoAeons+bnTwoAeons -- -"-
local startGen = g.getgen()
local bnZero = BigNum.new(0)
local currentAeon = 0
local bnCurrentAeonBase = bnZero
local bnCurrentOffset
local nrGliderGPSECollisionsToShow = 10 -- 26 is maximum displayed, whatever bigger will be interrupted (there are 28 bits in total)
local lastfstep=11

while startGen>bnCurrentAeonBase + bnAeonHalf do
  bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
  currentAeon = currentAeon + 1
end
local startAeon = currentAeon

g.autoupdate(true_literal)

local function smoothmag(imag, fmag)
    while imag ~= fmag do
        if imag < fmag then
            imag = imag + 1
        else
            imag = imag - 1
        end
        g.setmag(imag)
        g.sleep(200)
    end
    return imag
end

local function run_for_to(n, targetAeon, targetgen, istep, fstep, mags, note)
    local bnTargetGen
    local bnN
    local magindex
    local enterAeon = currentAeon
    fstep = fstep or 11
    if targetAeon~=nil then
      if targetAeon+0>100 then
        targetAeon = nil
      end
    end
    if (targetgen ~= nil) and targetAeon ~= nil then
    	bnTargetGen = BigNum.new(targetgen)
        if targetAeon<currentAeon then
--          g.note(showtext.." - target Aeon smaller than current one ")
            return
        end
        while currentAeon < targetAeon do
            bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
            currentAeon = currentAeon + 1
        end
    end
    if (targetgen == nil or targetAeon==nil) and (n == nil) then
        g.note(showtext.." - run_for_to with unknown duration")
        return
    end
    bnCurrentOffset=BigNum.new(g.getgen()) - bnCurrentAeonBase
    local bnStartGen=startGen - bnCurrentAeonBase
    local bnEnterGen=bnCurrentOffset
    if n ~= nil then
        bnN = BigNum.new(n)
    end
    if (targetgen ~= nil) and (targetAeon~=nil) and (n ~= nil) then
       if bnN+bnEnterGen ~= bnTargetGen  then
          if bnStartGen > bnTargetGen then return end -- skipping milestones to restart
          if bnStartGen + bnN < bnTargetGen then -- must be script error
             if bnN+bnEnterGen > bnTargetGen+BigNum.new(2^lastfstep) then
            	g.note(showtext.."("..currentAeon..") : - run_for_to for not matching to "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
            	return
             end
          end
          --g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." running to first milestone after restart")
          bnN = bnTargetGen - bnEnterGen
       end
    end
    if (n==nil) then -- helper for editting at the end
	bnN = bnTargetGen - bnEnterGen
      --g.note(showtext.." : "..BigNum.mt.tostring(bnGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    if (targetgen == nil or targetAeon == nil) then -- helper for editting
      bnTargetGen = bnN + bnEnterGen
      while bnTargetGen>bnAeonHalf do
        bnCurrentAeonBase = bnCurrentAeonBase + bnAeon
        currentAeon = currentAeon + 1
        bnTargetGen = bnTargetGen - bnAeon
        bnEnterGen = bnEnterGen - bnAeon
      end
      g.setclipstr('run_for_to("'..BigNum.mt.tostring(bnN)..'", '..currentAeon..', "'..BigNum.mt.tostring(bnTargetGen)..'"')
      g.note(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen))
    end
    local bnGen
    local sTargetGen = BigNum.mt.tostring(bnTargetGen)
    if bnN<=0 then return end
    local nn=BigNum.mt.tostring(bnN)
    istep = istep or math.min(30, math.floor(math.log(nn)/math.log(2))-6)
    local cstep = g.getstep()
    if cstep<fstep then cstep = fstep end
    if cstep>istep then cstep = istep end
    if mags then
        magindex = 1
        currmag = mags[magindex]
        g.setmag(currmag)
        magindex = magindex + 1
    end
    local bn3Eistep = BigNum.new(3*2^istep)
    g.setstep(cstep)
    while bnN > bnZero do
        g.show(showtext.."("..currentAeon..") : "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnTargetGen).." i"..istep.." f"..fstep)

        while (istep > fstep) and (bnN < bn3Eistep) do
            istep = istep - 2
            if istep < 0 then istep = 0 end
            bn3Eistep = BigNum.new(3*2^istep)
            cstep = istep
            if mags and magindex <= #mags then
                currmag = smoothmag(currmag, mags[magindex])
                magindex = magindex + 1
            end
            g.setstep(cstep)
        end
        g.step()
        bnGen=BigNum.new(g.getgen()) - bnCurrentAeonBase
        bnN = bnTargetGen - bnGen
        cstep = g.getstep()
        if (cstep<istep) then -- owerwriting manual slowdown
          cstep = cstep+1
          g.setstep(cstep)
        end
        if (cstep>istep) then -- owerwriting manual speedup
          cstep = cstep-1
          g.setstep(cstep)
        end
    end
    lastfstep = fstep
    if (n==nil) and (enterAeon==currentAeon) then
      -- no explicit duration when Aeon boundary is crossed
      bnN=bnGen-bnEnterGen
      g.setclipstr('run_for_to("'..BigNum.mt.tostring(bnN)..'", '..currentAeon..', "'..BigNum.mt.tostring(bnTargetGen)..'"')
      g.note(showtext.."("..currentAeon..") : ".." final generation: "..BigNum.mt.tostring(bnEnterGen).." + "..BigNum.mt.tostring(bnN).."->"..BigNum.mt.tostring(bnGen))
    end
    if note~=nil then
      g.note(note)
    end
end

local function run_from_to(bnN, targetAeon, bnTargetGen, istep, fstep, mags)
--bnTargetgen big number not nil (bnN==nil if to new Aeon)
  if bnN==nil then
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:nil")
    run_for_to(nil, targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  else
    local bnDuration = bnTargetGen - bnN
    --g.note("T:"..BigNum.mt.tostring(bnTargetGen).." D:"..BigNum.mt.tostring(bnDuration))
    run_for_to(BigNum.mt.tostring(bnDuration), targetAeon, BigNum.mt.tostring(bnTargetGen), istep, fstep, mags)
  end
end

local function distance_bits(prevTime)
  -- somehow when interrupted, restart skips to "remaining bits read"
  -- ... I should check why it happens, but it is method how to speed the show up,
  -- so it looks like desired feature.
  local bngcCollisionPos = bnParsecQuarter+0
  local bngcCollisionTime = -bnAeon-bnTwoAeons
  local collisionAeon=10 -- 3rd collision only
  local bnReadTime = -bnTwoAeons
  local gnPrevTime = BigNum.new(prevTime)
  local bngcCollisionTimeOffs
  local bnReadTimeOffs
  local i
  -- 12-8 12-4 12-2   12-1     12-0.5
  -- 12-6 12-3 12-1.5 12-0.75
  for i=3,nrGliderGPSECollisionsToShow,1 do
    bngcCollisionPos=BigNum.mt.half(bngcCollisionPos)
    bngcCollisionTime=BigNum.mt.half(bngcCollisionTime)
    bnReadTime=BigNum.mt.half(bnReadTime)
    if bnReadTime>-22000 then
      -- remaining bits should be processed extra
      break
    end
    bngcCollisionTimeOffs=bngcCollisionTime+bnAeon
    bnReadTimeOffs=bnReadTime+bnAeon
    if i==3 then -- Aeon exception
      bngcCollisionTimeOffs=bngcCollisionTimeOffs+bnAeon
    end
    g.setpos(BigNum.mt.tostring(bngcCollisionPos), BigNum.mt.tostring(bngcCollisionPos))
    showtext="Fast-forwarding to FSE glider with GPSE collision nr. "..i
    run_from_to(gnPrevTime, collisionAeon, bngcCollisionTimeOffs+2048, 30, 0, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
    gnPrevTime=bngcCollisionTimeOffs+4096
    run_for_to("2048", collisionAeon, gnPrevTime, nil, 0, {0})
    g.setpos(0, 0)
    showtext="Fast-forwarding to distance bit read nr. "..i
    if i==3 then
      gnPrevTime=nil
      collisionAeon=11
    end
    run_from_to(gnPrevTime, collisionAeon, bnReadTimeOffs+2048, 30, 0, {-30, -2})
    showtext="Note the gliders going from the center ..."
    gnPrevTime=bnReadTimeOffs+4128
    run_for_to(2080, collisionAeon, gnPrevTime, nil, 0, {0})
  end
end

showtext="Startng crash FSE"
g.setpos(BigNum.mt.tostring(bnParsec), BigNum.mt.tostring(bnParsec))
run_for_to("1024",0,"1024",4,4,{-1})
showtext="Startng crash FNW"
g.setpos(BigNum.mt.tostring(-bnParsec), BigNum.mt.tostring(-bnParsec))
run_for_to("1024",0,"2048",4,4,{-1})
showtext="Fast-forwarding to first collision of gliders from GPSEs..."
g.setpos(0,0)
run_for_to(nil, 4, "960", 30, 6, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
showtext="Note the gliders going  from the center..."
run_for_to("992", 4, "1952", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecHalf), BigNum.mt.tostring(bnParsecHalf))
showtext="Fast-forwarding to first FSW glider with GPSE collision..."
run_for_to(nil, 6, "448", 30, 2, {-30,-27,-24,-21,-18,-16,-14,-12,-10,-8,-6,-4,-2,0})
run_for_to("2048", 6, "2496")
g.setpos(0, 0)
showtext="Fast-forwarding to first distance bit read ..."
run_for_to(nil,8,"1280",30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("1024", 8, "2304", 4, 4, {0})
g.setpos(BigNum.mt.tostring(bnParsecQuarter), BigNum.mt.tostring(bnParsecQuarter))
showtext="Fast-forwarding to second FSE glider with GPSE collision..."
run_for_to(nil, 9, "1184", 30,2,{-30,-27,-24,-21,-18,-16, -14, -12, -10, -8, -6, -4, -2, 0})
run_for_to("2048", 9, "3232")
g.setpos(0, 0)
showtext="Fast-forwarding to second distance bit read ..."
run_for_to(nil,10, "-1088", 30, 6, {-2})
showtext="Note the gliders going  from the center ..."
run_for_to("2048", 10, "3168", 4, 4, {0})
showtext="Fast-forwarding to first inserted MWSS bits ... here only 28 bits are encoded in pattern size"
run_for_to("194952", 10, "198120", nil, 4, {-24, -16, -8, -4, -2, 0})
showtext="Each inserted bit reduces pattern dimensions to half, there will be no chance to wait for result without the reduction"
run_for_to("1600", 10, "199720", nil, nil, {0})
showtextbase="Transform the initial crash site into a usable blinker elbow"
showtext=showtextbase
showtextbase="Building LWSS seed and blocks"
showtext=showtextbase
run_for_to("16449536",10,"16649256",nil,nil,nil,nil)
showtext=showtextbase.." - Creating block needed for ECCA construction and another one to construct a GPSE stopper"
run_for_to("21102592",10,"37751848",nil,nil,nil,nil)
showtext=showtextbase.." - LWSS seed construction started"
run_for_to("33882112",10,"71633960",nil,nil,nil,nil)
showtext=showtextbase.." - LWSS seed construction ended, stackbottom repositioning starts"
run_for_to("125435904",10,"197069864",nil,nil,{0,-3},nil)
g.setpos("600", "-600")
showtext=showtextbase.." - Stackbottom repositioning ended"
run_for_to("838074368",10,"1035144232",nil,nil,nil,nil)
showtextbase="Building glider seed"
showtext=showtextbase
g.setpos("1200", "-1200")
showtext=showtextbase.." - Creating target block for glider seed"
showtext=showtextbase.." - Start of glider seed recipe"
run_for_to("16580608",10,"1051724840",nil,nil,nil,nil)
showtext=showtextbase.." - End of glider seed recipe"
run_for_to("80740352",10,"1132465192",nil,nil,nil,nil)
showtext=showtextbase.." - Switch to stack items better for long fills"
run_for_to("2228224",10,"1134693416",nil,nil,{0,-2},nil)
g.setpos("600", "-1400")
showtextbase="Creating synced glider pair to invoke the seeds to create distant target"
showtext=showtextbase
showtext=showtextbase.." - Creating long gap on the stack"
showtext=showtextbase.." - You may notice the last 3 pairs of beehive pairs differ from he rest"
run_for_to("35782656",10,"1170476072",nil,nil,nil,nil)
showtext=showtextbase.." - Expensive transformation to standard stack items ended"
run_for_to("10616832",10,"1181092904",nil,nil,nil,nil)
showtext=showtextbase.." - Target for the subrecipe created, glider pair seed recipe starts"
run_for_to("12845056",10,"1193937960",nil,nil,nil,nil)
showtext=showtextbase.." - Glider pair seed recipe ended"
run_for_to("101842944",10,"1295780904",nil,nil,nil,nil)
showtextbase="Distant target creation seed activation"
showtext=showtextbase
run_for_to("3407872",10,"1299188776",nil,nil,nil,nil)
showtextbase="Distant target creation seed activated"
showtext=showtextbase
run_for_to("65536",10,"1299254312",nil,nil,nil,nil)
showtext=showtextbase.." - Stack have to return to the position to build DBCA"
run_for_to("1638400",10,"1300892712",nil,nil,nil,nil)
showtext=showtextbase.." - Stack returned  to the position to build DBCA"
run_for_to("3145728",10,"1304038440",nil,nil,nil,nil)
showtextbase="(Green) DBCA building recipe applied to the distant target, including cordership activation seed, the most expensive part of the RCT15 constant part "
showtext=showtextbase
showtext=showtextbase.." - (Green) DBCA sleeping pattern is ready, we have to replace the stack by reflector targets to ignite the corderships"
run_for_to("24649596928",11,"-19143521624",nil,nil,nil,nil)
showtextbase="Building 2 target blinkers for DBCA reflectors, 1 target blinker for ECCA reflectors and glider to activate the cordership"
showtext=showtextbase
run_for_to("10682368",11,"-19132839256",nil,nil,nil,nil)
showtext=showtextbase.." - Big move of stack bottom to ECCA target starts. It uses easily destroyable filler."
showtext=showtextbase.." - Expensive part converting stack top to blinker."
run_for_to("20578304",11,"-19112260952",nil,nil,nil,nil)
showtext=showtextbase.." - Filler removal."
run_for_to("11141120",11,"-19101119832",nil,nil,nil,nil)
showtext=showtextbase.." - Gap separating ECCA reflector target from 1st DBCA reflector target was created"
run_for_to("10354688",11,"-19090765144",nil,nil,nil,nil)
showtext=showtextbase.." - Gap separating 1st DBCA reflector target from 2nd DBCA reflector target was created"
run_for_to("6029312",11,"-19084735832",nil,nil,nil,nil)
showtext=showtextbase.." - Gap separating glider construction stack from the reflector targets created"
run_for_to("6881280",11,"-19077854552",nil,nil,nil,nil)
showtextbase="Activating the cordership to start DBCA reflectors"
showtext=showtextbase
run_for_to("13303808",11,"-19064550744",nil,nil,nil,nil)
showtextbase="DBCA reflectors activated"
showtext=showtextbase
run_for_to("65536",11,"-19064485208",nil,nil,nil,nil)
showtextbase="remnants of the original arm removed, green DBCA activated"
showtext=showtextbase
run_for_to("589824",11,"-19063895384",nil,nil,nil,nil)
showtextbase="Creating eater at the Green line and White target using Green DBCA"
showtext=showtextbase
showtextbase="Green portion of DBCA really finished, White portion construction begins"
showtext=showtextbase
run_for_to("18874368",11,"-19045021016",nil,nil,nil,nil)
showtextbase="Decoder and better construction arm (DBCA) finished"
showtext=showtextbase
run_for_to("536936448",11,"-18508084568",nil,nil,{-2,-3},nil)
showtext=showtextbase.." - Half of 1044 gliders absorber finished"
run_for_to("15925248",11,"-18492159320",nil,nil,nil,nil)
showtext=showtextbase.." - cleanup of the PI explosion from the initial GPSE collision starts"
g.setpos("0", "0")
showtext=showtextbase.." - cleanup of the PI explosion from the initial GPSE collision ended,"
run_for_to("34996224",11,"-18457163096",nil,nil,nil,nil)
showtext=showtextbase.." - GPSE stopping block positioned"
run_for_to("5701632",11,"-18451461464",nil,nil,nil,nil)
showtextbase="Releasing first glider FSE"
showtext=showtextbase
run_for_to("7995392",11,"-18443466072",nil,nil,nil,nil)
showtext=showtextbase.." - Releasing second glider FSE"
run_for_to("4325376",11,"-18439140696",nil,nil,nil,nil)
showtextbase="Releasing third glider FSE"
showtext=showtextbase
run_for_to("4325376",11,"-18434815320",nil,nil,nil,nil)
showtext=showtextbase.." - Target for ECCA construction and SW switching circuitry ready"
run_for_to("1835008",11,"-18432980312",nil,nil,nil,nil)
showtextbase="Creating ECCA (Fake ...  just inc4)"
showtext=showtextbase
showtext=showtextbase.." - East p256 gun started"
run_for_to("2193489920",11,"-16239490392",nil,nil,nil,'debug East p256 start, replace whole ECCA by rct16\\pslmakeTargets\\ECCA_Replacement.mc (central position)')
showtext=showtextbase.." - West p256 gun started"
run_for_to("23789568",11,"-16215700824",nil,nil,nil,nil)
showtextbase="Fake ECCA (replaced) started"
showtext=showtextbase
run_for_to("65536",11,"-16215635288",nil,nil,nil,nil)
showtext=showtextbase.." - Switch FSE"
g.setpos("0", "0")
showtext=showtextbase.." - Switch FSE ready"
run_for_to("197197824",11,"-16018437464",nil,nil,{0,0},nil)
g.setpos("0", "0")
showtextbase="Switched FSE"
showtext=showtextbase
run_for_to("3473408",11,"-16014964056",nil,nil,{0,-4},nil)
g.setpos("500", "-500")
showtextbase="Corderabsorbers program ends, 1045 gliders absorber is away so stopping the DBCA"
showtext=showtextbase
run_for_to("1441136640",11,"-14573827416",nil,nil,nil,nil)
showtext=showtextbase.." - signal 2 way cleaned, the bit later destroying the ECCA sent"
run_for_to("196608",11,"-14573630808",nil,nil,nil,nil)
showtext=showtextbase.." - First glider arrived to FSE"
run_for_to("176518792704",15,"-18443466072",nil,nil,nil,nil)
g.setpos("45097156992", "45097156992")
showtext=showtextbase.." - Second glider arrived to FSE"
run_for_to("4325376",15,"-18439140696",nil,nil,nil,nil)
showtext=showtextbase.." - Third glider arrived to FSE"
run_for_to("4325376",15,"-18434815320",nil,nil,nil,nil)
showtext=showtextbase.." - Switched FSE"
run_for_to("2419851264",15,"-16014964056",nil,nil,{-4,-2},nil)
g.setpos("45097157492", "45097156492")
showtextbase="FSE Cleanup"
showtext=showtextbase
run_for_to("65536",15,"-16014898520",nil,nil,{-2,-1},nil)
g.setpos("45097156992", "45097156992")
showtextbase="FSE Cleanup finished"
showtext=showtextbase
run_for_to("24969216",15,"-15989929304",nil,nil,nil,nil)
g.setpos("45097156992", "45097156992")
showtextbase="Building FSE ECCA reflectors"
showtext=showtextbase
g.setpos("45097157092", "45097156892")
showtextbase="FSE ECCA reflectors finished"
showtext=showtextbase
run_for_to("603586560",15,"-15386342744",nil,nil,{-2,-2},nil)
g.setpos("45097157092", "45097156892")
showtextbase="FSE corderabsorbers ready"
showtext=showtextbase
run_for_to("812580864",15,"-14573761880",nil,nil,nil,nil)
showtext=showtextbase.." - reflecting 3rd bit, half of the signal will cause destroying ECCA"
run_for_to("129024",15,"-14573632856",nil,nil,nil,nil)
showtextbase="green ECCA program starts"
showtext=showtextbase
run_for_to("180388498688",19,"-14573762136",nil,nil,{-2,-2},nil)
g.setpos("0", "0")
showtext=showtextbase.." - first data signal reflected to destroy FSE reflectors"
run_for_to("131072",19,"-14573631064",nil,nil,nil,nil)
showtextbase="yellow glider hit to clean the boat bit"
showtext=showtextbase
run_for_to("20971520",19,"-14552659544",nil,nil,nil,'debug hitting yellow glider, comment the glider out (in ECCALevels_13_DBCADestroyal.txt) if not needed')
g.setpos("0", "-2000")
showtext=showtextbase.." - Hitting DBCA block 1/3 on the way to stop the reset line"
run_for_to("4063232",19,"-14548596312",nil,nil,nil,nil)
g.setpos("0", "-2000")
showtext=showtextbase.." - DBCA reset line stopped"
run_for_to("786432",19,"-14547809880",nil,nil,nil,nil)
showtext=showtextbase.." - DBCA S p256 stopped"
run_for_to("11075584",19,"-14536734296",nil,nil,nil,'debug the glider line')
showtext=showtextbase.." - DBCA N p256 stopped"
run_for_to("4259840",19,"-14532474456",nil,nil,nil,'debug the glider line')
showtext=showtextbase.." - signal destroying FSE reflectors arrives and is reflected back to ECCA"
run_for_to("180347467518",23,"-14573634906",nil,nil,nil,'debug time offset')
g.setpos("45097156992", "45097156992")
showtext=showtextbase.." - signal destroying ECCA arrived"
run_for_to("180388615682",27,"-14573647192",nil,nil,nil,'debug seed of destroyal time_offset?')
g.setpos("0", "0")
showtextbase="And this is end so far"
showtext=showtextbase
run_for_to("206323712",27,"-14367323480",nil,nil,nil,'work in progress,\n Note that this scripts allow you restart at any generation.\n You can stop it, watch a detail and restart afterwards to let show continue.')
The current version is not in calcymans github yet. In future I would add watching GPSE signal collisions, but it would just waste time during debugging. I am testing DBCA destroyal and White ECCA build. I am waiting for fast enough comp to compute full green ECCA recipe. It seems the White ECCA portion would be fine with tub with tail "insertor" so the ECCA target for destroyal seed is confirmed. ... but after the DBCA destroyal and WhiteBuild we would have exact final position with incomming destroyal signal. Hmmm DBCA destroyal tests detected wrong relative position of the FSE reflectors (should be 32FD more distant) ... .

OK, DBCA destroyal program debugged till the destruction of the CMOS pair, where I have computed destroyal for the wrong state of the DBCA.
DBCA ends with color WHITE (the leaking one) glider emitted ... so I have to recompute the destroyal line program....

I could probably force the final DBCA semistate without increasing the DBCA bit program length. What I do not maintain in the DBCA semistate is the boat bit at the end of the yellow line (at time multiples of 2^9).
It would be nice to be able to chose the DBCA program with the boat bit cleaned at the time of the destroyal. Hmm, seems the boat bit at time multiples of 2^9 is periodic determined by the length of DBCA program mod 24 (depending on the initial semistate).
(non data signal flips the bit twice, moves and fire do not flip the bit, only fake does the changes, color change flips the bit independently on the color, phase flip changes the bit depending on the phase (if the flip occurs)). As the starting semistate is fixed only the length of the program matters. As both the final color and phase is fixed, with the fixed (optimal for the given line phase pattern) length of the program the boat bit is determined. Prolonging the bit program by 12 would allow the same color and phase glider emission with the flip of boat bit. Destroying the potential boat bit by the ECCA costs at most 7 bits, so we neednot worry about the DBCA program optimization regarding the bit. Uff.
Hmm, prolonging the DBCA program by 12 bits would generate another semistate for "semiflipping the phase", so we should have separate versions for the pattern with boat and pattern without the boat (with changed state of just one semisnark). After the ECCA building program would be incorporated, we will choose the approprioate version.
rct15.mc
(831.95 KiB) Downloaded 7 times
OK the final semistate and boat bit are determined following way:
Parity of number of emited gliders determines if the final semistate cycle is 0,5,2,7 (even) or 1,4,3,6 (odd).
Last glider color and phase requires state 0 or 4 at emission time, so after the emission the state would be 1 or 5 and after reset the states will be 4 or 2. This means color CMOS pair would be the same, but the remaining semisnarks have two of four options. The optimal length of the recipe determines the existence of the boat bit (additional 4*3 bits would mean the same semistate, but opposite boat state).
Flipping the existence of the boat bit before stopping first p256 requires just one ECCA glider during the arm block positioning.
So we just need two destroyal programs depending on the final state 4 resp. 2 depending on the parity of DBCA emited gliders.
If we manage to modify some recipe without increasing its cost to change the parity of the number of gliders, we could always choose the "better" final state.

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » February 4th, 2024, 5:39 am

OK, I have pushed updated version to the https://gitlab.com/apgoucher/rct16.git/. It is done till DBCA destroyal, just the ECCA should be replaced during the viewing process. However there is a problem somewhere ... there are some gliders escaping from the epicenter. I should check when they escape and correct it.

The ECCA white part build is the next step (I have line phase program not tested yet generated by a narrow beam search ... after testing the wide beam search will follow) ... this will almost prepare ECCA final state.
Next priority is to decide the color and phase of the last glider in the recipe ... it will be the one finishing the corderabsorber pattern on FNW (reflecting the last glider back to the epicentre ... and destroying the arm block) Determining the reflected glider line is crucial for the final pattern seed positioning.
And the properties of the last glider in the recipe define final state of the ECCA crucial for te seed of destruction.
I expect the last commands would be move4 + reset.

It seems to me, we could debug whole RCT15 to the end, then create the ECCA seed of destruction (it could be tested before pslmaking it using the replacement method...), pslmake it, replace ECCA build portion, choose appropriate DBCA bit length parity (adding an extra glider or not) add choose adidng a glider to destroy the boat bit if required and the pattern would work. Changing seed of the final pattern would not affect the functionality as the ECCA final state does depend only on the last glider emited and final block repositioning.

So I could reuse GPSE remnants destroyal from the previous RCT15 what will take some time, maybe its time to create line phase program for the final seed (which will be ignited by the glider comming from FNW).

OK test of White portion build by ECCA failed, the history state 2 should be at least one line closer ... the construction interfered with the construction line. Let us see there is a solution for tub with tail for that case. There is a working backup plan with two blocks and eater ... (I needed to repeat the experiment several times ... 1st time ... I forget that the phase of the first glider must destroy the kickbak 2nd time I forget that agnosticize shoud be limited to maintain the color ... and the 3rd time shown the problem... .

At the end I could end up with
calcyman wrote:
June 17th, 2023, 12:13 pm
  1. Creating a monochromatic slow salvo for the white part of the DBCA. I've prepared HoneySearch databases of monochromatic salvos, so I could convert these into a pslmake database and then see whether it works. There's the issue of ensuring that the construction doesn't interfere with the construction arm lane (there's a pair of blocks and eater very close to the lane, which maybe we'll need to build as part of the original (non-white) construction instead.
It transpires that pslmake can build the tight eater-and-two-blocks using just 20 slow monochromatic gliders without leaving any problematic debris on the shotgun lane, or sparks that interfere with the elbow. It produces an extraneous boat and beehive, but these can stay:

Code: Select all

x = 3597, y = 4002, rule = LifeHistory
1359.A.A$1359.2A$1360.A25$1330.A$1329.A$1329.3A47$1287.A.A$1287.2A$
1288.A26$1255.A.A$1255.2A$1256.A25$1232.A$1231.A$1231.3A19$279.2A$
278.B2A2B$265.A13.4B$265.3A11.BA2B$268.A9.BABA$267.2A9.A2BA$267.5B5.A
2BA$269.3BAB3.4B927.A$268.3BABA3BA2BAB925.A$267.4BA2BA2B2.2A926.3A$
268.4B2A3B$269.6B$270.5B$269.7B$268.4B.4B$267.4B3.4B$266.4B5.4B$265.
4B7.4B$264.4B9.4B$263.4B11.4B$243.B2A16.4B13.4B46.2A$243.3A2B2.B10.4B
15.4B44.3B$242.ABA2BA2B2A8.4B17.4B43.A3BA$242.2A2B2A2B2A7.4B19.4B41.A
4BA$243.B2.2A3B7.4B21.4B30.A8.A.ABAB$248.3B33.4B29.3A4.BABA.A$250.3B
32.4B31.A2.A4BA$250.3B33.4B29.2A2.A3BA$250.BA2B33.4B28.4B2.3B$249.BAB
AB34.4B29.BAB.2A$249.A2BAB35.4B27.BABA.B$248.2B2A5B33.4B23.2A.B2A2B$
248.10B33.4B22.2A7B$248.6B.4B33.4B22.7B$246.2AB.3B3.4B33.4B21.7B868.A
$245.A.AB2.B5.4B33.4B21.6B867.A$245.A12.4B33.4B19.8B866.3A$244.2A13.
4B33.4B17.4B2.4B$260.4B33.4B15.4B4.4B$261.4B33.4B13.4B6.4B$262.4B33.
4B11.4B8.4B$263.4B33.4B9.4B10.4B$264.4B26.2A5.4B7.4B12.4B$265.4B18.2A
3.2B2AB5.4B5.4B14.4B$266.4B16.B2AB2.4B7.4B3.4B16.4B$267.4B16.2B3.6B.B
4.4B.4B18.4B$268.4B16.2B2.10B3.7B20.4B$269.4B14.2B2A11B4.5B7.2A13.4B$
270.4B10.B.3B2A12B3.5B6.B2AB13.4B$271.4B8.2A18B2.7B6.2B15.4B$272.4B7.
2AB.15B2.4B.4B6.2B3.B11.4B$273.4B7.B3.19B3.4B4.4B.B2A11.4B$274.4B10.
18B5.4B.8B2A12.4B$275.4B10.7B11.B2.10B2AB.B14.4B$276.4B9.7B11.13B2A
18.4B$277.4B9.6B11.15B19.4B$280.2B8.6B11.19B16.4B$280.3B6.7B11.2B7.4B
2.4B17.4B$280.4B5.6B.13B8.4B.3B2A17.4B$281.4B2.2B.9B7.3B9.7B2A18.4B$
282.4B.B9.B9.2B10.5B.B20.4B$283.5B20.B11.4B23.4B$284.4B.7B13.16B23.4B
$285.5BA4B15.16B23.4B$286.3BABA3B15.17B23.4B$287.3B2A3B15.13B.4B23.4B
$285.B.8B15.8B.2B4.4B23.4B$285.10B15.8B8.4B23.4B$285.10B15.9B8.4B23.
4B4.2A5.2A$281.B3.10B15.10B8.4B23.4B.2B2A5.A$282.14B13.7B.4B8.4B23.7B
3.BA.A$281.9B3A4B11.8B2.4B8.4B23.8B.B2A$279.B.11B2.8B5.8B4.4B8.4B23.
5B2A2B806.A$278.2A14B.7B4.9B5.4B8.4B22.5BABAB805.A$278.2A29B.6B5.4B8.
4B20.7BAB.2B803.3A$279.16B3D10B.7B6.4B8.4B18.8B3.BAB$279.16B4D16B8.4B
8.4B16.4B3.B.3B3A$283.13B4D15B9.3B9.4B14.4B7.B3ABA$283.2A12B4D6B2A7B
9.2B10.4B12.4B9.BA2B.A$280.B.B2A13B3D6BABA6B10.B11.4B10.4B12.A.2BAB$
279.2A8B2.8B2D7BA8B22.4B8.4B14.AB3AB$279.2AB.4B6.24B3.B19.4B6.4B16.3A
2B$280.B3.2B8.24B.B2A19.4B4.4B17.BAB$285.2B7.6B.19B2A20.4B3.3B19.2B$
284.B2AB6.5B.14B2A3B.B22.4B2.2B$285.2A7.4B.2D13B2A2B26.4B.B$293.4B.3D
B.10B2.2B28.4B$292.4B.4D3.9B3.2B28.4B$292.3B.4D9.4B2.B2AB28.4B$292.2B
.4D9.B2A2B3.2A30.4B$283.3B6.B.4D11.2A38.4B$283.4B6.4D52.5B$282.2B2AB
5.4D53.B.4B$282.BABA2B3.B3D54.7B$282.2BA4B.2B2D37.26B$283.10B10.2A14.
B11.27B$283.9B11.A26.29B$283.9B8.BA.A26.30B$283.10B7.B2A26.32B$280.
12B2D4.3B29.27B.4B$279.4B.6B.B3D2.4B29.6B2.11B2.6B2.4B$278.4B3.4B3.4D
.3B29.4B.B4.9B4.B.4B2.4B$277.4B12.4D2B29.4B9.5B15.4B$276.4B14.4D29.4B
9.7B12.B2.4B$260.2A3B10.4B16.4D27.4B8.11B10.2B2.4B$261.A4B8.4B18.D28.
4B8.3B2A3B2A3B9.3B2.4B$261.A.A4B5.4B47.4B7.B.2BA2BABA2BA2B.B7.4B2.4B$
262.2A5B3.4B47.4B7.A5B2A3B2A5BA7.4B2.4B$264.6B.4B47.4B7.A.A2B.9B.2BA.
A7.4B2.4B$264.10B47.4B9.AB3.9B3.BA9.4B2.4B$264.2B2A5B14.B32.4B15.9B
15.4B2.4B$265.A2BA3B14.2B31.4B17.B5.B17.4B2.4B$265.BABA4B12.3B30.4B
43.4B2.4B$266.BA6B10.4B29.4B45.4B2.4B$266.3B2.4B8.4B29.4B47.4B2.4B$
266.3B3.4B6.4B29.4B49.4B2.4B$264.3B6.4B4.4B29.4B51.4B2.4B$259.B2.BA3B
7.4B2.4B29.4B53.4B2.4B$258.3AB2A2B2A7.8B88.4B2.4B$258.4A4B2A8.6B90.4B
2.4B$259.3B2A2.B7.7B92.4B2.4B$259.3B11.9B92.4B2.4B$274.9B92.4B2.4B$
274.10B92.4B2.4B$273.4B4.4B92.4B2.4B$272.4B6.4B92.4B2.4B$271.4B8.4B.B
15.B74.4B2.4B$270.4B10.7B12.2B75.4B2.4B$269.4B12.5B12.3B76.4B2.4B$
268.4B14.4B11.4B77.4B2.4B$267.4B16.4B9.4B79.4B2.4B$266.4B18.4B7.4B81.
4B2.4B726.A.A$265.4B20.4B5.4B83.4B2.4B725.2A$264.4B22.4B3.4B85.4B2.4B
725.A$263.4B24.4B.4B87.4B2.4B$262.4B26.7B89.4B2.4B$261.4B28.5B91.4B2.
4B$260.4B29.5B92.4B2.4B$259.4B29.7B92.4B2.4B$258.4B29.4B.4B92.4B2.4B$
257.4B29.4B3.4B92.4B2.4B$256.4B29.4B5.4B92.4B2.4B$255.4B29.4B7.4B92.
4B2.4B$254.4B29.4B9.4B92.4B2.4B$253.4B29.4B11.4B92.4B2.4B$252.4B29.4B
13.4B92.4B2.4B$251.4B29.4B15.4B92.4B2.4B$250.4B29.4B17.4B92.4B2.4B$
249.4B29.4B19.4B92.4B2.4B$248.4B29.4B21.4B92.4B2.4B$247.4B29.4B23.4B
92.4B2.4B$246.4B29.4B25.4B92.4B2.4B$245.4B29.4B27.4B92.4B2.4B$244.4B
29.4B29.4B92.4B2.4B$243.4B29.4B31.4B92.4B2.4B$242.4B29.4B33.4B92.4B2.
4B$241.4B29.4B35.4B92.4B2.4B$240.4B29.4B37.4B92.4B2.4B$239.4B29.4B39.
4B92.4B2.4B$238.4B29.4B41.4B92.4B2.4B660.A.A$237.4B29.4B43.4B92.4B2.
4B659.2A$236.4B29.4B45.4B92.4B2.4B659.A$235.4B29.4B47.4B92.4B2.4B$
234.4B29.4B49.4B92.4B2.4B$233.4B29.4B51.4B92.4B2.4B$232.4B29.4B53.4B
92.4B2.4B$231.4B29.4B55.4B92.4B2.4B$230.4B29.4B57.4B92.4B2.4B$229.4B
29.4B59.4B92.4B2.4B$228.4B29.4B61.4B92.4B2.4B$227.4B29.4B63.4B92.4B2.
4B$226.4B13.B15.4B65.4B92.4B2.4B$225.4B29.4B67.4B92.4B2.4B$224.4B29.
4B69.4B92.4B2.4B$223.4B29.4B71.4B92.4B2.4B$222.4B29.4B73.4B92.4B2.4B$
221.4B29.4B75.4B92.4B2.4B$220.4B29.4B77.4B92.4B2.4B$219.4B29.4B79.4B
92.4B2.4B$218.4B29.4B81.4B92.4B2.4B$217.4B29.4B83.4B92.4B2.4B$216.4B
29.4B85.4B92.4B2.4B$215.4B29.4B87.4B92.4B2.4B$214.4B29.4B89.4B92.4B2.
4B$213.4B29.4B91.4B92.4B2.4B$212.4B29.4B93.4B92.4B2.4B$211.4B29.4B95.
4B92.4B2.4B$210.4B13.B15.4B97.4B92.4B2.4B$209.4B29.4B99.4B92.4B2.4B$
208.4B29.4B101.4B92.4B2.4B$207.4B29.4B103.4B92.4B2.4B$206.4B29.4B105.
4B92.4B2.4B$205.4B29.4B107.4B92.4B2.4B$204.4B29.4B109.4B92.4B2.4B$
203.4B29.4B111.4B92.4B2.4B$202.4B29.4B113.4B92.4B2.4B$201.4B29.4B115.
4B92.4B2.4B588.A$200.4B29.4B117.4B92.4B2.4B586.A$199.4B29.4B119.4B92.
4B2.3B586.3A$198.4B29.4B121.4B92.4B2.2B$197.4B29.4B123.4B92.4B2.B$
196.4B29.4B125.4B92.4B$195.4B29.4B127.4B92.4B$194.4B29.4B129.4B92.4B$
193.4B29.4B131.4B92.3B$192.4B29.4B133.4B92.2B$191.4B29.4B135.4B92.B$
190.4B29.4B137.4B$189.4B29.4B139.4B$188.4B29.4B141.4B$187.4B29.4B143.
4B$186.4B29.4B145.4B$185.4B29.4B147.4B$163.2A19.4B29.4B149.4B$163.3B
17.4B29.4B151.4B$161.A3BA16.4B29.4B153.4B92.4B2.4B$161.A4BA14.4B29.4B
155.4B92.4B2.4B$162.BABA.A12.4B29.4B157.4B92.4B2.4B$164.A.ABAB9.4B29.
4B159.4B92.4B2.4B$165.A4BA7.4B29.4B161.4B92.4B2.4B$166.A3BAB.B3.4B29.
4B114.A48.4B92.4B2.4B$166.3B3.8B29.4B115.3A47.4B92.4B2.4B$167.2A.BA7B
29.4B108.A10.A47.4B92.4B2.4B$169.BABA5B29.4B108.A.A8.2A48.4B92.4B2.4B
$169.2B2A5B28.4B109.A.A8.4B14.A32.4B92.4B2.4B520.A$167.2AB.8B26.4B
108.3A.2A9.5B9.3A33.4B92.4B2.4B518.A$166.A.AB3.7B24.4B108.A4.B6.B.8B
7.A37.4B92.4B2.4B517.3A$166.A5.2A2B.4B22.4B110.3AB2AB3.12B6.2A37.4B
92.4B2.4B$165.2A5.2A4.4B20.4B113.A.2AB.15B2.5B38.4B92.4B2.4B$179.4B
18.4B116.24B41.4B92.4B2.4B$180.4B16.4B119.21B2A41.4B92.4B2.4B$181.4B
14.4B120.21B2A42.4B92.4B2.4B$182.4B12.4B122.19B.B44.4B92.4B2.4B$183.
4B10.4B125.17B47.4B92.4B2.4B$169.2B13.4B8.4B125.17B49.4B92.4B2.4B$
168.BAB14.4B6.4B127.15B51.4B92.4B2.4B$168.5B13.4B4.4B129.13B53.4B92.
4B2.4B$167.3ABAB14.4B2.4B131.15B51.4B92.4B2.4B$157.A8.A.2A2B16.8B132.
2B2.12B51.4B92.4B2.4B$157.3A4.2B2A.A19.6B137.12B52.4B92.4B2.4B$160.A
2.BAB3A21.4B139.11B53.4B92.4B2.4B$159.2A2.5B21.6B136.4B.8B54.4B92.4B
2.4B$159.4B2.BAB20.8B135.2A4.7B55.4B92.4B2.4B$161.BAB.2B20.4B2.4B135.
A4.7B56.4B92.4B2.4B$160.BABA.B20.4B4.4B131.3A6.6B57.4B92.4B2.4B$157.
2A.B2A2B20.4B6.4B130.A8.7B57.4B92.4B2.4B$157.2A7B18.4B8.4B138.8B57.4B
92.4B2.4B$158.7B18.4B10.4B138.8B57.4B92.4B2.4B$158.7B17.4B12.4B137.9B
57.4B92.4B2.4B$159.6B16.4B14.4B135.6B.4B57.4B92.4B2.4B$158.8B14.4B16.
4B134.7B.4B57.4B92.4B2.4B$157.4B2.4B12.4B18.4B134.6B2.4B57.4B92.4B2.
4B$156.4B4.4B10.4B20.4B133.6B3.4B57.4B92.4B2.4B478.A$155.4B6.4B8.4B
22.4B132.6B4.4B57.4B92.4B2.4B476.A$154.4B8.4B6.4B24.4B130.8B4.4B57.4B
31.3D58.4B2.4B475.3A$153.4B10.4B4.4B26.4B128.8B6.4B57.4B30.4D58.4B2.
4B$152.4B12.4B2.4B28.4B127.9B6.4B57.3B31.4D58.4B2.4B$151.4B14.8B30.4B
126.9B7.4B57.3B31.4D58.4B2.4B$150.4B16.6B32.4B124.10B8.4B57.4B30.4D
58.4B2.4B$149.4B18.4B34.4B53.2B68.3B2A5B9.4B57.2B32.4D58.4B2.4B$148.
4B18.6B34.4B52.BAB61.2A3.4B2A5B10.4B56.5B30.3DB58.4B2.4B$147.4B18.8B
34.4B49.2BABA62.A3.11B11.4B57.4B30.2D4B56.4B2.4B$146.4B18.4B2.4B34.4B
48.BA3BA61.A.A12B12.4B57.4B30.D4B57.4B2.4B$145.4B18.4B4.4B34.4B48.BA
2B.A8.A52.2A2.8B15.4B57.4B29.D7B55.4B2.4B$144.4B18.4B6.4B34.4B49.A.2B
AB4.3A57.7B16.4B57.4B27.2D4B2A2B55.4B2.4B$143.4B18.4B8.4B34.4B49.A3BA
B2.A62.5B17.4B57.4B25.3DB.2BA3B56.4B2.4B$142.4B18.4B10.4B34.4B49.ABA
2B2.2A61.6B5.2A10.4B57.4B23.4D3.2B3A57.4B2.4B$141.4B18.4B12.4B34.4B
48.BAB2.4B60.6B6.A12.4B57.4B21.4D5.3BA58.4B2.4B$140.4B18.4B14.4B34.4B
48.2B.BAB61.8B2.BA.A13.4B57.4B19.4D69.4B2.4B$139.4B18.4B16.4B34.4B48.
B.ABAB59.9B2.B2A15.4B57.4B17.4D71.4B2.4B$138.4B18.4B18.4B34.4B48.2B2A
B.2A56.12B18.4B57.4B15.4D73.4B2.4B$137.4B18.4B20.4B34.4B46.7B2A56.12B
19.4B57.4B92.4B2.4B$136.4B18.4B22.4B34.4B46.7B55.2AB.10B20.4B57.4B92.
4B2.4B$135.4B18.4B24.4B34.4B45.7B54.A.AB2.8B22.4B57.4B92.4B2.4B$134.
4B18.4B26.4B34.4B44.6B55.A6.8B22.4B57.4B92.4B2.4B$133.4B18.4B28.4B34.
4B42.8B53.2A5.8B24.4B57.4B92.4B2.4B$132.4B18.4B30.4B34.4B40.4B2.4B59.
7B26.4B57.4B92.4B2.4B$131.4B18.4B32.4B34.4B38.4B4.4B57.11B24.4B57.4B
92.4B2.4B$130.4B18.4B34.4B34.4B36.4B6.4B56.12B24.4B57.4B92.4B2.4B$
129.4B18.4B36.4B34.4B34.4B8.4B55.12B25.4B57.4B92.4B2.4B$128.4B18.4B
38.4B7.A26.4B32.4B10.4B55.11B26.4B57.4B92.4B2.4B416.A$127.4B18.4B40.
4B6.3A25.4B30.4B12.4B52.4B.8B27.4B57.4B92.4B2.4B414.A$126.4B18.4B42.
4B8.A25.4B28.4B14.4B51.2A4.7B28.4B57.4B92.4B2.4B413.3A$125.4B18.4B44.
4B6.A.A25.4B26.4B16.4B51.A4.7B29.4B57.4B92.4B2.4B$124.4B18.4B46.5B4.A
.AB25.4B24.4B18.4B47.3A6.6B30.4B57.4B92.4B2.4B$123.4B18.4B48.4B5.A3B
25.4B22.4B20.4B46.A8.7B30.4B57.4B92.4B2.4B$122.4B18.4B51.3B6.4B24.4B
20.4B22.4B54.8B30.4B57.4B92.4B2.4B$121.4B18.4B52.4B5.6B23.4B18.4B24.
4B54.8B30.4B57.4B92.4B2.4B$120.4B18.4B54.4B4.7B23.4B16.4B26.4B53.9B
30.4B57.4B92.4B2.4B$119.4B18.4B56.4B2.8B.4B.B17.4B14.4B28.4B51.6B.4B
30.4B57.4B92.4B2.4B$118.4B18.4B58.17B.B2A17.4B12.4B30.4B50.7B.4B30.4B
57.4B92.4B2.4B$117.4B18.4B60.18B2A18.4B10.4B32.4B50.6B2.4B30.4B57.4B
77.3B12.4B2.4B$116.4B18.4B61.16B.2B20.4B8.4B34.4B49.6B3.4B30.4B57.4B
75.4B13.4B2.4B$115.4B18.4B62.16B24.4B6.4B36.4B48.6B4.4B30.4B57.5B.2B
69.4B10.2A3.4B2.4B$114.4B18.4B63.15B26.4B4.4B38.4B46.8B4.4B30.4B57.8B
67.4B10.B2AB3.4B2.4B$113.4B18.4B62.2AB.12B28.4B2.4B40.4B44.8B6.3B31.
4B57.8B65.4B12.2B5.4B2.4B$112.4B18.4B62.A.AB2.11B24.A4.8B22.A19.4B26.
A16.9B6.4B30.4B57.8B63.4B14.2B4.5B2.4B$111.4B18.4B63.A5.10B23.3A5.6B
21.3A20.4B23.3A16.9B8.2A30.5B57.8B61.4B14.14B.4B$110.4B18.4B9.2A52.2A
5.2B2A6B22.A9.4B21.A24.4B21.A18.10B8.A31.6B57.8B59.4B15.14B2.4B$109.
4B18.4B10.2A58.3B2A6B22.2A7.6B20.2A24.4B20.2A17.3B2A5B9.3A26.2AB.5B
57.8B57.4B7.B5.18B2.4B$108.4B18.4B72.10B12.2A6.4B6.8B17.4B25.4B17.4B
11.2A3.4B2A5B11.A25.A.AB2.5B57.8B55.4B7.26B2.4B$107.4B18.4B73.8B.B2A.
A9.A6.2B7.4B2.4B15.3B28.4B15.3B14.A3.11B37.A6.5B57.8B53.4B6.29B2.4B$
106.4B18.4B73.7B3.B2AB3A7.A.AB2.5B4.4B4.4B14.4B28.4B14.4B13.A.A12B36.
2A7.5B57.8B51.4B5.B.30B2.4B$105.4B18.4B74.6B6.B4.A7.2AB2.B2A2B.B.4B6.
4B12.5B9.A19.4B12.5B8.2A4.2A2.8B48.5B57.8B49.4B5.2A32B2.4B$104.4B18.
4B57.2A17.6B4.2A.3A9.4BA2BA7B.2B.3B.4B11.6B8.3A12.B.3B.4B11.6B8.A9.7B
4.2A43.5B21.3B33.8B16.3B28.4B6.2A33B2.4B$103.4B18.4B57.3B17.5B6.A.A
12.4B2A27B2.8B11.A10.18B2.8B8.A.AB7.6B4.A45.5B15.B2.2A3B34.8B10.B2.BA
3B27.4B8.28B3.4B2.4B$102.4B18.4B58.A3BA14.6B6.A.A12.16B2A26B9.2A3.B5.
2B2A26B8.2AB.3B3.6B.BA.A46.5B13.2ABA2BAB2A34.8B8.3AB2A2B2A25.4B9.3B4.
B.16B7.4B2.4B$101.4B18.4B58.A4BA14.6B7.A15.14B2A25B10.8B3.2B2A25B11.
14B.B2A48.5B12.A4BA2B2A35.8B7.4A4B2A24.4B21.10B.2B9.4B2.4B$100.4B3.2A
13.4B49.A8.A.ABAB14.7B23.32B.7B13.8B.20B.7B12.16B51.5B4.B7.3BAB2.B37.
8B7.3B2A2.B24.4B23.9B13.4B2.4B356.A$99.4B5.A12.4B50.3A4.BABA.A16.7B8.
A13.42B12.38B12.14B52.6B2.3B6.ABA43.8B6.3B28.4B21.11B15.4B2.4B354.A$
98.4B6.A.AB2.B5.4B54.A2.A4BA17.8B5.3A12.9B6.2B3.2B2.19B11.15B.2B2.19B
11.16B50.8B.4B3.3B46.8B3.3B29.4B21.12B16.4B2.4B353.3A$97.4B8.2AB.3B3.
4B54.2A2.A3BA18.8B4.A14.9B19.17B8.17B8.17B8.18B49.4B.10B2.3B47.8B2.3B
28.4B22.12B17.4B2.4B$96.4B11.6B.4B55.4B2.3B19.8B3.2A12.4B.5B21.15B.2B
2.19B11.15B.2B2.20B49.4B3.5B.6BAB48.10BAB27.4B23.11B19.4B2.4B$95.4B
12.10B58.BAB.2A20.3B2A2B2.4B11.4B3.3B23.38B12.38B49.4B5.5B.4BABAB48.
8BABAB25.4B24.8B.4B18.4B2.4B$94.4B13.2B2A5B58.BABA.B19.5B2A2B.3B12.4B
2.7B21.8B.20B.7B13.8B.20B.7B49.4B8.4B.3BA2BA49.7BA2BA24.4B25.7B4.2A
19.4B2.4B$93.4B15.A2BA3B56.2A.B2A2B20.13B11.4B3.2A.B.2A19.8B3.2B2A25B
10.8B3.2B2A16B2.6B48.4B10.8B2A2B49.7B2A2B22.4B26.7B4.A21.4B2.4B$92.4B
16.BABA4B55.2A7B18.16B8.4B5.A3.A20.2A3.B5.2B2A26B9.2A3.B5.2B2A16B3.6B
46.4B12.11B50.10B21.4B27.6B6.3A19.4B2.4B$91.4B18.BA6B55.7B18.17B8.3B
3.3A5.3A18.A10.18B2.8B11.A10.18B6.4B45.4B13.11B49.11B20.4B27.7B8.A20.
4B2.4B$90.4B19.3B2.4B54.7B19.16B8.2B4.A9.A15.3A12.B.3B.4B11.6B8.3A12.
B.3B.4B12.B2A2B44.4B13.10B.B2A46.10B.B2A17.4B27.8B30.4B2.4B$89.4B20.
3B3.4B54.6B20.15B5.B2.B31.A19.4B12.5B9.A19.4B14.2A.B2A41.4B13.4B.5B2.
BA.A44.4B2.4B2.BA.A15.4B27.8B32.4B2.4B$88.4B19.3B6.4B52.8B13.2A5.13B
5.2B53.4B14.4B28.4B18.BA.A39.4B13.4B3.4B5.A43.4B4.4B4.A14.4B14.2A5.2A
4.9B33.4B2.4B$87.4B15.B2.B4A7.4B50.4B2.4B13.A6.10B6.3B42.2A8.4B15.3B
28.4B22.A38.4B13.4B5.4B4.2A41.4B6.4B3.2A12.4B16.A5.2A2B.4B.6B33.4B2.
4B$86.4B15.2A7BA7.4B48.4B4.4B12.A.AB3.10B5.4B41.B2AB6.4B17.4B25.4B23.
2A36.4B13.4B7.4B45.4B8.4B15.4B17.A.AB3.7B.7B34.4B2.4B$85.4B16.2A2B2A
3BA8.3B47.4B6.4B12.2AB.15B.4B42.4B5.4B20.2A24.4B61.4B13.4B9.4B43.4B
10.4B13.4B19.2AB.8B2.6B36.4B2.4B$84.4B18.3B2A2.A10.2B46.4B8.4B13.21B
44.2B5.4B21.A24.4B61.4B13.4B11.4B41.4B27.4B22.2B2A5B3.6B37.4B2.4B$83.
4B19.3B62.4B10.4B13.19B37.A7.4B2.4B23.3A20.4B61.4B13.4B13.4B39.4B27.
4B23.BABA5B4.B2A2B38.4B2.4B$82.4B41.3B40.4B12.4B4.2A5.20B36.A.A5.5B.
4B26.A19.4B61.4B13.4B15.4B37.4B27.4B22.2B.BA7B2.2B2A3B38.4B2.4B$81.4B
42.4B38.4B14.4B4.A4.22B36.A.14B46.4B61.4B13.4B17.4B35.4B18.4B5.4B22.B
AB3.8B.7B39.4B2.4B$80.4B44.4B36.4B16.4B3.A.AB.23B36.14B36.2A8.4B61.4B
13.4B19.4B33.4B20.4B3.4B23.3A3B.B3.4B.5B41.4B2.4B$79.4B46.4B34.4B18.
4B3.2AB.22B37.14B35.B2AB6.4B61.4B13.4B21.4B31.4B22.4B.4B23.AB3AB7.9B
42.4B2.4B$57.2B19.4B48.4B32.4B20.4B4.23B38.4B2A9B34.4B5.4B61.4B13.4B
23.4B29.4B24.7B23.A.2BAB9.8B43.4B2.4B$57.BAB17.4B50.4B30.4B22.4B3.22B
38.5B2A10B34.2B5.4B61.4B13.4B25.4B27.4B26.5B22.BA2B.A12.7B44.4B2.4B$
55.2BABA16.4B52.4B28.4B24.4B3.18B41.18B25.A7.4B2.4B61.4B13.4B27.4B25.
4B26.6B21.B3ABA14.6B7.2A36.4B2.4B$55.BA3BA14.4B54.4B26.4B26.4B2.14B.
5B37.2AB.11B2.4B23.A.A5.5B.4B61.4B13.4B29.4B23.4B26.4B2A3B19.2B3A7.2A
5.7B7.A38.4B2.4B$56.BA2B.A12.4B56.4B24.4B28.4B2.12B5.2A36.A.AB2.8B5.
4B23.A.14B61.4B13.4B31.4B21.4B26.4BA2BA2B2.2A17.BAB8.A6.7B3.BA.A39.4B
2.4B$58.A.2BAB9.4B58.4B22.4B30.4B3.10B5.A37.A5.10B4.4B23.14B61.4B13.
4B33.4B19.4B28.3BABA4BA2BA16.2B9.A.AB.11B.B2A41.4B2.4B$59.A3BAB7.4B
60.4B20.4B32.3B3.9B7.3A33.2A5.B.B5.2A5.4B22.14B60.4B13.4B35.4B17.4B
30.3BAB3.BA2B29.2AB.2BA10B44.4B2.4B$60.ABA3B.B3.4B62.4B18.4B34.2B3.8B
10.A41.3B4.A7.4B21.15B58.4B13.4B37.4B15.4B29.5B5.BA2B31.3BABA10B44.4B
2.4B280.A$60.BAB2.9B64.4B16.4B36.B4.8B50.B2AB5.3A5.4B19.3B2A12B56.4B
13.4B39.4B13.4B30.2A9.AB2A30.3BABA9B46.4B2.4B278.A$61.2B.BA7B66.4B14.
4B42.4B.4B50.2A8.A6.4B18.3B2A13B54.4B13.4B41.4B11.4B32.A9.2B2A32.2BA
8B.B2A45.4B2.4B277.3A$63.BABA5B68.4B12.4B40.6B3.4B67.4B15.2AB.11B2.4B
52.4B13.4B43.4B9.4B30.3A11.4B33.8B2.BA.A45.4B2.4B$63.2B2A5B69.4B10.4B
40.7B4.4B67.4B13.A.AB2.8B5.4B50.4B13.4B45.4B7.4B31.A13.4B33.3B2.4B4.A
46.4B2.4B$61.2AB.8B69.4B8.4B41.7B5.4B67.4B12.A5.10B4.4B48.4B13.4B47.
4B5.4B45.B2A2B31.5B3.4B3.2A46.4B2.4B$60.A.AB3.7B69.4B6.4B41.2A7B5.4B
67.4B10.2A5.B.B5.2A5.4B46.4B13.4B49.4B3.4B47.2A33.2AB6.4B51.4B2.4B$
60.A5.2A2B.4B69.4B4.4B42.2A.B2A2B7.4B67.4B17.3B4.A7.4B44.4B13.4B51.4B
.4B84.A8.4B51.4B2.4B$59.2A5.2A4.4B69.4B2.4B46.BABA.B7.4B67.4B15.B2AB
5.3A5.4B42.4B13.4B53.7B82.3A10.4B51.4B2.4B$73.4B25.4B40.8B48.BAB.2B7.
4B67.4B15.2A8.A6.4B40.4B13.4B55.5B83.A13.4B51.4B2.4B$74.4B23.4B42.6B
47.4B2.3B7.4B67.4B32.4B38.4B13.4B56.5B26.4B68.4B51.4B2.4B$75.4B21.4B
44.4B48.2A2.2B3A8.4B67.4B32.4B36.4B13.4B56.7B24.3B71.4B51.4B2.4B2.2B
11.A$76.4B19.4B44.6B48.A2.2B3AB8.4B67.4B32.4B34.4B13.4B56.4B.4B22.4B
72.4B51.4B2.7B.B7.3A$77.4B17.4B44.8B44.3A4.B3A.B8.4B67.4B32.4B32.4B
13.4B56.4B3.4B20.B.2B74.4B51.4B2.9B5.A$78.4B15.4B37.B6.4B2.4B36.2A5.A
8.B.3AB7.4B67.4B32.4B30.4B13.4B56.4B5.4B18.4B76.4B51.4B.9B5.2A$79.4B
13.4B37.3B4.4B4.4B34.B2A2B13.B3A2B7.4B67.4B32.4B28.4B13.4B56.4B7.4B
16.4B78.4B51.14B.5B$80.4B11.4B37.6B.4B6.4B20.A13.4B14.3A2B8.4B67.4B
32.4B26.4B13.4B56.4B9.4B14.4B80.4B51.17B$81.4B9.4B.4B33.10B8.4B19.3A
11.4B14.3B11.4B67.4B32.4B24.4B13.4B56.4B11.4B12.4B82.4B16.3B30.B.19B$
82.4B6.5B2.6B2C17.A10.10B10.4B21.A9.B3A16.2B12.4B67.4B32.4B22.4B13.4B
56.4B13.4B10.4B84.4B10.B2.BA3B30.22B2.B$83.4B4.14B2C3B5.2A7.3A8.9B12.
4B19.2A9.2B2A31.4B67.4B32.4B20.4B13.4B56.4B15.4B8.4B86.4B8.3AB2A2B2A
29.26B$84.4B3.20B4.A11.A7.8B14.4B18.5B5.2A2B33.4B67.4B32.4B18.4B13.4B
56.4B17.4B6.4B88.4B7.4A4B2A27.27B2A$85.4B.23BA.A10.2A8.6B16.4B19.3BAB
3.3AB34.4B67.4B32.4B16.4B13.4B56.4B19.4B4.4B90.4B7.3B2A2.B26.27B.B2A$
86.7B3.17B2A11.4B6.6B17.4B17.3BABA4BABAB34.4B67.4B32.4B14.4B13.4B56.
4B21.5B.4B92.4B6.3B30.27B3.B$87.5B3.18B15.3B5.7B17.4B15.4BA2BA2B2.2A
36.4B67.4B32.4B12.4B13.4B56.4B23.8B94.4B3.3B32.24B$87.5B2.19B15.4B3.
9B17.4B15.4B2A3B41.4B67.4B32.4B10.4B13.4B56.4B25.6B96.4B2.3B33.23B$
86.27B16.4B.11B17.4B15.6B44.4B67.4B32.4B8.4B13.4B56.4B26.5B98.6BAB31.
26B$85.4B.23B17.16B17.4B15.5B45.4B67.4B32.4B6.4B13.4B56.4B27.6B98.4BA
BAB30.27B$84.4B3.22B18.16B17.4B13.7B45.4B67.4B32.4B4.4B13.4B56.4B27.
8B98.3BA2BA30.22B2.4B$83.4B5.22B17.11B2.4B17.4B11.4B.4B45.4B67.4B32.
4B2.4B13.4B56.4B27.4B2.4B96.5B2A2B29.24B.4B254.A$82.4B7.22B15.12B3.4B
17.4B9.4B3.4B45.4B67.4B32.8B13.4B56.4B27.4B4.4B94.10B30.24B.4B252.A$
81.4B9.17B.4B13.14B3.4B17.4B7.4B5.4B45.4B67.4B32.6B13.4B56.4B27.4B6.
4B92.4B.6B32.22B2.4B251.3A$80.4B11.15B3.4B11.4B.9B5.4B17.4B5.4B7.4B
45.4B67.4B32.4B13.4B56.4B27.4B8.4B90.4B3.3B.B2A30.23B.5B$79.4B13.14B
4.4B9.4B2.9B6.4B17.4B3.4B9.4B45.4B67.4B30.6B11.4B56.4B27.4B10.4B88.4B
5.B2.BA.A31.28B$78.4B14.15B4.4B7.4B4.8B7.4B17.4B.4B11.4B45.4B67.4B28.
8B9.4B56.4B27.4B12.4B86.4B12.A36.21B2AB$77.4B14.16B5.4B5.4B5.8B8.4B
17.7B13.4B45.4B67.4B26.4B2.4B7.4B56.4B27.4B14.4B84.4B13.2A35.5B2A2B.
11B2C2B$76.4B11.19B7.4B3.4B7.3B.4B8.4B17.5B15.4B45.4B67.4B24.4B4.4B5.
4B56.4B27.4B16.4B82.4B53.3B2A14B2D3B$75.4B11.19B9.4B.4B8.4B.4B8.4B16.
5B16.4B45.4B67.4B22.4B6.4B3.4B56.4B27.4B18.4B8.2A70.4B53.20B2.4B$74.
4B11.2A17B11.7B10.4B.4B8.4B14.7B16.4B45.4B67.4B20.4B8.4B.4B56.4B8.ABA
16.4B20.4B6.B2AB68.4B54.3B3D15B2.4B$73.4B12.2A16B13.5B10.B2AB3.4B8.4B
12.4B.4B16.4B45.4B67.4B18.4B10.7B56.4B9.3BAB2.B10.4B22.4B5.4B67.4B57.
2BD2B.14B2.4B$72.4B13.18B13.5B11.2A5.4B8.4B10.4B3.4B16.4B45.4B67.4B
16.4B12.5B56.4B9.A4BA2B2A8.4B24.4B5.2B67.4B58.3D2B.10B.4B2.4B$71.4B
13.20B11.7B18.4B8.4B8.4B5.4B16.4B45.4B67.4B14.4B13.5B55.4B10.2ABA2BAB
2A7.4B26.4B2.4B7.A58.4B59.5B2.10B.4B2.4B$70.4B14.21B9.4B.4B18.4B8.4B
6.4B7.4B16.4B45.4B67.4B12.4B13.7B53.4B12.B2.2A3B7.4B28.4B.5B5.A.A56.
4B59.7B2.10B.4B2.4B$69.4B16.21B7.4B3.4B18.4B8.4B4.4B9.4B16.4B45.4B67.
4B10.4B13.4B.4B51.4B18.3B6.4B30.14B.A56.4B60.8B2.4B2.4B.4B2.4B$68.4B
18.21B5.4B5.4B18.4B8.4B2.4B11.4B16.4B45.4B67.4B8.4B13.4B3.4B49.4B21.
3B3.4B32.14B122.8B2.3B2.5B.4B2.4B$67.4B20.21B2.5B7.4B18.4B8.8B13.4B
16.4B45.4B67.4B6.4B13.4B5.4B47.4B22.3B2.4B33.14B122.6B11.4B.4B2.4B$
66.4B20.5B.22B9.4B18.4B8.6B15.4B16.4B45.4B67.4B4.4B13.4B7.4B45.4B23.B
A6B33.15B121.6B13.4B.4B2.4B$65.4B20.4B3.22B10.4B18.4B8.4B17.4B16.4B
45.4B67.4B2.4B13.4B9.4B43.4B23.BABA4B33.12B2A3B120.7B13.4B.4B2.4B$64.
4B20.4B4.21B12.4B18.4B6.6B17.4B16.4B45.4B67.8B13.4B11.4B41.4B24.A2BA
3B33.13B2A3B121.6B14.4B.4B2.4B$63.4B20.4B5.22B12.4B18.4B4.8B17.4B16.
4B45.4B67.6B13.4B13.4B39.4B24.2B2A5B31.4B2.11B.B2A119.6B15.4B.4B2.4B$
62.4B20.4B6.23B3.B8.4B18.4B2.4B2.4B17.4B16.4B45.4B67.4B13.4B15.4B37.
4B25.10B29.4B5.8B2.BA.A118.6B16.4B.4B2.4B$61.4B20.4B8.23B.B2A8.4B18.
8B4.4B17.4B16.4B45.4B65.6B11.4B17.4B35.4B26.6B.4B27.4B4.10B5.A117.8B
16.4B.4B2.4B$60.4B20.4B9.25B2A9.4B18.6B6.4B17.4B16.4B45.4B63.8B9.4B
19.4B33.4B25.2AB.3B3.4B25.4B5.2A5.B.B5.2A115.8B18.4B.4B2.4B$59.4B20.
4B11.25B11.4B18.4B8.4B17.4B16.4B45.4B61.4B2.4B7.4B21.4B31.4B25.A.AB2.
B5.4B23.4B7.A4.3B123.9B18.4B.4B2.4B$58.4B20.4B11.26B12.4B16.6B8.4B17.
4B16.4B45.4B59.4B4.4B5.4B23.4B29.4B26.A12.4B21.4B5.3A5.B2AB122.9B19.
4B.4B2.4B$57.4B20.4B12.20B.4B14.4B14.8B8.4B17.4B16.4B45.4B57.4B6.4B3.
4B25.4B27.4B26.2A13.4B19.4B6.A8.2A122.10B20.4B.4B2.4B$56.4B20.4B13.
20B2.4B14.4B12.4B2.4B8.4B17.4B16.4B45.4B55.4B8.4B.4B27.4B25.4B43.4B
17.4B140.3B2A5B3.2B11.A4.4B.4B2.4B$55.4B20.4B11.B3.20B2.4B14.4B10.4B
4.4B8.4B17.4B16.4B45.4B53.4B10.7B29.4B23.4B45.4B15.4B135.2A3.4B2A5B2.
3B.B7.3A5.4B.4B2.4B188.A$54.4B20.4B11.2AB.3B3.15B3.4B14.4B8.4B6.4B8.
4B17.4B16.4B12.2A31.4B51.4B12.5B31.4B21.4B47.4B13.4B137.A3.19B5.A9.4B
.4B2.4B186.A$53.4B20.4B12.2A3BA6.12B5.4B14.4B6.4B8.4B8.4B17.4B16.4B
11.A33.4B49.4B13.5B32.4B19.4B49.4B11.4B138.A.A7BD12B5.2A9.4B.4B2.4B
185.3A$52.4B20.4B14.B.BA.A6.10B7.4B14.4B4.4B10.4B8.4B17.4B16.4B8.A.A
34.4B47.4B13.7B32.4B17.4B51.4B9.4B140.2A2.4B3DB.10B.5B10.4B.4B2.4B$
51.4B20.4B18.BA.A5.10B8.4B14.4B2.4B12.4B8.4B17.4B16.4B7.2A36.4B45.4B
13.4B.4B32.4B15.4B53.4B7.4B146.2B2D2BD15B13.4B.4B2.4B$50.4B20.4B22.A
6.7B11.4B14.8B14.4B8.4B17.4B16.4B45.4B43.4B13.4B3.4B32.4B13.4B55.4B5.
4B149.23B11.4B.4B2.4B$49.4B20.4B23.2A7.4B13.4B14.6B16.4B8.4B17.4B16.
4B45.4B41.4B13.4B5.4B32.4B11.4B57.4B3.4B150.24B2.B8.4B.4B2.4B$48.4B
20.4B33.3B15.4B14.4B18.4B8.4B17.4B16.4B45.4B39.4B13.4B7.4B32.4B9.4B
59.4B.4B150.29B8.4B.4B2.4B$47.4B20.4B35.B17.4B12.6B18.4B8.4B17.4B16.
4B45.4B57.B9.4B32.4B7.4B61.7B151.28B2A8.4B.4B2.4B$46.4B20.4B55.4B10.
8B18.4B8.4B17.4B16.4B45.4B67.4B32.4B5.4B63.5B151.27B.B2A9.4B.4B2.4B$
45.4B20.4B57.4B8.4B2.4B18.4B8.4B17.4B16.B48.4B33.4B13.3B14.4B32.4B3.
4B64.5B150.27B3.B11.4B.4B2.4B$44.4B20.4B59.4B6.4B4.4B18.4B8.4B17.4B
65.4B31.4B13.4B15.4B32.4B.4B64.7B149.24B19.4B.4B2.4B$43.4B20.4B61.4B
4.4B6.4B18.4B8.4B17.4B65.4B29.4B13.4B17.4B32.7B64.4B.4B149.23B20.4B.
4B2.4B$42.4B20.4B63.4B2.4B8.4B18.4B8.4B17.4B65.4B27.4B13.4B19.4B32.5B
64.4B3.4B148.23B21.4B.4B2.4B$41.4B20.4B65.8B10.4B18.4B8.4B17.4B65.4B
25.4B13.4B21.4B31.5B63.4B5.4B145.24B23.4B.4B2.4B$40.4B20.4B67.6B12.4B
18.4B8.4B17.4B65.4B23.4B13.4B23.4B29.7B61.4B7.4B143.2A.20B26.4B.4B2.
4B$39.4B20.4B69.4B14.4B18.4B8.4B17.4B65.4B21.4B13.4B25.4B27.4B.4B59.
4B9.4B142.2A.22B25.4B.4B2.4B$38.4B20.4B69.6B14.4B18.4B8.4B17.4B65.4B
19.4B13.4B27.4B25.4B3.4B43.A13.4B11.4B142.25B25.4B.4B2.4B$37.4B20.4B
69.8B14.4B18.4B8.4B17.4B65.4B17.4B13.4B29.4B23.4B5.4B42.3A10.4B13.4B
139.27B26.4B.4B2.4B$36.4B20.4B69.4B2.4B14.4B18.4B8.4B17.4B65.4B15.4B
13.4B31.4B21.4B7.4B44.A8.4B15.4B138.2A.B.22B27.4B.4B2.4B$35.4B20.4B
69.4B4.4B14.4B18.4B8.4B4.B12.4B65.4B13.4B13.4B33.4B19.4B9.4B42.2A7.4B
17.4B138.A6.19B28.4B.4B2.4B$34.4B20.4B69.4B6.4B8.A5.4B18.4B8.4B2.3B
12.4B65.4B11.4B13.4B35.4B17.4B11.4B41.5B3.4B19.4B134.3A11.13B31.4B.4B
2.4B$33.4B20.4B69.4B8.4B7.3A4.4B18.4B8.10B11.4B19.B45.4B9.4B13.4B37.
4B15.4B13.4B42.3B2.4B21.4B133.A13.5B2A2B.4B20.2A9.4B.4B2.4B$32.4B20.
4B69.4B10.4B9.A4.4B18.4B8.10B11.4B18.2B45.4B7.4B13.4B39.4B13.4B15.4B
31.2A7.9B23.4B148.3B2A2B2.4B18.B2AB9.4B.4B2.4B$31.4B20.4B69.4B12.4B7.
2A4.6B2C15.4B8.9B12.4B17.3B45.4B5.4B13.4B41.4B11.4B17.4B30.A8.8B25.4B
147.4B.3B2.4B11.B6.2B11.4B.4B2.4B$30.4B20.4B69.4B14.4B6.12B2C3B5.2A6.
4B8.7B14.4B16.4B45.4B3.4B13.4B43.4B9.4B19.4B26.2A.A.B3.10B27.4B145.3B
3D2B4.4B9.3B4.2B13.4B.4B2.4B$29.4B20.4B69.4B16.4B7.16B4.A8.4B7.7B15.
4B16.4B45.4B.4B13.4B45.4B7.4B21.4B25.A2.3AB.2B2A7B28.4B144.4BD3B5.4B
4.14B13.4B.4B2.4B$28.4B20.4B69.4B18.4B6.18BA.A9.4B7.6B16.4B16.4B45.7B
13.4B47.4B5.4B23.4B25.2A2.BA3B2A7B29.4B143.2B3D2B7.4B3.14B14.4B.4B2.
4B$27.4B20.4B69.4B20.4B6.17B2A11.4B6.6B17.4B16.4B45.5B13.4B49.4B3.4B
25.4B26.4A12B30.4B143.6B8.4B2.17B5.B6.4B.4B2.4B98.A$26.4B20.4B69.4B
22.4B4.18B14.4B5.7B17.4B16.4B44.5B12.4B51.4B.4B27.4B25.A.2B3.7B.B2A
29.4B142.6B9.29B6.4B.4B2.4B96.A$25.4B20.4B69.4B24.4B2.19B15.4B3.9B17.
4B16.4B42.7B10.4B53.7B29.4B25.3AB2.7B.BA.A29.4B141.6B10.30B6.3B.4B2.
4B95.3A$24.4B20.4B69.4B26.24B16.4B.11B17.4B16.4B40.4B.4B8.4B55.5B31.
4B27.A4.4B5.A30.4B141.5B10.30B.B4.4B.4B2.4B$23.4B20.4B69.4B28.23B17.
16B17.4B16.7B35.4B3.4B6.4B56.5B32.4B21.5A5.4B5.2A30.4B140.5B9.32B2A4.
4B.4B2.4B$22.4B20.4B69.4B30.22B18.16B17.4B16.5B35.4B5.4B4.4B56.7B32.
4B20.A10.4B37.4B138.6B8.33B2A5.4B.4B2.4B$21.4B20.4B69.4B32.22B17.11B
2.4B17.4B16.4B34.4B7.4B2.4B56.4B.4B32.4B21.A9.4B37.4B137.6B7.4B3.28B
7.4B.4B2.4B$.B2A16.4B20.4B69.4B34.22B15.12B3.4B17.4B16.4B32.4B9.8B5.
2A49.4B3.4B32.4B19.2A10.4B37.4B137.5B6.4B5.18B.B4.3B8.4B.4B2.4B$.3A2B
2.B10.4B20.4B69.4B36.17B.4B13.14B3.4B17.4B16.4B30.4B11.7B5.A49.4B5.4B
32.4B31.4B37.4B136.5B5.4B7.4B.10B20.4B.4B2.4B$ABA2BA2B2A8.4B20.4B69.
4B38.6B2D7B3.4B11.4B.9B5.4B17.4B16.4B28.4B13.7B.BA.A48.4B7.4B32.4B31.
4B37.4B135.2B2AB4.4B9.13B22.4B.4B2.4B$2A2B2A2B2A7.4B20.4B69.4B40.5BDB
D6B4.4B9.4B2.9B6.4B17.4B16.3B27.4B12.9B.B2A48.4B9.4B32.4B31.4B37.4B
133.3B2A2B2.4B11.15B20.4B.4B2.4B$.B2.2A3B7.4B20.4B69.4B41.6BD8B4.4B7.
4B4.8B7.4B17.4B16.2B26.4B10.2B.11B49.4B11.4B32.4B31.4B37.4B132.7B.4B
13.15B20.4B.4B2.4B$6.3B6.4B20.4B69.4B41.16B5.4B5.4B5.8B8.4B17.4B16.B
25.4B10.2A13B44.3B.4B13.4B32.4B31.4B37.4B132.5B.4B15.14B21.4B.4B2.4B$
8.3B3.4B20.4B69.4B38.19B7.4B3.4B7.3B.4B8.4B17.4B40.4B11.2A13B43.8B10.
A4.4B32.4B31.4B37.4B131.9B17.13B21.5B.4B2.4B$8.3B2.4B20.4B69.4B38.19B
9.4B.4B8.4B.4B8.4B17.4B38.4B13.2B2.10B43.7B.B7.3A5.4B32.4B31.4B37.4B
130.8B18.9B3DB19.8B.4B2.4B$8.BA6B20.4B69.4B38.2A17B11.7B10.4B.4B8.4B
17.4B36.4B19.9B.2B40.10B5.A9.4B32.4B31.4B37.4B129.7B25.4BD2B19.9B.4B
2.4B$7.BABA4B20.4B69.4B39.2A16B13.5B10.B2AB3.4B8.4B17.4B34.4B20.11B2A
37.12B5.2A9.4B32.4B31.4B37.4B119.2A7.6B26.2B3D2B18.11B.4B2.4B$7.A2BA
3B20.4B69.4B40.18B13.5B11.2A5.4B8.4B17.4B32.4B21.4B2A3B.B2A36.14B.5B
10.4B32.4B31.4B37.4B119.A7.7B5.2A19.6B15.15B.4B2.4B$6.2B2A5B18.4B69.
4B40.20B11.7B18.4B8.4B17.4B30.4B22.4B2A4B.B37.18B13.4B32.4B31.4B37.4B
118.A.AB3.7B6.A20.7B12.18B.4B2.4B$6.10B16.4B69.4B41.21B9.4B.4B18.4B8.
4B17.4B19.B8.4B23.7B41.22B11.4B32.4B31.4B37.4B118.2AB.11B.BA.A20.8B
11.19B.4B2.4B$6.6B.4B14.4B69.4B43.21B7.4B3.4B18.4B8.4B17.4B18.2B6.4B
4D19.A.5B42.23B11.4B32.4B31.4B37.4B119.10BA2B.B2A22.8B3.B5.21B.4B2.4B
$4.2AB.3B3.4B12.4B69.4B45.21B5.4B5.4B18.4B8.4B17.4B17.3B4.4B4D19.A.A
3.4B38.2AB.22B11.4B32.4B31.4B37.4B117.10BABA3B24.9B.29B.4B2.4B$3.A.AB
2.B5.4B10.4B69.4B47.21B2.5B7.4B18.4B8.4B17.4B16.4B2.4B4D21.A6.2A37.A.
AB.23B11.4B32.4B31.4B37.4B117.9BABA.2B23.41B.4B2.4B$3.A12.4B8.4B69.4B
47.5B.22B9.4B18.4B8.4B17.4B16.8B4D29.A38.A4.22B13.4B32.4B31.4B37.4B
114.2AB.8BA2B25.42B.4B2.4B$2.2A13.4B6.4B69.4B47.4B3.22B10.4B18.4B8.4B
17.4B15.7B4D31.3A34.2A5.20B15.4B32.4B31.4B37.4B112.A.AB2.8B28.42B.4B
2.4B$18.4B4.4B69.4B47.4B4.21B12.4B18.4B8.4B17.4B16.4B4D34.A42.19B16.
4B32.4B31.4B37.4B111.A4.4B2.3B25.2B.43B.4B2.4B$19.4B2.4B69.4B47.4B5.
22B12.4B18.4B8.4B17.4B14.6B2D77.21B16.4B32.4B31.4B37.4B109.2A3.4B3.5B
22.2A4B2A40B.4B2.4B$20.8B69.4B47.4B6.23B3.B8.4B18.4B8.4B17.4B12.8B76.
2AB.15B.4B16.4B32.4B31.4B37.4B112.4B6.B2A22.2AB.2B2A6B.26B.7B.4B2.4B$
21.6B69.4B47.4B8.23B.B2A8.4B18.4B8.4B17.4B10.10B74.A.AB3.10B5.4B16.4B
32.4B31.4B37.4B110.4B8.A24.B2.5B2.B4.25B2.7B.4B2.4B52.A$22.5B47.2B19.
4B47.4B9.25B2A9.4B18.4B8.4B17.4B8.4B.7B73.A6.10B6.4B16.4B32.4B31.4B
37.4B108.4B10.3A23.6B8.23B4.7B.4B2.4B50.A$23.4B47.3B17.4B47.4B11.25B
11.4B18.4B8.4B17.4B6.4B.3BA5B71.2A5.13B5.4B16.4B32.4B31.4B37.4B106.4B
13.A23.4B10.23B5.7B.4B2.4B49.3A$23.5B44.2B3A16.4B47.4B11.26B12.4B18.
4B8.4B17.4B4.4B2.2BABA5B76.15B5.4B16.4B32.4B31.4B37.4B104.4B38.2B2AB
8.20B2.B7.7B.4B2.4B$24.5B43.2B3AB14.4B47.4B12.20B.4B14.4B18.4B8.4B17.
4B2.4B4.2BABA5B74.16B6.4B16.4B32.4B31.4B37.4B102.4B37.2AB.2A8.20B12.
7B.4B2.4B$26.4B43.B3A.B12.4B47.4B13.20B2.4B14.4B18.4B8.4B17.8B5.3B2AB
.4B72.17B7.4B16.4B32.4B31.4B37.4B100.4B37.A.AB10.16B.2B15.7B.4B2.4B$
27.4B44.B.3AB9.4B47.4B11.B3.20B2.4B14.4B18.4B8.4B17.6B7.5B2.4B72.16B
8.4B16.4B32.4B31.4B37.4B98.4B38.A12.4B.B3D4B.3B19.7B.4B2.4B$28.4B44.B
3A2B7.4B47.4B11.2AB.3B3.15B3.4B14.4B18.4B8.4B17.4B8.3B5.4B72.13B11.4B
16.4B32.4B31.4B37.4B96.4B38.2A11.4B2.2BD6B23.7B.4B2.4B$29.4B44.3A3B.B
3.4B47.4B12.2A3BA6.12B5.4B14.4B18.4B8.4B15.6B8.B7.4B71.5B2A2B.3B12.4B
16.4B32.4B31.4B37.4B94.4B51.4B3.2B3D5B23.7B.4B2.4B$30.4B43.3B3.8B47.
4B14.B.BA.A6.10B7.4B14.4B18.4B8.4B13.8B16.4B72.3B2A2B2.4B11.3B17.4B
32.4B31.4B37.4B92.4B51.4B4.6B.4B23.7B.4B2.4B$31.4B43.2B.BA7B47.4B18.B
A.A5.10B8.4B14.4B18.4B8.4B4.B6.4B2.4B16.4B71.8B3.2A12.2B18.4B32.4B31.
4B37.4B90.4B51.4B4.7B2.4B23.7B.4B2.4B$32.4B44.BABA5B47.4B22.A6.7B11.
4B8.A5.4B18.4B8.4B2.3B4.4B4.4B16.4B69.8B4.A14.B19.4B32.4B31.4B37.4B
88.4B51.4B4.8B3.2B2A23.7B.4B2.4B$33.4B43.2B2A5B46.4B23.2A7.4B13.4B7.
3A4.4B18.4B8.10B.4B6.4B16.4B68.8B5.3A32.4B32.4B31.4B37.4B86.4B52.3B4.
8B5.BABA23.7B.4B2.4B$34.4B40.2AB.8B44.4B33.3B15.4B9.A4.4B18.4B8.13B8.
4B16.4B67.7B8.A33.4B32.4B31.4B37.4B84.4B51.2A2B4.9B6.2BAB23.7B.4B2.4B
$35.4B38.A.AB3.7B42.4B35.B17.4B7.2A4.6B2C15.4B8.11B10.4B16.4B66.7B43.
4B32.4B31.4B37.4B82.4B51.A.AB4.4B.6B6.B2AB23.7B.4B2.4B$36.4B37.A5.2A
2B.4B40.4B55.4B6.12B2C3B5.2A6.4B8.9B12.4B16.4B66.6B7.A36.4B32.4B31.4B
37.4B80.4B52.A7.3B.7B7.3B24.7B.4B2.4B$37.4B35.2A5.2A4.4B38.4B57.4B7.
16B4.A8.4B7.8B14.4B16.4B65.6B6.A.A36.4B32.4B31.4B37.4B78.4B52.2A5.2A
2B2.6B9.2B4.2A19.7B.4B2.4B$38.4B48.4B36.4B59.4B6.18BA.A9.4B7.6B16.4B
16.4B65.5B6.A.A37.4B32.4B31.4B37.4B76.4B59.A.AB3.8B4.B3.B4.A21.7B.4B
2.4B$39.4B48.4B34.4B61.4B6.17B2A11.4B6.6B17.4B16.4B64.6B4.2A.3A36.4B
32.4B31.4B37.4B74.4B60.A7.B2A6B.4B3.BA.A22.7B.4B2.4B$40.4B48.4B32.4B
63.4B4.18B14.4B5.7B17.4B16.4B62.6B6.B4.A36.4B32.4B31.4B37.4B72.4B60.
2A6.2B2A13B.B2A24.7B.4B2.4B$41.4B48.4B30.4B65.4B2.19B15.4B3.9B17.4B
16.4B61.7B3.B2AB3A38.4B32.4B31.4B37.4B70.4B70.18B27.7B.4B2.4B$42.4B
48.4B28.4B67.24B16.4B.11B17.4B16.4B61.8B.B2A.A41.4B32.4B31.4B37.4B68.
4B71.18B28.7B.4B2.4B$43.4B48.4B26.4B69.23B17.16B17.4B16.4B60.10B46.4B
32.4B31.4B37.4B66.4B76.13B30.7B.4B2.4B$44.4B48.4B24.4B71.22B18.16B17.
4B16.4B58.3B2A6B47.4B32.4B31.4B37.4B64.4B76.12B33.7B.4B2.4B$45.4B48.
4B22.4B73.22B17.11B2.4B17.4B16.4B51.2A5.2B2A6B48.4B32.4B31.4B37.4B62.
4B77.10B36.7B.4B2.4B$46.4B48.4B20.4B75.22B15.12B3.4B17.4B16.4B51.A5.
10B49.4B32.4B31.4B37.4B60.4B77.11B37.7B.4B2.4B$47.4B48.4B18.4B77.17B.
4B13.14B3.4B17.4B16.4B50.A.AB2.11B49.4B32.4B31.4B37.4B58.4B78.7B.2B
39.7B.4B2.4B$48.4B48.4B16.4B79.6B2D7B3.4B11.4B.9B5.4B17.4B16.4B50.2AB
.12B50.4B32.4B31.4B37.4B56.4B78.11B40.7B.4B2.4B$49.4B48.4B14.4B81.5BD
BD6B4.4B9.4B2.9B6.4B17.4B16.4B51.15B50.4B32.4B31.4B37.4B54.4B80.11B
40.7B.4B2.4B$50.4B48.4B12.4B82.6BD8B4.4B7.4B4.8B7.4B17.4B4.2A5.2A3.4B
50.16B50.4B32.4B31.4B37.4B52.4B81.11B41.7B.4B2.4B$51.4B48.4B10.4B82.
16B5.4B5.4B5.5B.B9.4B17.4B.2B2A5.A5.4B49.16B.2B48.4B32.4B31.4B37.4B
50.4B82.11B42.7B.4B2.4B$52.4B48.4B8.4B79.19B7.4B3.4B7.3B13.4B17.7B3.B
A.A6.4B48.18B2A84.4B31.4B37.4B48.4B81.2AB2.4B3DB43.7B.4B2.4B$53.4B48.
4B6.4B79.19B9.4B.4B8.4B13.4B17.8B.B2A8.4B46.17B.B2A85.4B31.4B37.4B46.
4B81.A.AB3.4BD2B44.7B.4B2.4B$54.4B48.4B4.4B79.2A17B11.7B10.4B13.4B17.
5B2A2B11.4B44.4B2.8B.4B.B87.4B31.4B37.4B44.4B82.A6.2B3D2B45.7B.4B2.4B
$55.4B48.4B2.4B80.2A16B13.5B10.B2AB15.4B16.5BABAB12.4B43.3B4.7B95.4B
31.4B37.4B42.4B82.2A7.6B46.7B.4B2.4B$56.4B48.8B81.18B13.5B11.2A17.4B
14.7BAB.2B11.4B42.2B5.6B61.4B32.4B31.4B37.4B40.4B92.7B46.7B.4B2.4B$
57.4B48.6B81.20B11.7B30.4B12.8B3.3B11.4B41.B6.4B64.4B12.4B16.4B31.4B
37.4B19.2B17.4B93.8B46.7B.4B2.4B$58.4B48.4B82.21B9.4B.4B30.4B10.4B3.B
.3B2AB12.4B45.A3B67.4B10.4B18.4B31.4B37.4B17.3A16.4B95.9B45.7B.4B2.4B
$59.4B46.6B82.21B7.4B3.4B30.4B8.4B7.2B2ABA12.4B43.A.AB69.4B8.4B20.4B
31.4B25.A11.4B16.3BAB13.4B96.11B2.2A5.2A33.7B.4B2.4B$60.4B44.8B82.21B
5.4B5.4B30.4B6.4B9.4B.A12.4B42.A.A71.4B6.4B22.4B31.4B23.A.A11.4B14.A
3BAB12.4B96.6B.4B.2B2A5.A35.7B.4B2.4B$61.4B42.4B2.4B82.21B2.5B7.4B30.
4B4.4B12.A.4B11.4B42.A56.B16.4B4.4B24.4B31.4B22.A.A12.4B12.A.A2BA12.
4B97.7B.7B3.BA.A36.7B.4B2.4B$62.4B40.4B4.4B80.5B.22B9.4B30.4B2.4B14.A
B2A2B11.4B38.3A57.2B16.4B2.4B26.4B31.4B20.2A.3A11.4B9.A2BA.A13.4B99.
6B.9B.B2A38.7B.4B2.4B$63.4B38.4B6.4B78.4B3.22B10.4B30.8B16.B2A2B12.4B
37.A59.3B16.8B28.4B31.4B7.2A11.B4.A11.4B7.BA3BA13.4B100.6B3.5B2A2B41.
7B.4B2.4B$64.4B36.4B8.4B76.4B4.21B12.4B30.6B17.3B15.4B96.4B16.6B30.4B
31.4B5.B2AB4.2B2.B2AB3A13.4B3.B.2BA3B13.4B101.2B2AB4.5BABAB42.7B.4B2.
4B$65.4B34.4B10.4B74.4B5.22B12.4B30.4B19.2B16.4B17.2A77.4B16.4B32.4B
31.4B3.7B.6B2A.A16.8B3.3A12.4B101.3B2A2B2.7BAB.2B35.D5.7B.4B2.4B$66.
4B32.4B12.4B72.4B6.23B3.B8.4B28.6B37.4B16.2A78.4B14.6B32.4B31.22B19.
7BAB.2B12.4B102.7B.8B3.3A34.3DB3.7B.4B2.4B$67.4B30.4B14.4B70.4B8.23B.
B2A8.4B26.8B37.4B96.4B12.8B32.4B31.19B22.5BABAB13.4B104.5B.4B3.B.2BA
3B36.BD4.7B.4B2.4B$68.4B28.4B16.4B68.4B9.25B2A9.4B7.B16.4B2.4B37.4B
96.4B10.4B2.4B32.4B31.19B21.5B2A2B12.4B105.9B7.BA3BA15.2D18.2D5.7B.4B
2.4B$69.4B26.4B18.4B66.4B11.25B11.4B5.3B14.4B4.4B37.4B96.4B8.4B4.4B
32.4B31.18B20.8B.B2A9.4B106.8B9.A2BA.A14.D.D25.7B.4B2.4B$70.4B24.4B
20.4B64.4B11.26B12.4B2.5B13.4B6.4B37.4B96.4B6.4B6.4B32.4B29.19B19.7B
3.BA.A7.4B107.7B12.A.A2BA13.D27.7B.4B2.4B$71.4B22.4B22.4B62.4B12.20B.
4B14.6B2A3B11.4B8.4B37.4B96.4B4.4B8.4B32.4B27.20B.2B15.4B.2B2A5.A6.4B
99.2A7.6B14.A3BAB32.2D2B2D15B2.4B$72.4B20.4B24.4B60.4B13.20B2.4B14.5B
ABA2B10.4B10.4B37.4B96.4B2.4B10.4B32.4B26.22B2A13.4B4.2A5.2A4.4B101.A
7.7B5.2A7.3BAB32.2D2B2D16B2.4B$73.4B18.4B26.4B58.4B11.B3.20B2.4B14.5B
ABA2B8.4B12.4B37.4B96.8B12.4B32.4B25.13BA6B.B2A12.4B17.4B102.A.AB3.7B
6.A8.3A18.D25.13B2.4B$74.4B16.4B28.4B56.4B11.2AB.3B3.15B3.4B14.5BA3B
7.4B14.4B37.4B96.6B14.4B32.4B22.14BABA5B2.B12.4B17.4B104.2AB.11B.BA.A
9.2B17.D.D24.9B.4B2.4B$75.4B14.4B30.4B54.4B12.2A3BA6.12B5.4B14.7B7.4B
16.4B36.5B94.7B15.4B32.4B21.14BA2BA5B13.4B17.4B107.10BA2B.B2A29.D.D
24.10B.4B2.4B$76.4B12.4B32.4B52.4B14.B.BA.A6.10B7.4B14.6B6.4B18.4B37.
4B93.7B16.4B32.4B19.16B2A5B13.4B17.4B107.10BABA3B32.D25.11B.4B2.4B$
77.4B10.4B34.4B50.4B18.BA.A5.10B8.4B14.4B6.4B20.4B36.5B91.2A7B16.4B
32.4B17.2AB2.19B12.4B17.4B109.9BABA3B58.12B.4B2.4B$78.4B8.4B36.4B48.
4B22.A6.7B11.4B12.6B4.4B22.4B38.2B91.2A.B2A2B18.4B32.4B15.A.AB2.20B
10.4B17.4B108.2AB.8BA2B60.13B.4B2.4B$79.4B6.4B38.4B46.4B23.2A7.4B13.
4B10.8B2.4B24.4B37.2B94.BABA.B18.4B32.4B14.A4.3B.16B2A8.4B17.4B108.A.
AB2.8B62.14B.4B2.4B$80.4B4.4B40.4B44.4B33.3B15.4B8.4B2.8B26.4B36.2B
95.BAB.2B18.4B32.4B12.2A3.21B2A7.4B17.4B109.A4.4B2.3B27.2A33.15B.4B2.
4B$81.4B2.4B42.4B42.4B35.B17.4B6.4B4.6B28.4B130.4B2.BAB18.4B32.4B16.
10B2.7B.2B7.4B17.4B109.2A3.4B3.5B25.2A33.B.14B.4B2.4B$82.8B44.4B40.4B
55.4B4.4B6.4B30.4B129.2A2.2B3A19.4B32.4B15.10B2.6B10.4B17.4B114.4B6.B
2A61.6B.9B.4B2.4B$83.6B46.4B38.4B57.4B2.4B6.6B30.4B129.A2.B3ABA19.4B
32.4B16.8B3.4B10.4B17.4B114.4B8.A62.7B.9B.4B2.4B$84.5B47.4B36.4B59.8B
6.8B30.4B125.3A4.BA2B.A19.4B32.4B15.4B.2B3.2B12.4B17.4B114.4B10.3A60.
6B2.9B.4B2.4B$85.4B48.4B34.4B61.6B6.4B2.4B30.4B124.A8.A.2BAB18.4B32.
4B15.3B5.B2AB10.4B17.4B114.4B13.A60.6B3.9B.4B2.4B$85.5B48.4B32.4B63.
4B6.4B4.2B32.4B133.AB3AB18.4B32.4B14.4B5.2A10.4B17.4B114.4B75.6B4.9B.
4B2.4B$86.5B48.4B30.4B63.6B4.4B6.B33.4B133.3A2B19.4B32.4B14.4B15.4B
17.4B114.4B75.8B4.9B.4B2.4B$88.4B48.4B28.4B63.8B2.4B42.4B17.4B111.BAB
22.4B32.4B14.4B13.4B17.4B114.4B75.8B6.9B.4B2.4B$89.4B48.4B26.4B63.4B
2.8B44.4B15.4B113.2B23.4B32.4B14.4B11.4B17.4B114.4B76.9B6.9B.4B2.4B$
90.4B48.4B24.4B63.4B4.6B46.4B13.4B140.4B32.4B14.4B9.4B17.4B114.4B77.
9B7.9B.4B2.4B$91.4B48.4B22.4B64.3B5.7B46.4B11.4B142.4B32.4B14.4B7.4B
17.4B114.4B77.10B8.9B.4B2.4B$92.4B48.4B20.4B65.2B6.7B47.4B9.4B144.4B
32.4B14.4B5.4B17.4B114.4B78.3B2C5B9.9B.4B2.4B$93.4B48.4B18.4B66.B6.7B
2A47.4B7.4B146.4B32.4B14.4B3.4B17.4B114.4B78.4B2C5B10.9B.4B2.4B$94.4B
48.4B16.4B75.2B2AB.2A48.4B5.4B148.4B32.4B14.4B.4B17.4B114.4B79.11B11.
9B.4B2.4B$95.4B48.4B14.4B75.B.ABAB52.4B3.4B150.4B32.4B14.7B17.4B114.
4B78.C12B12.9B.4B2.4B$96.4B48.4B12.4B75.AB.BAB54.4B.4B152.4B32.4B14.
5B17.4B114.4B77.3C2.8B15.9B.4B2.4B$97.4B48.4B10.4B75.B2A2.4B53.7B154.
4B32.4B13.5B16.4B114.4B77.C6.7B16.9B.4B2.4B$98.4B48.4B8.4B76.2ABAB2.
2A54.5B156.4B32.4B11.7B14.4B114.4B78.2C7.5B17.9B.4B2.4B$99.4B48.4B6.
4B76.A2B3A2.A55.5B157.4B32.4B9.4B.4B12.4B114.4B88.6B5.2C10.9B.4B2.4B$
100.4B48.4B4.4B76.A.ABAB4.3A51.7B157.4B32.4B7.4B3.4B10.4B114.4B88.6B
6.C12.9B.4B2.4B$101.4B48.4B2.4B75.BABA.A8.A50.4B.4B157.4B32.4B5.4B5.
4B8.4B114.4B21.4B63.8B2.BC.C13.9B.4B2.4B$102.4B48.8B75.3A2BA59.4B3.4B
157.4B32.4B3.4B7.4B6.4B114.4B21.4B63.9B2.B2C15.9B.4B2.4B$103.4B48.6B
76.BAB2A37.B21.4B5.4B157.4B32.3B2.4B9.4B4.4B114.4B21.4B64.12B18.9B.4B
2.4B$104.4B48.4B79.2AB37.2B19.4B7.4B157.4B32.7B11.4B2.4B114.4B21.4B
65.12B19.9B.4B2.4B$105.4B46.6B78.BA38.3B17.4B9.4B157.4B32.5B13.8B114.
4B21.4B64.2CB.10B20.9B.4B2.4B$106.4B44.8B117.4B15.4B11.4B157.4B31.5B
4.2A8.6B114.4B21.4B64.C.CB2.8B22.9B.4B2.4B$107.4B42.4B2.4B117.4B13.4B
13.4B157.4B29.7B.2B2AB8.4B114.4B21.4B65.C6.8B22.9B.4B2.4B$108.4B40.4B
4.4B117.4B11.4B15.4B157.4B27.4B.8B8.6B112.4B21.4B65.2C5.8B24.9B.4B2.
4B$109.4B38.4B6.4B117.4B9.4B17.4B157.4B25.4B3.6B8.8B110.4B21.4B73.7B
26.9B.4B2.4B$110.4B36.4B8.4B117.4B7.4B19.4B157.4B23.4B5.6B6.4B2.4B
108.4B21.4B73.11B24.9B.4B2.4B$111.4B34.4B10.4B117.4B5.4B21.4B157.4B
21.4B7.6B4.4B4.4B106.4B21.4B74.12B24.9B.4B2.4B$112.4B32.4B12.4B117.4B
3.4B23.4B157.4B19.4B5.2B2.6B.5B6.4B104.4B21.4B75.12B25.9B.4B2.4B$113.
4B30.4B14.4B117.4B.4B25.4B28.2B127.4B.3B13.4B5.16B8.4B11.A90.4B21.4B
77.11B26.9B.4B2.4B$114.4B28.4B16.4B117.7B27.4B26.3A128.9B10.4B4.17B
10.4B8.3A89.4B21.4B76.4B.4B3DB27.9B.4B2.4B$115.4B26.4B18.4B117.5B29.
4B25.3BAB127.10B7.4B5.17B11.4B6.A91.4B21.4B77.2C4.4BD2B28.9B.4B2.4B$
116.4B24.4B20.4B116.5B30.4B23.A3BAB128.10B5.4B5.17B13.4B5.2A89.4B21.
4B79.C4.2B3D2B29.9B.4B2.4B$117.4B22.4B22.4B114.7B30.4B12.A8.A.A2BA
129.11B3.4B5.18B14.10B88.4B21.4B77.3C6.6B30.9B.4B2.4B$118.4B20.4B24.
4B112.4B.4B30.4B11.3A4.A2BA.A131.12B.4B5.20B14.9B87.4B21.4B24.B53.C8.
7B30.9B.4B2.4B$119.4B18.4B26.4B110.4B3.4B30.4B13.A2.BA3BA133.15B5.22B
8.2B2.11B85.4B21.4B24.2B62.8B30.9B.4B2.4B$120.4B16.4B28.4B108.4B5.4B
30.4B11.2A2.BA3B134.14B7.22B6.17B83.4B21.4B24.3B63.8B30.9B.4B2.4B$
121.4B14.4B30.4B106.4B7.4B30.4B10.4B2.3A135.12B10.21B4.18B82.4B21.4B
24.4B63.8B31.9B.4B2.4B$122.4B12.4B32.4B104.4B9.4B30.4B11.BAB.2B135.
12B11.22B2.19B81.4B21.4B24.4B63.6B2.B2C30.9B.4B2.4B$123.4B10.4B34.4B
102.4B11.4B30.4B9.BABA.B136.12B12.43B79.4B21.4B24.4B64.7B.BC.C30.9B.
4B2.4B$124.4B8.4B36.4B100.4B13.4B30.4B5.2A.B2A2B137.12B14.41B78.4B21.
4B24.4B66.6B4.C31.9B.4B2.4B$125.4B6.4B38.4B98.4B15.4B30.4B4.2A7B135.
13B15.40B77.4B21.4B24.4B67.6B4.2C31.9B.4B2.4B$126.4B4.4B40.4B96.4B17.
4B30.4B4.7B136.14B14.24B.A14B76.4B21.4B24.4B68.6B38.9B.4B2.4B$127.4B
2.4B42.4B94.4B19.4B30.4B3.7B137.7B3.4B14.23BABA14B74.4B21.4B24.4B68.
8B38.9B.4B2.4B$128.8B44.4B92.4B21.4B30.4B3.6B139.4B5.4B7.A5.24B2A15B
72.4B21.4B24.4B6.B61.8B40.9B.4B2.4B$129.6B46.4B90.4B23.4B30.4B.8B137.
4B7.4B6.3A3.42B70.4B21.4B24.4B6.2B61.9B40.9B.4B2.4B$130.5B47.4B88.4B
25.4B30.7B2.4B135.4B9.4B8.A.44B68.4B21.4B24.4B6.3B61.9B41.9B.4B2.4B$
131.4B48.4B86.4B27.4B30.5B4.4B133.4B11.4B6.A.A39B2.4B66.4B21.4B24.4B
6.4B60.10B42.9B.4B2.4B$131.5B48.4B84.4B29.4B29.5B5.4B131.4B13.4B5.BA
2B.3B.33B3.4B64.4B21.4B24.4B6.5B60.3B2C5B43.9B.4B2.4B$132.5B48.4B82.
4B31.4B27.7B5.4B129.4B15.4B5.2B8.31B4.4B62.4B21.4B24.4B6.6B54.2C3.4B
2C5B44.9B.4B2.4B$134.4B48.4B3.4B73.4B33.4B25.4B.4B5.4B127.4B17.4B5.2B
12.11B3.8B.4B4.4B60.4B21.4B24.4B6.7B55.C3.11B45.9B.4B2.4B$135.4B46.6B
.4B73.4B35.4B23.4B3.4B5.4B125.4B19.4B3.B2AB10.11B6.5B3.4B4.4B58.4B21.
4B24.4B6.8B55.C.C12B46.9B.4B2.4B$136.4B44.11B73.4B37.4B21.4B5.4B5.4B
123.4B21.4B3.2A11.11B7.3B5.4B4.4B56.4B21.4B24.4B6.9B56.2C2.8B49.9B.4B
2.4B$137.4B43.10B73.4B39.4B19.4B7.4B5.4B121.4B23.4B14.12B7.3B6.4B4.4B
54.4B21.4B24.4B6.10B61.7B50.9B.4B2.4B$138.4B42.10B72.4B41.4B17.4B9.4B
5.4B119.4B25.4B12.13B8.B8.4B4.4B52.4B21.4B24.4B6.11B63.5B51.9B.4B2.4B
$139.4B41.11B70.4B43.4B15.4B11.4B5.4B117.4B27.4B10.4B.5B2AB19.4B4.4B
50.4B21.4B24.4B6.12B63.6B5.2C44.9B.4B2.4B$140.4B40.12B68.4B45.4B13.4B
13.4B5.4B115.4B29.4B8.4B3.4B2A21.4B4.4B48.4B21.4B24.4B6.13B62.6B6.C
46.9B.4B2.4B$141.4B38.2BA4B.6B66.4B47.B14.4B15.4B5.4B113.4B31.4B6.4B
5.2B25.4B4.4B46.4B21.4B24.4B6.14B61.8B2.BC.C47.9B.4B2.4B$142.4B37.BAB
A2B3.6B64.4B62.4B17.4B5.4B111.4B33.4B4.4B34.4B4.4B44.4B21.4B24.4B6.
14B61.9B2.B2C49.9B.4B2.4B$143.4B36.2B2AB5.6B62.4B62.4B19.4B5.4B109.4B
35.4B2.4B36.4B4.4B42.4B21.4B24.4B6.14B62.12B52.9B.4B2.4B$144.4B36.4B
6.6B60.4B62.4B21.4B5.4B107.4B37.8B38.4B4.4B40.4B21.4B24.4B6.14B2.B60.
12B53.9B.4B2.4B$145.4B35.3B8.6B58.4B63.3B23.4B5.4B105.4B39.6B40.4B4.
4B38.4B21.4B24.4B6.14B2.2B58.2CB.10B54.9B.4B2.4B$146.4B46.6B56.4B64.
2B25.4B5.4B103.4B41.4B42.4B4.4B36.4B21.4B24.4B6.14B2.3B57.C.CB2.8B56.
9B.4B2.4B$147.4B46.6B54.4B65.B27.4B5.4B101.4B41.6B42.4B4.4B34.4B21.4B
24.4B6.14B2.4B57.C6.8B56.9B.4B2.4B$148.4B48.4B2.B49.4B95.4B5.4B99.4B
41.8B42.4B4.4B32.4B21.4B24.4B6.14B2.5B56.2C5.8B58.9B.4B2.4B$149.4B48.
4B50.4B97.4B5.4B97.4B41.4B2.4B42.4B4.4B30.4B21.4B24.4B6.14B2.12B4.4B
49.7B54.2C4.9B.4B2.4B$150.4B48.4B48.4B68.B30.4B5.4B95.4B41.4B4.4B42.
4B4.4B28.4B21.4B24.4B6.14B2.12B4.4B49.11B50.B2CB4.9B.4B2.4B$151.4B98.
4B69.2B30.4B5.4B93.4B41.4B6.4B42.4B4.4B26.4B21.4B24.4B6.14B2.12B4.4B
50.12B50.2B6.9B.4B2.4B$152.4B78.2A16.4B70.3B30.4B5.4B91.4B41.4B8.4B
42.4B4.4B24.4B21.4B24.4B6.14B2.12B4.4B51.12B51.2B4.11B.4B2.4B$153.4B
70.2A3.2B2AB14.4B71.4B30.4B5.4B89.4B41.4B10.4B42.4B4.4B22.4B21.4B24.
4B6.14B2.12B4.4B53.11B50.19B.4B2.4B$154.4B68.B2AB2.4B14.4B73.4B30.4B
5.4B87.4B41.4B12.4B42.4B4.4B20.4B21.4B24.4B6.14B2.12B4.4B52.4B.4B3DB
50.20B.4B2.4B$155.4B68.2B3.6B.B9.4B62.4B9.4B30.4B5.4B85.4B41.4B14.4B
42.4B4.4B18.4B21.4B24.4B6.14B2.12B4.4B53.2C4.4BD2B41.B5.24B.4B2.4B$
156.4B68.2B2.10B6.4B62.4B11.4B30.4B5.4B83.4B41.4B16.4B42.4B4.4B16.4B
21.4B24.4B6.14B2.12B4.4B55.C4.2B3D2B40.32B.4B2.4B$157.4B66.2B2A11B5.
4B7.2A53.4B13.4B30.4B5.4B81.4B41.4B18.4B42.4B4.4B14.4B21.4B24.4B6.14B
2.12B4.4B53.3C6.6B38.35B.4B2.4B$158.4B62.B.3B2A12B3.4B7.B2AB51.4B15.
4B30.4B5.4B79.4B41.4B20.4B42.4B4.4B12.4B21.4B24.4B6.14B2.12B4.4B54.C
8.7B35.B.36B.4B2.4B$159.4B60.2A18B2.4B9.2B51.4B17.4B30.4B5.4B77.4B41.
4B22.4B42.4B4.4B10.4B21.4B24.4B6.14B2.12B4.4B64.8B33.2C38B.4B2.4B$
160.4B59.2AB.15B2.4B11.2B3.B45.4B19.4B30.4B5.4B75.4B26.2A13.4B24.4B
42.4B4.4B8.4B21.4B24.4B6.14B2.12B4.4B66.8B32.2C39B.4B2.4B$161.4B59.B
3.19B11.4B.B2A43.4B21.4B30.4B5.4B73.4B28.A12.4B26.4B42.4B4.4B6.4B21.
4B24.4B6.14B2.12B4.4B67.8B33.28B3.10B.4B2.4B$162.4B62.18B10.8B2A42.4B
23.4B30.4B5.4B71.4B29.A.AB2.B5.4B28.4B42.4B4.4B4.4B21.4B24.4B6.14B2.
12B4.4B67.6B2.B2C31.3B4.B.16B7.10B.4B2.4B$163.4B62.15BA3B2.2B2.6B2AB.
B42.4B25.4B30.4B5.4B69.4B31.2AB.3B3.4B30.4B42.4B4.4B2.4B21.4B24.4B6.
14B2.12B4.4B68.7B.BC.C41.10B.2B9.10B.4B2.4B$164.4B51.B9.14BABA14B2A
44.4B27.4B30.4B5.4B67.4B34.6B.4B32.4B42.4B4.8B21.4B24.4B6.14B2.12B4.
4B70.6B4.C42.9B13.10B.4B2.4B$165.4B50.2B9.6B3A4B2A17B43.4B29.4B30.4B
5.4B65.4B35.10B34.4B42.4B4.6B21.4B24.4B6.14B2.12B4.4B71.6B4.2C38.11B
15.10B.4B2.4B$166.4B49.3B8.6B2.28B38.4B31.4B30.4B5.4B63.4B36.2B2A5B
36.4B42.4B4.4B21.4B24.4B6.14B2.12B4.4B72.6B43.12B16.10B.4B2.4B$167.4B
48.4B6.7B.29B37.4B33.4B30.4B5.4B61.4B38.A2BA3B38.4B42.4B2.6B19.4B24.
4B6.14B2.12B4.4B72.8B42.12B17.10B.4B2.4B$168.4B48.4B5.6B.29B2A35.4B
35.4B30.4B5.4B59.4B39.BABA4B38.4B42.12B5.2C10.4B24.4B6.14B2.12B4.4B
72.8B43.11B19.10B.4B2.4B$169.4B48.4B5.9B7.4B.14B2A34.4B37.4B30.4B5.4B
57.4B41.BA6B38.4B42.6B2.4B3.C2BC8.4B24.4B6.14B2.12B4.4B73.9B42.8B.4B
18.10B.4B2.4B$170.4B48.4B4.8B9.4B2.11B.B34.4B39.4B30.4B5.4B9.3B43.4B
42.3B2.4B38.4B42.5B3.4B.2B2CB7.4B24.4B6.14B2.12B4.4B74.9B42.7B4.2C19.
10B.4B2.4B$171.4B48.4B2.8B11.4B2.10B14.2B19.4B41.4B30.4B5.4B7.5B41.4B
43.3B3.4B38.4B40.8B2.10B5.4B24.4B6.14B2.12B4.4B74.10B42.7B4.C21.10B.
4B2.4B$172.4B48.4B.7B13.14B15.BAB17.4B43.4B30.4B5.4B6.6B39.4B42.2AB6.
4B38.4B38.9B3.9B4.4B24.4B6.14B2.12B4.4B75.3B2C5B42.6B6.3C19.10B.4B2.
4B$173.4B48.6B2A2B15.14B12.5B16.4B45.4B30.4B5.4B5.2BA4B37.4B38.B2.2B
3A7.4B38.4B36.4B2.4B4.8B3.4B24.4B6.14B2.12B4.4B70.2C3.4B2C5B41.7B8.C
20.10B.4B2.4B$174.4B48.5B2A2B15.13B13.BAB3A14.4B47.4B30.4B5.4B4.BABA
4B35.4B38.2A2BA2BABA7.4B38.4B34.4B4.4B4.7B.5B24.4B6.14B2.12B4.4B72.C
3.11B40.8B30.10B.4B2.4B$175.4B48.8B15.13B14.2B2A.A12.4B49.4B30.4B5.4B
2.2BABA6B32.4B39.2A2B2A2B2A8.4B38.4B32.4B6.5B3.11B24.4B6.14B2.12B4.4B
73.C.C12B39.8B32.10B.4B2.4B$176.4B44.2B.8B15.8B.2B18.A.2A2B9.4B51.4B
30.4B5.4B2.2BA8B30.4B41.3B2A2.B10.4B38.4B30.4B8.7B.9B24.4B6.14B2.12B
4.4B75.2C2.8B40.9B33.10B.4B2.4B$177.4B41.4B2A7B15.8B22.3ABAB7.4B53.4B
30.4B5.4B2.10B29.4B42.3B16.4B38.4B28.4B10.16B23.4B6.14B2.12B4.4B81.7B
39.4B.6B33.10B.4B2.4B$178.4B40.4B2A7B15.9B22.6B.B3.4B55.4B30.4B5.4B.
10B28.4B63.4B38.4B26.4B12.16B5.B15.4B6.14B2.12B4.4B84.5B38.4B.7B34.
10B.4B2.4B$179.4B38.14B15.10B21.BAB3.8B57.4B30.4B5.15B26.4B65.4B38.4B
24.4B14.18B.5B11.4B6.14B2.12B4.4B85.6B5.2C29.4B2.6B15.2C19.10B.4B2.4B
$180.4B38.14B13.7B.4B21.2B.BA7B59.4B30.4B5.14B25.4B67.4B38.4B22.4B16.
26B7.4B6.14B2.12B4.4B85.6B6.C29.4B3.8B4.B8.C21.10B.4B2.4B$181.4B36.
11B.4B11.8B2.4B22.BABA5B61.4B30.4B5.13B24.4B69.4B38.4B20.4B18.12B2C
10B2C5.4B6.14B2.12B4.4B85.8B2.BC.C28.4B5.B2C6B.4B3.BC.C22.10B.4B2.4B$
182.4B33.B.11B2.4B9.8B4.4B21.2B2A5B62.4B30.4B5.12B23.4B71.4B38.4B18.
4B20.11B2C10B2C4.4B6.14B2.12B4.4B85.9B2.B2C28.4B5.2B2C13B.B2C24.10B.
4B2.4B$183.4B31.2A14B.4B7.9B5.4B18.2AB.8B62.4B30.4B5.11B22.4B73.4B38.
4B16.4B21.24B4.4B6.14B2.12B4.4B86.12B29.4B7.18B27.10B.4B2.4B$184.4B
30.2A29B.6B5.4B16.A.AB3.7B62.4B30.4B5.12B19.4B75.4B38.4B14.4B22.21B6.
4B6.14B2.12B4.4B87.12B28.4B9.17B28.10B.4B2.4B$185.4B30.29B.7B6.4B15.A
5.2A2B.4B62.4B30.4B3.14B2.B14.4B77.4B38.4B12.4B23.17B.2B6.4B6.14B2.
12B4.4B86.2CB.10B27.4B13.13B30.10B.4B2.4B$186.4B29.28B2.6B8.4B13.2A5.
2A4.4B62.4B30.4B.19B12.4B79.4B38.4B10.4B24.16B9.4B6.14B2.12B4.4B86.C.
CB2.8B27.4B13.12B33.10B.4B2.4B$187.4B32.24B.7B9.4B26.4B62.4B30.24B10.
4B81.4B38.4B8.4B30.13B6.4B6.14B2.12B4.4B87.C6.8B25.4B14.10B36.10B.4B
2.4B$188.4B31.2A31B9.4B26.4B62.4B30.14B2A7B9.4B83.4B38.4B6.4B31.13B5.
4B6.14B2.12B4.4B87.2C5.8B25.4B14.11B37.10B.4B2.4B$189.4B27.B.B2A6B2.
2B2.19B10.4B26.4B62.4B27.16B2A8B7.4B85.4B38.4B4.4B32.14B3.4B6.14B2.
12B4.4B95.7B25.4B15.7B.2B39.10B.4B2.4B$190.4B25.2A8B10.18B10.4B26.4B
62.4B26.26B6.4B87.4B38.4B2.4B33.15B.4B6.14B2.12B4.4B95.11B21.4B15.11B
40.10B.4B2.4B$191.4B24.2AB.4B11.19B3.B7.4B26.4B62.4B23.2AB.24B5.4B89.
4B38.8B34.19B6.14B2.12B4.4B96.12B19.4B17.11B40.10B.4B2.4B$192.4B24.B
3.2B11.4B2.15B.B2A7.4B26.4B62.4B21.A.AB4.21B4.4B91.4B38.6B35.18B6.14B
2.12B4.4B97.12B18.4B18.11B41.10B.3B$193.4B28.2B9.4B2.18B2A8.4B26.4B
62.4B20.A7.22B2.4B93.4B38.4B37.17B5.14B2.12B4.4B99.11B17.4B19.11B42.
10B.2B$194.4B26.B2AB7.4B3.12B2A3B.B10.4B26.4B62.4B18.2A9.20B.4B95.4B
36.6B35.19B.16B2.12B4.4B74.A.A21.4B.4B3DB16.4B18.2CB2.8B43.10B.B$195.
4B26.2A7.4B5.11B2A2B14.4B26.3B63.4B29.23B97.4B34.8B34.35B2.12B4.4B75.
2A22.2C4.4BD2B15.4B18.C.CB3.7B44.10B$196.4B33.4B6.10B2.2B16.4B26.2B
64.4B28.14B4.4B99.4B32.5B.4B33.34B2.12B4.4B77.A23.C4.2B3D2B14.4B19.C
6.7B45.10B$197.4B31.4B9.B.6B3.2B16.4B26.4B62.4B28.13B3.4B101.4B30.5B
3.4B32.33B2.12B4.4B99.3C6.6B13.4B19.2C7.6B46.9B$198.4B29.4B14.4B2.B2A
B16.4B26.4B62.4B25.2AB.B.9B2.4B103.4B28.5B5.4B31.32B2.12B4.4B100.C8.
7B11.4B29.7B46.8B$199.4B27.4B14.B2A2B3.2A18.4B26.4B62.4B23.A.AB4.8B.
4B105.4B26.5B7.4B31.30B2.12B4.4B110.8B9.4B30.8B46.7B$200.4B25.4B16.2A
26.4B26.4B62.4B22.A10.3B2.4B107.4B24.5B9.4B30.29B2.12B4.4B112.8B7.4B
32.8B.2D43.6B$201.4B23.4B46.4B26.4B62.4B20.2A14.4B109.4B22.5B11.4B30.
27B2.12B4.4B113.9B5.4B33.7BD4.D42.5B$202.4B21.4B48.4B26.4B62.4B34.4B
111.4B20.5B13.4B29.27B.12B4.4B113.6B.4B3.4B33.6B2.B2C46.4B$203.4B19.
4B50.4B26.4B62.4B32.4B113.4B19.4B15.4B29.38B4.4B114.7B.4B.4B34.7BDBC.
C2.D43.3B$204.4B73.4B26.4B62.4B30.4B115.4B17.4B17.4B29.5B3.28B4.4B
116.6B2.7B19.2C15.6BD3.C2.D44.2B$205.4B73.4B26.4B62.4B28.4B117.4B15.
4B19.4B29.4B5.B2D22B4.4B106.A.A8.6B3.5B21.C8.B4.8B4.2C47.B$206.4B73.
4B26.4B62.4B26.4B119.4B13.4B21.4B29.2B6.B2D21B4.4B107.2A9.2B2CB4.5B
21.C.CB3.4B.6B2CB2.D4.D$207.4B73.4B26.4B62.4B24.4B121.4B11.4B23.4B37.
22B4.4B109.A8.3B2C2B2.7B21.2CB.13B2C2B3.2D135.A$208.4B73.4B26.4B62.4B
22.4B123.4B9.4B25.4B36.7B2C12B4.4B119.7B.4B.4B22.18B140.A$209.4B73.4B
26.4B62.4B20.4B125.4B7.4B27.4B36.6BC12B4.4B121.5B.4B3.4B21.17B141.3A$
210.4B73.4B26.4B62.4B18.4B127.4B5.4B29.4B36.6B3C9B3.4B122.9B5.4B21.
13B$211.4B73.4B26.4B62.4B16.4B129.4B3.4B31.4B35.8BC10B.4B123.8B7.4B
22.12B$212.4B.4B68.4B26.4B62.4B14.4B131.4B.4B33.4B33.24B124.7B9.4B23.
10B$213.7B70.4B26.4B62.4B12.4B133.7B35.4B31.18B.5B116.2C7.6B11.4B22.
11B$214.5B72.4B26.4B62.4B10.4B133.7B37.4B29.19B.5B117.C7.7B5.2C4.4B
22.2B.7B$214.6B72.4B26.4B62.4B8.4B134.7B38.4B27.19B.7B116.C.CB3.7B6.C
6.4B21.11B$212.3B2A4B72.4B26.4B62.4B6.4B134.2A7B38.4B26.17B2.4B.4B79.
A.A34.2CB.11B.BC.C7.4B19.11B$208.2A2.2BA2BA4B72.4B26.4B62.4B4.4B135.
2A.B2A2B40.4B27.20B3.4B78.2A37.10BC2B.B2C9.4B18.11B$207.A2BA4BABA3B
74.4B26.4B62.4B2.4B139.BABA.B40.4B30.15B5.4B78.A36.10BCBC3B12.4B17.
11B$208.2BAB3.BA3B76.4B26.4B62.8B141.BAB.2B40.4B29.14B7.4B115.9BCBC3B
13.4B16.8B2.B2C$208.2BAB5.5B75.4B26.4B62.6B140.4B2.BAB40.4B31.10B9.4B
112.2CB.8BC2B16.4B15.7B3.BC.C$207.2ABA9.2A76.4B26.4B62.4B141.2A2.2B3A
41.4B32.7B11.4B110.C.CB2.8B19.4B14.7B6.C$207.2A2B9.A78.4B26.4B60.6B
141.A2.B3ABA41.4B32.6B12.4B109.C4.4B2.3B20.4B13.6B7.2C$206.4B11.3A76.
4B26.4B58.8B137.3A4.BA2B.A41.4B32.2B16.4B107.2C3.4B3.5B19.4B11.7B$
206.4B13.A77.4B26.4B56.4B2.4B136.A8.A.2BAB40.4B50.4B110.4B6.B2C20.4B
9.8B$206.2B2AB91.4B26.4B54.4B4.4B145.AB3AB40.4B50.4B108.4B8.C22.4B7.
8B$208.2A93.4B26.4B52.4B6.4B145.3A2B41.4B50.4B106.4B10.3C20.4B5.9B$
304.4B26.4B50.4B8.4B144.BAB44.4B50.4B104.4B13.C21.4B3.4B.6B$305.4B26.
4B48.4B10.4B144.2B45.4B50.4B102.4B37.4B.4B.7B$306.4B26.4B46.4B12.4B
191.4B50.4B100.4B39.7B2.6B$307.4B26.4B44.4B14.4B191.4B50.4B98.4B41.5B
3.6B$308.4B26.4B42.4B16.4B191.4B50.4B96.4B42.5B4.B2C2B$309.4B26.4B40.
4B18.4B191.4B50.4B94.4B42.7B2.2B2C3B$310.4B26.4B38.4B20.4B191.4B50.4B
92.4B42.4B.4B.7B$311.4B26.4B36.4B22.4B191.4B50.4B90.4B42.4B3.4B.5B$
312.4B26.4B34.4B24.4B191.4B50.4B88.4B42.4B5.9B$313.4B26.4B32.4B26.4B
191.4B50.4B86.4B42.4B7.8B$314.4B26.4B30.4B28.4B191.4B50.4B84.4B42.4B
9.7B$315.4B26.4B28.4B30.4B191.4B50.4B82.4B42.4B11.6B7.2C$316.4B26.4B
26.4B32.4B191.4B50.4B80.4B42.4B4.2C5.7B7.C113.A$317.4B26.4B24.4B34.4B
191.4B50.4B78.4B42.4B6.C6.7B3.BC.C112.A$318.4B26.4B22.4B36.4B191.4B
50.4B76.4B42.4B7.C.CB.11B.B2C113.3A$319.4B26.4B20.4B38.4B191.4B50.4B
74.4B42.4B9.2CB.2BC10B$320.4B26.4B18.4B40.4B191.4B50.4B72.4B42.4B12.
3BCBC10B$321.4B26.4B16.4B42.4B191.4B50.4B70.4B42.4B13.3BCBC9B$322.4B
26.4B14.4B44.4B191.4B50.4B68.4B42.4B16.2BC8B.B2C$323.4B26.4B12.4B46.
4B191.4B50.4B7.C28.2A28.4B42.4B19.8B2.BC.C$324.4B26.4B10.4B48.4B191.
4B50.4B6.3C26.2A27.4B42.4B20.3B2.4B4.C$325.4B26.4B8.4B50.4B191.4B50.
4B8.C53.4B42.4B19.5B3.4B3.2C$326.4B26.4B6.4B52.4B191.4B50.4B6.C.C9.2A
40.4B42.4B20.2CB6.4B82.A$327.4B26.4B4.4B54.4B191.4B50.4B5.C.CB8.2A39.
4B42.4B22.C8.4B80.A$328.4B26.4B2.4B56.4B191.4B50.4B5.C3B47.4B42.4B20.
3C10.4B79.3A$329.4B26.8B58.4B191.4B50.4B6.4B13.A30.4B42.4B21.C13.4B$
330.4B26.6B60.4B191.4B50.4B5.6B11.A14.A.A12.4B42.4B37.4B$331.4B26.4B
62.4B191.4B50.4B4.7B.2B4.B2.A14.2A12.4B42.4B39.4B$332.4B24.6B62.4B
191.4B50.4B2.8B.9B16.A11.4B42.4B41.4B$333.4B22.8B62.4B191.4B50.23B27.
4B42.4B43.4B$334.4B20.4B2.4B62.4B191.4B50.21B2D25.4B42.4B45.4B$335.4B
18.4B4.4B62.4B191.4B49.19B.B2D24.4B42.4B47.4B$336.4B16.4B6.4B62.4B
191.4B48.18B3.B24.4B42.4B49.4B$337.4B14.4B8.4B62.4B191.4B47.16B24.A4.
4B42.4B51.4B$338.4B12.4B10.4B62.4B191.4B44.2CB.13B24.A.A2.4B42.4B53.
4B$339.4B10.4B12.4B62.4B191.4B42.C.CB2.11B25.A.A.4B42.4B55.4B$340.4B
8.4B14.4B62.4B191.4B41.C5.10B27.A.4B42.4B57.4B$341.4B6.4B16.4B62.4B
191.4B39.2C5.2B2C6B28.4B42.4B59.4B$342.4B4.4B18.4B62.4B191.4B44.3B2C
6B17.A9.4B42.4B61.4B$343.4B2.4B20.4B62.4B191.4B44.10B2.A14.A8.4B42.4B
63.4B$344.8B22.4B62.4B191.4B43.8B.B2DAD13.A7.4B42.4B65.4B$345.6B24.4B
62.4B191.4B41.7B3.B2DA3D18.4B42.4B67.4B$344.7B25.4B62.4B191.4B40.6B6.
B4.D16.4B42.4B69.4B$344.7B26.4B62.4B191.4B40.6B4.2D.3D16.4B42.4B71.4B
$343.2A7B26.4B62.4B191.4B39.5B6.D.D2A15.4B42.4B73.4B$343.2A.B2A2B28.
4B62.4B191.4B37.6B6.D.DA.A13.4B42.4B75.4B$346.BABA.B28.4B62.4B191.4B
36.6B7.D2.A13.4B42.4B77.4B$347.BAB.2B28.4B62.4B191.4B34.7B23.4B42.4B
79.4B$345.4B2.BAB28.4B62.4B191.4B33.7B8.C13.4B42.4B81.4B25.A$345.2A2.
2B3A29.4B62.4B191.4B32.8B5.3C12.4B42.4B83.4B23.A.A$346.A2.B3ABA29.4B
62.4B191.4B31.8B4.C14.4B42.4B85.4B22.A2.A$343.3A4.BA2B.A29.4B62.4B
191.4B31.8B3.2C12.4B42.4B87.4B22.2A$343.A8.A.2BAB28.4B62.4B191.4B30.
3B2C2B2.4B11.4B42.4B89.4B$353.AB3AB28.4B62.4B191.4B27.5B2C2B.3B12.4B
42.4B91.4B$354.3A2B29.4B62.4B191.4B26.13B11.4B42.4B93.4B$354.BAB32.4B
62.4B191.4B24.16B8.4B42.4B95.4B20.2A$355.2B33.4B62.4B191.4B22.17B7.4B
42.4B97.4B18.A2.A$391.4B62.4B191.4B22.16B6.4B42.4B99.4B17.A.A$392.4B
62.4B191.4B22.15B5.4B42.4B101.3B18.A$393.4B62.4B191.4B15.2C5.13B5.4B
42.4B103.2B$394.4B62.4B191.4B15.C6.10B6.4B42.4B105.B12.2A6.A$395.4B
62.4B191.4B14.C.CB3.10B5.4B42.4B120.A5.A.A$396.4B62.4B191.4B14.2CB.
15B.4B42.4B102.2A14.3A6.A.A$397.4B62.4B191.4B15.21B42.4B104.A14.A9.A$
398.4B62.4B191.4B15.19B42.4B105.A.AB$399.4B62.4B191.4B10.2B.20B41.4B
107.2AB$400.4B62.4B191.4B8.2C23B39.4B110.2B43.A$401.4B62.4B191.4B7.2C
24B37.4B111.2B5.2A35.A$402.4B62.4B191.4B7.2B.21B37.4B112.2B5.2A35.3A$
403.4B62.4B191.4B10.19B37.4B113.2B11.3A$404.4B62.4B191.4B10.17B37.4B
113.3B$405.4B62.4B191.4B9.14B39.4B113.4B2.A$406.4B62.4B191.4B8.10B.5B
36.4B113.4B2.A.A$407.4B62.4B191.4B8.8B5.2C35.4B113.4B4.2A$408.4B62.4B
191.4B8.7B5.C35.4B113.4B$409.4B62.4B191.4B7.4B.B7.3C31.4B113.4B40.A$
410.4B62.4B191.4B8.2B11.C30.4B113.4B40.A.A$411.4B62.4B191.4B50.4B113.
4B31.A10.A$412.4B62.4B191.4B48.4B113.4B10.A21.A$413.2B2D62.4B191.4B
46.4B113.4B10.A.A20.A$414.2D64.4B191.4B44.4B113.4B12.2A$415.BD64.4B
191.4B42.4B113.4B19.2A$482.4B191.4B40.4B113.4B20.2A$483.4B191.4B38.4B
113.4B13.2A$484.4B191.4B36.4B113.4B13.A2.A$485.4B191.4B34.4B113.4B15.
2A$486.4B191.4B32.4B113.4B$487.4B191.4B30.4B113.4B$488.4B191.4B28.4B
113.4B$489.4B191.4B26.2CB114.4B$490.4B191.4B24.C.CB113.4B$491.4B191.
4B23.C115.4B$492.4B191.4B21.2C114.4B$493.4B191.4B135.4B$494.4B191.4B
133.4B$495.4B191.4B131.4B$496.4B191.4B129.4B$497.4B191.4B127.4B$498.
4B191.4B125.4B$499.4B191.4B123.4B$500.4B191.4B121.4B$501.4B191.4B119.
4B$502.4B191.4B117.4B$503.4B191.4B115.4B$504.4B191.4B113.4B$505.4B
191.4B111.4B$506.4B191.4B109.4B$507.4B191.4B107.4B$508.4B191.4B105.4B
$509.4B191.4B103.4B$510.4B191.4B101.4B$511.4B191.4B99.4B$512.4B191.4B
97.4B$513.4B191.4B95.4B$514.4B191.4B93.4B$515.4B191.4B91.4B$516.4B
191.4B89.4B$517.4B191.4B87.4B$518.4B191.4B85.4B$519.4B191.4B83.4B$
520.3BC191.4B81.4B$521.B2CB191.4B79.4B$522.CBC192.4B77.4B$718.4B75.4B
$719.4B73.4B$720.4B71.4B$721.4B69.4B$722.4B67.4B$723.4B65.4B$724.4B
63.4B$725.4B61.4B$726.4B59.4B$727.4B57.4B$728.4B55.4B$729.4B53.4B$
730.4B51.4B$731.4B49.4B$732.4B47.4B$733.4B45.4B$734.4B43.4B$735.4B41.
4B$736.4B39.4B$737.4B37.4B$738.4B35.4B$739.4B33.4B$740.4B31.4B$741.4B
29.4B$742.4B27.4B$743.4B25.4B$744.4B23.4B$745.4B8.2C11.4B$746.4B7.2C
10.4B$747.4B17.4B$748.4B15.4B$749.4B9.2C2.4B$750.4B8.2C.4B$751.4B9.4B
$752.4B7.4B$753.4B6.3B$754.4B3.4B$751.2C2.4B.4B9.2C$750.C.C3.7B10.2C
3.2C$750.C6.5B16.2C$749.2C5.3B2.B$755.4B2C2B$754.4BC2BCB$755.3BCBC2B
13.2C$756.3BCB15.2C$754.5B$754.2C$755.C$752.3C$752.C22.2C$765.B2C2B5.
2C$766.2C1936$2444.4B62.4B$2445.4B62.4B$2446.4B62.4B$2447.4B62.4B$
2448.4B62.4B$2449.4B62.4B$2450.4B62.4B$2451.4B62.4B$2452.4B62.4B$
2453.4B62.4B$2454.4B62.4B$2455.4B62.4B$2456.4B62.4B$2457.4B62.4B$
2458.4B62.4B$2459.4B62.4B$2460.4B62.4B$2461.2B2C62.4B$2462.2C64.4B$
2463.BC64.4B$2530.4B$2531.4B$2532.4B$2533.4B$2534.4B$2535.4B$2536.4B$
2537.4B$2538.4B$2539.4B$2540.4B$2541.4B$2542.4B$2543.4B$2544.4B$2545.
4B$2546.4B$2547.4B$2548.4B$2549.4B$2550.4B$2551.4B$2552.4B$2553.4B$
2554.4B$2555.4B$2556.4B$2557.4B$2558.4B$2559.4B$2560.4B$2561.4B$2562.
4B$2563.4B$2564.4B$2565.4B$2566.4B$2567.4B$2568.3BC$2569.B2CB$2570.CB
C452$3022.4B$3023.4B$3024.4B$3025.4B$3026.4B$3027.4B$3028.4B$3029.4B$
3030.4B$3031.4B$3032.4B$3033.4B$3034.4B$3035.4B$3036.4B$3037.4B$3038.
4B$3039.4B$3040.4B$3041.4B$3042.4B$3043.4B$3044.4B$3045.4B$3046.4B$
3047.4B$3048.4B$3049.4B$3050.4B$3051.4B$3052.4B$3053.4B$3054.4B$3055.
4B$3056.4B$3057.4B$3058.4B$3059.4B$3060.4B$3061.4B$3062.4B$3063.4B$
3064.4B$3065.4B$3066.4B$3067.4B$3068.4B$3069.4B$3070.4B$3071.4B$3072.
4B$3073.4B$3074.4B$3075.4B$3076.4B$3077.4B$3078.4B$3079.4B$3080.3BC$
3081.B2CB$3082.CBC452$3468.4B62.4B$3469.4B62.4B$3470.4B62.4B$3471.4B
62.4B$3472.4B62.4B$3473.4B62.4B$3474.4B62.4B$3475.4B62.4B$3476.4B62.
4B$3477.4B62.4B$3478.4B62.4B$3479.4B62.4B$3480.4B62.4B$3481.4B62.4B$
3482.4B62.4B$3483.4B62.4B$3484.4B62.4B$3485.2B2C62.4B$3486.2C64.4B$
3487.BC64.4B$3554.4B$3555.4B$3556.4B$3557.4B$3558.4B$3559.4B$3560.4B$
3561.4B$3562.4B$3563.4B$3564.4B$3565.4B$3566.4B$3567.4B$3568.4B$3569.
4B$3570.4B$3571.4B$3572.4B$3573.4B$3574.4B$3575.4B$3576.4B$3577.4B$
3578.4B$3579.4B$3580.4B$3581.4B$3582.4B$3583.4B$3584.4B$3585.4B$3586.
4B$3587.4B$3588.4B$3589.4B$3590.4B$3591.4B$3592.3BC$3593.B2CB$3594.CB
C!
This was definitely the hardest part of the whole white section of the DBCA; everything else is much further away from the shotgun lane.
Hmm, I have no idea how calcyman found this 20+2 glider solution, pslmake on width 1000 ends with 35 one.
So I probably start search by these 20+2 gliders ... with eater and 2 blocks solution in mind.

git files refreshed, now the White ECCA portion (probably works well ... I have not checked p8 reflector is in the correct phase yet).
I lost a lot of time running pslmake with signature forbiding I should choose white/black color as well and stdxl.bin was unable to generate the salvo.
... so I have modified my local pslmake to switch to mono when signature is clarly mono ... this is not the universal solution as pslmake.py ensures std is ready ... so you have at least once to call it with appropriate color to ensure mono is ready, but later you can ignore the option ...

So time to check the White p8 on first ECCA task ...
unfortunately the cordership seeds line programs in original RCT15 are far from optimal so a lot of work here (1st cordership 149->92).

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » February 10th, 2024, 5:18 am

Hmm, I have managed to launch first cordership SE ... and the p8 reflector on sync signal is too close to the SE GPSE line that the cordership collided with it (otherwise the cordership is cleanly absorbed). So I have to recompute the FSE reflectors (and shift ECCA accordingly). It was good decision to let the ECCA salvo to be computed later, after the dust settles.
Shift of the last two FSE reflectors 32FD NE should work well with compensating shift of ECCA without need of resynchronization. The destruction seed would still work well ... . Hmm, I had to shift the destruction glider line as well ... .

OK reflectors with beam width 40 recomputed, RCT15 till first cordership updated in https://gitlab.com/apgoucher/rct16.git/.
I have to prepare FNW arm block positioning, but our arm is in the other color than the original was, so another glider collision should be chosen (again). I will postpone this task ...
I have to recompute FSE reflectors with beam width 1000 sometimes.
Now I would probably use the same SE cordership program again and again with only difference in the original block positioning ... to finish cleaning SE.
What is cleaned by 10th, 13th, 17th and 24th cordership? It seems to me they are not needed (except for cleaning the corderabsorbers :().

So back to corderabsorbrs 12_* salvo ... and it could happen 1046 would not belong to the optimal number of even gliders so the n-gliders absorber would be changed as well :( ... (shifting the block ... so 09_* salvo/resp. shifting the eater 065 salvo) recomputed as well ... but the n-gliders absorber could be edited in golly ...

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: RCT remaining tasks

Post by calcyman » February 11th, 2024, 7:50 pm

Hippo.69 wrote:
February 10th, 2024, 5:18 am
What is cleaned by 10th, 13th, 17th and 24th cordership? It seems to me they are not needed (except for cleaning the corderabsorbers :().
The fleet is designed to clean multiple different types of ash that can occur from the RCT mechanism -- some of which may be quite rare (e.g. present in an actual RCT but unseen in the semilated version). I'd recommend keeping those Corderfleets unchanged since we know that they work -- or, at the very least, check with dvgrn that your proposed reductions are valid.
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: RCT remaining tasks

Post by dvgrn » February 12th, 2024, 12:39 am

calcyman wrote:
February 11th, 2024, 7:50 pm
The fleet is designed to clean multiple different types of ash that can occur from the RCT mechanism -- some of which may be quite rare (e.g. present in an actual RCT but unseen in the semilated version).
Yup, I do think there's a reason for all of the Corderships in the current Corderfleet. I could have missed something in my analysis, but it was pretty thorough.

Here's a trial pattern for the NW-traveling Corderfleet, showing the different kinds of junk that the bit-reading process can leave behind. This is all in the form of the occasional retrograde gliders traveling back northwest from the various possible Bit-Reading Glider collisions way down in the southeast, that get absorbed by the front edge of the growing ash in the northwest.

The SW-traveling Corderfleets were the easy ones -- no detritus from the Bit-Reading Glider collisions.

The SE-traveling Corderfleet was the big one, with 50 Corderships and lots of options to worry about. The GPSE ash to the southeast is the ash that the Bit-Reading Glider keeps bouncing off of, and it makes some fairly big splotches of ash, shown here among other places.

All this is not to say that those Corderfleets couldn't be optimized -- the first link above suggests as much.

It's just that optimization would have to be done by a re-analysis of all the possible ash trail configurations, to see if there are any cases where one differently-placed Cordership could do the work of two or more of the current Corderships -- or something more complicated involving the cases where a one-pass cleanup of an object isn't possible, so it gets converted to something else that then gets cleaned up.

Long story short, it's definitely possible that there's a more efficient Corderfleet, because I didn't run a tree search to find the shortest path to vacuum.

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » February 12th, 2024, 5:05 am

dvgrn wrote:
February 12th, 2024, 12:39 am
calcyman wrote:
February 11th, 2024, 7:50 pm
The fleet is designed to clean multiple different types of ash that can occur from the RCT mechanism -- some of which may be quite rare (e.g. present in an actual RCT but unseen in the semilated version).
Yup, I do think there's a reason for all of the Corderships in the current Corderfleet. I could have missed something in my analysis, but it was pretty thorough.

Here's a trial pattern for the NW-traveling Corderfleet, showing the different kinds of junk that the bit-reading process can leave behind. This is all in the form of the occasional retrograde gliders traveling back northwest from the various possible Bit-Reading Glider collisions way down in the southeast, that get absorbed by the front edge of the growing ash in the northwest.

The SW-traveling Corderfleets were the easy ones -- no detritus from the Bit-Reading Glider collisions.

The SE-traveling Corderfleet was the big one, with 50 Corderships and lots of options to worry about. The GPSE ash to the southeast is the ash that the Bit-Reading Glider keeps bouncing off of, and it makes some fairly big splotches of ash, shown here among other places.

All this is not to say that those Corderfleets couldn't be optimized -- the first link above suggests as much.

It's just that optimization would have to be done by a re-analysis of all the possible ash trail configurations, to see if there are any cases where one differently-placed Cordership could do the work of two or more of the current Corderships -- or something more complicated involving the cases where a one-pass cleanup of an object isn't possible, so it gets converted to something else that then gets cleaned up.

Long story short, it's definitely possible that there's a more efficient Corderfleet, because I didn't run a tree search to find the shortest path to vacuum.
I have not tried to optimize the Corderfleet, I have just extracted both collision types (1 and 2), it seems to me there are 4 collision types depending on last two bits (as the second last bit is reflected as a fake glider signal from NW GPSE) I have added 2212111111 to the end of recipe to have included all 4 collision types on distance encoded bits to check (but I have not performed the check yet).

It seems to me the fake glider just cleanly removes some trash inside the standard GPSE trash (but I have just checked it on 11 case).

I was lazy to look at cordership phase analysis in the forum and during extraction of the cordership positions from the original RCT15 (not looking at corderabsorbers, but doing it in the epicentre) I have checked what the corderships do on the remnants of standard GPSE, ?1 and ?2 collisions.
And these 4 corderships (10,13,17,24) seemed to do nothing ... I have not sent the whole corderfleet yet to check everything was cleaned, but it is definitely the first think I will do.

OH OK, looking at the link
dvgrn wrote:
August 25th, 2022, 11:02 am

Code: Select all

x = 9554, y = 11155, rule = LifeSuper
9552.M$9551.M$9551.3M53$9501.M$9501.M.M$9501.2M43$9470.M$9468.2M$
9469.2M30$9435.M$9435.M.M$9435.2M22$9402.M$9402.M.M$9402.2M40$9369.M$
9369.M.M$9369.2M32$9338.M$9336.2M$9337.2M31$9305.M$9303.2M$9304.2M26$
9272.M$9270.2M$9271.2M55$9239.M$9237.2M$9238.2M47$9198.M$9198.M.M$
9198.2M31$9165.M$9165.M.M$9165.2M23$9134.M$9132.2M$9133.2M24$9099.M$
9099.M.M$9099.2M29$9068.M$9066.2M$9067.2M31$9035.M$9033.2M$9034.2M27$
9002.M$9000.2M$9001.2M39$8967.M$8967.M.M$8967.2M30$8934.M$8934.M.M$
8934.2M30$8903.M$8901.2M$8902.2M34$8870.M$8868.2M$8869.2M47$8835.M$
8835.M.M$8835.2M15$8804.M$8802.2M$8803.2M42$8769.M$8769.M.M$8769.2M
35$8736.M$8736.M.M$8736.2M34$8705.M$8703.2M$8704.2M27$8670.M$8670.M.M
$8670.2M31$8637.M$8637.M.M$8637.2M33$8604.M$8604.M.M$8604.2M27$8571.M
$8571.M.M$8571.2M18$8540.M$8538.2M$8539.2M46$8507.M$8505.2M$8506.2M
31$8474.M$8472.2M$8473.2M16$8439.M$8439.M.M$8439.2M56$8408.M$8406.2M$
8407.2M52$8373.M$8373.M.M$8373.2M25$8314.M$8314.M.M$8314.2M17$8283.M$
8281.2M$8282.2M32$8250.M$8248.2M$8249.2M10$8215.M$8215.M.M$8215.2M41$
8182.M$8182.M.M$8182.2M37$8149.M$8149.M.M$8149.2M29$8116.M$8116.M.M$
8116.2M33$8085.M$8083.2M$8084.2M14$8052.M$8050.2M$8051.2M39$8019.M$
8017.2M$8018.2M32$7984.M$7984.M.M$7984.2M40$7951.M$7951.M.M$7951.2M
30$7920.M$7918.2M$7919.2M20$7887.M$7885.2M$7886.2M36$7854.M$7852.2M$
7853.2M40$7819.M$7819.M.M$7819.2M34$7786.M$7786.M.M$7786.2M10$7753.M$
7753.M.M$7753.2M38$7720.M$7720.M.M$7720.2M24$7687.M$7687.M.M$7687.2M
31$7654.M$7654.M.M$7654.2M49$7621.M$7621.M.M$7621.2M21$7590.M$7588.2M
$7589.2M38$7555.M$7555.M.M$7555.2M34$7522.M$7522.M.M$7522.2M65$7489.M
$7489.M.M$7489.2M27$7456.M$7456.M.M$7456.2M31$7423.M$7423.M.M$7423.2M
17$7390.M$7390.M.M$7390.2M39$7357.M$7357.M.M$7357.2M29$7324.M$7324.M.
M$7324.2M19$7291.M$7291.M.M$7291.2M32$7260.M$7258.2M$7259.2M36$7227.M
$7225.2M$7226.2M28$7194.M$7192.2M$7193.2M27$7161.M$7159.2M$7160.2M34$
7126.M$7126.M.M$7126.2M54$7090.M$7088.2M$7089.2M42$7057.M$7055.2M$
7056.2M32$7024.M$7022.2M$7023.2M20$6989.M$6989.M.M$6989.2M39$6956.M$
6956.M.M$6956.2M28$6923.M$6923.M.M$6923.2M38$6892.M$6890.2M$6891.2M
21$6859.M$6857.2M$6858.2M39$6826.M$6824.2M$6825.2M30$6791.M$6791.M.M$
6791.2M49$6760.M$6758.2M$6759.2M21$6725.M$6725.M.M$6725.2M31$6692.M$
6692.M.M$6692.2M28$6659.M$6659.M.M$6659.2M32$6628.M$6626.2M$6627.2M
32$6595.M$6593.2M$6594.2M30$6560.M$6560.M.M$6560.2M25$6518.M$6516.2M$
6517.2M41$6483.M$6483.M.M$6483.2M25$6450.M$6450.M.M$6450.2M17$6351.M$
6351.M.M$6351.2M14$6417.M$6417.M.M$6417.2M19$6318.M$6318.M.M$6318.2M
7$6384.M$6384.M.M$6384.2M22$6285.M$6285.M.M$6285.2M45$6252.M$6252.M.M
$6252.2M23$6219.M$6219.M.M$6219.2M31$6186.M$6186.M.M$6186.2M41$6153.M
$6153.M.M$6153.2M51$6120.M$6120.M.M$6120.2M48$6077.M$6075.2M$6076.2M
28$6044.M$6042.2M$6043.2M41$6011.M$6009.2M$6010.2M19$5978.M$5976.2M$
5977.2M25$5945.M$5943.2M$5944.2M38$5912.M$5910.2M$5911.2M34$5877.M$
5877.M.M$5877.2M57$5846.M$5844.2M$5845.2M23$5813.M$5811.2M$5812.2M16$
5780.M$5778.2M$5779.2M38$5747.M$5745.2M$5746.2M34$5714.M$5712.2M$
5713.2M32$5679.M$5679.M.M$5679.2M27$5646.M$5646.M.M$5646.2M7$5613.M$
5613.M.M$5613.2M46$5582.M$5580.2M$5581.2M19$5547.M$5547.M.M$5547.2M
24$5514.M$5514.M.M$5514.2M41$5481.M$5481.M.M$5481.2M34$5448.M$5448.M.
M$5448.2M53$5401.M$5401.M.M$5401.2M34$5368.M$5368.M.M$5368.2M30$5335.
M$5335.M.M$5335.2M33$5302.M$5302.M.M$5302.2M34$5269.M$5269.M.M$5269.
2M28$5236.M$5236.M.M$5236.2M42$5203.M$5203.M.M$5203.2M24$5172.M$5170.
2M$5171.2M38$5137.M$5137.M.M$5137.2M33$5104.M$5104.M.M$5104.2M30$
5071.M$5071.M.M$5071.2M39$5038.M$5038.M.M$5038.2M28$5005.M$5005.M.M$
5005.2M396$4567.M$4566.M$4566.3M134$4435.M$4435.M.M$4435.2M43$4404.M$
4402.2M$4403.2M30$4369.M$4369.M.M$4369.2M22$4336.M$4336.M.M$4336.2M
40$4303.M$4303.M.M$4303.2M32$4272.M$4270.2M$4271.2M31$4239.M$4237.2M$
4238.2M26$4206.M$4204.2M$4205.2M55$4173.M$4171.2M$4172.2M47$4132.M$
4132.M.M$4132.2M31$4099.M$4099.M.M$4099.2M23$4068.M$4066.2M$4067.2M
24$4033.M$4033.M.M$4033.2M29$4002.M$4000.2M$4001.2M31$3969.M$3967.2M$
3968.2M27$3936.M$3934.2M$3935.2M39$3901.M$3901.M.M$3901.2M30$3868.M$
3868.M.M$3868.2M30$3837.M$3835.2M$3836.2M34$3804.M$3802.2M$3803.2M47$
3769.M$3769.M.M$3769.2M15$3738.M$3736.2M$3737.2M42$3703.M$3703.M.M$
3703.2M35$3670.M$3670.M.M$3670.2M34$3639.M$3637.2M$3638.2M27$3604.M$
3604.M.M$3604.2M31$3571.M$3571.M.M$3571.2M33$3538.M$3538.M.M$3538.2M
27$3505.M$3505.M.M$3505.2M18$3474.M$3472.2M$3473.2M46$3441.M$3439.2M$
3440.2M31$3408.M$3406.2M$3407.2M16$3373.M$3373.M.M$3373.2M56$3342.M$
3340.2M$3341.2M52$3307.M$3307.M.M$3307.2M25$3248.M$3248.M.M$3248.2M
17$3217.M$3215.2M$3216.2M32$3184.M$3182.2M$3183.2M10$3149.M$3149.M.M$
3149.2M41$3116.M$3116.M.M$3116.2M37$3083.M$3083.M.M$3083.2M29$3050.M$
3050.M.M$3050.2M33$3019.M$3017.2M$3018.2M14$2986.M$2984.2M$2985.2M39$
2953.M$2951.2M$2952.2M32$2918.M$2918.M.M$2918.2M40$2885.M$2885.M.M$
2885.2M30$2854.M$2852.2M$2853.2M20$2821.M$2819.2M$2820.2M36$2788.M$
2786.2M$2787.2M40$2753.M$2753.M.M$2753.2M34$2720.M$2720.M.M$2720.2M
10$2687.M$2687.M.M$2687.2M38$2654.M$2654.M.M$2654.2M24$2621.M$2621.M.
M$2621.2M31$2588.M$2588.M.M$2588.2M49$2555.M$2555.M.M$2555.2M21$2524.
M$2522.2M$2523.2M38$2489.M$2489.M.M$2489.2M34$2456.M$2456.M.M$2456.2M
65$2423.M$2423.M.M$2423.2M27$2390.M$2390.M.M$2390.2M31$2357.M$2357.M.
M$2357.2M17$2324.M$2324.M.M$2324.2M39$2291.M$2291.M.M$2291.2M29$2258.
M$2258.M.M$2258.2M19$2225.M$2225.M.M$2225.2M32$2194.M$2192.2M$2193.2M
36$2161.M$2159.2M$2160.2M28$2128.M$2126.2M$2127.2M27$2095.M$2093.2M$
2094.2M34$2060.M$2060.M.M$2060.2M54$2024.M$2022.2M$2023.2M42$1991.M$
1989.2M$1990.2M32$1958.M$1956.2M$1957.2M20$1923.M$1923.M.M$1923.2M39$
1890.M$1890.M.M$1890.2M28$1857.M$1857.M.M$1857.2M38$1826.M$1824.2M$
1825.2M21$1793.M$1791.2M$1792.2M39$1760.M$1758.2M$1759.2M30$1725.M$
1725.M.M$1725.2M49$1694.M$1692.2M$1693.2M21$1659.M$1659.M.M$1659.2M
31$1626.M$1626.M.M$1626.2M28$1593.M$1593.M.M$1593.2M32$1562.M$1560.2M
$1561.2M32$1529.M$1527.2M$1528.2M30$1494.M$1494.M.M$1494.2M25$1452.M$
1450.2M$1451.2M41$1417.M$1417.M.M$1417.2M25$1384.M$1384.M.M$1384.2M
17$1285.M$1285.M.M$1285.2M14$1351.M$1351.M.M$1351.2M19$1252.M$1252.M.
M$1252.2M7$1318.M$1318.M.M$1318.2M22$1219.M$1219.M.M$1219.2M45$1186.M
$1186.M.M$1186.2M23$1153.M$1153.M.M$1153.2M31$1120.M$1120.M.M$1120.2M
41$1087.M$1087.M.M$1087.2M51$1054.M$1054.M.M$1054.2M48$1011.M$1009.2M
$1010.2M28$978.M$976.2M$977.2M41$945.M$943.2M$944.2M19$912.M$910.2M$
911.2M25$879.M$877.2M$878.2M38$846.M$844.2M$845.2M34$811.M$811.M.M$
811.2M57$780.M$778.2M$779.2M23$747.M$745.2M$746.2M16$714.M$712.2M$
713.2M38$681.M$679.2M$680.2M34$648.M$646.2M$647.2M32$613.M$613.M.M$
613.2M27$580.M$580.M.M$580.2M7$547.M$547.M.M$547.2M46$516.M$514.2M$
515.2M19$481.M$481.M.M$481.2M24$448.M$448.M.M$448.2M41$415.M$415.M.M$
415.2M34$382.M$382.M.M$382.2M53$335.M$335.M.M$335.2M34$302.M$302.M.M$
302.2M30$269.M$269.M.M$269.2M33$236.M$236.M.M$236.2M34$203.M$203.M.M$
203.2M29$172.M$170.2M$171.2M20$139.M$137.2M$138.2M26$104.M$104.M.M$
104.2M46$73.M$71.2M$72.2M23$40.M$38.2M$39.2M34$7.M$5.2M$6.2M9$2M$2M
46$33.2H$33.2H4$36.2H$36.3H$35.H.H.2H$23.H10.3H.3H$23.3H12.H2.H$23.H.
H$25.H6$14.H.H$14.H.H$15.H$35.2H$13.2H13.2H4.H$13.2H13.2H9.H.2H$8.2H
24.H6.H$4.3H.3H30.H2.H$4H3.H.H23.4H4.H2.H$4H3.H.H22.H.H2.H.3H2.H$3.3H
3.H23.H4.H2.H$7.H.H31.2H$8.2H70.2H$80.2H2$17.H$8.2H6.3H$8.2H6.H.2H10.
2H51.2H$19.3H7.H.2H50.3H$19.H3.2H4.H2.H.2H46.H.H.2H$20.H3.H5.H.H.H.H
33.H10.3H.3H$17.H3.4H7.H3.2H32.3H12.H2.H$17.H14.2H.2H33.H.H$17.H15.3H
36.H$34.H5$61.H.H$61.H.H$62.H$82.2H$60.2H13.2H4.H$60.2H13.2H9.H.2H$
55.2H24.H6.H$51.3H.3H30.H2.H$47.4H3.H.H23.4H4.H2.H$47.4H3.H.H22.H.H2.
H.3H2.H$50.3H3.H23.H4.H2.H$54.H.H31.2H$55.2H3$64.H$55.2H6.3H$55.2H6.H
.2H10.2H$66.3H7.H.2H$66.H3.2H4.H2.H.2H$67.H3.H5.H.H.H.H$64.H3.4H7.H3.
2H$64.H14.2H.2H$64.H15.3H$81.H113$170.2S$169.S2.S$170.2S$123.S$123.S$
123.S$134.S$133.S.S$133.2S3$164.S$163.S.S$163.S2.S$164.2S5$134.2S$
133.S2.S$134.2S2$130.3S2$134.S$134.S$134.S2$136.2S$136.2S$146.3S$202.
2S$201.S2.S$202.2S$155.S$155.S$155.S$166.S$165.S.S$165.2S2$128.2S$
128.2S66.S$195.S.S$195.S2.S$196.2S4$124.2S$124.2S40.2S$165.S2.S$166.
2S2$162.3S2$166.S$166.S$166.S$134.2S$133.S.S32.2S$133.2S33.2S$178.3S$
234.2S$233.S2.S$234.2S$187.S$187.S$187.S$198.S$197.S.S$197.2S2$160.2S
$160.2S66.S$227.S.S$227.S2.S$228.2S4$156.2S$156.2S40.2S$197.S2.S$198.
2S2$194.3S2$198.S$198.S$198.S$166.2S$165.S.S32.2S$165.2S33.2S$210.3S$
266.2S$265.S2.S$266.2S$219.S$219.S$219.S$230.S$229.S.S$229.2S2$192.2S
$192.2S66.S$259.S.S$259.S2.S$260.2S4$188.2S$188.2S40.2S$229.S2.S$230.
2S2$226.3S2$230.S$230.S$230.S$198.2S$197.S.S32.2S$197.2S33.2S$242.3S$
298.2S$297.S2.S$298.2S$251.S$251.S$251.S$262.S$261.S.S$261.2S2$224.2S
$224.2S66.S$291.S.S$291.S2.S$292.2S4$220.2S$220.2S40.2S$261.S2.S$262.
2S2$258.3S2$262.S$262.S$262.S$230.2S$229.S.S32.2S$229.2S33.2S$274.3S$
330.2S$329.S2.S$330.2S$283.S$283.S$283.S$294.S$293.S.S$293.2S2$256.2S
$256.2S66.S$323.S.S$323.S2.S$324.2S4$252.2S$252.2S40.2S$293.S2.S$294.
2S2$290.3S2$294.S$294.S$294.S$262.2S$261.S.S32.2S$261.2S33.2S$306.3S$
362.2S$361.S2.S$362.2S$315.S$315.S$315.S$326.S$325.S.S$325.2S2$288.2S
$288.2S66.S$355.S.S$355.S2.S$356.2S4$284.2S$284.2S40.2S$325.S2.S$326.
2S2$322.3S2$326.S$326.S$326.S$294.2S$293.S.S32.2S$293.2S33.2S$338.3S$
394.2S$393.S2.S$394.2S$347.S$347.S$347.S$358.S$357.S.S$357.2S2$320.2S
$320.2S66.S$387.S.S$387.S2.S$388.2S4$316.2S$316.2S40.2S$357.S2.S$358.
2S2$354.3S2$358.S$358.S$358.S$326.2S$325.S.S32.2S$325.2S33.2S$370.3S$
426.2S$425.S2.S$426.2S$379.S$379.S$379.S$390.S$389.S.S$389.2S2$352.2S
$352.2S66.S$419.S.S$419.S2.S$420.2S4$348.2S$348.2S40.2S$389.S2.S$390.
2S2$386.3S2$390.S$390.S$390.S$358.2S$357.S.S32.2S$357.2S33.2S$402.3S$
458.2S$457.S2.S$458.2S$411.S$411.S$411.S$422.S$421.S.S$421.2S2$384.2S
$384.2S66.S$451.S.S$451.S2.S$452.2S4$380.2S$380.2S40.2S$421.S2.S$422.
2S2$418.3S2$422.S$422.S$422.S$390.2S$389.S.S32.2S$389.2S33.2S$434.3S$
490.2S$489.S2.S$490.2S$443.S$443.S$443.S$454.S$453.S.S$425.2S26.2S$
425.2S2.2S$416.2S11.2S$416.2S66.S$483.S.S$483.S2.S$484.2S4$412.2S$
412.2S40.2S$453.S2.S$454.2S2$450.3S2$454.S$454.S$454.S$429.2S$429.2S
2.2S21.2S$433.2S21.2S$466.3S$522.2S$521.S2.S$436.2S84.2S$436.2S37.S$
475.S$475.S$486.S$485.S.S$415.2S68.2S$414.S.S9.2S$415.S10.2S$516.S$
515.S.S$515.S2.S$440.3S73.2S2$415.2T$415.2T$452.S$452.S33.2S$452.S32.
S2.S$426.2S58.2S$426.2S10.S$438.S17.2S24.3S$413.2S23.S17.2S$413.2S71.
S$424.2S8.3S3.3S43.S$424.2S60.S2$488.2S$488.2S$431.3S64.3S$554.2S$
553.S2.S$554.2S$447.2S58.S$447.2S58.S$443.2S62.S$443.2S73.S$517.S.S$
517.2S2$480.2S$480.2S66.S$547.S.S$547.S2.S$417.S130.2S$417.S$417.S2$
476.2S$476.2S40.2S$517.S2.S$518.2S$434.2S$433.S2.S77.3S$434.2S$518.S$
518.S$518.S$486.2S$485.S.S32.2S$485.2S33.2S$379.S.S.S.S.S142.3S$586.
2S$385.S.S197.S2.S$586.2S$383.S3.S151.S$539.S$381.S5.S151.S$550.S$
379.S7.S161.S.S$549.2S$377.S$512.2S$375.S136.2S66.S$579.S.S$373.S205.
S2.S$580.2S$371.S2$369.S$508.2S$367.S140.2S40.2S$549.S2.S$365.S184.2S
2$363.S182.3S2$361.S188.S$550.S$359.S190.S$518.2S$357.S159.S.S32.2S$
517.2S33.2S$355.S206.3S$618.2S$353.S263.S2.S$618.2S$351.S219.S$571.S$
349.S221.S$582.S$347.S233.S.S$581.2S$345.S$544.2S$343.S200.2S66.S$
611.S.S$341.S269.S2.S$612.2S$339.S2$337.S$540.2S$335.S204.2S40.2S$
581.S2.S$582.2S2$578.3S2$582.S$582.S$582.S$550.2S$549.S.S32.2S$549.2S
33.2S$594.3S$650.2S$649.S2.S$650.2S$603.S$603.S$603.S$614.S$613.S.S$
585.2S26.2S$585.2S2.2S$576.2S11.2S$576.2S66.S$643.S.S$643.S2.S$644.2S
4$572.2S$572.2S40.2S$613.S2.S$614.2S2$610.3S2$614.S$614.S$614.S$589.
2S$589.2S2.2S21.2S$593.2S21.2S$626.3S$682.2S$681.S2.S$596.2S84.2S$
596.2S37.S$635.S$635.S$646.S$645.S.S$575.2S68.2S$574.S.S9.2S$575.S10.
2S$676.S$675.S.S$675.S2.S$600.3S73.2S2$575.2S$575.2S$612.S$612.S33.2S
$612.S32.S2.S$586.2S58.2S$586.2S10.S$598.S17.2S24.3S$573.2S23.S17.2S$
573.2S71.S$584.2S8.3S3.3S43.S$584.2S60.S2$648.2S$648.2S$591.3S64.3S$
714.2S$713.S2.S$714.2S$607.2S58.S$607.2S58.S$603.2S62.S$603.2S73.S$
677.S.S$677.2S2$640.2S$640.2S66.S$707.S.S$707.S2.S$577.S130.2S$577.S$
577.S2$636.2S$636.2S40.2S$677.S2.S$678.2S$594.2S$593.S2.S77.3S$594.2S
$678.S$678.S$678.S$646.2S$645.S.S32.2S$645.2S33.2S$690.3S$746.2S$745.
S2.S$746.2S$699.S$527.S.S.S.S.S163.S$699.S$533.S.S174.S$709.S.S$531.S
3.S173.2S2$529.S5.S136.2S$672.2S66.S$527.S7.S203.S.S$739.S2.S$525.S
214.2S2$523.S2$521.S146.2S$668.2S40.2S$519.S189.S2.S$710.2S$517.S$
706.3S$515.S$710.S$513.S196.S$710.S$511.S166.2S$677.S.S32.2S$509.S
167.2S33.2S$722.3S$507.S270.2S$777.S2.S$505.S272.2S$731.S$503.S227.S$
731.S$501.S240.S$741.S.S$499.S241.2S2$497.S206.2S$704.2S66.S$495.S
275.S.S$771.S2.S$493.S278.2S2$491.S2$489.S210.2S$700.2S40.2S$487.S
253.S2.S$742.2S$485.S$738.3S$483.S$742.S$742.S$742.S$710.2S$709.S.S
32.2S$709.2S33.2S$754.3S$810.2S$809.S2.S$744.S65.2S$743.S.S17.S$743.S
2.S16.S$744.2S17.S$774.S$773.S.S$773.2S3$804.S$732.2S10.S58.S.S$731.S
2.S9.S58.S2.S$732.2S10.S59.2S2$740.3S3$774.2S$743.2S28.S2.S$743.2S3.S
25.2S$747.S.S$747.S.S20.3S$748.S$733.2S39.S$733.2S39.S$774.S2$776.2S$
776.2S$733.2S51.3S$733.2S13.S93.2S$747.S.S91.S2.S$744.S3.2S92.2S$744.
S50.S$733.2S9.S50.S$733.2S60.S$806.S$805.S.S$805.2S2$749.2S$749.2S85.
S$782.2S51.S.S$733.2S47.2S51.S2.S$733.2S16.S84.2S$750.S.S$749.S2.S36.
2S$750.2S37.2S$761.2S$761.2S43.2S$745.2S58.S2.S$744.S2.S58.2S$722.2S
21.2S$722.S.S77.3S$723.2S$806.S$763.2S41.S$745.3S15.2S41.S2$757.2S49.
2S$757.2S49.2S$818.3S$774.2S98.2S$774.2S97.S2.S$874.2S$827.S$827.S$
827.S$838.S$837.S.S$837.2S2$800.2S$800.2S66.S$867.S.S$687.S.S.S.S.S
171.S2.S$868.2S$693.S.S2$691.S3.S$796.2S$689.S5.S100.2S40.2S$837.S2.S
$687.S7.S142.2S2$685.S148.3S2$683.S154.S$838.S$681.S156.S$806.2S$679.
S125.S.S32.2S$805.2S33.2S$677.S172.3S$906.2S$675.S229.S2.S$906.2S$
673.S185.S$859.S$671.S187.S$870.S$669.S199.S.S$869.2S$667.S$832.2S$
665.S166.2S66.S$899.S.S$663.S235.S2.S$900.2S$661.S2$659.S$828.2S$657.
S170.2S40.2S$869.S2.S$655.S214.2S2$653.S212.3S2$651.S218.S$870.S$649.
S220.S$838.2S$647.S189.S.S32.2S$837.2S33.2S$645.S236.3S$938.2S$643.S
293.S2.S$938.2S$891.S$891.S$891.S$902.S$901.S.S$901.2S2$864.2S$864.2S
66.S$931.S.S$931.S2.S$932.2S4$860.2S$860.2S40.2S$901.S2.S$902.2S2$
898.3S2$902.S$902.S$902.S$870.2S$869.S.S32.2S$869.2S33.2S$914.3S$970.
2S$969.S2.S$970.2S$923.S$923.S$923.S$934.S$933.S.S$933.2S2$896.2S$
896.2S66.S$963.S.S$963.S2.S$964.2S4$892.2S$892.2S40.2S$933.S2.S$934.
2S2$930.3S2$934.S$934.S$934.S$902.2S$901.S.S32.2S$901.2S33.2S$946.3S$
1002.2S$1001.S2.S$936.S65.2S$935.S.S17.S$935.S2.S16.S$936.2S17.S$966.
S$965.S.S$965.2S3$996.S$924.2S10.S58.S.S$923.S2.S9.S58.S2.S$924.2S10.
S59.2S2$932.3S3$966.2S$935.2S28.S2.S$935.2S3.S25.2S$939.S.S$939.S.S
20.3S$940.S$925.2S39.S$925.2S39.S$966.S2$968.2S$968.2S$925.2S51.3S$
925.2S13.S93.2S$939.S.S91.S2.S$936.S3.2S92.2S$936.S50.S$925.2S9.S50.S
$925.2S60.S$998.S$997.S.S$997.2S2$941.2S$941.2S85.S$974.2S51.S.S$925.
2T47.2S51.S2.S$925.2T16.S84.2S$942.S.S$941.S2.S36.2S$942.2S37.2S$953.
2S$953.2S43.2S$937.2S58.S2.S$936.S2.S58.2S$914.2S21.2S$914.S.S77.3S$
915.2S$998.S$955.2S41.S$937.3S15.2S41.S2$949.2S49.2S$949.2S49.2S$
1010.3S$966.2S98.2S$966.2S97.S2.S$1066.2S$1019.S$1019.S$1019.S$1030.S
$1029.S.S$1029.2S2$992.2S$992.2S66.S$1059.S.S$1059.S2.S$1060.2S$884.S
.S.S.S.S2$890.S.S$988.2S$888.S3.S95.2S40.2S$1029.S2.S$886.S5.S137.2S
2$884.S7.S133.3S2$882.S147.S$1030.S$880.S149.S$998.2S$878.S118.S.S32.
2S$997.2S33.2S$876.S165.3S$1098.2S$874.S222.S2.S$1098.2S$872.S178.S$
1051.S$870.S180.S$1062.S$868.S192.S.S$1061.2S$866.S$1024.2S$864.S159.
2S66.S$1091.S.S$862.S228.S2.S$1092.2S$860.S2$858.S$1020.2S$856.S163.
2S40.2S$1061.S2.S$854.S207.2S2$852.S205.3S2$850.S211.S$1062.S$848.S
213.S$1030.2S$846.S182.S.S32.2S$1029.2S33.2S$844.S229.3S$1130.2S$842.
S286.S2.S$1130.2S$840.S242.S$1083.S$1083.S$1094.S$1093.S.S$1093.2S2$
1056.2S$1056.2S66.S$1123.S.S$1123.S2.S$1124.2S4$1052.2S$1052.2S40.2S$
1093.S2.S$1094.2S2$1090.3S2$1094.S$1094.S$1094.S$1062.2S$1061.S.S32.
2S$1061.2S33.2S$1106.3S$1162.2S$1161.S2.S$1162.2S$1115.S$1115.S$1115.
S$1126.S$1125.S.S$1125.2S2$1088.2S$1088.2S66.S$1155.S.S$1155.S2.S$
1156.2S4$1084.2S$1084.2S40.2T$1125.T2.T$1126.2T2$1122.3T2$1126.T$
1126.T$1126.T$1094.2S$1093.S.S32.2T$1093.2S33.2T$1138.3S$1194.2S$
1193.S2.S$1194.2S$1147.S$1147.S$1147.S$1158.S$1157.S.S$1157.2S2$1120.
2S$1120.2S66.S$1187.S.S$1187.S2.S$1188.2S4$1116.2S$1116.2S40.2S$1157.
S2.S$1158.2S2$1154.3S2$1158.S$1158.S$1158.S$1126.2S$1125.S.S32.2S$
1125.2S33.2S$1170.3S$1226.2S$1225.S2.S$1226.2S$1179.S$1179.S$1179.S$
1190.S$1189.S.S$1189.2S2$1152.2S$1152.2S66.S$1219.S.S$1219.S2.S$1220.
2S4$1061.S.S.S.S.S78.2S$1148.2S40.2S$1067.S.S119.S2.S$1190.2S$1065.S
3.S$1186.3S$1063.S5.S$1190.S$1061.S7.S120.S$1190.S$1059.S98.2S$1157.S
.S32.2S$1057.S99.2S33.2S$1202.3S$1055.S202.2S$1257.S2.S$1053.S204.2S$
1211.S$1051.S159.S$1211.S$1049.S172.S$1221.S.S$1047.S173.2S2$1045.S
138.2S$1184.2S66.S$1043.S207.S.S$1251.S2.S$1041.S210.2S2$1039.S2$
1037.S142.2S$1180.2S40.2S$1035.S185.S2.S$1222.2S$1033.S$1218.3S$1031.
S$1222.S$1029.S192.S$1222.S$1027.S162.2S$1189.S.S32.2S$1025.S163.2S
33.2S$1234.3S$1023.S266.2S$1289.S2.S$1021.S268.2S$1243.S$1019.S223.S$
1243.S$1017.S236.S$1253.S.S$1253.2S2$1216.2S$1216.2S66.S$1283.S.S$
1283.S2.S$1284.2S4$1212.2S$1212.2S40.2T$1253.T2.T$1254.2T2$1250.3T2$
1253.Q$1252.Q.Q$1253.2Q$1222.2S$1221.S.S32.2Q$1221.2S33.2Q$1266.3S$
1322.2S$1321.S2.S$1322.2S$1275.S$1275.S$1275.S$1286.S$1285.S.S$1285.
2S2$1248.2S$1248.2S66.S$1315.S.S$1315.S2.S$1316.2S4$1244.2S$1244.2S
40.2S$1285.S2.S$1286.2S2$1282.3S2$1286.S$1286.S$1286.S$1254.2S$1253.S
.S32.2S$1253.2S33.2S$1298.3S$1354.2S$1353.S2.S$1354.2S$1307.S$1307.S$
1307.S$1318.S$1317.S.S$1317.2S2$1280.2S$1280.2S66.S$1347.S.S$1347.S2.
S$1348.2S4$1189.S.S.S.S.S78.2S$1276.2S40.2S$1195.S.S119.S2.S$1318.2S$
1193.S3.S$1314.3S$1191.S5.S$1318.S$1189.S7.S120.S$1318.S$1187.S98.2S$
1285.S.S32.2S$1185.S99.2S33.2S$1330.3S$1183.S202.2S$1385.S2.S$1181.S
204.2S$1339.S$1179.S159.S$1339.S$1177.S172.S$1349.S.S$1175.S173.2S2$
1173.S138.2S$1312.2S66.S$1171.S207.S.S$1379.S2.S$1169.S210.2S2$1167.S
2$1165.S142.2S$1308.2S40.2S$1163.S185.S2.S$1350.2S$1161.S$1346.3S$
1159.S$1350.S$1157.S192.S$1350.S$1155.S162.2S$1317.S.S32.2S$1153.S
163.2S33.2S$1362.3S$1151.S2$1149.S$1371.S$1147.S223.S$1371.S$1145.S
236.S$1381.S.S$1381.2S2$1344.2S$1344.2S7$1340.2S$1340.2S40.2S$1381.S
2.S$1382.2S2$1378.3S2$1382.S$1382.S$1382.S$1350.2S$1349.S.S32.2S$
1349.2S33.2S$1394.3S100.W$1496.W.W$1496.W.W$1491.2W4.W$1490.W2.W$
1491.2W6$1376.2S$1376.2S5$1490.2W$1490.2W$1372.2S$1372.2S7$1506.W$
1505.W.W$1382.2S121.W.W$1381.S.S116.2W4.W$1381.2S116.W2.W$1500.2W12$
1499.2W$1499.2W!
#C [[ MAXGRIDSIZE 14 ]]

I can see I have not tested against the boat created inside the trash. ... so I can expect it will show during the testing.
... it explains the 10th cordership.
Oh yes, the other fake glider leaving 2 collision SE just cleanly anihilates a block - but it has no influence on the current corderfleet.

So 10th ship explained, but 13,17,24 remain unexplained.
Last edited by Hippo.69 on February 12th, 2024, 8:58 am, edited 1 time in total.

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

Re: RCT remaining tasks

Post by dvgrn » February 12th, 2024, 8:57 am

Hippo.69 wrote:
February 12th, 2024, 5:05 am
And these 4 corderships (10,13,17,24) seemed to do nothing ...
I can see I have not tested against the boat created inside the trash. ... so I can expect it will show during the testing.
... it explains the 10th cordership.
It's certainly possible that Corderships 13, 17, and 24 were originally put in for some situation that no longer exists. I certainly don't see them accomplishing anything in the test pattern here, and that was supposed to be all the different ash variations that I had collected (the different-colored areas show the different options).

If I remember right, this was the Corderfleet that I started with. For the NW direction I'm pretty sure I tested each Cordership to see if the cleanup still worked without it -- but it's perfectly possible that I didn't do that properly for the SE direction. It would have been easy to make mistakes, and at that point I was more interested in a definitely working solution than any kind of optimization.

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » February 12th, 2024, 9:29 am

dvgrn wrote:
February 12th, 2024, 8:57 am
Hippo.69 wrote:
February 12th, 2024, 5:05 am
And these 4 corderships (10,13,17,24) seemed to do nothing ...
I can see I have not tested against the boat created inside the trash. ... so I can expect it will show during the testing.
... it explains the 10th cordership.
It's certainly possible that Corderships 13, 17, and 24 were originally put in for some situation that no longer exists. I certainly don't see them accomplishing anything in the test pattern here, and that was supposed to be all the different ash variations that I had collected (the different-colored areas show the different options).

If I remember right, this was the Corderfleet that I started with. For the NW direction I'm pretty sure I tested each Cordership to see if the cleanup still worked without it -- but it's perfectly possible that I didn't do that properly for the SE direction. It would have been easy to make mistakes, and at that point I was more interested in a definitely working solution than any kind of optimization.

Hmm, I cannot find the situation creating the boat. It could be the signal 1 passing throuch the epicenter, is returned as fake "anti 1" delayed not by one, but by two bits? I should look at it closely. But the only suspect is the reaction of this fake "anti 1" with distance creating "2". OK I have shifted the SE GPSE near epicentre by 64FD so the distance created 2 instead of 1 and as it was after 1 the boat trash was created ... so 10 is definitely required.

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » February 14th, 2024, 5:27 am

I have pushed to https://gitlab.com/apgoucher/rct16.git/ the shared (recycled beam usage) corderfleet SE salvos computation. (The line shifting in postprocess will be required as the same salvo is often used in diferent lines...)
I probably could have initialised by beam witdh 1000, and let the comptaton of the latter phases be with width 100... or to modify pslmake to reduce the beam width after a solution is found (improvement too generations deeper is very rare) ... so now I am halving the beam width each generation after the solution is found.

Hmm, checking the results the pslmake does not do what I have expected ... the origin is "ignored". Debugging ... Hmm input files in LifeHstory14 :(.

I have removed the beam size halving after a solution is found, but I prevent putting inperspective positions to the beam. And now for the first time a better soluton was found on next generation. Hmm and a solution excudes itself from being reported :(...

I have finished the first set of salvos while still debuggng the method. Than I have rerun it from the scratch. The method of pruning inperspective positions lead to very signficant speedup. Both in finishing the target, but in progress import as well as just few subresults need to be imported.
Now 16 salvos are already finished with 13 minutes per salvo (except the first taking almost 7 hrs). More importantly the sizes of salvos ... out of the 16:12 have the same size (94..96 range), 3 faster are shorter by 1 glider (2x96->95, 1x95->94) and one faster is shorter by 2 gliders (95->93).
... at the end no savlo by faster method was worse and few more improvements were found.

With shortening of the number of gliders to absorb it would be better to use another trash as target ... I so far did not start recomputing of the DBCA destroyal salvo ... but ...

Meanwhile I have almost decided to use these corderabsorbers with the final return glider on FNW.
So we already know 1) the position of the final pattern seed invoking line. 2) the ECCA FNW arm block should be destroyed with the ECCA (the seed should release glider in one of the lines destroying the arm block. Currently the creation of the FNW block is calculated.

I hope we could reuse FSW corderabsorbers program (as there is double elbow required ... and I have no experience with it ...), I would probably recompute the corderfleet (when I expect the optimisation used in FSE corderfleet) will serve well. But I would probably compute FNW corderabsorbers first (the final part of the ECCA program) to know the final ECCA configuration.

Code: Select all

x = 760, y = 756, rule = B3/S23
36$43b2o$43b2o12$42b2o$41bo2bo$37bo4b2o$36bobo$36bobo$37bo4$55b2o$55b
2o10$33b2o$32bo2bo$33b2o19b2o$53bo2bo$49bo4b2o$48bobo$48bobo$49bo5$25b
o$24bobo43b2o$25b2o43b2o12$69b2o$68bo2bo$64bo4b2o$63bobo$63bobo$64bo4$
83b2o$83b2o12$82b2o$81bo2bo$77bo4b2o$76bobo19b2o$76bobo19b2o$77bo11$
97b2o11b2o$96bo2bo10b2o$92bo4b2o$91bobo$91bobo$92bo8$109b2o$108bo2bo$
104bo4b2o$103bobo$103bobo$104bo4$127b2o$127b2o12$126b2o$125bo2bo$121bo
4b2o$120bobo$120bobo$121bo22b2o$144b2o11$153b2o$143b2o8b2o$142bo2bo$
138bo4b2o$137bobo$137bobo$138bo7$152b2o$151bo2bo9b2o$147bo4b2o10b2o$
146bobo$146bobo$147bo9$163b2o$162bo2bo$158bo4b2o$157bobo$157bobo19b2o$
158bo20b2o12$178b2o$177bo2bo$173bo4b2o$172bobo$172bobo$173bo22b2o$196b
2o12$195b2o$194bo2bo10b2o$190bo4b2o11b2o$189bobo$189bobo$190bo9$207b2o
$206bo2bo$202bo4b2o$201bobo16b2o$201bobo16b2o$202bo11$219b2o7b2o$218bo
2bo6b2o$214bo4b2o$213bobo$213bobo$214bo6$239b2o$239b2o$227b2o$226bo2bo
$222bo4b2o$221bobo$221bobo$222bo6$238b2o$237bo2bo$233bo4b2o$232bobo$
232bobo$233bo6$257b2o$257b2o12$256b2o$255bo2bo$251bo4b2o$250bobo19b2o$
250bobo19b2o$251bo11$271b2o$270bo2bo$266bo4b2o13b2o$265bobo18b2o$265bo
bo$266bo10$285b2o10b2o$284bo2bo9b2o$280bo4b2o$279bobo$279bobo$280bo8$
296b2o10b2o$295bo2bo9b2o$291bo4b2o$290bobo$290bobo$291bo8$307b2o$306bo
2bo$302bo4b2o$301bobo$301bobo$302bo4$319b2o$319b2o12$318b2o$317bo2bo$
313bo4b2o$312bobo$312bobo18b2o$313bo19b2o12$332b2o$331bo2bo$327bo4b2o$
326bobo$326bobo$327bo3$346b2o$346b2o12$345b2o$344bo2bo$340bo4b2o$339bo
bo$339bobo$340bo5$362b2o$362b2o12$361b2o$360bo2bo$356bo4b2o$355bobo$
355bobo20b2o$356bo21b2o12$377b2o$376bo2bo$372bo4b2o$371bobo$371bobo$
372bo20b2o$393b2o12$392b2o$391bo2bo$387bo4b2o$386bobo$386bobo$387bo6$
409b2o$409b2o11$421b2o$408b2o11b2o$407bo2bo$403bo4b2o$402bobo$402bobo$
403bo7$420b2o$419bo2bo$415bo4b2o$414bobo$414bobo$415bo14$428b2o$428b2o
9$438b2o$438b2o2$427b2o$426bo2bo$422bo4b2o$421bobo$421bobo$422bo5$437b
2o$436bo2bo$432bo4b2o$431bobo$431bobo111b2o$432bo112b2o9$447b2o$447b2o
12$446b2o$445bo2bo$441bo4b2o$440bobo$440bobo$441bo17$604b2o$603bobo$
603b2o9$613b2o$613b2o7$609b2o$609b2o2$572b2o$571bobo$572bo2$582b3o4$
591bo$591bo$591bo9b2o33b2o$601b2o32bobo$635b2o2$603b3o2$607bo$607bo$
607bo$603b2o$602bo2bo$603b2o40b2o$645b2o4$573b2o$572bo2bo$573bobo$574b
o66b2o$641b2o2$604b2o$603bobo$604bo2$614b3o2$567b2o$566bo2bo$567b2o54b
o$623bo$623bo9b2o33b2o$633b2o32bobo$667b2o2$635b3o2$639bo$639bo$639bo$
635b2o$634bo2bo$635b2o40b2o$677b2o4$605b2o$604bo2bo$605bobo$606bo66b2o
$673b2o2$636b2o$635bobo$636bo2$646b3o2$599b2o$598bo2bo$599b2o54bo$655b
o$655bo9b2o33b2o$665b2o32bobo$699b2o2$667b3o2$671bo$671bo$671bo$667b2o
$666bo2bo$667b2o40b2o$709b2o4$637b2o$636bo2bo$637bobo$638bo66b2o$705b
2o2$668b2o$667bobo$668bo2$678b3o2$631b2o$630bo2bo$631b2o54bo$687bo$
687bo9b2o33b2o!
I have decided finish the "calculation of the final ECCA state" and position as soon as possible.
Finally I got access to the "farm" of stronger computers than my laptop is ... and I am computing the salvo for FNW absorbers (with both arrow beam (it is sufficient for the final ECCA pattern) and wide beam), I continue computing FSW absorbers with wide beam.

I am planning to use SW and NW corderfleets from the original RCT15 till the working RCT15 is ready so ECCA destruction seed can be computed.
I will optimize these parts while destruction seed of ECCA will be computed. I probably could use nonoptimalised FSE absorbers (even when it could affect final N-gliders absorber, as it does not change the final ECCA pattern.

I will replace seed for the final pattern by something easy ... for now ... it does not influence the final ECCA pattern.

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » February 24th, 2024, 7:22 pm

So I probably have the final ECCA configuration (just missing the seed of destruction) ...

Notice there is boat and block added just to clearly use the incomming signal (in a way destroyig the ECCA arm block in FNW).
(They are marked by state 5 in ECCA_Replacement.mc in the git https://gitlab.com/apgoucher/rct16)

Code: Select all

x = 2321, y = 1681, rule = B3/S23
429$829b2o$829bobo$831bo4b2o$827b4ob2o2bo2bo$827bo2bobobobob2o$830bobo
bobo$831b2obobo$835bo2$821b2o$822bo7b2o$822bobo5b2o$823b2o7$833b2o$
833bo$834b3o$836bo3$902b2o$903bo$903bobo27bo$904b2o25b3o$930bo$930b2o
4$890bo48b2o$864bo9bo15b3o47bo$864b3o5b3o18bo46bobo$867bo3bo20b2o11b2o
34b2o$866b2o3b2o32b2o3$962b2o$962b2o4$880b2o48b2o$880b2o35b2o11b2o$
868b2o48bo$867bo2bo44b3o$862b2o4b2o45bo$861bobo$861bo$860b2o$870b2o33b
2o$870bo34bo$871b3o32b3o43b2o$873bo34bo43b2o13$865b2o$864bobo$864bo$
863b2o5$898bo$896b3o$895bo$895b2o$885b2o$886bo$886bobo$887b2o4b2o38bo
12bo$892bo2bo35b3o12b3o$893b2o35bo18bo$905b2o23b2o16b2o$905b2o2$732b2o
239bo11b2o$971b3o12bo$730bo3bo235bo15bobo$730bo4bo234b2o15b2o$732bobob
o$733bobobo201b2o$734bo4bo151b2o3b2o41b2o72bo$735bo3bo152bo3bo19b2o93b
3o$889b3o5b3o15bobo92bo$736b2o2bo148bo9bo15bo94b2o$739bobo172b2o10b2o$
740b2o185bo51b2o$736b2o186b3o9b2o41b2o$735bobo186bo11bo19b2o$735bo5b2o
191bobo18bobo$734b2o5b2o191b2o19bo$954b2o10b2o$967bo51b2o$964b3o9b2o
41b2o$964bo11bo19b2o$974bobo18bobo$974b2o19bo$994b2o10b2o$1007bo$1004b
3o9b2o$1004bo11bo23b2o$1014bobo23b2o$1014b2o2$1040b2o$1040b2o2b2o$
1044bobo$1046bo$1046b2o9$836b2o$837bo$835bo$835b5o14b2o$840bo13bo$837b
3o12bobo$836bo15b2o$836b4o$834b2o3bo3b2o$833bo2b3o4b2o$833b2obo$836bo$
836b2o3$844b2o$845bo$842b3o$842bo12$1047b3o$1047b3o$1047b3o10bo$1050b
3o5b3o$1050b3o4bo$1050b3o4b2o2$1055bo$1054bobo$1055b2o2b2o$1047bo11b2o
21bo$1045b3o32b3o$1044bo34bo$1044b2o33b2o$1034b2o$1035bo$1035bobo$
1036b2o4b2o44b2o$1041bo2bo44bo$1042b2o45bobo$1054b2o34b2o$1054b2o3$
1111b2o$1111b2o4$1040b2o3b2o32b2o$1041bo3bo20b2o11b2o$1038b3o5b3o18bo$
1038bo9bo15b3o$1064bo4$799b2o$799b2o$814bo286b2o$812b3o286b2o$798b2o
11bo$798b2obo9b2o$801bo$801bo5bo$798bo2bo4bobo$799b2o4bo2bo$806b2o14bo
$817b3ob2o2b2o$817b4o4b2o$821b2o3$1127b2o$817bo291bo18bo$816bobo290b3o
16bobo$816bo2bo292bo16b2o$817b2o292b2o$1104bo$1104b3o$821b2o284bo42b2o
$821bobo282b2o42b2o$823bo$823b2o$790bo312b2o$790bobo311bo$790b2o312bob
o$1105b2o3$1099bo$1080bo18b3o$1080b3o19bo$934b2o147bo17b2o$935bo146b2o
$935bobo137bo64b2o$936b2o92b2o43b3o62b2o680bo$1031bo46bo742bobo$1031bo
bo43b2o742b2o$1032b2o$1028bo34bo$1026b3o32b3o10b2o$1025bo34bo14bo$
1025b2o33b2o13bobo$1015b2o59b2o$1016bo92b2o$1016bobo91bo$1017b2o4b2o
45bo36b3o$1022bo2bo44b3o34bo$1023b2o48bo$1035b2o35b2o$778b3o254b2o$
780bo$779bo6$1021b2o3b2o32b2o$1022bo3bo20b2o11b2o$1019b3o5b3o18bo$
1019bo9bo15b3o32b2o$985b2o58bo35bo$985bo92b3o$983bobo92bo$983b2o4$
1178bo$1178b2o$842b3o332b2obo$845bo330bo2b3o$841bo3bo182bo137bo8bobobo
$840bobo2bo125b2o54bobo136b3o5bobobo$838bo2bobo127bobo44b2o7bobo139bo
2b3o2bo$838bo3bo129bo45b2o6b2ob3o136b2o3bob2o$838bo172b2o19bo141b2o$
839b3o169b2o13b2ob3o139bo3bo$836bo189b2obo140bobo$835bobo121b2o205b2o
2b2o$835b2o122b2o205b2o$839b2o$839bobo174bo$834b2o5bo173bobo$834b2o5b
2o78b2o92bo2bo$917b4o4b2o78b2o9b2o$726bo190b3ob2o2b2o78b2o$726bobo193b
o$726b2o$1027b2o$1027b2o$926bo$925bobo64b2o$924bo2bo64b2o$807bo117b2o$
805b3o$804bo$790b2o12b2o115b2o$790b2o128bobo$920bo42b2o$919b2o42b2o3bo
44b2o$770b2o195bobo44bo$770b2o196bobo40b3o$970bo40bo$970b2o$769bo$768b
obo$769bo$766b3o172b2o$766bo167b2o4bo2bo$934bo2bo3bobo$942bo$934bo2bo$
714b3o92b2o122bo2bo9b2o$716bo92b2o122bobo10bo288b2o$715bo218bo12b3o
260bo9bo15bo$949bo260b3o5b3o15bobo$934b2o277bo3bo19b2o$934b2o276b2o3b
2o3$806b2o450b2o$806bo451b2o$807b3o$809bo2$1226b2o$1226b2o$1214b2o$
1213bo2bo$777b2o382b2o45b2o4b2o$777b2o382b2o44bobo$1147bo59bo$1147b3o
56b2o$1150bo9bob2o52b2o$1149b2o9bobo53bo$751b2o408bo55b3o28b2o$751b2o
59bo341bo6b2o56bo11b2o15b2o$773b2o35b3o340bobo5b2o64b2o2b2o$773bo35bo
343bo2bo4b2o63bobo$731b2o38bobo35b2o343b2o71bo$731b2o38b2o449b3o$1225b
o3b2o$817b2o402bo3bo3bo$730bo87bo401bobo2bo4b3o$729bobo86bob2o396bo2bo
bo8bo$730bo79b2o4b3o2bo396bo3bo$727b3o80b2o3bo3b2o397bo$727bo87b4o400b
3o$801b2o15bo$662bo137bobo12b3o$662bobo135bo13bo$662b2o106b2o27b2o14b
5o$770b2o47bo$817bo$817b2o$1138b2o$1137bobo$1139bo2$767b2o$767bo$768b
3o$770bo53b2o137b2o$824bobo135bobo$826bo4b2o129bo$822b4ob2o2bo2bo126b
2o$822bo2bobobobob2o$825bobobobo$738b2o86b2obobo$738b2o90bo2$816b2o$
817bo7b2o$817bobo5b2o$818b2o2$650b3o$652bo$651bo171b2o$822bobo$824bo$
828b2o$828bo$703b2o124b3o$703b2o126bo$725b2o$725bo473bobo$683b2o38bobo
29b2o331b2o5b2o103b2o$683b2o38b2o31bo331b2o5b2o103bo$756bobo473bo$757b
2o473b3o$682bo552bo$681bobo550b2o6bo$682bo78b2o478bobo$679b3o78bo2bo
478bo$679bo81bobo$762bo473b2o$1229b2o5b2o$1229b2o$722b2o$722b2o33b2o$
753b2o2b2o2b2o483b2o$753bobo2bo2b2o483b2o$754b3o$755b2o474b2o$1230bobo
$1230bo$719b2o508b2o$719bo$720b3o$722bo3$598bo$598bobo$598b2o$690b2o$
690b2o392b2o$1084bo$1074b2o6bobo$1073bobo6b2o$1075bo6$659b2o$659b2o
238b2o$681b2o216bo$681bo205bo9bobo$639b2o38bobo203bobo9b2o384bo$639b2o
38b2o205b2o393b3o$1280bo$893b2o385b2o$638bo253bo2bo$637bobo252bobo$
638bo254bo$635b3o205b2o$635bo207b2o$586b3o240bo$588bo240b3o65b2o$587bo
171b2o71bo9bob2o47b2o2b2o2b2o$678b2o78bobo70b2o9bobo48b2o2bo2bobo$678b
2o80bo82bo55b3o$836bo6b2o54b2o$835bobo5b2o$835bo2bo4b2o340bo$836b2o
347b3o$1188bo$1187b2o$675b2o395b2o190b2o$675bo182b2o212b2o190bo$676b3o
179b2o404b3o4b2o$678bo586b2o4b2o2$1271bo$1197b2o60b2o9bobo$1190b2o5bob
o60bo9bo2bo$1190b2o7bo57b3o11bo2bo$646b2o551b2o56bo$646b2o409b2o212bo
2bo$1057b2o127bo84b2o$1185bobob2o$1185bobobobo$1182b2obobobobo2bo$
1182bo2bo2b2ob4o$1184b2o4bo$1190bobo$1191b2o3$1275b2o11bo$1275b2o10bob
o$1287bobo31b2o$1286b2ob3o2b2o25bo$1292bo2bo23bobo$534bo751b2ob3o3bobo
21b2o$534bobo560bo188b2obo6b2o$534b2o559b3o$1094bo10bo$1094b2o8bobo$
1077bo26bobo$1010b2o65b3o23b2ob3o$1009bobo68bo28bo$1011bo67b2o22b2ob3o
174b2o13b2o$1103b2obo176b2o13b2o$1268b2o$1080b2o185bo2bo$1080b2o184bob
2o$1266bo$1265b2o$594b2o236bobo445b2o$594b2o236b2o446bo$616b2o215bo
447b3o23b2o$616bo666bo24bo$574b2o38bobo688b3o4b2o$574b2o38b2o689bo6b2o
5bo$1317b3o38b2o$1301bo14bo41bo$573bo519b2o206b3o12b2o38bobo$572bobo
518bo210bo47b2o2b2o$573bo520b3o206b2o47b2o$570b3o523bo$522b3o45bo$524b
o779b2o$523bo171b2o607b2o17b2o$694bobo626b2o163b2o$613b2o81bo791b2obo$
613b2o487b2o388bo8bo$1102bo386bo9b3o$1083b2o15bobo387bob2o4bo$1083b2o
15b2o390b2o4b2o$1320b2o$1320bo19b2o154bo$1321b3o15bobo18b2o133bobo$
610b2o711bo15bo20bobo133b2o2b2o$610bo706b2o19b2o22bo137b2o$611b3o703bo
44b2o$613bo704b3o$1320bo4$1082b2o271b2obo$581b2o498bobo271b2ob3o$581b
2o498bo279bo99bo$1080b2o273b2ob3o99bobo24bobo$1356bobo102bo25b2o$1356b
obo129bo$1357bo2$1463bo$1462bobo$1073b2o387bobo$1074bo241b2o145bo$
1074bobo15b2o222bobo$1075b2o15b2o193b2o29bo144bo$1286bobo29b2o142bobo$
1286bo175bobo$1285b2o176bo74bo588b2o$470bo835b2o229b3o586b2o$470bobo
833bo229bob3o587bo$470b2o835b3o225bo3bo$1309bo151bo22bo49bo3bo$893b2o
405b2o158bobo20b2o17b2o29b3obo$894bo405bobo112bo45bo21bobo16b2o5b2o23b
3o$892bo53b2o354bo93b2o17b2o92b2o24bo$892b5o14b2o32bobo354b2o91b3o16bo
bo114bo$897bo13bo35bo145b2o299bobo2bo2b2o126bobo$894b3o12bobo181bobo
298b2o2b2o2b2o74b2o21b2o4b2o21b2o$445b2o446bo15b2o184bo302b2o78b2o20b
2o5b2o25b2o$446bo446b4o198b2o405bo10b2o19bobo$446bobo442b2o3bo3b2o611b
2o14b2o5bo$447b2o441bo2b3o4b2o570b2o55b2o5b2o$890b2obo415b2o92bo68b2o$
530b2o236bobo122bo415bo92bobo71b2o$451b2o77b2o236b2o123b2o395b2o15bobo
91bo2bo71b2o$450bo2bo98b2o215bo152b2o366b2o15b2o93b2o$451bobo98bo369b
2o178b2o$452bo57b2o38bobo348b2o172b2o25bo$510b2o38b2o350bo173bo6b2o15b
obo295b2o71b2o$899b3o95bo6b2o67b3o7b2o15b2o295bobo71b2o$899bo97b3o4b2o
67bo323bo$447b2o60bo465bo24bo395b2o$443b2o2b2o2b2o55bobo462b3o23b2o$
443bobo2bo2b2o56bo462bo$444b3o59b3o463b2o$445b2o11b3o45bo450b2o$460bo
497bo$459bo171b2o325bob2o294b2o31b2o$630bobo326bo2bo294bo30bobo67bo$
549b2o81bo327b2o295bobo28bo67b3o$549b2o424b2o13b2o266b2o27b2o66bo146b
2o$975b2o13b2o90b2o271b2o146b2o$1081bobo189b2o210bo16bo$1081bo191b2o
209b3o31b2o$1080b2o281b2o118bo2b2o30b2o$1264b2o98bo118bo3bo$1256b2o6b
2o98bob2o116b2obo$546b2o708b2o22b2o74b2o4b3o2bo118b2o$546bo431b2obo6b
2o113b2o5b2o169bo74b2o3bo3b2o146b2o$547b3o428b2ob3o3bobo21b2o90b2o5bo
170bobo15b2o60b4o148b2o$549bo434bo2bo23bobo94bobo158bo12b2o15b2o46b2o
15bo119bo32b2o$894b2o82b2ob3o2b2o25bo94b2o158bobo75bobo12b3o119bo3b2o
28b2o$890b2obo2bob2o79bobo31b2o89b2o155b2o6bo76bo13bo69bo45b2o4bo6b2o$
890b2o2bo4bo67b2o10bobo110b2o10bobo155bo82b2o14b5o63bo46b2o4bo11b2o$
895bo71b2o11bo111b2o11bo153b3o103bo63b3o50bo3b3obo3b2o15b2o$896bobo
210bo149bo103bo119b2o4bo21b2o$517b2o589b3o252b2o$517b2o588b3obo445bo$
899bo208bo3bo367b2o70b3ob2o2b2o$898bobo208bo3bo366b2o5b2o63b4o4b2o$
897bo2bo180b2o27bob3o372b2o67b2o$898b2o182bo19b2o7b3o$1082bobo17bo9bo
187b2o154bo$1083b2o15bobo197bobo151b2o$894b2o199bo4b2o200bo152b2o95bo$
893bobo198bobo205b2o247bobo$893bo200bobo454bo2bo$892b2o189b2o10bo456b
2o$1082bobo$1082bo$493b2o586b2o366b2o105b2o$1096b2o344b2o4bo2bo104bobo
$1096bo212b2o130bo2bo4bobo106bo$1097b3o209bo134bo5bo107b2o$1099bo190b
2o15bobo134bo$1290b2o15b2o132b2obo9b2o$918b2o521b2o11bo$917b2o536b3o$
919bo537bo$1442b2o91b3o$1442b2o93bo$1536bo$958b2o$959bo$959bobo$960b2o
296b2o$1259bo271b2o$704bobo268b2o282bobo27b2o239bo2bo4b2o$517b2o185b2o
269b2o283b2o26bobo239bobo3bo2bo$517bo187bo582bo242bo$518b3o754b2o10b2o
247bo2bo$520bo437b2o315b2o249b2o9bo2bo$958b2o5b2o560bo10bobo$712b2o
251b2o557b3o12bo$380b3o329b2o544b2o264bo$380b3o588bo286b2o5b2o271b2o$
380b3o587bobo292b2o113b2o156b2o$383b3o68b2o507b2o6bo408b2o$383b3o64b4o
4b2o504bo306bo$383b3o8b3o53b3ob2o2b2o501b3o306bobo26b2o$396bo58bo505bo
301b2o6bo27b2o$388bo6bo171b2o695bo$387bobo176bobo692b3o47b2o$388b2o
178bo692bo49bo$384b2o73bo852b3o$383bobo72bobo853bo$383bo5b2o66bo2bo
827b2o$382b2o5b2o67b2o829bo19b2o$1289bobo17bo$1290b2o15bobo$454b2o846b
o4b2o$453bobo845bobo$453bo847bobo$452b2o836b2o10bo82bo$1289bobo91b3o$
1289bo92bo$1288b2o76bo15b2o$1303b2o60bo$1303bo61b3o$1304b3o$1306bo3$
1372b2o$1371bobo5b2o$1371bo7b2o$1370b2o2$1384bo$1380b2obobo$485b3o891b
obobobo$485bo890bo2bobobobob2o$486bo889b4ob2o2bo2bo$517b2o861bo4b2o$
510b2o5b2o859bobo$510b2o866b2o3$541b2o$513b3o8b2o15b2o$506b2o4bo4b4o3b
2o456b2o$506b2o5b3obobobo459b2o$518bo28b2o434bo$547b2o$543b2o$543b2o2$
514bob2o$514bo2bo$514b3o31b2o$532bo15b2o$533bo106bobo$531b3o106b2o$
641bo21b2o$663b2o8$453bo$452b2o$452bobo46b2o$501b2o3$653b2o$506b2o145b
2o$506b2o$502b2o759b2o$397bo104b2o759b2o2b2o$393b2o2b2ob3o140b2o722bob
o$393b2o4b4o140b2o723bo$397b2o109b2o27b2o733bo$508b2o27b2o726b2o$1266b
o3bob3o$1263b3o6b2obo$402bo111bo24b2o722bo8bob2o$401bobo110bobo15b2o5b
2o732b3obo24bo$400bo2bo110b2o16b2o767bo$401b2o872bo25b3o2$621b2o$397b
2o218b2o2b2o$396bobo217bobo$396bo220bo$395b2o215b3o$615bo3b2o$611bo3bo
3bo$610bobo2bo4b3o$608bo2bobo8bo$608bo3bo$608bo$609b3o2$581bo$578b2o2b
o$576bo5bo$576bobo3bo$576bo4bo$578b3o3b2o$579bo3bo2bo$491b2o91b2o460b
2o$484b2o4bo2bo551b2o$484b2o5bobo553bo$492bo$1026b2o$483bob2o9b2o527bo
2bo4b2o$483bobo10bo528bobo5b2o$484bo12b3o526bo$484b2o13bo80b2o$484b2o
95bo439b2o9b2obo$484b2o92b3o441bo10bobo$517bo60bo440b3o12bo$1019bo13b
2o$515bob3o513b2o$517b2obo512b2o$517bob2o$518b3obo2$520bo$524bo$523bob
o$524b2o$520b2o$519bobo$519bo5b2o$518b2o5b2o14$1159bo$1157b3o78bo$
1156bo80bo$1156b2o79b3o7$1146b2o$1145bobo5b2o$1145bo7b2o$1144b2o2$
1158bo$1154b2obobo$1153bobobobo$1150bo2bobobobob2o$1150b4ob2o2bo2bo$
1154bo4b2o$1152bobo$1152b2o3$1110b2o$1109b2o$1111bo38$1174bo$1173bo$
1173b3o13$1166b2o$1162b2o2b2o$1161bobo$1158b2o2bo2$1157bo3bo2b2o$1156b
o4bo2bo$1155bobobo5b3o$1154bobobo8bo$1152bo4bo$1152bo3bo2$1154b2o55$
769b2o$768bo2bo4b2o$768bobo4bobo$769bo4b3o$774b2o$764b2o11b2o$765bo10b
3o$762b3o$762bo$776b2o$776b2o!
So there is upto the replacement a working version of RCT15 in the git.
I will replace some parts by better optimized equivalents, but this will not influence the requirements for the ECCA seed of destruction.

So this is end of my hard work and I hope someone else will compute the seed of destruction.
Please as the "White" part is created by the "Green" part, try to add seed to positions near the white part accessible by the arm (to be constructed together with the white portion). Also be aware of the kickback mechanism used at the early phases of the ECCA so the seed of destruction should not affect it.

I will probably (not necessarily in this order ...)
1) compute "cheap" ECCA line no seed of destruction program to remove the requirements to edit the pattern in golly during the presentation.
2) recompute the DBCA destroyal salvo to allow the beehive trash near SE snark become target for N gliders absorbers eater.
3) replace FSE corderabsorbers salvo by the just finished beam 1000 calculated version. (probably modifying the N in N gliders absorber ... changing position of the eater (or block?))
4) recompute FNW corderabsorbers to use closer block as starting target
5) recompute the FSW and FNW corderfleets line programs (the same fleets (upto phase, when it is not important)).
6) I will check the White portion of DBCA was computed from well defragmented salvo ... (before 2))
7) I should check the number of required final ones ...

I am not planning recomputation of the FSW corderabsorbers creating 2nd order salvo ... may be later :).
I am not planning to modify the python version of the rct15_view script in near future, but it would definitely take advantage of naturaly included big numbers implementation ...

I have included my dirty code in the repository ... it was often used interactively from golly, so instead of command line arguments I have editted the parts of the code :(. Another dirty trick was using DBCA compiler for line shifting(+sign flipping) of the line programs ... where writing program not using golly at all using command line arguments would serve better (batches to shift several line programs ...).

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: RCT remaining tasks

Post by calcyman » February 25th, 2024, 11:46 am

Hippo.69 wrote:
February 24th, 2024, 7:22 pm
So this is end of my hard work and I hope someone else will compute the seed of destruction.
Excellent work! I'll work on the seed of destruction now.

I was wondering: why is the destruction glider coming from the southeast? In the original RCT15 it came from the northwest for a good reason: it was a return glider from the final stage of destruction so that, by the time it has returned, everything else has been destroyed. It's necessary for all of the circuitry (including the distant Corderabsorbers) to have been cleanly annihilated before we activate the ATBC seed; otherwise, this isn't strictly a predecessor of the ATBC.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » February 25th, 2024, 3:49 pm

calcyman wrote:
February 25th, 2024, 11:46 am
Hippo.69 wrote:
February 24th, 2024, 7:22 pm
So this is end of my hard work and I hope someone else will compute the seed of destruction.
Excellent work! I'll work on the seed of destruction now.

I was wondering: why is the destruction glider coming from the southeast? In the original RCT15 it came from the northwest for a good reason: it was a return glider from the final stage of destruction so that, by the time it has returned, everything else has been destroyed. It's necessary for all of the circuitry (including the distant Corderabsorbers) to have been cleanly annihilated before we activate the ATBC seed; otherwise, this isn't strictly a predecessor of the ATBC.
After FSE program is finished (N gliders absorber on WHITE color is exhausted) the bits are reflected SE a lot of 1's is required to reposition the ECCA arm block for DBCA destroyal ... first three 2's are actually 1's with an axtra glider ... first two tunel to the 2's reflector and the 3rd travels 8 aeons almost to ECCA where it is reflected to travel next 4 aeons to destroy DBCA arm block and FSE reflectors ... and the signal is reflected back to travel next 4 aeons to destroy ECCA after ECCA processed all its inputs ... and the signal contiues next 4 aeons to FNW, where it destroys the ECCA FNW arm block.

The Pattern seed would wait alone roughly 8 aeons more for the glider from the last cordership destruction on FNW.

I like it more this way, the seed of destruction has to sent only the signal destroying the (far) arm block. Rather to sending a LWSS to activate the pattern. (The ECCA is destroyed while the seed is waiting for the returned glider, in the original RCT15 seed had to wait for returning glider and the ECCA destruction. Very tiny time save compared to the reduction of the logarithm of the multiplicative constant.)

(The glider from SE was natural result of a chaep bouncer destruction so it was rather discount).

Oh, I have expected dvgrn or Pavgran would work on it. But you are definitely welcomed. The seed of destruction is definitely something I have zero experience with.

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: RCT remaining tasks

Post by calcyman » February 25th, 2024, 4:12 pm

Hippo.69 wrote:
February 25th, 2024, 3:49 pm
The Pattern seed would wait alone roughly 8 aeons more for the glider from the last cordership destruction on FNW.

I like it more this way, the seed of destruction has to sent only the signal destroying the (far) arm block. Rather to sending a LWSS to activate the pattern.
How does the ATBC seed get activated? The seed is usually positioned to the west of the ECCA (which is why the westbound MWSS is a convenient way to activate it). Unless you've changed what happens in the far northwest, the SE-bound return glider lane is northeast of the ATBC seed so there still needs to be some one-time turner somewhere to redirect the glider into the ATBC seed.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: RCT remaining tasks

Post by Hippo.69 » February 25th, 2024, 5:32 pm

calcyman wrote:
February 25th, 2024, 4:12 pm
Hippo.69 wrote:
February 25th, 2024, 3:49 pm
The Pattern seed would wait alone roughly 8 aeons more for the glider from the last cordership destruction on FNW.

I like it more this way, the seed of destruction has to sent only the signal destroying the (far) arm block. Rather to sending a LWSS to activate the pattern.
How does the ATBC seed get activated? The seed is usually positioned to the west of the ECCA (which is why the westbound MWSS is a convenient way to activate it). Unless you've changed what happens in the far northwest, the SE-bound return glider lane is northeast of the ATBC seed so there still needs to be some one-time turner somewhere to redirect the glider into the ATBC seed.
There is actually the empty pattern seed in this RCT15 ... boat near origin reflecting the signal to the block creating "empty space".
So you can see the line of glider activating the seed.

There is PatternSeedActivationAndStartingTarget.mc in pslamakeTargets (in git) to see the position, there are 2 left reflectors of ECCA in the file.

FNWCorderabsorbersB4pslmake.mc shows the change in FNW ... last absorber sents back a glider.

Post Reply