from fractions import Fraction as F def run(load,check): reg=load('C286_DATA.json')['target_register'];ratio=F(300,299);rows=[] for x in load('C344_DATA.json')['rows']: if x['rail']!='primary':continue m,r=x['M']['center'],x['R']['center'];new=x['hold_Flood_Noah_matches'][0] def death(g): z=[z for z in reg if z['tradition']=='MT' and z['role']=='Noah death' and z['gear']==g and z['Cainan']==z['Terah60']==z['full430']==1];check(f'i{x["i"]}/G{g} death',len(z)==1);return z[0] oldD,newD=death(x['M']['gear']),death(new['gear']);d,dp=oldD['center'],newD['center'];birth_image=r+ratio*(m-r);death_image=r+ratio*(d-r);fixed_birth_death_image=m+ratio*(d-m) check(f'i{x["i"]} coherent translation',new['center']-m==dp-d==2 and m-d==new['center']-dp==950) check(f'i{x["i"]} only birth agrees',birth_image==new['center'] and death_image!=dp and death_image-dp==F(-950,299)) check(f'i{x["i"]} affine lifespan',birth_image-death_image==ratio*950==F(285000,299)) check(f'i{x["i"]} fixed birth variant',fixed_birth_death_image-d==F(-950,299)) check(f'i{x["i"]} no quarter lattice',(death_image*4).denominator!=1 and (fixed_birth_death_image*4).denominator!=1) rows.append({'i':x['i'],'old_Noah':x['M'],'new_Noah':new,'held_Flood':x['R'],'old_MT_death':oldD,'new_MT_death':newD,'coherent_birth_death_shift':2,'lifespan':950,'held_Flood_affine_death_image':str(death_image),'source_death_image_error':str(death_image-dp),'affine_lifespan':str(ratio*950),'fixed_birth_affine_death_image':str(fixed_birth_death_image),'images_adopted':False}) return {'step':'C347','rows':rows,'result':'Source birth/death state change is translation+2 preserving950. The300/299 gap conversion matches one birth endpoint but whole-affine extension scales950 to285000/299.','source_gap_rule_rejected':False,'global_biography_map_established':False}