This is the code that searches for concordance friends of knots.

In [1]:
import regina
import snappy
import time
import itertools
import csv
import pickle
import random
from IPython.display import display, clear_output #used as in-calculation feedback

###### CODE TO ATTACH RIBBON BANDS #######

import snappy
import itertools

#Methods to manipulate knot diagrams

def number_of_strands(PD_code):
    '''
    Returns the number of strands in a diagram.
    '''
    X=[]
    for cros in PD_code:
        X=X+[x for x in cros]
    return max(X)+1 

def get_next_strand(PD_code,strand,crossing):
    '''
    Returns the number of the next strand and its next crossing.
    '''
    PD=PD_code.copy()
    PD.remove(crossing)
    for cros in PD:
        for i in range(4):
            if cros[i]==strand:
                if i==0:
                    y=cros[2]
                if i==1:
                    y=cros[3]
                if i==2:
                    y=cros[0]
                if i==3:
                    y=cros[1]
                return [y,cros]
            
def replace_one_strand_in_crossing(PD_code,cros,old_strand,new_strand):
    '''
    Replaces first occurance of old_strand by new_strand in the crossing. 
    '''
    for i in range(4):
            if cros[i]==old_strand:
                if i==0:
                    new_cros=(new_strand,cros[1],cros[2],cros[3])
                if i==1:
                    new_cros=(cros[0],new_strand,cros[2],cros[3])
                if i==2:
                    new_cros=(cros[0],cros[1],new_strand,cros[3])
                if i==3:
                    new_cros=(cros[0],cros[1],cros[2],new_strand)
                PD_code.remove(cros)
                PD_code.append(new_cros)
                return PD_code

def change_crossing(PD_code,crossing):
    '''
    Changes the crossing.
    '''
    (a,b,c,d)=crossing
    PD_code.remove(crossing)
    PD_code.append((d,a,b,c))
    return PD_code


def strands_in_same_region(PD,strand1,strand2):
    '''Returns True if strand1 and strand2 are in the boundary of the same region of the diagram and False if not.
    We also return a pair of crossings that lie on the same 'side' of the strands 1 and 2, so that we can attach bands.
    WARNING: Might not work if Reidemeister 1 simplifications are posible.'''
    for crossing in PD:
        if strand1 in crossing:
            break
    #crossing contains strand1
    m=number_of_strands(PD)
    
    #Next we run through the knot and always turn to the left and check if we get strand2
    cros=crossing
    strand=strand1
    for i in range(m):
        cros=get_next_strand(PD,strand,cros)[1]
        if strand2==cros[(cros.index(strand)+1)%4]:
            return [True,get_next_strand(PD,strand1,crossing)[1],cros]
        strand=cros[(cros.index(strand)+1)%4]
        if cros==crossing:
            break
    #Next we run through the knot and always turn to the right and check if we get strand2
    cros=crossing
    strand=strand1
    for i in range(m):
        cros=get_next_strand(PD,strand,cros)[1]
        if strand2==cros[(cros.index(strand)-1)%4]:
            return [True,get_next_strand(PD,strand1,crossing)[1],cros]
        strand=cros[(cros.index(strand)-1)%4]
        if cros==crossing:
            break
    return [False,False,False]

#Attach a ribbon band.

def attach_ribbon_band(PD_code,strand1,strand2,twists=0):
    '''Attach a ribbon band between strand1 and strand2 with the specified number of twists.
    Remark: Get the mirror by interchanging the strands.'''
    PD=PD_code.copy()
    [test,cros1,cros2]=strands_in_same_region(PD,strand1,strand2)
    if test==False:
        raise ValueError('The strands do not lie in the same region.')
    m=number_of_strands(PD)
    if cros1!=cros2:
        PD=replace_one_strand_in_crossing(PD,cros1,strand1,m+1)
        PD=replace_one_strand_in_crossing(PD,cros2,strand2,m+7)
    if cros1==cros2:
        PD=replace_one_strand_in_crossing(PD,cros1,strand1,m+1)
        cros2=PD[-1]
        PD=replace_one_strand_in_crossing(PD,cros2,strand2,m+7)
    PD.append((strand1,m+10,m+6,m+11))
    PD.append((m+11,m+6,m+12,m+5))
    PD.append((m+1,m+9,m+2,m+10))
    PD.append((m+9,m+3,m+8,m+2))
    PD.append((m+5,m+12,m+4,strand2))
    PD.append((m+3,m+7,m+4,m+8))
    try:
        snappy.Link(PD)
        if twists>0:
            PD=PD[:-2]
            PD.append((m+5,m+12,m+4,m+2*twists+11))
            PD.append((m+3,m+2*twists+12,m+4,m+8))
            PD.append((strand2,m+13,m+14,m+7))
            for i in range(twists-1):
                PD.append((m+13+2*i,m+13+2*i+2,m+13+2*i+3,m+13+2*i+1)) 
        if twists<0:
            twists=-twists
            PD=PD[:-2]
            PD.append((m+5,m+12,m+4,m+2*twists+11))
            PD.append((m+3,m+2*twists+12,m+4,m+8))
            PD.append((strand2,m+13,m+14,m+7))
            for i in range(twists-1):
                PD.append((m+13+2*i,m+13+2*i+2,m+13+2*i+3,m+13+2*i+1)) 
            for i in range(1,twists):
                PD=change_crossing(PD,PD[-i])
                
    except ValueError:
        PD=PD_code.copy()
        PD=replace_one_strand_in_crossing(PD,cros1,strand1,m+1)
        PD=replace_one_strand_in_crossing(PD,cros2,strand2,m+7)
        PD.append((m+1,m+10,m+6,m+11))
        PD.append((m+11,m+6,m+12,m+5))
        PD.append((strand1,m+9,m+2,m+10))
        PD.append((m+9,m+3,m+8,m+2))
        PD.append((m+3,strand2,m+4,m+8))
        PD.append((m+5,m+12,m+4,m+7))
        if twists>0:
            PD=PD[:-2]
            PD.append((m+5,m+12,m+4,m+2*twists+11))
            PD.append((m+3,m+2*twists+12,m+4,m+8))
            PD.append((m+13,m+14,strand2,m+7))
            for i in range(twists-1):
                PD.append((m+13+2*i,m+13+2*i+2,m+13+2*i+3,m+13+2*i+1)) 
        if twists<0:
            twists=-twists
            PD=PD[:-2]
            PD.append((m+5,m+12,m+4,m+2*twists+11))
            PD.append((m+3,m+2*twists+12,m+4,m+8))
            PD.append((m+7,m+13,m+14,strand2))
            for i in range(twists-1):
                PD.append((m+13+2*i,m+13+2*i+2,m+13+2*i+3,m+13+2*i+1)) 
            for i in range(1,twists):
                PD=change_crossing(PD,PD[-i])
                
    return PD

#The code that creates concordant diagrams.

def concordance_search(PD_code,max_twists=5,bound=False,number_of_tries=100,verbose=False):
    '''Takes as input a diagram with no Reidemeister 1 simplification.
    Returns all possible diagrams obtained by attaching ribbon bands with at most 5 (or any other specified number)
    of twists.
    If the flag bound is set then only a fixed number of random diagrams gets created.'''
    if bound==False:
        PD=PD_code.copy()
        m=number_of_strands(PD)
        pairs = list(itertools.product(list(range(m)),list(range(m))))
        concordant_knots=[]
        for (a,b) in pairs:
            if a!=b:
                for T in range(-max_twists,max_twists+1):
                    try:
                        concordant_knots.append([attach_ribbon_band(PD,a,b,twists=T),a,b,T])
                    except ValueError:
                        pass
        return concordant_knots
    if bound:
        PD=PD_code.copy()
        m=number_of_strands(PD)
        concordant_knots=[]
        for i in range(number_of_tries):
            a=random.randint(0,m-1)
            b=random.randint(0,m-1)
            if a!=b:
                for T in range(-max_twists,max_twists+1):
                    try:
                        concordant_knots.append([attach_ribbon_band(PD,a,b,twists=T),a,b,T])
                    except ValueError:
                        pass
        return concordant_knots

####### SEARCH FOR FRIENDS #######


# Imports
import snappy
import regina
import csv
import sys
from IPython.display import display, clear_output #used as in-calculation feedback

# for timing
import time
# for exponential function
import math
# for random choices
import random

#### Snappy extensions #####

def all_positive(manifold):
    '''
    Checks if the solution type of a triangulation is positive.
    '''
    return manifold.solution_type() == 'all tetrahedra positively oriented'

def find_positive_triangulations(manifold,number=1,tries=100):
    '''
    Searches for one triangulation with a positive solution type.
    (Or if number is set to a different value also for different such triangulations.)
    '''
    M = manifold.copy()
    pos_triangulations=[]
    for i in range(tries):
        if all_positive(M):
            pos_triangulations.append(M)
            if len(pos_triangulations)==number:
                return pos_triangulations
            break
        M.randomize()
    for d in M.dual_curves(max_segments=500):
        try:
            X = M.drill(d)
            X = X.filled_triangulation()
            X.dehn_fill((1,0),-1)
            for i in range(tries):
                if all_positive(X):
                    pos_triangulations.append(X)
                    if len(pos_triangulations)==number:
                        return pos_triangulations
                    break
                X.randomize()
        except (snappy.SnapPeaFatalError,RuntimeError):
            pass

    # In the closed case, here is another trick.
    if all(not c for c in M.cusp_info('is_complete')):
        for i in range(tries):
            # Drills out a random edge
            X = M.__class__(M.filled_triangulation())
            if all_positive(X):
                pos_triangulations.append(X)
                if len(pos_triangulations)==number:
                    return pos_triangulations
            break
            M.randomize()
    return pos_triangulations

def better_is_isometric_to(X,Y,index=50,try_hard=False):
    """
    Returns True if X and Y are isometric.
    Returns False if X and Y appear to be different.
     """ 
    for i in (0,index):
        w=False
        try:
            w=X.is_isometric_to(Y)
            if w==True:
                return w
        except (RuntimeError,snappy.SnapPeaFatalError):
            pass
        X.randomize()
        Y.randomize()
    if try_hard:
        pos_triang_X=find_positive_triangulations(X,number=1,tries=index)
        pos_triang_Y=find_positive_triangulations(Y,number=1,tries=index)
        for X in pos_triang_X:
            for Y in pos_triang_Y:
                w=better_is_isometric_to(X,Y,index=100,try_hard=False)
                if w==True:
                    return w
    return w

# Checking for knot complements

def is_homology_solid_torus(manifold):
    '''
    Checks if the input manifold has homology Z.
    '''
    M=snappy.Manifold(manifold)
    if M.homology().coefficients!=[0]:
        return False
    return True

def is_knot_complement(manifold,index=2):
    '''
    Checks the short fillings to be S3.
    '''
    assert manifold.num_cusps() == 1
    if manifold.homology().elementary_divisors() != [0]:
        return False
    try:
        slopes = manifold.short_slopes(3.5)[0]
    except RuntimeError:
        slopes = []
    (a, b) = manifold.homological_longitude()
    slopes = [s for s in slopes if abs(a*s[1] - b*s[0]) == 1]
    for s in slopes:
        M = snappy.Triangulation(manifold)
        M.dehn_fill(s)
        if is_three_sphere(M,tries=index):
            return True
    return False


def is_three_sphere(manifold,tries=2):
    """
    True means the manifold is definitely S^3.

    False means it is *likely* not S^3.
    """
    T = manifold
    order = T.homology().order()
    if order == 'infinite' or order > 1:
        return False
    G = snappy.Manifold(T)
    if G.solution_type(enum=True) == 1:
         return False
    for i in range(tries):
        if T.fundamental_group().num_generators() == 0:
            return True
        F = T.filled_triangulation()
        if F.fundamental_group().num_generators() == 0:
            return True
        T.randomize()
    return False

def better_length_spectrum(manifold,max_length=5.0,index=10,high_precision=False):
    '''Computes the length spectrum of the input manifold up to the given max_length. 
    Index gives the number of tries and high_precision increases the precision.'''
    M=snappy.Manifold(manifold)
    if high_precision:
        M=M.high_precision()
    for i in range(index):
        try:
            return M.length_spectrum(cutoff=max_length,include_words=True)
        except RuntimeError:
            M.randomize()
    return False

#regina functions

def to_regina(data):
    '''
    This function was written by Dunfield.
    It sends a SnapPy triangulation to regina.
    '''
    if hasattr(data, '_to_string'):
        data = data._to_string()
    if isinstance(data, str):
        if data.find('(') > -1:
            data = closed_isosigs(data)[0]
        return regina.Triangulation3(data)
    assert isinstance(data, regina.Triangulation3)
    return data

def display_check(sig, tri):
    iso_signatures.append(sig)
    if len(iso_signatures)>maximum:
        return True
        #It stops if we have too many signatures
    return False

def drill_edges(T,index=0,verbose=False,cores=1,max_submanifolds=100,max_triangulations=10,randomized=False):
    '''
    Takes as input a regina triangulation and drills out edges and returns a list of its signatures.
    '''
    global iso_signatures
    iso_signatures=[]
    global maximum
    maximum=max_triangulations 
    if index < 0:
        ctr=0
        while len(iso_signatures) < (-1)*index and ctr < 1000:
            ctr+=1
            T = randomise(T, 100, 2/T.size())
            if not T.isoSig() in iso_signatures:
                iso_signatures.append(T.isoSig())
    else:
        T.retriangulate(index,cores,display_check)
    if verbose:
        print('Found',len(iso_signatures),'triangulations')
    drilled=[]
    if randomized==False:
        for sig in iso_signatures:
            Y=regina.Triangulation3(sig)
            for e in range(Y.edges().size()):
                X=regina.Triangulation3(sig)
                X.pinchEdge(X.edge(e))
                if X.homology().isZ():
                    X.intelligentSimplify()
                    drilled.append(X.isoSig())
                    if len(drilled)>max_submanifolds:
                        if verbose:
                            print('Number of submanifolds found:',len(drilled))
                        return drilled
    if randomized==True:
        l=len(iso_signatures)
        for i in range(max_submanifolds):
            sig=iso_signatures[random.randint(0,l-1)]
            Y=regina.Triangulation3(sig)
            for e in range(Y.edges().size()):
                X=regina.Triangulation3(sig)
                X.pinchEdge(X.edge(e))
                if X.homology().isZ():
                    X.intelligentSimplify()
                    drilled.append(X.isoSig())
                    if len(drilled)>max_submanifolds:
                        if verbose:
                            print('Number of submanifolds found:',len(drilled))
                        return drilled
    if verbose:
        print('Number of submanifolds found:',len(drilled))
    return drilled

#####################################################################
#####################################################################
# functions for random walk
#####################################################################
#####################################################################

def choosemove(T, beta):
    x = random.random()
    if x < math.exp((-1)*beta*T.size()):
        a = 1
    else:
        a = 2
    # setup done
    # go up (2-3)
    # most triangles correspond to a valid move, no need to classify
    if a == 1:
        tri = random.choice(range(T.countTriangles()))
        if T.pachner(T.triangle(tri),True,False):
            S = regina.Triangulation3(T)
            S.pachner(S.triangle(tri),False,True)
            return S
    # go down
    elif a == 2:
        # get all possible 3-2 moves
        valid = []
        for e in range(T.countEdges()):
            if T.pachner(T.edge(e),True,False):
                valid.append(e)
        if valid != []:
            S = regina.Triangulation3(T)
            S.pachner(S.edge(random.choice(valid)),False,True)
            return S            
    # nothing worked
    return T

def randomise(T, steps, beta):
    # initialise number of steps
    st = 0
    while st < steps:
        st += 1
        T = choosemove(T,beta)
    return T

#####################################################################
#####################################################################
# end functions for random walk
#####################################################################
#####################################################################



def search_for_friend(knot,effort='low',max_number_of_friends=1,Regina=True,SnapPy_dual_curves=True,SnapPy_length_spectrum=True,MCMC=True,verbose=False):
    '''
    This functions takes as input a triangulation of the exterior of a knot K and searchs for friends of K. 
    (If it is not a knot exterior it still searchs for a knot F on S3 such that 0-surgery on F yields the 
    homological filling on K.)
    
    Method:
    First we create the 0-surgery K(0,1) of K.
    Then we create a list of knot complements in K(0,1). We use the 6-theorem to check if that knot complement 
    has a filling to S3 and thus represents a knot F in S3. If that knot appears to not be isometric to K,
    we return F. 
    WARNING: It is then not rigoursly proven that F and K are different. But that will usually be the case. 
    It needs to be double-checked for example using the volume or another knot invariant.
    
    There are three options to create the list of knot complements in K(0,1).
    
    (1) SnapPy_dual_curves=True: 
    This drills out dual curves of a triangulation of K(0,1)
    (which only works if the triangulation yields a hyperbolic structure).
    
    (2) SnapPy_length_spectrum=True:
    Uses the verified length spectrum computation of K(0,1) and drills out short geodesics from K(0,1).
    
    (3) Regina=True:
    This creates a one-vertex triangulation of K(0,1) in regina and then drills out edges of that triangulation. Uses
    Regina retriangulate function to go through Pachner graph in breadth first search

        
    (4) MCMC=True:
    Same as (3), but the next triangulation is found by a random walk rather than by breadth first search in the Pachner
    graph (as done by "retriangulate").
    
    If Regina is not installed put regina=False. In general it is recommended to use all three methods, since there
    exist friends that can only be found effectively with one of the methods.
    
    
    Options:
    We can put effort='low','medium', 'high' to choose pre-chosen values of parameters to search for friends.
    Or one can put effort=None and choose the parameters freely. See the documentation in the code for that.
    
    
    
    The other options affect the runtime and efficiency of the code:
     
     
     -- 
    How fast the code will run depends of course heavily on the input triangulation. 
    The default options are choosen for maximal efficiency. But if one wants to search harder for friends one 
    should increase the parameters. The following options have turned out to run reasonable fast and find 
    most friends on reasonable small examples.
    '''
    
    
    
    #We have the following parameters:
    #General:
    random=True #If true chooses random dual_curves, geodesics, edges to drill.
    random_upper_bound=100 #Number of random elements that we drill.
    exterior_index=2 #Number of tries to check if a drilled out object is a knot complement.
    try_hard=False #If True it searches very hard for an isometry of a potential friend to K. 
    isometry_index=5 #Number of tries to check if two manifolds are isometric
    
    #For drilling dual curves:
    max_segments=100 #Maximal number of segements in dual curves.
    upper_bound_dual_curves=2000 #An upper bound on the number of dual curves that we check.
    
    #For drilling geodesics
    max_length=5.0 #maximal length of a geodesic in the length spectrum.
    high_precision=False #If true uses high precision to compute the length spectrum.
    recursion_limit=50000 #The recursion limit for drilling out geodesics.
    upper_bound_geodesics=2000 #Upper bound on the number of geodesics we check
    
    #For drilling edges with regina:
    regina_simplify=False #Simplifies the input triangulation if set to True
    regina_retriangulate_index=2 #The maximal difference of the number of simplices of a triangulation from the input triangulation.
    regina_cores_used=1 #If this number gets increased regina uses more cores and the code runs quicker but might also crush your computer.
    max_regina_submanifolds=5000 #The maximal number of submanifolds that regina creates.
    maximal_number_of_Pachner_moves=250 #The maximal number of Pachner moves regina performs to create more triangulations.
    
        
    
    if effort=='low':
        random=False 
        random_upper_bound=100
        exterior_index=1 
        try_hard=False  
        isometry_index=1 
        max_segments=6 
        upper_bound_dual_curves=15 
        max_length=1.0 
        high_precision=False 
        recursion_limit=10000 
        upper_bound_geodesics=15 
        regina_simplify=True
        regina_retriangulate_index=0 
        regina_cores_used=1 
        max_regina_submanifolds=50 
        maximal_number_of_Pachner_moves=10
        rounds = 10
    
    if effort=='medium':
        random=False 
        random_upper_bound=100
        exterior_index=2 
        try_hard=False  
        isometry_index=2 
        max_segments=25 
        upper_bound_dual_curves=100 
        max_length=3.0 
        high_precision=False 
        recursion_limit=40000 
        upper_bound_geodesics=100 
        regina_simplify=True
        regina_retriangulate_index=0 
        regina_cores_used=1 
        max_regina_submanifolds=100 
        maximal_number_of_Pachner_moves=10
        rounds = 30
    
    if effort=='high':
        random=False 
        random_upper_bound=100
        exterior_index=2 
        try_hard=False  
        isometry_index=2 
        max_segments=50 
        upper_bound_dual_curves=250 
        max_length=4.0 
        high_precision=False 
        recursion_limit=50000 
        upper_bound_geodesics=250 
        regina_simplify=True
        regina_retriangulate_index=2 
        regina_cores_used=1 
        max_regina_submanifolds=5000 
        maximal_number_of_Pachner_moves=100
        rounds = 1000
        
    if verbose:
        print('We have choosen the following parameters to search for friends:')
        print('random',random)
        print('random_upper_bound',random_upper_bound)
        print('exterior_index',exterior_index) 
        print('try_hard',try_hard)  
        print('isometry_index',isometry_index) 
        print('max_segments',max_segments) 
        print('upper_bound_dual_curves',upper_bound_dual_curves) 
        print('max_length',max_length) 
        print('high_precision',high_precision) 
        print('recursion_limit',recursion_limit) 
        print('upper_bound_geodesics',upper_bound_geodesics)
        print('regina_simplify',regina_simplify)
        print('regina_retriangulate_index',regina_retriangulate_index)
        print('regina_cores_used',regina_cores_used) 
        print('max_regina_submanifolds',max_regina_submanifolds) 
        print('maximal_number_of_Pachner_moves',maximal_number_of_Pachner_moves)
        print('number of rounds for random walk',rounds)
        print('--------------')

    #M is the knot exterior and K the 0-filling
    M=snappy.Manifold(knot)
    K=snappy.Manifold(knot)
    if is_homology_solid_torus(K)==False:
        raise ValueError('The homology of K is not Z and thus it is not a knot in S3.')        
    K.dehn_fill(K.homological_longitude())
    
    #Lists of possible knot exteriors and friends
    possible_knot_exteriors=[]
    friends=[]
    
    ##### SNAPPY DUAL CURVES ######
    
    if SnapPy_dual_curves:
        dual_curves=K.dual_curves(max_segments=max_segments)
        
        if verbose:
            print('--------------')
            print('We check dual curves with SnapPy and search for a friend.')
            print('Number of dual curves:',len(dual_curves))
            
        if random==False:
            if verbose:
                print('We check all dual curves.')
            for c in dual_curves:
                try:
                    E=K.drill(c)
                    E=E.filled_triangulation()
                    if better_is_isometric_to(E,M,index=isometry_index)==False:
                        if is_homology_solid_torus(E)==True:
                            already_known=False
                            for X in possible_knot_exteriors:
                                if better_is_isometric_to(X,E,index=isometry_index):
                                    already_known=True
                                    break
                            if already_known==False:
                                if verbose:
                                    print('We found a new potential knot exterior:',E)
                                possible_knot_exteriors.append(E)
                                if verbose:
                                    print('Checking for knot complement:',E)
                                if is_knot_complement(E,index=exterior_index):
                                    if better_is_isometric_to(E,M,try_hard=try_hard)==False:
                                        already_known=False
                                        for X in friends:
                                            if better_is_isometric_to(X,E,index=isometry_index,try_hard=try_hard):
                                                already_known=True
                                                break
                                        if already_known==False:
                                            if verbose:
                                                print('We found a friend:',E)
                                            friends.append(E)
                                            if len(friends)>max_number_of_friends-1:
                                                if verbose:
                                                    print('Number of potential knot exteriors checked:',len(possible_knot_exteriors))
                                                    print('Number of friends found:',len(friends))
                                                return friends, dual_curve.index(c)  
                    if c.index>upper_bound_dual_curves:
                        break
                except:
                    pass
                    
        if random==True:
            if verbose:
                print('We check a random collection of dual curves.')
            for i in range(random_upper_bound):
                try:
                    c=dual_curves[random.randint(0,len(dual_curves)-1)]
                    E=K.drill(c)
                    E=E.filled_triangulation()
                    if better_is_isometric_to(E,M,index=isometry_index)==False:
                        if is_homology_solid_torus(E)==True:
                            already_known=False
                            for X in possible_knot_exteriors:
                                if better_is_isometric_to(X,E,index=isometry_index):
                                    already_known=True
                                    break
                            if already_known==False:
                                if verbose:
                                    print('We found a new potential knot exterior:',E)
                                possible_knot_exteriors.append(E)
                                if verbose:
                                    print('Checking for knot complement:',E)
                                if is_knot_complement(E,index=exterior_index):
                                    if better_is_isometric_to(E,M,try_hard=try_hard)==False:
                                        already_known=False
                                        for X in friends:
                                            if better_is_isometric_to(X,E,index=isometry_index,try_hard=try_hard):
                                                already_known=True
                                                break
                                        if already_known==False:
                                            if verbose:
                                                print('We found a friend:',E)
                                            friends.append(E)
                                            if len(friends)>max_number_of_friends-1:
                                                if verbose:
                                                    print('Number of potential knot exteriors checked:',len(possible_knot_exteriors))
                                                    print('Number of friends found:',len(friends))
                                                return friends 
                except:
                    pass
                                        
##### SNAPPY LENGTH SPECTRUM ######
    
    if SnapPy_length_spectrum:
        sys.setrecursionlimit(recursion_limit)
        
        if verbose:
            print('--------------')
            print('We check short geodescis with SnapPy and search for a friend.')
        
        # Compute the length spectrum
        spec=better_length_spectrum(K,max_length=max_length,index=10,high_precision=False)
    
        if spec==False:
            if verbose:
                print('We could not compute the length spectrum of the 0-surgery.')
        else:
            if verbose:
                print('Number of geodesics in the length spectrum:',len(spec))
            
            if random==False:
                if verbose:
                    print('We check all geodesics.')
       
                for c in spec:
                    try:
                        E=K.drill_word(c.word)
                        E=E.filled_triangulation()
                        if better_is_isometric_to(E,M,index=isometry_index)==False:
                            if is_homology_solid_torus(E)==True:
                                already_known=False
                                for X in possible_knot_exteriors:
                                    if better_is_isometric_to(X,E,index=isometry_index):
                                        already_known=True
                                        break
                                if already_known==False:
                                    possible_knot_exteriors.append(E)
                                    if is_knot_complement(E,index=exterior_index):
                                        if better_is_isometric_to(E,M,try_hard=try_hard)==False:
                                            already_known=False
                                            for X in friends:
                                                if better_is_isometric_to(X,E,index=isometry_index,try_hard=try_hard):
                                                    already_known=True
                                                    break
                                            if already_known==False:
                                                if verbose:
                                                    print('We found a friend:',E)
                                                friends.append(E)
                                                if len(friends)>max_number_of_friends-1:
                                                    if verbose:
                                                        print('Number of potential knot exteriors checked:',len(possible_knot_exteriors))
                                                        print('Number of friends found:',len(friends))
                                                    return friends  
                    except:
                        pass
                    if spec.index(c)>upper_bound_geodesics:
                        break
            if random==True:
                if verbose:
                    print('We check a random collection of geodesics.')
                    
                for i in range(random_upper_bound):
                    c=spec[random.randint(0,len(spec)-1)]
                    try:
                        E=K.drill_word(c.word)
                        E=E.filled_triangulation()
                        if better_is_isometric_to(E,M,index=isometry_index)==False:
                            if is_homology_solid_torus(E)==True:
                                already_known=False
                                for X in possible_knot_exteriors:
                                    if better_is_isometric_to(X,E,index=isometry_index):
                                        already_known=True
                                        break
                                if already_known==False:
                                    possible_knot_exteriors.append(E)
                                    if is_knot_complement(E,index=exterior_index):
                                        if better_is_isometric_to(E,M,try_hard=try_hard)==False:
                                            already_known=False
                                            for X in friends:
                                                if better_is_isometric_to(X,E,index=isometry_index,try_hard=try_hard):
                                                    already_known=True
                                                    break
                                            if already_known==False:
                                                if verbose:
                                                    print('We found a friend:',E)
                                                friends.append(E)
                                                if len(friends)>max_number_of_friends-1:
                                                    if verbose:
                                                        print('Number of potential knot exteriors checked:',len(possible_knot_exteriors))
                                                        print('Number of friends found:',len(friends))
                                                    return friends                
                    except:
                        pass
        
    ##### REGIN DRILL EDGES ######                 
    
    if Regina:
        if verbose:
            print('--------------')
            print('We drill out knots via Regina.')
            
        T=to_regina(K.filled_triangulation())
        if regina_simplify:
            T.intelligentSimplify()
            
        if random==False:
            if verbose:
                print('We check all edges.')
            sigs=drill_edges(T,index=regina_retriangulate_index,cores=regina_cores_used,max_submanifolds=max_regina_submanifolds,max_triangulations=maximal_number_of_Pachner_moves)
            if verbose:
                print('Total number of submanifolds found via regina:',len(sigs)) 
                
        if random==True:   
            if verbose:
                print('We check random edges.')
            sigs=drill_edges(T,index=regina_retriangulate_index,cores=regina_cores_used,max_submanifolds=max_regina_submanifolds,max_triangulations=maximal_number_of_Pachner_moves,randomized=True)
            if verbose:
                print('Total number of submanifolds found via regina:',len(sigs)) 

        for sig in sigs:
            try:
                T=regina.Triangulation3(sig)
                E=snappy.Manifold(T.snapPea())
                if better_is_isometric_to(E,M,index=isometry_index)==False:
                    if is_homology_solid_torus(E)==True:
                        already_known=False
                        for X in possible_knot_exteriors:
                            if better_is_isometric_to(X,E):
                                already_known=True
                                break
                        if already_known==False:
                            if verbose:
                                print('We found a new potential knot exterior:',E)
                            possible_knot_exteriors.append(E)
                            if verbose:
                                print('Checking for knot complement:',E)
                            if is_knot_complement(E,index=exterior_index):
                                if better_is_isometric_to(E,M,try_hard=try_hard)==False:
                                    already_known=False
                                    for X in friends:
                                        if better_is_isometric_to(X,E,index=isometry_index,try_hard=try_hard):
                                            already_known=True
                                            break
                                    if already_known==False:
                                        if verbose:
                                            print('We found a friend:',E)
                                        friends.append(E)
                                        if len(friends)>max_number_of_friends-1:
                                            if verbose:
                                                print('Number of potential knot exteriors checked:',len(possible_knot_exteriors))
                                                print('Number of friends found:',len(friends))
                                            return friends 
            except:
                pass

    ##### MCMC to replace retriangulation (more variance for other results -- hopefully) ######                 
    
    if MCMC:        
        if verbose:
            print('--------------')
            print('We drill out knots via Regina, using a random walk method to choose next triangulation.')
            
        T=to_regina(K.filled_triangulation())
        if regina_simplify:
            T.intelligentSimplify()

        if random==False:
            if verbose:
                print('We check all edges.')
            sigs=drill_edges(T,index=(-1)*rounds,cores=regina_cores_used,max_submanifolds=max_regina_submanifolds)
            if verbose:
                print('Total number of submanifolds found via regina:',len(sigs)) 
                
        if random==True:   
            if verbose:
                print('We check random edges.')
            sigs=drill_edges(T,index=(-1)*rounds,cores=regina_cores_used,randomized=True,max_submanifolds=max_regina_submanifolds)
            if verbose:
                print('Total number of submanifolds found via regina:',len(sigs)) 
        ctr=0
        print("found",len(sigs),"triangulations to check")
        for sig in sigs:
            try:
                T=regina.Triangulation3(sig)
                E=snappy.Manifold(T.snapPea())
                if better_is_isometric_to(E,M,index=isometry_index)==False:
                    if is_homology_solid_torus(E)==True:
                        already_known=False
                        for X in possible_knot_exteriors:
                            if better_is_isometric_to(X,E):
                                already_known=True
                                break
                        if already_known==False:
                            if verbose:
                                print('We found a new potential knot exterior:',E)
                            possible_knot_exteriors.append(E)
                            if verbose:
                                print('Checking for knot complement:',E)
                            if is_knot_complement(E,index=exterior_index):
                                if better_is_isometric_to(E,M,try_hard=try_hard)==False:
                                    already_known=False
                                    for X in friends:
                                        if better_is_isometric_to(X,E,index=isometry_index,try_hard=try_hard):
                                            already_known=True
                                            break
                                    if already_known==False:
                                        if verbose:
                                            print('We found a friend:',E)
                                        friends.append(E)
                                        if len(friends)>max_number_of_friends-1:
                                            if verbose:
                                                print('Number of potential knot exteriors checked:',len(possible_knot_exteriors))
                                                print('Number of friends found:',len(friends))
                                            return friends
            except:
                pass


    if verbose:
        print('Number of potential knot exteriors checked:',len(possible_knot_exteriors))
        print('Number of friends found:',len(friends))        
    
    return friends
            
    
def find_S3_filling(manifold,index=2):
    '''
    Checks the short fillings to be S3.
    '''
    
    assert manifold.num_cusps() == 1
    if manifold.homology().elementary_divisors() != [0]:
        return False

    try:
        slopes = manifold.short_slopes(3.5)[0]
    except RuntimeError:
        slopes = []

    (a, b) = manifold.homological_longitude()
    slopes = [s for s in slopes if abs(a*s[1] - b*s[0]) == 1]
    for s in slopes:
        M = snappy.Triangulation(manifold)
        M.dehn_fill(s)
        if is_three_sphere(M,tries=index):
            return s
    return False


            
    
def create_diagram(knot_complement,verbose=False):
    '''
    Takes a list of complements of a knot and creates a diagram.
    '''
    M=knot_complement
    M.dehn_fill((0,0))
    D=False
    try:
        M.set_peripheral_curves('shortest')
    except:
        pass
    try:
        M.dehn_fill((1,0))
        if is_three_sphere(M):
            D=M.exterior_to_link()
            if D!=False:
                D.simplify('global')
                PD_friend=D.PD_code()
                return PD_friend
            
        M.dehn_fill((0,0))
        M.dehn_fill(find_S3_filling(M))
        D=M.exterior_to_link()
        if D!=False:
            D.simplify('global')
            PD_friend=D.PD_code()
            return PD_friend
    except:
        pass

    print('COULD NOT FIND A DIAGRAM!')
    return D
        
        
###### CONCORDANCE FRIEND SEARCH ########

def concordance_friend_search(D,number_of_concordance_friends=1,effort='low',max_twists=1,number_of_tries=100,verbose=False):
    '''
    Input is a knot diagram D of a knot K.
    Warning: The diagram D should not allow any Reidemeister 1 simplifications.
    Search for a concordance friend of first order, i.e. a knot F that is a friend with a knot C concordant to K.
    Possible values for effort are 'low', 'medium' and 'high'.
    Or 'None' if the parameters are choosen directly.
    '''
    
    #Parameters
    #max_twists= Number of twists of ribbon bands.
    #number_of_tries= Maximal number of ribbon bands tried
    bound=True #If false, tries all possible ribbon bands.
    
    
    
    if effort=='low':
        SnapPy_length_spectrum=False
    
    if effort=='medium': 
        SnapPy_length_spectrum=False
    
    if effort=='high':
        SnapPy_length_spectrum=True
        
        
    
    PD=D.PD_code()
    
    conc_diagrams=concordance_search(PD,max_twists=max_twists,bound=bound,number_of_tries=number_of_tries)
    
    conc=[]
    for c in conc_diagrams:
        C=snappy.Link(c[0]).exterior()
        already_known=False
        for X in [y[0] for y in conc]:
            if better_is_isometric_to(X,C,index=2):
                already_known=True
                break
        if already_known==False:
            conc.append([C,c])
                
    
    if verbose:
        print('Number of concordant knots created:',len(conc))
        
    concordance_friends=[]
    for c in conc:
        try:
            C=c[0]
            F=search_for_friend(C,effort=effort,max_number_of_friends=number_of_concordance_friends,SnapPy_length_spectrum=SnapPy_length_spectrum)
            if F!=[]:
                if verbose:
                    print('The concordant knot:',c,'has friends.')
                    print('Number of friends:',len(F))
                for f in F:
                    concordance_friends.append([f,c])
                    
            if len(concordance_friends)>number_of_concordance_friends-1:
                if verbose:
                    print('Total number of concordance friends found:',len(concordance_friends))
                return concordance_friends
        except:
            pass
    
    if verbose:
        print('Number of concordance friends found:',len(concordance_friends))
    return concordance_friends


##### RIBBON SEARCH CODE ######

import ribbon.rw  # the main class
import ribbon.visualizer as visualizer  # for visualizing the output

import numpy as np  # handles arrays
import snappy  # to represent the knots
import logging  # to print some info of what the code is doing

def is_ribbon(PD,tries=10000,twists=5):
    '''Takes as input a PD code and checks if it is ribbon.
    If True is returned it is proven to be ribbon. If False is returned it is not clear.'''

    links = [PD]

    # links to search. Accepts a list of PD codes or link names. K6a3 is the Stevedore knot
    max_size = len(PD)+25          # max number of crossings any intermediate knot can have
    max_steps =  int(tries/10)         # max number of steps searched by the random walker before giving up and resetting the link
    max_tries = tries         # number of total steps before we give up completely
    max_bct = twists               # we use the same variable to set the max number of allowed twists, link components, and bands to add. If you start with a knot, the max number of bands is the max number of components + 1, since each band adds a link component
    log_level = logging.ERROR # controls how much information is printed by the code while searching for a band
    use_checks = False        # If set to true (whcih requires sage), the code will check for slice obstructions after attaching bands, rather than keep searching more and more bands on a link that is potentially obstructed. This uses the Fox Milnor condition, which requires the Alexander Polynomial. This can be slow to compute for large knots
    save_images = True        # Will use the visualizer to save the band found by the random walker

    random_walker = ribbon.rw.RandomWalker(links=links, 
                                           max_size=max_size, 
                                           max_steps=max_steps, 
                                           max_bct=max_bct, 
                                           logger=None, 
                                           log_level=log_level, 
                                           use_band_checks=use_checks, 
                                           save_solved_knot_images=save_images
                                          )

    tries = 0
    while tries < max_tries:
        tries += 1
        if tries % 10000 == 0:
            print("Performed {:d} steps.".format(tries))

        # Find all valid actions
        valid_actions = np.argwhere(random_walker.invalid_action_mask()).flatten()

        # pick a random one
        a = np.random.choice(valid_actions) if len(valid_actions) > 0 else 0

        # perform the action
        done, info = random_walker.step(a)

        # check whether the knot is done (either because the unknot was reached, or a reset was triggered)
        if done:
            if 'unknot' in info['result']:  # found bands
                print("Knot is ribbon!")  # this is not an error, we just want to print this message irrespective of the logger level.
                return True
    return False

Some demonstration. We start with some interesting knots:

In [2]:
#Simplest slice knot
S=snappy.Manifold('K6a3') 

#Random slice knot
R=snappy.Manifold('K12n870') 

#Conway knot, top slice but not smoothly slice
C=snappy.Manifold('K11n34') 

#The positive Whiteheaddouble of the right-handed trefoil, top slice but not smoothly slice
W_p=snappy.Link([(31, 25, 32, 24), (26, 36, 27, 35), (36, 30, 37, 29), (30, 15, 31, 16), (22, 18, 23, 17), (16, 24, 17, 23), (13, 34, 14, 35), (37, 10, 0, 11), (25, 15, 26, 14), (7, 33, 8, 32), (9, 19, 10, 18), (8, 21, 9, 22), (27, 4, 28, 5), (12, 6, 13, 5), (33, 7, 34, 6), (3, 28, 4, 29), (2, 12, 3, 11), (1, 21, 2, 20),(19, 1, 20, 0)]).exterior()

#The negative Whiteheaddouble of the right-handed trefoil, top slice unknown if smoothly slice
W_n=snappy.Link([(31, 39, 32, 38), (36, 30, 37, 29), (24, 36, 25, 35), (32, 3, 33, 4), (33, 9, 34, 8), (11, 31, 12, 30), (5, 28, 6, 29), (27, 6, 28, 7), (26, 16, 27, 15), (16, 26, 17, 25), (9, 3, 10, 2), (10, 39, 11, 0), (37, 12, 38, 13), (4, 14, 5, 13), (23, 19, 24, 18), (19, 23, 20, 22), (17, 34, 18, 35), (14, 8, 15, 7), (1, 20, 2, 21), (21, 0, 22, 1)]).exterior()

#The figure eigth knot
E=snappy.Manifold('K4a1') 

#The (2,1)-cable of the figure eigth knot, top slice, but not smoothly slice
def braid_index(word):
    '''Returns the braid index of a word'''
    return max([abs(x) for x in word])+1

def writhe(word):
    '''Returns the writhe of a braid word.'''
    wr=0
    for w in word:
        wr=wr+sign(w)
    return wr
    
def cable(word,p,q):
    '''Returns a braid word of the cable. (For positive p and arbitrary q.)'''
    cable_word=[]
    for i in word:
        subword=[]
        for t in range(0,p):
            subword=subword+list(range(p*abs(i)+t,p*(abs(i)-1)+t,-1))
        if i<0:
            subword=[-j for j in subword]
        cable_word=cable_word+subword
    wr=writhe(word)
    if (q-p*wr)<0:
        cable_word=cable_word+(p*wr-q)*list(range(-1,-(p-1)-1,-1))
    if (q-p*wr)>=0:
        cable_word=cable_word+(-p*wr+q)*list(range(1,(p-1)+1,+1))
    return cable_word

CE=snappy.Link(braid_closure=cable(E.link().braid_word(),2,1)).exterior()
In [3]:
gui tk

We first verify that the slice knots are slice, and check if they have friends.

In [4]:
is_ribbon(S.link().PD_code())
Knot is ribbon!
Out[4]:
True
In [5]:
is_ribbon(R.link().PD_code())
Knot is ribbon!
Out[5]:
True
In [6]:
search_for_friend(S)
Out[6]:
[]
In [7]:
search_for_friend(R)
Out[7]:
[K12n870-9_filled(0,0)]

Next we check if we can find the friends of the Conway knot and check if the other interesting knots have friends.

In [8]:
search_for_friend(C)
Out[8]:
[Regina_Triangulation(0,0)]
In [9]:
search_for_friend(W_p)
Out[9]:
[]
In [10]:
search_for_friend(W_n)
Out[10]:
[]
In [11]:
search_for_friend(CE)
Out[11]:
[]

Next we search for concordance friends of the non-hyperbolic examples.

The negative Whitehead double of the right-handed trefoil.

In [17]:
concordance_friends=concordance_friend_search(W_n.link(),number_of_concordance_friends=10,effort='low',max_twists=5,number_of_tries=100,verbose=True)
Number of concordant knots created: 151
The concordant knot: [unnamed link(0,0), [[(21, 0, 22, 1), (1, 20, 2, 21), (9, 3, 10, 2), (32, 3, 33, 4), (4, 14, 5, 13), (14, 8, 15, 7), (33, 9, 34, 8), (10, 39, 11, 0), (11, 31, 12, 30), (37, 12, 38, 13), (26, 16, 27, 15), (16, 26, 17, 25), (17, 34, 18, 35), (23, 19, 24, 18), (19, 23, 20, 22), (24, 36, 25, 35), (36, 30, 37, 29), (31, 39, 32, 38), (41, 28, 6, 29), (27, 6, 28, 47), (41, 50, 46, 51), (51, 46, 52, 45), (5, 49, 42, 50), (49, 43, 48, 42), (45, 52, 44, 61), (43, 62, 44, 48), (47, 53, 54, 7), (60, 59, 61, 62), (58, 57, 59, 60), (56, 55, 57, 58), (54, 53, 55, 56)], 5, 7, -5]] has friends.
Number of friends: 1
Number of concordance friends found: 1
In [18]:
F=concordance_friends[0][0]
D=create_diagram(F)
D
Out[18]:
[(159, 99, 160, 98),
 (371, 252, 372, 253),
 (392, 570, 393, 569),
 (477, 562, 478, 563),
 (389, 101, 390, 100),
 (478, 91, 479, 92),
 (391, 251, 392, 250),
 (359, 560, 360, 561),
 (388, 338, 389, 337),
 (298, 506, 299, 505),
 (602, 503, 603, 504),
 (195, 502, 196, 503),
 (62, 502, 63, 501),
 (530, 500, 531, 499),
 (299, 37, 300, 36),
 (600, 33, 601, 34),
 (193, 34, 194, 35),
 (63, 33, 64, 32),
 (532, 32, 533, 31),
 (533, 632, 534, 633),
 (65, 630, 66, 631),
 (191, 629, 192, 628),
 (598, 630, 599, 629),
 (300, 627, 301, 628),
 (529, 454, 530, 455),
 (61, 452, 62, 453),
 (196, 452, 197, 451),
 (603, 451, 604, 450),
 (296, 449, 297, 450),
 (534, 268, 535, 267),
 (526, 105, 527, 106),
 (57, 104, 58, 105),
 (200, 104, 201, 103),
 (607, 103, 608, 102),
 (292, 101, 293, 102),
 (294, 156, 295, 155),
 (605, 154, 606, 155),
 (198, 153, 199, 154),
 (60, 152, 61, 151),
 (263, 145, 264, 144),
 (531, 149, 532, 148),
 (229, 142, 230, 143),
 (453, 150, 454, 151),
 (634, 145, 635, 146),
 (29, 147, 30, 146),
 (500, 150, 501, 149),
 (410, 121, 411, 122),
 (312, 124, 313, 123),
 (585, 118, 586, 119),
 (179, 124, 180, 125),
 (78, 120, 79, 119),
 (547, 123, 548, 122),
 (551, 14, 552, 15),
 (76, 19, 77, 20),
 (176, 14, 177, 13),
 (587, 19, 588, 18),
 (315, 16, 316, 17),
 (408, 16, 409, 15),
 (465, 642, 466, 643),
 (462, 24, 463, 23),
 (461, 493, 462, 492),
 (445, 415, 446, 414),
 (447, 308, 448, 309),
 (444, 592, 445, 591),
 (446, 184, 447, 183),
 (442, 73, 443, 74),
 (281, 73, 282, 72),
 (277, 184, 278, 185),
 (279, 592, 280, 593),
 (276, 308, 277, 307),
 (278, 415, 279, 416),
 (273, 504, 274, 505),
 (272, 35, 273, 36),
 (268, 632, 269, 631),
 (626, 38, 627, 37),
 (625, 507, 626, 506),
 (621, 417, 622, 416),
 (623, 306, 624, 307),
 (620, 594, 621, 593),
 (622, 186, 623, 185),
 (618, 71, 619, 72),
 (215, 43, 216, 42),
 (214, 512, 215, 511),
 (218, 422, 219, 421),
 (217, 302, 218, 303),
 (213, 595, 214, 594),
 (216, 190, 217, 189),
 (212, 69, 213, 70),
 (330, 394, 331, 393),
 (323, 364, 324, 365),
 (332, 249, 333, 250),
 (44, 68, 45, 67),
 (41, 188, 42, 189),
 (43, 596, 44, 597),
 (40, 304, 41, 303),
 (39, 420, 40, 421),
 (47, 516, 48, 517),
 (513, 69, 514, 68),
 (510, 187, 511, 188),
 (512, 595, 513, 596),
 (509, 305, 510, 304),
 (508, 419, 509, 420),
 (535, 224, 536, 225),
 (66, 223, 67, 224),
 (190, 222, 191, 221),
 (597, 223, 598, 222),
 (301, 220, 302, 221),
 (422, 220, 423, 219),
 (373, 351, 374, 350),
 (244, 96, 245, 95),
 (378, 526, 379, 525),
 (377, 57, 378, 56),
 (376, 201, 377, 202),
 (375, 608, 376, 609),
 (374, 292, 375, 291),
 (372, 433, 373, 434),
 (370, 489, 371, 490),
 (352, 252, 353, 251),
 (353, 489, 354, 488),
 (351, 433, 352, 432),
 (349, 290, 350, 291),
 (348, 610, 349, 609),
 (347, 203, 348, 202),
 (346, 55, 347, 56),
 (344, 523, 345, 524),
 (114, 254, 115, 253),
 (115, 491, 116, 490),
 (113, 435, 114, 434),
 (112, 289, 113, 290),
 (111, 611, 112, 610),
 (110, 204, 111, 203),
 (109, 54, 110, 55),
 (107, 524, 108, 525),
 (498, 522, 499, 521),
 (497, 53, 498, 52),
 (496, 205, 497, 206),
 (495, 612, 496, 613),
 (494, 288, 495, 287),
 (491, 436, 492, 437),
 (493, 256, 494, 257),
 (643, 466, 0, 467),
 (640, 233, 641, 234),
 (637, 261, 638, 260),
 (0, 440, 1, 439),
 (639, 284, 640, 285),
 (638, 616, 639, 615),
 (636, 208, 637, 207),
 (635, 50, 636, 51),
 (633, 518, 634, 519),
 (463, 234, 464, 235),
 (460, 256, 461, 255),
 (468, 438, 469, 437),
 (459, 288, 460, 289),
 (458, 612, 459, 611),
 (457, 205, 458, 204),
 (456, 53, 457, 54),
 (455, 522, 456, 523),
 (226, 266, 227, 265),
 (237, 441, 238, 440),
 (232, 283, 233, 284),
 (231, 617, 232, 616),
 (230, 210, 231, 209),
 (227, 46, 228, 47),
 (228, 515, 229, 516),
 (266, 226, 267, 225),
 (264, 518, 265, 517),
 (262, 50, 263, 49),
 (261, 208, 262, 209),
 (259, 614, 260, 615),
 (258, 286, 259, 285),
 (360, 89, 361, 90),
 (247, 565, 248, 564),
 (147, 521, 148, 520),
 (143, 49, 144, 48),
 (141, 210, 142, 211),
 (140, 617, 141, 618),
 (139, 283, 140, 282),
 (138, 441, 139, 442),
 (443, 542, 444, 543),
 (280, 542, 281, 541),
 (619, 540, 620, 541),
 (211, 538, 212, 539),
 (45, 537, 46, 536),
 (514, 538, 515, 537),
 (430, 100, 431, 99),
 (428, 157, 429, 158),
 (427, 449, 428, 448),
 (424, 507, 425, 508),
 (423, 38, 424, 39),
 (425, 625, 426, 624),
 (426, 275, 427, 276),
 (297, 275, 298, 274),
 (599, 270, 600, 271),
 (192, 271, 193, 272),
 (64, 270, 65, 269),
 (554, 578, 555, 577),
 (559, 399, 560, 398),
 (557, 366, 558, 367),
 (558, 325, 559, 326),
 (545, 413, 546, 412),
 (548, 313, 549, 314),
 (543, 591, 544, 590),
 (549, 179, 550, 178),
 (539, 70, 540, 71),
 (411, 240, 412, 241),
 (311, 243, 312, 242),
 (588, 239, 589, 240),
 (180, 243, 181, 244),
 (75, 239, 76, 238),
 (546, 242, 547, 241),
 (120, 18, 121, 17),
 (152, 383, 153, 384),
 (431, 390, 432, 391),
 (295, 387, 296, 386),
 (604, 385, 605, 386),
 (197, 384, 198, 385),
 (59, 383, 60, 382),
 (527, 381, 528, 380),
 (106, 380, 107, 379),
 (342, 382, 343, 381),
 (528, 343, 529, 344),
 (58, 341, 59, 342),
 (199, 341, 200, 340),
 (606, 340, 607, 339),
 (293, 338, 294, 339),
 (429, 337, 430, 336),
 (108, 345, 109, 346),
 (158, 336, 159, 335),
 (30, 520, 31, 519),
 (28, 52, 29, 51),
 (27, 206, 28, 207),
 (26, 613, 27, 614),
 (25, 287, 26, 286),
 (21, 438, 22, 439),
 (24, 257, 25, 258),
 (333, 161, 334, 160),
 (334, 97, 335, 98),
 (174, 579, 175, 580),
 (169, 400, 170, 401),
 (170, 364, 171, 363),
 (171, 323, 172, 322),
 (186, 417, 187, 418),
 (182, 310, 183, 309),
 (194, 601, 195, 602),
 (177, 551, 178, 550),
 (361, 169, 362, 168),
 (245, 162, 246, 163),
 (479, 167, 480, 166),
 (387, 156, 388, 157),
 (93, 165, 94, 164),
 (77, 587, 78, 586),
 (85, 556, 86, 557),
 (79, 316, 80, 317),
 (80, 408, 81, 407),
 (87, 324, 88, 325),
 (86, 365, 87, 366),
 (83, 577, 84, 576),
 (88, 400, 89, 399),
 (402, 173, 403, 174),
 (405, 83, 406, 82),
 (401, 363, 402, 362),
 (403, 578, 404, 579),
 (409, 315, 410, 314),
 (404, 554, 405, 553),
 (580, 175, 581, 176),
 (582, 82, 583, 81),
 (581, 553, 582, 552),
 (583, 406, 584, 407),
 (584, 318, 585, 317),
 (331, 568, 332, 569),
 (305, 419, 306, 418),
 (320, 555, 321, 556),
 (319, 84, 320, 85),
 (318, 576, 319, 575),
 (321, 173, 322, 172),
 (10, 563, 11, 564),
 (11, 92, 12, 93),
 (12, 166, 13, 165),
 (396, 357, 397, 358),
 (328, 356, 329, 355),
 (126, 163, 127, 164),
 (127, 246, 128, 247),
 (125, 95, 126, 94),
 (128, 566, 129, 565),
 (329, 486, 330, 487),
 (394, 486, 395, 485),
 (561, 482, 562, 483),
 (90, 481, 91, 482),
 (167, 481, 168, 480),
 (6, 474, 7, 473),
 (254, 435, 255, 436),
 (483, 477, 484, 476),
 (358, 475, 359, 476),
 (397, 474, 398, 475),
 (327, 473, 328, 472),
 (369, 471, 370, 470),
 (116, 469, 117, 470),
 (22, 468, 23, 467),
 (235, 464, 236, 465),
 (74, 137, 75, 138),
 (589, 137, 590, 136),
 (544, 135, 545, 136),
 (413, 135, 414, 134),
 (181, 133, 182, 132),
 (310, 133, 311, 134),
 (161, 130, 162, 131),
 (96, 132, 97, 131),
 (566, 130, 567, 129),
 (395, 8, 396, 9),
 (484, 10, 485, 9),
 (356, 7, 357, 8),
 (368, 4, 369, 3),
 (326, 6, 327, 5),
 (117, 2, 118, 3),
 (20, 2, 21, 1),
 (236, 641, 237, 642),
 (571, 354, 572, 355),
 (567, 249, 568, 248),
 (574, 368, 575, 367),
 (570, 488, 571, 487),
 (572, 471, 573, 472),
 (573, 4, 574, 5)]
In [19]:
len(D)
Out[19]:
322
In [20]:
is_ribbon(D)
Performed 10000 steps.
Out[20]:
False

The positive Whitehead double of the right-handed trefoil.

In [24]:
concordance_friends=concordance_friend_search(W_p.link(),number_of_concordance_friends=1,effort='low',max_twists=6,number_of_tries=100,verbose=True)
Number of concordant knots created: 133
The concordant knot: [unnamed link(0,0), [[(19, 1, 20, 0), (1, 21, 2, 20), (3, 28, 4, 29), (27, 4, 28, 5), (33, 7, 34, 6), (7, 33, 8, 32), (8, 21, 9, 22), (9, 19, 10, 18), (37, 10, 0, 11), (13, 34, 14, 35), (25, 15, 26, 14), (30, 15, 31, 16), (16, 24, 17, 23), (22, 18, 23, 17), (31, 25, 32, 24), (26, 36, 27, 35), (36, 30, 37, 29), (12, 6, 13, 39), (2, 12, 45, 11), (39, 48, 44, 49), (49, 44, 50, 43), (5, 47, 40, 48), (47, 41, 46, 40), (43, 50, 42, 59), (41, 60, 42, 46), (45, 51, 52, 3), (58, 57, 59, 60), (56, 55, 57, 58), (54, 53, 55, 56), (52, 51, 53, 54)], 5, 3, -5]] has friends.
Number of friends: 1
Total number of concordance friends found: 1
In [25]:
F=concordance_friends[0][0]
D=create_diagram(F)
D
Out[25]:
[(4, 170, 5, 169),
 (522, 460, 523, 459),
 (1, 282, 2, 283),
 (523, 255, 0, 254),
 (0, 88, 1, 87),
 (497, 174, 498, 175),
 (495, 35, 496, 34),
 (493, 10, 494, 11),
 (484, 461, 485, 462),
 (482, 278, 483, 277),
 (480, 259, 481, 260),
 (479, 109, 480, 108),
 (475, 96, 476, 97),
 (46, 486, 47, 485),
 (384, 471, 385, 472),
 (183, 473, 184, 472),
 (356, 474, 357, 473),
 (250, 456, 251, 455),
 (453, 249, 454, 248),
 (45, 460, 46, 461),
 (446, 174, 447, 173),
 (448, 35, 449, 36),
 (450, 10, 451, 9),
 (125, 444, 126, 445),
 (440, 131, 441, 132),
 (133, 438, 134, 439),
 (436, 303, 437, 304),
 (309, 428, 310, 429),
 (427, 227, 428, 226),
 (66, 432, 67, 431),
 (424, 315, 425, 316),
 (385, 269, 386, 268),
 (349, 391, 350, 390),
 (380, 188, 381, 187),
 (270, 380, 271, 379),
 (383, 101, 384, 100),
 (271, 360, 272, 361),
 (357, 98, 358, 99),
 (355, 266, 356, 267),
 (352, 179, 353, 180),
 (310, 227, 311, 228),
 (68, 305, 69, 306),
 (257, 278, 258, 279),
 (286, 247, 287, 248),
 (42, 282, 43, 281),
 (269, 188, 270, 189),
 (182, 267, 183, 268),
 (44, 255, 45, 256),
 (241, 171, 242, 170),
 (239, 40, 240, 41),
 (243, 7, 244, 6),
 (58, 224, 59, 223),
 (38, 171, 39, 172),
 (20, 149, 21, 150),
 (43, 88, 44, 89),
 (32, 11, 33, 12),
 (94, 415, 95, 416),
 (104, 412, 105, 411),
 (476, 414, 477, 413),
 (272, 410, 273, 409),
 (378, 214, 379, 213),
 (274, 329, 275, 330),
 (477, 326, 478, 327),
 (106, 327, 107, 328),
 (93, 325, 94, 324),
 (165, 87, 166, 86),
 (164, 254, 165, 253),
 (163, 459, 164, 458),
 (166, 283, 167, 284),
 (361, 212, 362, 213),
 (494, 200, 495, 199),
 (244, 203, 245, 204),
 (449, 200, 450, 201),
 (33, 199, 34, 198),
 (372, 154, 373, 153),
 (207, 341, 208, 340),
 (451, 343, 452, 342),
 (246, 340, 247, 339),
 (492, 343, 493, 344),
 (333, 85, 334, 84),
 (334, 252, 335, 251),
 (332, 458, 333, 457),
 (336, 285, 337, 286),
 (330, 162, 331, 161),
 (335, 404, 336, 405),
 (496, 396, 497, 395),
 (242, 399, 243, 400),
 (447, 396, 448, 397),
 (37, 399, 38, 398),
 (273, 160, 274, 161),
 (97, 157, 98, 156),
 (474, 155, 475, 156),
 (12, 346, 13, 345),
 (14, 29, 15, 30),
 (7, 202, 8, 203),
 (5, 400, 6, 401),
 (418, 321, 419, 322),
 (412, 157, 413, 158),
 (407, 82, 408, 83),
 (121, 168, 122, 169),
 (122, 3, 123, 4),
 (124, 40, 125, 39),
 (128, 298, 129, 297),
 (120, 402, 121, 401),
 (117, 338, 118, 339),
 (119, 205, 120, 204),
 (193, 350, 194, 351),
 (205, 119, 206, 118),
 (91, 110, 92, 111),
 (402, 116, 403, 115),
 (337, 116, 338, 117),
 (167, 114, 168, 115),
 (2, 113, 3, 114),
 (41, 113, 42, 112),
 (31, 344, 32, 345),
 (162, 487, 163, 488),
 (521, 486, 522, 487),
 (507, 228, 508, 229),
 (509, 313, 510, 312),
 (503, 432, 504, 433),
 (348, 218, 349, 217),
 (435, 134, 436, 135),
 (195, 220, 196, 221),
 (197, 394, 198, 395),
 (392, 219, 393, 220),
 (19, 318, 20, 319),
 (150, 320, 151, 319),
 (224, 313, 225, 314),
 (59, 314, 60, 315),
 (221, 27, 222, 26),
 (148, 21, 149, 22),
 (194, 17, 195, 18),
 (391, 16, 392, 17),
 (218, 15, 219, 16),
 (346, 14, 347, 13),
 (235, 71, 236, 70),
 (234, 301, 235, 302),
 (229, 500, 230, 501),
 (311, 509, 312, 508),
 (123, 240, 124, 241),
 (71, 237, 72, 236),
 (433, 502, 434, 503),
 (304, 136, 305, 135),
 (177, 19, 178, 18),
 (175, 223, 176, 222),
 (232, 440, 233, 439),
 (294, 445, 295, 446),
 (302, 437, 303, 438),
 (430, 145, 431, 146),
 (307, 147, 308, 146),
 (230, 141, 231, 142),
 (504, 144, 505, 143),
 (406, 249, 407, 250),
 (85, 253, 86, 252),
 (206, 245, 207, 246),
 (405, 454, 406, 455),
 (83, 457, 84, 456),
 (209, 452, 210, 453),
 (184, 99, 185, 100),
 (191, 389, 192, 388),
 (208, 288, 209, 287),
 (89, 280, 90, 281),
 (403, 285, 404, 284),
 (79, 216, 80, 217),
 (76, 352, 77, 351),
 (78, 389, 79, 390),
 (75, 179, 76, 178),
 (77, 192, 78, 193),
 (74, 152, 75, 151),
 (73, 321, 74, 320),
 (276, 519, 277, 520),
 (481, 518, 482, 519),
 (109, 516, 110, 517),
 (92, 516, 93, 515),
 (296, 512, 297, 511),
 (127, 513, 128, 512),
 (237, 514, 238, 515),
 (442, 513, 443, 514),
 (499, 511, 500, 510),
 (210, 81, 211, 82),
 (322, 370, 323, 369),
 (152, 368, 153, 367),
 (190, 363, 191, 364),
 (180, 366, 181, 365),
 (387, 364, 388, 365),
 (353, 367, 354, 366),
 (215, 362, 216, 363),
 (130, 300, 131, 299),
 (441, 300, 442, 301),
 (417, 368, 418, 369),
 (370, 324, 371, 323),
 (371, 416, 372, 417),
 (308, 61, 309, 62),
 (429, 63, 430, 62),
 (60, 426, 61, 425),
 (317, 422, 318, 423),
 (22, 422, 23, 421),
 (225, 427, 226, 426),
 (147, 420, 148, 421),
 (72, 419, 73, 420),
 (347, 30, 348, 31),
 (196, 28, 197, 27),
 (393, 29, 394, 28),
 (176, 25, 177, 26),
 (316, 23, 317, 24),
 (423, 25, 424, 24),
 (498, 57, 499, 58),
 (443, 55, 444, 54),
 (238, 54, 239, 53),
 (126, 55, 127, 56),
 (295, 56, 296, 57),
 (90, 51, 91, 52),
 (111, 53, 112, 52),
 (483, 49, 484, 48),
 (279, 51, 280, 50),
 (69, 136, 70, 137),
 (65, 144, 66, 145),
 (64, 505, 65, 506),
 (298, 130, 299, 129),
 (233, 132, 234, 133),
 (142, 502, 143, 501),
 (140, 231, 141, 232),
 (137, 307, 138, 306),
 (139, 434, 140, 435),
 (138, 67, 139, 68),
 (506, 63, 507, 64),
 (102, 185, 103, 186),
 (101, 383, 102, 382),
 (103, 358, 104, 359),
 (105, 158, 106, 159),
 (80, 491, 81, 492),
 (211, 491, 212, 490),
 (408, 490, 409, 489),
 (331, 488, 332, 489),
 (288, 341, 289, 342),
 (290, 202, 291, 201),
 (292, 398, 293, 397),
 (291, 37, 292, 36),
 (289, 8, 290, 9),
 (293, 172, 294, 173),
 (462, 47, 463, 48),
 (463, 521, 464, 520),
 (465, 329, 466, 328),
 (467, 410, 468, 411),
 (466, 160, 467, 159),
 (468, 360, 469, 359),
 (470, 381, 471, 382),
 (469, 187, 470, 186),
 (464, 275, 465, 276),
 (214, 378, 215, 377),
 (189, 377, 190, 376),
 (386, 376, 387, 375),
 (354, 373, 355, 374),
 (181, 374, 182, 375),
 (256, 49, 257, 50),
 (258, 518, 259, 517),
 (262, 326, 263, 325),
 (263, 414, 264, 415),
 (265, 155, 266, 154),
 (260, 107, 261, 108),
 (264, 96, 265, 95),
 (261, 478, 262, 479)]
In [26]:
len(D)
Out[26]:
262
In [27]:
is_ribbon(D)
Performed 10000 steps.
Out[27]:
False

The (2,1)-cable of the figure eight knot.

In [8]:
concordance_friends=concordance_friend_search(CE.link(),number_of_concordance_friends=1,effort='low',max_twists=1,number_of_tries=100,verbose=True)
Number of concordant knots created: 32
The concordant knot: [unnamed link(0,0), [[(17, 1, 18, 0), (1, 9, 2, 8), (2, 26, 3, 25), (14, 3, 15, 4), (31, 4, 32, 5), (5, 28, 6, 29), (6, 11, 7, 12), (18, 8, 19, 7), (9, 17, 10, 16), (10, 0, 11, 33), (13, 20, 14, 21), (26, 16, 27, 15), (30, 21, 31, 22), (22, 29, 23, 30), (27, 33, 28, 32), (23, 35, 24, 13), (41, 25, 20, 24), (35, 44, 40, 45), (45, 40, 46, 39), (12, 43, 36, 44), (43, 37, 42, 36), (37, 19, 38, 42), (39, 46, 38, 41)], 12, 19, 0]] has friends.
Number of friends: 1
Total number of concordance friends found: 1
In [11]:
F=concordance_friends[0][0]
D=create_diagram(F)
D
Out[11]:
[(26, 161, 27, 162),
 (145, 99, 146, 98),
 (129, 164, 130, 165),
 (8, 166, 9, 165),
 (137, 33, 138, 32),
 (197, 31, 198, 30),
 (69, 80, 70, 81),
 (194, 89, 195, 90),
 (91, 158, 92, 159),
 (92, 30, 93, 29),
 (88, 109, 89, 110),
 (67, 186, 68, 187),
 (75, 180, 76, 181),
 (76, 39, 77, 40),
 (61, 41, 62, 40),
 (62, 182, 63, 181),
 (60, 143, 61, 144),
 (79, 147, 80, 146),
 (124, 177, 125, 178),
 (128, 150, 129, 149),
 (125, 36, 126, 37),
 (196, 157, 197, 158),
 (134, 153, 135, 154),
 (68, 58, 69, 57),
 (183, 143, 184, 142),
 (182, 41, 183, 42),
 (184, 202, 185, 201),
 (126, 208, 127, 207),
 (59, 202, 60, 203),
 (77, 205, 78, 204),
 (185, 97, 186, 96),
 (127, 103, 128, 102),
 (58, 97, 59, 98),
 (78, 100, 79, 99),
 (144, 204, 145, 203),
 (90, 215, 91, 216),
 (123, 226, 124, 227),
 (195, 214, 196, 215),
 (136, 211, 137, 212),
 (107, 155, 108, 154),
 (193, 110, 194, 111),
 (135, 106, 136, 107),
 (13, 179, 14, 178),
 (11, 206, 12, 207),
 (10, 101, 11, 102),
 (9, 148, 10, 149),
 (55, 6, 56, 7),
 (122, 16, 123, 15),
 (188, 6, 189, 5),
 (82, 8, 83, 7),
 (141, 42, 142, 43),
 (12, 38, 13, 37),
 (150, 222, 151, 221),
 (176, 225, 177, 226),
 (103, 223, 104, 222),
 (14, 0, 15, 227),
 (219, 25, 220, 24),
 (217, 53, 218, 52),
 (220, 131, 221, 132),
 (216, 191, 217, 192),
 (218, 85, 219, 86),
 (152, 116, 153, 115),
 (174, 121, 175, 122),
 (105, 117, 106, 116),
 (19, 119, 20, 118),
 (117, 21, 118, 20),
 (112, 52, 113, 51),
 (114, 133, 115, 134),
 (111, 192, 112, 193),
 (113, 86, 114, 87),
 (104, 21, 105, 22),
 (175, 17, 176, 16),
 (151, 22, 152, 23),
 (25, 85, 26, 84),
 (28, 190, 29, 189),
 (23, 133, 24, 132),
 (27, 54, 28, 55),
 (38, 73, 39, 74),
 (147, 71, 148, 70),
 (205, 73, 206, 72),
 (100, 72, 101, 71),
 (179, 74, 180, 75),
 (50, 88, 51, 87),
 (95, 66, 96, 67),
 (200, 65, 201, 66),
 (140, 63, 141, 64),
 (43, 65, 44, 64),
 (160, 54, 161, 53),
 (163, 130, 164, 131),
 (159, 190, 160, 191),
 (162, 83, 163, 84),
 (45, 172, 46, 173),
 (138, 174, 139, 173),
 (198, 172, 199, 171),
 (93, 171, 94, 170),
 (4, 169, 5, 170),
 (3, 95, 4, 94),
 (2, 200, 3, 199),
 (0, 140, 1, 139),
 (1, 44, 2, 45),
 (166, 82, 167, 81),
 (168, 188, 169, 187),
 (167, 56, 168, 57),
 (210, 120, 211, 119),
 (208, 224, 209, 223),
 (212, 156, 213, 155),
 (209, 18, 210, 19),
 (47, 157, 48, 156),
 (46, 31, 47, 32),
 (48, 214, 49, 213),
 (49, 109, 50, 108),
 (34, 18, 35, 17),
 (33, 120, 34, 121),
 (35, 224, 36, 225)]
In [12]:
len(D)
Out[12]:
114
In [15]:
is_ribbon(D)
Performed 10000 steps.
Out[15]:
False

Finally, we check the most promising example, the Conway knot. We create some concordance friends and check if any of them is ribbon.

In [4]:
concordance_friends=concordance_friend_search(C.link(),number_of_concordance_friends=100,effort='low',max_twists=6,number_of_tries=250,verbose=True)
Number of concordant knots created: 271
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (11, 4, 12, 5), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 0, 17, 21), (7, 3, 8, 23), (5, 12, 29, 13), (2, 32, 28, 33), (33, 28, 34, 27), (23, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 39), (25, 40, 26, 30), (6, 35, 36, 29), (35, 37, 38, 36), (37, 39, 40, 38)], 2, 6, 3]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 0, 17, 21), (11, 23, 12, 5), (5, 12, 29, 13), (23, 32, 28, 33), (33, 28, 34, 27), (4, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 43), (25, 44, 26, 30), (29, 35, 36, 6), (42, 41, 43, 44), (40, 39, 41, 42), (38, 37, 39, 40), (36, 35, 37, 38)], 4, 6, -5]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 0, 17, 21), (11, 23, 12, 5), (5, 12, 29, 13), (23, 32, 28, 33), (33, 28, 34, 27), (4, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 39), (25, 40, 26, 30), (29, 35, 36, 6), (38, 37, 39, 40), (36, 35, 37, 38)], 4, 6, -3]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 0, 17, 21), (11, 23, 12, 5), (5, 12, 29, 13), (23, 32, 28, 33), (33, 28, 34, 27), (4, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 41), (25, 42, 26, 30), (35, 36, 6, 29), (35, 37, 38, 36), (37, 39, 40, 38), (39, 41, 42, 40)], 4, 6, 4]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (16, 0, 17, 21), (18, 23, 19, 14), (14, 19, 29, 20), (23, 32, 28, 33), (33, 28, 34, 27), (13, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 43), (25, 44, 26, 30), (29, 35, 36, 15), (42, 41, 43, 44), (40, 39, 41, 42), (38, 37, 39, 40), (36, 35, 37, 38)], 13, 15, -5]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (16, 0, 17, 21), (18, 23, 19, 14), (14, 19, 29, 20), (23, 32, 28, 33), (33, 28, 34, 27), (13, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 35), (25, 36, 26, 30), (29, 35, 36, 15)], 13, 15, -1]] has friends.
Number of friends: 2
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (16, 0, 17, 21), (18, 23, 19, 14), (14, 19, 29, 20), (23, 32, 28, 33), (33, 28, 34, 27), (13, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 43), (25, 44, 26, 30), (35, 36, 15, 29), (35, 37, 38, 36), (37, 39, 40, 38), (39, 41, 42, 40), (41, 43, 44, 42)], 13, 15, 5]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 0, 23, 29), (23, 32, 28, 33), (33, 28, 34, 27), (17, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 35), (25, 36, 26, 30), (29, 35, 36, 21)], 17, 21, -1]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (16, 0, 17, 21), (29, 23, 15, 20), (19, 32, 28, 33), (33, 28, 34, 27), (23, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 39), (25, 40, 26, 30), (14, 35, 36, 29), (38, 37, 39, 40), (36, 35, 37, 38)], 19, 14, -3]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (16, 0, 17, 21), (23, 19, 15, 29), (14, 32, 28, 33), (33, 28, 34, 27), (23, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 37), (25, 38, 26, 30), (20, 35, 36, 29), (36, 35, 37, 38)], 14, 20, -2]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 29, 23, 21), (17, 32, 28, 33), (33, 28, 34, 27), (23, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 43), (25, 44, 26, 30), (0, 35, 36, 29), (42, 41, 43, 44), (40, 39, 41, 42), (38, 37, 39, 40), (36, 35, 37, 38)], 17, 0, -5]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (18, 13, 19, 14), (16, 0, 17, 21), (14, 19, 15, 23), (29, 17, 11, 18), (23, 32, 28, 33), (33, 28, 34, 27), (20, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 43), (25, 44, 26, 30), (35, 36, 10, 29), (35, 37, 38, 36), (37, 39, 40, 38), (39, 41, 42, 40), (41, 43, 44, 42)], 20, 10, 5]] has friends.
Number of friends: 2
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 0, 17, 21), (29, 23, 8, 2), (3, 32, 28, 33), (33, 28, 34, 27), (23, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 39), (25, 40, 26, 30), (7, 35, 36, 29), (35, 37, 38, 36), (37, 39, 40, 38)], 3, 7, 3]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (14, 19, 15, 20), (16, 0, 17, 21), (18, 23, 19, 14), (10, 17, 29, 18), (13, 32, 28, 33), (33, 28, 34, 27), (23, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 39), (25, 40, 26, 30), (11, 35, 36, 29), (35, 37, 38, 36), (37, 39, 40, 38)], 13, 11, 3]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (7, 3, 8, 2), (11, 4, 12, 5), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 0, 17, 21), (5, 12, 23, 13), (29, 16, 9, 15), (23, 32, 28, 33), (33, 28, 34, 27), (6, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 43), (25, 44, 26, 30), (29, 35, 36, 8), (42, 41, 43, 44), (40, 39, 41, 42), (38, 37, 39, 40), (36, 35, 37, 38)], 6, 8, -5]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (1, 7, 2, 6), (11, 4, 12, 5), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (23, 0, 17, 21), (7, 3, 29, 2), (23, 32, 28, 33), (33, 28, 34, 27), (16, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 37), (25, 38, 26, 30), (29, 35, 36, 8), (36, 35, 37, 38)], 16, 8, -2]] has friends.
Number of friends: 1
The concordant knot: [unnamed link(0,0), [[(3, 1, 4, 0), (7, 3, 8, 2), (5, 12, 6, 13), (8, 16, 9, 15), (20, 9, 21, 10), (10, 17, 11, 18), (18, 13, 19, 14), (14, 19, 15, 20), (16, 0, 17, 21), (23, 7, 2, 6), (11, 29, 12, 5), (1, 32, 28, 33), (33, 28, 34, 27), (23, 31, 24, 32), (31, 25, 30, 24), (27, 34, 26, 41), (25, 42, 26, 30), (4, 35, 36, 29), (35, 37, 38, 36), (37, 39, 40, 38), (39, 41, 42, 40)], 1, 4, 4]] has friends.
Number of friends: 1
Number of concordance friends found: 19
In [5]:
diagrams=[]

for x in concordance_friends:
    F=x[0]
    D=create_diagram(F)
    diagrams.append([D,x])
    print('Number of crossings of concordance friend:',len(D))
    print('Is ribbon:',is_ribbon(D))
    
diagrams
Number of crossings of concordance friend: 202
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 125
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 134
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 166
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 191
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 135
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 382
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 124
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 140
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 102
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 102
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 117
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 326
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 462
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 147
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 153
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 139
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 265
Performed 10000 steps.
Is ribbon: False
Number of crossings of concordance friend: 127
Performed 10000 steps.
Is ribbon: False
Out[5]:
[[[(160, 46, 161, 45),
   (72, 213, 73, 214),
   (91, 0, 92, 1),
   (82, 9, 83, 10),
   (403, 92, 0, 93),
   (137, 215, 138, 214),
   (175, 221, 176, 220),
   (332, 207, 333, 208),
   (261, 208, 262, 209),
   (357, 212, 358, 213),
   (259, 363, 260, 362),
   (206, 265, 207, 266),
   (234, 268, 235, 267),
   (186, 264, 187, 263),
   (333, 265, 334, 264),
   (70, 258, 71, 257),
   (210, 361, 211, 362),
   (232, 366, 233, 365),
   (182, 360, 183, 359),
   (331, 365, 332, 364),
   (71, 357, 72, 356),
   (177, 216, 178, 217),
   (235, 204, 236, 205),
   (304, 128, 305, 127),
   (306, 369, 307, 370),
   (305, 270, 306, 271),
   (354, 68, 355, 67),
   (255, 69, 256, 68),
   (143, 62, 144, 63),
   (224, 63, 225, 64),
   (358, 182, 359, 181),
   (262, 186, 263, 185),
   (135, 180, 136, 181),
   (335, 189, 336, 188),
   (74, 180, 75, 179),
   (271, 126, 272, 127),
   (278, 38, 279, 37),
   (218, 29, 219, 30),
   (256, 114, 257, 113),
   (355, 113, 356, 112),
   (138, 111, 139, 112),
   (69, 115, 70, 114),
   (215, 110, 216, 111),
   (178, 110, 179, 109),
   (27, 108, 28, 109),
   (241, 154, 242, 155),
   (28, 290, 29, 289),
   (176, 287, 177, 288),
   (217, 289, 218, 288),
   (65, 284, 66, 285),
   (139, 287, 140, 286),
   (352, 285, 353, 286),
   (254, 283, 255, 284),
   (43, 261, 44, 260),
   (42, 364, 43, 363),
   (44, 209, 45, 210),
   (377, 37, 378, 36),
   (375, 277, 376, 276),
   (141, 350, 142, 351),
   (66, 354, 67, 353),
   (173, 349, 174, 348),
   (222, 351, 223, 352),
   (31, 346, 32, 347),
   (370, 121, 371, 122),
   (142, 251, 143, 252),
   (223, 252, 224, 253),
   (64, 254, 65, 253),
   (172, 250, 173, 249),
   (61, 144, 62, 145),
   (221, 141, 222, 140),
   (174, 387, 175, 388),
   (60, 383, 61, 384),
   (225, 383, 226, 382),
   (339, 156, 340, 157),
   (337, 239, 338, 238),
   (40, 232, 41, 231),
   (328, 230, 329, 229),
   (282, 228, 283, 227),
   (381, 227, 382, 226),
   (280, 328, 281, 327),
   (378, 324, 379, 323),
   (168, 326, 169, 325),
   (90, 124, 91, 123),
   (87, 374, 88, 375),
   (86, 275, 87, 276),
   (379, 58, 380, 59),
   (279, 56, 280, 57),
   (324, 57, 325, 58),
   (39, 54, 40, 55),
   (119, 38, 120, 39),
   (116, 329, 117, 330),
   (118, 56, 119, 55),
   (117, 230, 118, 231),
   (5, 275, 6, 274),
   (4, 374, 5, 373),
   (1, 122, 2, 123),
   (35, 393, 36, 392),
   (33, 246, 34, 247),
   (30, 219, 31, 220),
   (98, 301, 99, 302),
   (396, 300, 397, 299),
   (320, 390, 321, 389),
   (321, 248, 322, 249),
   (319, 33, 320, 32),
   (318, 345, 319, 346),
   (317, 291, 318, 290),
   (316, 107, 317, 108),
   (97, 198, 98, 199),
   (398, 198, 399, 197),
   (124, 94, 125, 93),
   (125, 402, 126, 403),
   (372, 4, 373, 3),
   (371, 88, 372, 89),
   (272, 402, 273, 401),
   (273, 94, 274, 95),
   (303, 194, 304, 195),
   (203, 190, 204, 191),
   (46, 184, 47, 183),
   (326, 168, 327, 167),
   (380, 169, 381, 170),
   (281, 166, 282, 167),
   (115, 165, 116, 164),
   (195, 401, 196, 400),
   (196, 95, 197, 96),
   (330, 41, 331, 42),
   (106, 291, 107, 292),
   (104, 246, 105, 245),
   (96, 399, 97, 400),
   (17, 121, 18, 120),
   (15, 376, 16, 377),
   (16, 277, 17, 278),
   (12, 101, 13, 102),
   (100, 84, 101, 83),
   (153, 78, 154, 79),
   (242, 78, 243, 77),
   (341, 77, 342, 76),
   (170, 60, 171, 59),
   (165, 228, 166, 229),
   (162, 212, 163, 211),
   (161, 360, 162, 361),
   (163, 258, 164, 259),
   (159, 184, 160, 185),
   (13, 297, 14, 296),
   (390, 247, 391, 248),
   (395, 84, 396, 85),
   (397, 7, 398, 6),
   (14, 394, 15, 393),
   (349, 386, 350, 387),
   (250, 385, 251, 386),
   (145, 385, 146, 384),
   (302, 200, 303, 199),
   (295, 102, 296, 103),
   (293, 244, 294, 245),
   (298, 85, 299, 86),
   (300, 8, 301, 7),
   (297, 395, 298, 394),
   (79, 312, 80, 313),
   (342, 315, 343, 316),
   (243, 314, 244, 315),
   (152, 314, 153, 313),
   (200, 312, 201, 311),
   (193, 310, 194, 311),
   (269, 308, 270, 309),
   (128, 310, 129, 309),
   (368, 307, 369, 308),
   (75, 26, 76, 27),
   (340, 25, 341, 26),
   (240, 23, 241, 24),
   (155, 25, 156, 24),
   (202, 22, 203, 21),
   (191, 20, 192, 21),
   (131, 23, 132, 22),
   (268, 19, 269, 20),
   (367, 18, 368, 19),
   (10, 81, 11, 82),
   (99, 8, 100, 9),
   (80, 11, 81, 12),
   (2, 89, 3, 90),
   (388, 347, 389, 348),
   (105, 345, 106, 344),
   (292, 343, 293, 344),
   (49, 334, 50, 335),
   (52, 233, 53, 234),
   (47, 159, 48, 158),
   (48, 187, 49, 188),
   (50, 206, 51, 205),
   (51, 266, 52, 267),
   (53, 366, 54, 367),
   (73, 136, 74, 137),
   (338, 133, 339, 134),
   (239, 132, 240, 133),
   (157, 135, 158, 134),
   (192, 129, 193, 130),
   (201, 131, 202, 130),
   (236, 190, 237, 189),
   (237, 337, 238, 336),
   (294, 152, 295, 151),
   (103, 150, 104, 151),
   (391, 149, 392, 148),
   (34, 150, 35, 149),
   (171, 146, 172, 147),
   (322, 148, 323, 147)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (11, 4, 12, 5),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 0, 17, 21),
      (7, 3, 8, 23),
      (5, 12, 29, 13),
      (2, 32, 28, 33),
      (33, 28, 34, 27),
      (23, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 39),
      (25, 40, 26, 30),
      (6, 35, 36, 29),
      (35, 37, 38, 36),
      (37, 39, 40, 38)],
     2,
     6,
     3]]]],
 [[(144, 42, 145, 41),
   (57, 122, 58, 123),
   (55, 147, 56, 146),
   (56, 39, 57, 40),
   (127, 58, 128, 59),
   (142, 62, 143, 61),
   (128, 197, 129, 198),
   (209, 125, 210, 124),
   (226, 123, 227, 124),
   (129, 239, 130, 238),
   (210, 143, 211, 144),
   (224, 146, 225, 145),
   (211, 43, 212, 42),
   (225, 40, 226, 41),
   (186, 168, 187, 167),
   (187, 18, 188, 19),
   (249, 15, 0, 14),
   (248, 171, 249, 172),
   (240, 38, 241, 37),
   (241, 148, 242, 149),
   (239, 121, 240, 120),
   (229, 206, 230, 207),
   (126, 227, 127, 228),
   (125, 209, 126, 208),
   (139, 199, 140, 198),
   (138, 237, 139, 238),
   (140, 205, 141, 206),
   (141, 231, 142, 230),
   (130, 70, 131, 69),
   (137, 68, 138, 69),
   (166, 186, 167, 185),
   (216, 180, 217, 179),
   (234, 109, 235, 110),
   (231, 159, 232, 158),
   (232, 27, 233, 28),
   (99, 83, 100, 82),
   (88, 217, 89, 218),
   (91, 21, 92, 20),
   (94, 163, 95, 164),
   (95, 137, 96, 136),
   (90, 181, 91, 182),
   (89, 48, 90, 49),
   (165, 100, 166, 101),
   (49, 86, 50, 87),
   (188, 85, 189, 86),
   (168, 83, 169, 84),
   (17, 85, 18, 84),
   (218, 87, 219, 88),
   (247, 79, 248, 78),
   (174, 77, 175, 78),
   (175, 246, 176, 247),
   (176, 190, 177, 189),
   (177, 51, 178, 50),
   (173, 132, 174, 133),
   (12, 132, 13, 131),
   (8, 51, 9, 52),
   (9, 190, 10, 191),
   (10, 246, 11, 245),
   (11, 77, 12, 76),
   (102, 183, 103, 184),
   (161, 237, 162, 236),
   (106, 235, 107, 236),
   (107, 201, 108, 200),
   (160, 199, 161, 200),
   (203, 27, 204, 26),
   (204, 159, 205, 160),
   (201, 109, 202, 108),
   (196, 121, 197, 122),
   (194, 148, 195, 147),
   (195, 38, 196, 39),
   (65, 110, 66, 111),
   (62, 158, 63, 157),
   (63, 28, 64, 29),
   (162, 68, 163, 67),
   (105, 66, 106, 67),
   (118, 76, 119, 75),
   (150, 73, 151, 74),
   (35, 75, 36, 74),
   (70, 120, 71, 119),
   (72, 149, 73, 150),
   (71, 37, 72, 36),
   (33, 192, 34, 193),
   (152, 194, 153, 193),
   (116, 191, 117, 192),
   (117, 245, 118, 244),
   (151, 242, 152, 243),
   (34, 244, 35, 243),
   (32, 53, 33, 54),
   (153, 55, 154, 54),
   (115, 52, 116, 53),
   (44, 29, 45, 30),
   (43, 157, 44, 156),
   (45, 112, 46, 113),
   (47, 181, 48, 180),
   (59, 229, 60, 228),
   (113, 215, 114, 214),
   (60, 207, 61, 208),
   (155, 212, 156, 213),
   (30, 214, 31, 213),
   (134, 14, 135, 13),
   (133, 172, 134, 173),
   (135, 97, 136, 96),
   (184, 101, 185, 102),
   (92, 104, 93, 103),
   (0, 98, 1, 97),
   (79, 170, 80, 171),
   (80, 16, 81, 15),
   (81, 99, 82, 98),
   (169, 16, 170, 17),
   (215, 6, 216, 7),
   (46, 5, 47, 6),
   (164, 1, 165, 2),
   (104, 4, 105, 3),
   (93, 3, 94, 2),
   (154, 224, 155, 223),
   (31, 222, 32, 223),
   (114, 221, 115, 222),
   (7, 220, 8, 221),
   (178, 220, 179, 219),
   (21, 5, 22, 4),
   (19, 182, 20, 183),
   (22, 112, 23, 111),
   (23, 64, 24, 65),
   (25, 203, 26, 202),
   (24, 233, 25, 234)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 0, 17, 21),
      (11, 23, 12, 5),
      (5, 12, 29, 13),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (4, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 43),
      (25, 44, 26, 30),
      (29, 35, 36, 6),
      (42, 41, 43, 44),
      (40, 39, 41, 42),
      (38, 37, 39, 40),
      (36, 35, 37, 38)],
     4,
     6,
     -5]]]],
 [[(10, 194, 11, 193),
   (9, 27, 10, 26),
   (23, 13, 24, 12),
   (14, 22, 15, 21),
   (19, 204, 20, 205),
   (18, 100, 19, 99),
   (20, 184, 21, 183),
   (25, 192, 26, 193),
   (90, 27, 91, 28),
   (114, 31, 115, 32),
   (174, 29, 175, 30),
   (213, 29, 214, 28),
   (169, 218, 170, 219),
   (163, 45, 164, 44),
   (164, 259, 165, 260),
   (236, 149, 237, 150),
   (225, 46, 226, 47),
   (223, 259, 224, 258),
   (162, 128, 163, 127),
   (226, 129, 227, 130),
   (91, 9, 92, 8),
   (116, 4, 117, 3),
   (175, 7, 176, 6),
   (37, 267, 38, 266),
   (212, 7, 213, 8),
   (173, 112, 174, 113),
   (214, 112, 215, 111),
   (82, 257, 83, 258),
   (80, 46, 81, 45),
   (79, 129, 80, 128),
   (70, 154, 71, 153),
   (146, 123, 147, 124),
   (142, 266, 143, 265),
   (109, 23, 110, 22),
   (145, 63, 146, 62),
   (267, 67, 0, 66),
   (121, 64, 122, 65),
   (240, 65, 241, 66),
   (239, 121, 240, 120),
   (119, 239, 120, 238),
   (143, 242, 144, 243),
   (0, 237, 1, 238),
   (134, 104, 135, 103),
   (135, 187, 136, 186),
   (133, 200, 134, 201),
   (130, 160, 131, 159),
   (132, 229, 133, 230),
   (131, 77, 132, 76),
   (105, 137, 106, 136),
   (155, 73, 156, 72),
   (256, 73, 257, 74),
   (253, 231, 254, 230),
   (255, 156, 256, 157),
   (251, 203, 252, 202),
   (250, 185, 251, 186),
   (252, 101, 253, 102),
   (106, 249, 107, 250),
   (196, 55, 197, 56),
   (107, 55, 108, 54),
   (161, 228, 162, 229),
   (78, 227, 79, 228),
   (68, 222, 69, 221),
   (234, 219, 235, 220),
   (151, 221, 152, 220),
   (207, 216, 208, 217),
   (180, 216, 181, 215),
   (96, 218, 97, 217),
   (2, 94, 3, 93),
   (5, 177, 6, 176),
   (4, 211, 5, 212),
   (1, 149, 2, 148),
   (262, 60, 263, 59),
   (261, 244, 262, 245),
   (260, 142, 261, 141),
   (118, 147, 119, 148),
   (115, 211, 116, 210),
   (113, 178, 114, 179),
   (117, 92, 118, 93),
   (36, 67, 37, 68),
   (34, 236, 35, 235),
   (35, 150, 36, 151),
   (32, 210, 33, 209),
   (30, 177, 31, 178),
   (33, 94, 34, 95),
   (243, 264, 244, 265),
   (60, 264, 61, 263),
   (195, 24, 196, 25),
   (199, 138, 200, 139),
   (197, 249, 198, 248),
   (63, 122, 64, 123),
   (43, 140, 44, 141),
   (42, 246, 43, 245),
   (41, 58, 42, 59),
   (61, 40, 62, 41),
   (241, 39, 242, 38),
   (144, 39, 145, 40),
   (126, 139, 127, 140),
   (125, 247, 126, 246),
   (124, 57, 125, 58),
   (222, 165, 223, 166),
   (95, 170, 96, 171),
   (179, 172, 180, 173),
   (208, 172, 209, 171),
   (152, 167, 153, 168),
   (233, 169, 234, 168),
   (74, 158, 75, 157),
   (69, 166, 70, 167),
   (102, 201, 103, 202),
   (89, 110, 90, 111),
   (187, 104, 188, 105),
   (189, 199, 190, 198),
   (188, 138, 189, 137),
   (190, 247, 191, 248),
   (191, 57, 192, 56),
   (97, 86, 98, 87),
   (181, 88, 182, 89),
   (206, 88, 207, 87),
   (232, 86, 233, 85),
   (154, 83, 155, 84),
   (71, 84, 72, 85),
   (160, 78, 161, 77),
   (224, 81, 225, 82),
   (205, 16, 206, 17),
   (98, 18, 99, 17),
   (182, 16, 183, 15),
   (108, 13, 109, 14),
   (194, 12, 195, 11),
   (48, 76, 49, 75),
   (47, 159, 48, 158),
   (50, 231, 51, 232),
   (49, 254, 50, 255),
   (52, 203, 53, 204),
   (51, 101, 52, 100),
   (53, 185, 54, 184)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 0, 17, 21),
      (11, 23, 12, 5),
      (5, 12, 29, 13),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (4, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 39),
      (25, 40, 26, 30),
      (29, 35, 36, 6),
      (38, 37, 39, 40),
      (36, 35, 37, 38)],
     4,
     6,
     -3]]]],
 [[(39, 115, 40, 114),
   (187, 257, 188, 256),
   (146, 41, 147, 42),
   (322, 222, 323, 221),
   (7, 222, 8, 223),
   (87, 251, 88, 250),
   (202, 239, 203, 240),
   (307, 51, 308, 50),
   (303, 159, 304, 158),
   (63, 288, 64, 289),
   (169, 290, 170, 291),
   (276, 288, 277, 287),
   (302, 285, 303, 286),
   (27, 287, 28, 286),
   (25, 156, 26, 157),
   (21, 48, 22, 49),
   (275, 233, 276, 232),
   (157, 231, 158, 230),
   (55, 227, 56, 226),
   (26, 232, 27, 231),
   (304, 229, 305, 230),
   (134, 290, 135, 289),
   (130, 68, 131, 67),
   (135, 169, 136, 168),
   (132, 273, 133, 274),
   (128, 153, 129, 154),
   (126, 47, 127, 48),
   (133, 235, 134, 234),
   (305, 213, 306, 212),
   (24, 211, 25, 212),
   (131, 208, 132, 209),
   (53, 214, 54, 215),
   (155, 210, 156, 211),
   (272, 207, 273, 208),
   (66, 210, 67, 209),
   (329, 205, 330, 204),
   (306, 108, 307, 107),
   (23, 106, 24, 107),
   (129, 104, 130, 105),
   (52, 109, 53, 110),
   (154, 105, 155, 106),
   (270, 101, 271, 102),
   (68, 104, 69, 103),
   (330, 100, 331, 99),
   (172, 272, 173, 271),
   (173, 103, 174, 102),
   (171, 207, 172, 206),
   (170, 235, 171, 236),
   (268, 176, 269, 175),
   (265, 22, 266, 23),
   (149, 44, 150, 45),
   (264, 49, 265, 50),
   (178, 46, 179, 45),
   (73, 41, 74, 40),
   (43, 148, 44, 149),
   (267, 152, 268, 153),
   (177, 151, 178, 150),
   (74, 146, 75, 145),
   (111, 77, 112, 76),
   (110, 182, 111, 181),
   (108, 261, 109, 262),
   (241, 97, 242, 96),
   (220, 9, 221, 10),
   (219, 321, 220, 320),
   (216, 78, 217, 77),
   (215, 183, 216, 182),
   (213, 260, 214, 261),
   (205, 1, 206, 0),
   (236, 1, 237, 2),
   (100, 0, 101, 331),
   (228, 260, 229, 259),
   (227, 184, 228, 185),
   (225, 78, 226, 79),
   (56, 80, 57, 79),
   (54, 184, 55, 183),
   (51, 262, 52, 263),
   (161, 81, 162, 80),
   (160, 186, 161, 185),
   (159, 258, 160, 259),
   (284, 258, 285, 257),
   (283, 186, 284, 187),
   (282, 81, 283, 82),
   (174, 69, 175, 70),
   (269, 71, 270, 70),
   (34, 58, 35, 57),
   (293, 60, 294, 61),
   (192, 62, 193, 61),
   (249, 58, 250, 59),
   (88, 60, 89, 59),
   (296, 86, 297, 85),
   (294, 251, 295, 252),
   (292, 194, 293, 193),
   (295, 33, 296, 32),
   (291, 137, 292, 136),
   (83, 280, 84, 281),
   (254, 280, 255, 279),
   (190, 277, 191, 278),
   (298, 282, 299, 281),
   (29, 278, 30, 279),
   (65, 275, 66, 274),
   (62, 167, 63, 168),
   (30, 166, 31, 165),
   (297, 162, 298, 163),
   (191, 167, 192, 166),
   (253, 164, 254, 165),
   (84, 164, 85, 163),
   (188, 302, 189, 301),
   (255, 300, 256, 301),
   (82, 300, 83, 299),
   (196, 328, 197, 327),
   (247, 324, 248, 325),
   (90, 326, 91, 325),
   (91, 4, 92, 5),
   (246, 6, 247, 5),
   (195, 2, 196, 3),
   (89, 138, 90, 139),
   (248, 140, 249, 139),
   (194, 137, 195, 138),
   (86, 33, 87, 34),
   (252, 32, 253, 31),
   (189, 28, 190, 29),
   (323, 7, 324, 6),
   (318, 94, 319, 93),
   (319, 244, 320, 245),
   (317, 199, 318, 198),
   (199, 317, 200, 316),
   (243, 314, 244, 315),
   (94, 316, 95, 315),
   (75, 310, 76, 311),
   (180, 309, 181, 310),
   (263, 309, 264, 308),
   (35, 224, 36, 225),
   (36, 218, 37, 217),
   (38, 314, 39, 313),
   (37, 142, 38, 143),
   (3, 327, 4, 326),
   (328, 237, 329, 238),
   (64, 233, 65, 234),
   (11, 92, 12, 93),
   (10, 246, 11, 245),
   (8, 322, 9, 321),
   (12, 197, 13, 198),
   (15, 121, 16, 120),
   (266, 127, 267, 128),
   (176, 124, 177, 123),
   (46, 125, 47, 126),
   (151, 124, 152, 125),
   (71, 123, 72, 122),
   (98, 121, 99, 122),
   (240, 120, 241, 119),
   (201, 118, 202, 119),
   (116, 95, 117, 96),
   (115, 243, 116, 242),
   (112, 312, 113, 311),
   (117, 200, 118, 201),
   (179, 21, 180, 20),
   (42, 19, 43, 20),
   (147, 18, 148, 19),
   (72, 18, 73, 17),
   (97, 16, 98, 17),
   (203, 14, 204, 15),
   (238, 14, 239, 13),
   (140, 223, 141, 224),
   (141, 219, 142, 218),
   (143, 313, 144, 312),
   (144, 114, 145, 113)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 0, 17, 21),
      (11, 23, 12, 5),
      (5, 12, 29, 13),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (4, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 41),
      (25, 42, 26, 30),
      (35, 36, 6, 29),
      (35, 37, 38, 36),
      (37, 39, 40, 38),
      (39, 41, 42, 40)],
     4,
     6,
     4]]]],
 [[(14, 157, 15, 158),
   (12, 285, 13, 286),
   (25, 44, 26, 45),
   (16, 94, 17, 93),
   (99, 19, 100, 18),
   (22, 218, 23, 217),
   (27, 259, 28, 258),
   (19, 327, 20, 326),
   (33, 167, 34, 166),
   (146, 44, 147, 43),
   (239, 42, 240, 43),
   (104, 45, 105, 46),
   (120, 52, 121, 51),
   (160, 89, 161, 90),
   (281, 94, 282, 95),
   (90, 159, 91, 160),
   (95, 280, 96, 281),
   (101, 217, 102, 216),
   (97, 231, 98, 230),
   (106, 260, 107, 259),
   (100, 326, 101, 325),
   (115, 171, 116, 170),
   (137, 168, 138, 169),
   (145, 260, 146, 261),
   (152, 276, 153, 275),
   (153, 330, 154, 331),
   (248, 168, 249, 167),
   (294, 169, 295, 170),
   (299, 176, 300, 177),
   (0, 174, 1, 173),
   (2, 172, 3, 171),
   (235, 219, 236, 218),
   (241, 263, 242, 262),
   (232, 328, 233, 327),
   (337, 323, 338, 322),
   (338, 357, 339, 358),
   (273, 224, 274, 225),
   (72, 223, 73, 224),
   (331, 227, 332, 226),
   (348, 225, 349, 226),
   (205, 223, 206, 222),
   (149, 220, 150, 221),
   (7, 252, 8, 253),
   (140, 246, 141, 245),
   (34, 249, 35, 250),
   (111, 244, 112, 245),
   (215, 325, 216, 324),
   (212, 335, 213, 336),
   (213, 93, 214, 92),
   (8, 119, 9, 120),
   (135, 117, 136, 116),
   (37, 118, 38, 119),
   (114, 296, 115, 295),
   (35, 293, 36, 292),
   (136, 293, 137, 294),
   (250, 292, 251, 291),
   (251, 6, 252, 7),
   (134, 4, 135, 3),
   (36, 5, 37, 6),
   (117, 4, 118, 5),
   (270, 263, 271, 264),
   (274, 350, 275, 349),
   (265, 180, 266, 181),
   (266, 303, 267, 304),
   (264, 378, 265, 377),
   (271, 41, 272, 40),
   (188, 143, 189, 144),
   (182, 305, 183, 306),
   (183, 375, 184, 374),
   (178, 301, 179, 302),
   (175, 381, 176, 380),
   (278, 78, 279, 77),
   (309, 371, 310, 370),
   (310, 185, 311, 186),
   (199, 84, 200, 85),
   (323, 82, 324, 83),
   (214, 81, 215, 82),
   (17, 80, 18, 81),
   (98, 79, 99, 80),
   (150, 74, 151, 73),
   (39, 55, 40, 54),
   (132, 53, 133, 54),
   (9, 53, 10, 52),
   (76, 278, 77, 277),
   (70, 42, 71, 41),
   (74, 352, 75, 351),
   (68, 261, 69, 262),
   (67, 145, 68, 144),
   (64, 29, 65, 30),
   (69, 240, 70, 241),
   (65, 108, 66, 109),
   (339, 199, 340, 198),
   (371, 309, 372, 308),
   (368, 188, 369, 187),
   (233, 21, 234, 20),
   (229, 97, 230, 96),
   (231, 78, 232, 79),
   (227, 154, 228, 155),
   (228, 279, 229, 280),
   (336, 92, 337, 91),
   (343, 88, 344, 89),
   (211, 158, 212, 159),
   (344, 162, 345, 161),
   (333, 156, 334, 157),
   (272, 207, 273, 208),
   (71, 206, 72, 207),
   (87, 320, 88, 321),
   (86, 360, 87, 359),
   (85, 196, 86, 197),
   (184, 267, 185, 268),
   (373, 269, 374, 268),
   (306, 269, 307, 270),
   (356, 84, 357, 83),
   (312, 114, 313, 113),
   (367, 110, 368, 111),
   (190, 108, 191, 107),
   (142, 109, 143, 110),
   (26, 106, 27, 105),
   (314, 248, 315, 247),
   (369, 242, 370, 243),
   (186, 244, 187, 243),
   (147, 238, 148, 239),
   (21, 235, 22, 234),
   (315, 33, 316, 32),
   (364, 31, 365, 32),
   (133, 38, 134, 39),
   (191, 29, 192, 28),
   (56, 177, 57, 178),
   (57, 300, 58, 301),
   (55, 379, 56, 378),
   (125, 195, 126, 194),
   (124, 361, 125, 362),
   (123, 319, 124, 318),
   (334, 16, 335, 15),
   (346, 13, 347, 14),
   (208, 12, 209, 11),
   (376, 182, 377, 181),
   (375, 305, 376, 304),
   (209, 286, 210, 287),
   (347, 285, 348, 284),
   (332, 283, 333, 284),
   (307, 373, 308, 372),
   (302, 179, 303, 180),
   (210, 346, 211, 345),
   (321, 343, 322, 342),
   (358, 341, 359, 342),
   (197, 341, 198, 340),
   (282, 156, 283, 155),
   (366, 142, 367, 141),
   (313, 138, 314, 139),
   (257, 193, 258, 192),
   (256, 363, 257, 364),
   (255, 317, 256, 316),
   (10, 132, 11, 131),
   (319, 129, 320, 128),
   (360, 127, 361, 128),
   (195, 127, 196, 126),
   (48, 317, 49, 318),
   (47, 363, 48, 362),
   (46, 193, 47, 194),
   (102, 355, 103, 356),
   (221, 205, 222, 204),
   (148, 203, 149, 204),
   (24, 202, 25, 201),
   (237, 203, 238, 202),
   (103, 201, 104, 200),
   (276, 329, 277, 330),
   (75, 328, 76, 329),
   (174, 297, 175, 298),
   (381, 297, 0, 296),
   (298, 380, 299, 379),
   (172, 2, 173, 1),
   (189, 66, 190, 67),
   (365, 63, 366, 62),
   (311, 58, 312, 59),
   (139, 61, 140, 60),
   (30, 63, 31, 64),
   (246, 61, 247, 62),
   (112, 59, 113, 60),
   (23, 354, 24, 355),
   (236, 353, 237, 354),
   (151, 351, 152, 350),
   (219, 352, 220, 353),
   (162, 129, 163, 130),
   (163, 123, 164, 122),
   (164, 49, 165, 50),
   (165, 255, 166, 254),
   (287, 130, 288, 131),
   (289, 50, 290, 51),
   (288, 122, 289, 121),
   (290, 254, 291, 253)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (16, 0, 17, 21),
      (18, 23, 19, 14),
      (14, 19, 29, 20),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (13, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 43),
      (25, 44, 26, 30),
      (29, 35, 36, 15),
      (42, 41, 43, 44),
      (40, 39, 41, 42),
      (38, 37, 39, 40),
      (36, 35, 37, 38)],
     13,
     15,
     -5]]]],
 [[(32, 222, 33, 221),
   (78, 58, 79, 57),
   (162, 59, 163, 60),
   (265, 57, 266, 56),
   (172, 67, 173, 68),
   (260, 72, 261, 71),
   (77, 164, 78, 165),
   (80, 268, 81, 267),
   (127, 220, 128, 221),
   (262, 167, 263, 168),
   (191, 219, 192, 218),
   (75, 188, 76, 189),
   (160, 180, 161, 179),
   (0, 181, 1, 182),
   (61, 184, 62, 185),
   (60, 161, 61, 162),
   (62, 248, 63, 247),
   (266, 246, 267, 245),
   (159, 250, 160, 251),
   (79, 247, 80, 246),
   (147, 203, 148, 202),
   (146, 227, 147, 228),
   (144, 42, 145, 41),
   (145, 118, 146, 119),
   (16, 116, 17, 115),
   (15, 44, 16, 45),
   (13, 227, 14, 226),
   (12, 203, 13, 204),
   (97, 117, 98, 116),
   (96, 43, 97, 44),
   (94, 226, 95, 225),
   (93, 204, 94, 205),
   (185, 58, 186, 59),
   (182, 269, 183, 0),
   (186, 164, 187, 163),
   (189, 74, 190, 75),
   (183, 248, 184, 249),
   (125, 237, 126, 236),
   (36, 233, 37, 234),
   (197, 234, 198, 235),
   (119, 150, 120, 151),
   (40, 152, 41, 151),
   (228, 149, 229, 150),
   (201, 149, 202, 148),
   (200, 11, 201, 12),
   (230, 10, 231, 9),
   (39, 8, 40, 9),
   (121, 11, 122, 10),
   (224, 237, 225, 238),
   (223, 126, 224, 127),
   (222, 34, 223, 33),
   (199, 92, 200, 93),
   (232, 90, 233, 89),
   (37, 90, 38, 91),
   (122, 92, 123, 91),
   (207, 34, 208, 35),
   (205, 125, 206, 124),
   (206, 236, 207, 235),
   (175, 254, 176, 255),
   (198, 123, 199, 124),
   (229, 121, 230, 120),
   (42, 117, 43, 118),
   (130, 74, 131, 73),
   (133, 168, 134, 169),
   (132, 262, 133, 261),
   (131, 53, 132, 52),
   (231, 38, 232, 39),
   (196, 36, 197, 35),
   (29, 50, 30, 51),
   (28, 259, 29, 260),
   (26, 170, 27, 169),
   (27, 70, 28, 71),
   (208, 195, 209, 196),
   (31, 195, 32, 194),
   (219, 193, 220, 192),
   (49, 30, 50, 31),
   (48, 130, 49, 129),
   (46, 217, 47, 218),
   (45, 239, 46, 238),
   (66, 107, 67, 108),
   (173, 107, 174, 106),
   (257, 104, 258, 105),
   (88, 101, 89, 102),
   (7, 100, 8, 101),
   (152, 100, 153, 99),
   (143, 98, 144, 99),
   (14, 96, 15, 95),
   (114, 156, 115, 155),
   (112, 3, 113, 4),
   (111, 84, 112, 85),
   (110, 255, 111, 256),
   (109, 175, 110, 174),
   (108, 65, 109, 66),
   (69, 24, 70, 25),
   (102, 22, 103, 21),
   (170, 26, 171, 25),
   (258, 23, 259, 24),
   (87, 20, 88, 21),
   (6, 19, 7, 20),
   (154, 18, 155, 17),
   (141, 18, 142, 19),
   (105, 136, 106, 137),
   (153, 142, 154, 143),
   (5, 141, 6, 140),
   (86, 140, 87, 139),
   (256, 138, 257, 137),
   (171, 134, 172, 135),
   (68, 136, 69, 135),
   (215, 157, 216, 156),
   (213, 4, 214, 5),
   (212, 85, 213, 86),
   (178, 158, 179, 157),
   (253, 83, 254, 82),
   (176, 83, 177, 84),
   (64, 82, 65, 81),
   (249, 180, 250, 181),
   (251, 158, 252, 159),
   (177, 2, 178, 3),
   (252, 2, 253, 1),
   (63, 269, 64, 268),
   (53, 166, 54, 167),
   (51, 73, 52, 72),
   (55, 265, 56, 264),
   (138, 212, 139, 211),
   (113, 215, 114, 214),
   (22, 209, 23, 210),
   (103, 210, 104, 211),
   (242, 165, 243, 166),
   (241, 77, 242, 76),
   (243, 55, 244, 54),
   (244, 264, 245, 263),
   (239, 216, 240, 217),
   (128, 193, 129, 194),
   (47, 190, 48, 191),
   (240, 187, 241, 188)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (16, 0, 17, 21),
      (18, 23, 19, 14),
      (14, 19, 29, 20),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (13, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 35),
      (25, 36, 26, 30),
      (29, 35, 36, 15)],
     13,
     15,
     -1]]]],
 [[(661, 169, 662, 168),
   (670, 55, 671, 56),
   (672, 718, 673, 717),
   (643, 349, 644, 348),
   (412, 639, 413, 640),
   (427, 640, 428, 641),
   (350, 638, 351, 637),
   (28, 591, 29, 592),
   (566, 507, 567, 508),
   (568, 439, 569, 440),
   (567, 269, 568, 268),
   (564, 157, 565, 158),
   (563, 59, 564, 58),
   (13, 571, 14, 570),
   (562, 713, 563, 714),
   (33, 533, 34, 532),
   (384, 512, 385, 511),
   (504, 271, 505, 272),
   (207, 503, 208, 502),
   (151, 501, 152, 500),
   (103, 508, 104, 509),
   (9, 506, 10, 507),
   (355, 484, 356, 485),
   (754, 487, 755, 488),
   (453, 51, 454, 50),
   (447, 716, 448, 717),
   (206, 438, 207, 437),
   (11, 438, 12, 439),
   (383, 264, 384, 265),
   (385, 163, 386, 162),
   (389, 54, 390, 55),
   (391, 719, 392, 718),
   (320, 164, 321, 163),
   (324, 53, 325, 54),
   (326, 720, 327, 719),
   (748, 288, 749, 287),
   (276, 63, 277, 64),
   (277, 3, 278, 2),
   (275, 709, 276, 708),
   (211, 274, 212, 275),
   (155, 272, 156, 273),
   (105, 267, 106, 266),
   (10, 270, 11, 269),
   (34, 243, 35, 244),
   (208, 154, 209, 153),
   (213, 62, 214, 63),
   (3, 214, 4, 215),
   (212, 710, 213, 709),
   (30, 186, 31, 185),
   (101, 158, 102, 159),
   (7, 156, 8, 157),
   (100, 58, 101, 57),
   (99, 714, 100, 715),
   (64, 2, 65, 1),
   (61, 711, 62, 710),
   (5, 61, 6, 60),
   (740, 32, 741, 31),
   (4, 711, 5, 712),
   (707, 0, 708, 1),
   (6, 678, 7, 677),
   (712, 676, 713, 675),
   (59, 676, 60, 677),
   (273, 678, 274, 679),
   (210, 679, 211, 680),
   (560, 674, 561, 673),
   (97, 675, 98, 674),
   (387, 668, 388, 669),
   (149, 685, 150, 684),
   (680, 335, 681, 336),
   (152, 338, 153, 337),
   (763, 335, 0, 334),
   (706, 334, 707, 333),
   (65, 332, 66, 333),
   (278, 331, 279, 332),
   (215, 330, 216, 331),
   (559, 329, 560, 328),
   (96, 330, 97, 329),
   (392, 327, 393, 328),
   (498, 684, 499, 683),
   (501, 339, 502, 338),
   (239, 537, 240, 536),
   (240, 188, 241, 187),
   (235, 586, 236, 587),
   (234, 633, 235, 634),
   (233, 286, 234, 287),
   (227, 491, 228, 490),
   (228, 142, 229, 141),
   (390, 450, 391, 449),
   (104, 441, 105, 442),
   (325, 451, 326, 450),
   (671, 449, 672, 448),
   (715, 446, 716, 447),
   (56, 446, 57, 445),
   (159, 444, 160, 445),
   (509, 442, 510, 443),
   (267, 441, 268, 440),
   (612, 444, 613, 443),
   (29, 743, 30, 742),
   (26, 350, 27, 349),
   (25, 638, 26, 639),
   (148, 402, 149, 401),
   (497, 401, 498, 400),
   (760, 400, 761, 399),
   (703, 397, 704, 396),
   (69, 394, 70, 395),
   (282, 393, 283, 394),
   (220, 395, 221, 396),
   (553, 399, 554, 398),
   (632, 285, 633, 286),
   (626, 397, 627, 398),
   (629, 701, 630, 700),
   (623, 763, 624, 762),
   (618, 504, 619, 503),
   (619, 155, 620, 154),
   (622, 681, 623, 682),
   (621, 336, 622, 337),
   (270, 617, 271, 618),
   (505, 617, 506, 616),
   (160, 612, 161, 611),
   (102, 614, 103, 613),
   (388, 609, 389, 610),
   (669, 610, 670, 611),
   (323, 608, 324, 609),
   (455, 605, 456, 604),
   (585, 284, 586, 285),
   (583, 630, 584, 631),
   (580, 490, 581, 489),
   (581, 141, 582, 140),
   (571, 205, 572, 204),
   (582, 229, 583, 230),
   (144, 226, 145, 225),
   (493, 225, 494, 224),
   (750, 232, 751, 231),
   (701, 223, 702, 222),
   (628, 223, 629, 224),
   (68, 219, 69, 220),
   (281, 218, 282, 219),
   (203, 573, 204, 572),
   (198, 147, 199, 148),
   (197, 496, 198, 497),
   (196, 759, 197, 760),
   (193, 702, 194, 703),
   (194, 628, 195, 627),
   (192, 222, 193, 221),
   (190, 284, 191, 283),
   (217, 559, 218, 558),
   (280, 558, 281, 557),
   (67, 557, 68, 556),
   (195, 552, 196, 553),
   (625, 555, 626, 554),
   (704, 555, 705, 556),
   (752, 545, 753, 546),
   (494, 551, 495, 552),
   (145, 550, 146, 551),
   (579, 549, 580, 548),
   (414, 348, 415, 347),
   (537, 239, 538, 238),
   (538, 590, 539, 589),
   (535, 186, 536, 187),
   (473, 540, 474, 541),
   (479, 23, 480, 22),
   (474, 745, 475, 746),
   (478, 410, 479, 409),
   (476, 351, 477, 352),
   (480, 426, 481, 425),
   (471, 237, 472, 236),
   (475, 637, 476, 636),
   (472, 588, 473, 587),
   (470, 189, 471, 190),
   (722, 117, 723, 118),
   (52, 114, 53, 113),
   (607, 113, 608, 112),
   (451, 114, 452, 115),
   (321, 111, 322, 110),
   (666, 112, 667, 111),
   (386, 110, 387, 109),
   (161, 108, 162, 109),
   (510, 107, 511, 108),
   (265, 107, 266, 106),
   (646, 540, 647, 539),
   (649, 189, 650, 188),
   (647, 588, 648, 589),
   (648, 237, 649, 238),
   (641, 428, 642, 429),
   (645, 745, 646, 744),
   (644, 27, 645, 28),
   (642, 413, 643, 414),
   (737, 245, 738, 244),
   (743, 591, 744, 590),
   (741, 184, 742, 185),
   (738, 531, 739, 532),
   (143, 492, 144, 493),
   (137, 289, 138, 288),
   (263, 382, 264, 383),
   (513, 381, 514, 380),
   (164, 380, 165, 379),
   (665, 378, 666, 379),
   (318, 381, 319, 382),
   (452, 376, 453, 375),
   (606, 377, 607, 378),
   (51, 376, 52, 377),
   (720, 374, 721, 373),
   (115, 375, 116, 374),
   (371, 117, 372, 116),
   (372, 722, 373, 721),
   (370, 49, 371, 50),
   (368, 605, 369, 606),
   (369, 455, 370, 454),
   (364, 315, 365, 316),
   (367, 664, 368, 665),
   (365, 167, 366, 166),
   (183, 39, 184, 38),
   (180, 248, 181, 247),
   (181, 528, 182, 529),
   (459, 520, 460, 521),
   (319, 513, 320, 512),
   (663, 517, 664, 516),
   (165, 514, 166, 515),
   (366, 516, 367, 515),
   (424, 482, 425, 481),
   (423, 294, 424, 295),
   (363, 260, 364, 261),
   (169, 259, 170, 258),
   (660, 259, 661, 260),
   (317, 262, 318, 263),
   (458, 256, 459, 255),
   (530, 38, 531, 37),
   (534, 242, 535, 241),
   (170, 660, 171, 659),
   (322, 667, 323, 668),
   (457, 657, 458, 656),
   (256, 657, 257, 658),
   (519, 659, 520, 658),
   (602, 655, 603, 656),
   (45, 652, 46, 653),
   (727, 651, 728, 650),
   (167, 315, 168, 314),
   (662, 313, 663, 314),
   (456, 312, 457, 311),
   (261, 316, 262, 317),
   (517, 313, 518, 312),
   (603, 310, 604, 311),
   (48, 309, 49, 310),
   (723, 309, 724, 308),
   (343, 419, 344, 418),
   (342, 361, 343, 362),
   (341, 15, 342, 14),
   (340, 574, 341, 573),
   (339, 202, 340, 203),
   (731, 176, 732, 177),
   (40, 176, 41, 175),
   (594, 178, 595, 177),
   (527, 178, 528, 179),
   (248, 180, 249, 179),
   (460, 171, 461, 172),
   (429, 347, 430, 346),
   (436, 206, 437, 205),
   (434, 569, 435, 570),
   (435, 12, 436, 13),
   (433, 363, 434, 362),
   (430, 415, 431, 416),
   (651, 469, 652, 468),
   (726, 469, 727, 470),
   (44, 468, 45, 467),
   (598, 466, 599, 465),
   (521, 462, 522, 463),
   (251, 467, 252, 466),
   (172, 461, 173, 462),
   (242, 534, 243, 533),
   (246, 35, 247, 36),
   (209, 620, 210, 621),
   (565, 615, 566, 614),
   (8, 616, 9, 615),
   (689, 421, 690, 420),
   (688, 18, 689, 17),
   (686, 576, 687, 575),
   (685, 200, 686, 201),
   (561, 98, 562, 99),
   (216, 96, 217, 95),
   (279, 95, 280, 94),
   (66, 94, 67, 93),
   (705, 92, 706, 93),
   (761, 90, 762, 91),
   (499, 88, 500, 89),
   (624, 92, 625, 91),
   (150, 87, 151, 88),
   (86, 202, 87, 201),
   (85, 574, 86, 575),
   (83, 16, 84, 17),
   (82, 419, 83, 420),
   (354, 292, 355, 291),
   (482, 294, 483, 293),
   (518, 258, 519, 257),
   (601, 254, 602, 255),
   (43, 250, 44, 251),
   (728, 250, 729, 249),
   (729, 526, 730, 527),
   (42, 526, 43, 525),
   (597, 525, 598, 524),
   (41, 596, 42, 597),
   (730, 596, 731, 595),
   (426, 132, 427, 131),
   (352, 135, 353, 136),
   (411, 133, 412, 132),
   (477, 134, 478, 135),
   (751, 138, 752, 139),
   (24, 134, 25, 133),
   (577, 757, 578, 756),
   (232, 750, 233, 749),
   (146, 757, 147, 758),
   (495, 758, 496, 759),
   (687, 358, 688, 359),
   (84, 360, 85, 359),
   (15, 360, 16, 361),
   (129, 417, 130, 416),
   (128, 432, 129, 431),
   (130, 345, 131, 346),
   (127, 174, 128, 175),
   (125, 464, 126, 465),
   (122, 254, 123, 253),
   (126, 523, 127, 524),
   (124, 600, 125, 599),
   (120, 48, 121, 47),
   (118, 725, 119, 726),
   (121, 655, 122, 654),
   (119, 307, 120, 306),
   (735, 37, 736, 36),
   (592, 39, 593, 40),
   (182, 733, 183, 734),
   (245, 737, 246, 736),
   (529, 734, 530, 735),
   (32, 740, 33, 739),
   (593, 733, 594, 732),
   (226, 698, 227, 697),
   (549, 696, 550, 697),
   (755, 694, 756, 695),
   (491, 698, 492, 699),
   (578, 696, 579, 695),
   (142, 699, 143, 700),
   (421, 691, 422, 690),
   (357, 692, 358, 693),
   (89, 682, 90, 683),
   (356, 80, 357, 79),
   (422, 81, 423, 82),
   (139, 75, 140, 74),
   (584, 71, 585, 72),
   (485, 79, 486, 78),
   (753, 77, 754, 76),
   (546, 76, 547, 75),
   (230, 73, 231, 74),
   (631, 72, 632, 73),
   (191, 71, 192, 70),
   (296, 417, 297, 418),
   (295, 345, 296, 344),
   (297, 432, 298, 433),
   (298, 174, 299, 173),
   (303, 252, 304, 253),
   (299, 523, 300, 522),
   (300, 464, 301, 463),
   (301, 600, 302, 601),
   (304, 653, 305, 654),
   (305, 46, 306, 47),
   (302, 124, 303, 123),
   (307, 725, 308, 724),
   (547, 488, 548, 489),
   (541, 635, 542, 634),
   (543, 136, 544, 137),
   (542, 747, 543, 748),
   (544, 290, 545, 289),
   (746, 636, 747, 635),
   (402, 199, 403, 200),
   (403, 577, 404, 576),
   (404, 694, 405, 693),
   (406, 77, 407, 78),
   (405, 487, 406, 486),
   (407, 290, 408, 291),
   (408, 353, 409, 354),
   (410, 24, 411, 23),
   (18, 692, 19, 691),
   (19, 80, 20, 81),
   (20, 484, 21, 483),
   (21, 292, 22, 293)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (16, 0, 17, 21),
      (18, 23, 19, 14),
      (14, 19, 29, 20),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (13, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 35),
      (25, 36, 26, 30),
      (29, 35, 36, 15)],
     13,
     15,
     -1]]]],
 [[(103, 88, 104, 89),
   (140, 83, 141, 84),
   (138, 167, 139, 168),
   (139, 203, 140, 202),
   (232, 137, 233, 138),
   (136, 36, 137, 35),
   (143, 244, 144, 245),
   (146, 128, 147, 127),
   (126, 193, 127, 194),
   (125, 226, 126, 227),
   (124, 60, 125, 59),
   (128, 148, 129, 147),
   (241, 148, 242, 149),
   (242, 63, 243, 64),
   (245, 225, 246, 224),
   (243, 191, 244, 190),
   (41, 188, 42, 189),
   (42, 221, 43, 222),
   (43, 65, 44, 64),
   (44, 150, 45, 149),
   (9, 28, 10, 29),
   (160, 135, 161, 136),
   (159, 30, 160, 31),
   (81, 41, 82, 40),
   (204, 39, 205, 40),
   (4, 33, 5, 34),
   (112, 26, 113, 25),
   (84, 247, 85, 0),
   (98, 5, 99, 6),
   (102, 198, 103, 197),
   (106, 17, 107, 18),
   (99, 33, 100, 32),
   (101, 172, 102, 173),
   (166, 38, 167, 37),
   (27, 215, 28, 214),
   (201, 1, 202, 0),
   (90, 20, 91, 19),
   (195, 18, 196, 19),
   (175, 17, 176, 16),
   (24, 71, 25, 72),
   (145, 192, 146, 193),
   (142, 223, 143, 224),
   (153, 131, 154, 130),
   (152, 239, 153, 240),
   (150, 46, 151, 45),
   (144, 62, 145, 61),
   (62, 191, 63, 192),
   (60, 225, 61, 226),
   (68, 132, 69, 131),
   (67, 238, 68, 239),
   (65, 47, 66, 46),
   (220, 47, 221, 48),
   (217, 237, 218, 236),
   (216, 133, 217, 134),
   (222, 190, 223, 189),
   (114, 214, 115, 213),
   (110, 69, 111, 70),
   (52, 186, 53, 185),
   (240, 177, 241, 178),
   (129, 177, 130, 176),
   (219, 180, 220, 181),
   (66, 180, 67, 179),
   (151, 179, 152, 178),
   (13, 71, 14, 70),
   (10, 215, 11, 216),
   (174, 107, 175, 108),
   (194, 106, 195, 105),
   (91, 104, 92, 105),
   (210, 30, 211, 29),
   (209, 135, 210, 134),
   (162, 183, 163, 184),
   (207, 183, 208, 182),
   (77, 219, 78, 218),
   (75, 132, 76, 133),
   (73, 26, 74, 27),
   (78, 181, 79, 182),
   (23, 156, 24, 157),
   (108, 155, 109, 156),
   (15, 155, 16, 154),
   (186, 206, 187, 205),
   (187, 80, 188, 81),
   (184, 165, 185, 166),
   (72, 113, 73, 114),
   (14, 109, 15, 110),
   (211, 8, 212, 9),
   (74, 12, 75, 11),
   (158, 8, 159, 7),
   (31, 6, 32, 7),
   (111, 12, 112, 13),
   (169, 2, 170, 3),
   (20, 90, 21, 89),
   (21, 196, 22, 197),
   (22, 174, 23, 173),
   (163, 50, 164, 51),
   (79, 48, 80, 49),
   (206, 50, 207, 49),
   (51, 164, 52, 165),
   (55, 82, 56, 83),
   (54, 204, 55, 203),
   (53, 39, 54, 38),
   (56, 142, 57, 141),
   (57, 246, 58, 247),
   (58, 124, 59, 123),
   (208, 235, 209, 236),
   (76, 238, 77, 237),
   (161, 235, 162, 234),
   (227, 122, 228, 123),
   (230, 2, 231, 1),
   (228, 86, 229, 85),
   (229, 200, 230, 201),
   (233, 36, 234, 37),
   (231, 169, 232, 168),
   (170, 95, 171, 96),
   (34, 98, 35, 97),
   (3, 96, 4, 97),
   (199, 95, 200, 94),
   (86, 93, 87, 94),
   (121, 93, 122, 92),
   (87, 121, 88, 120),
   (100, 118, 101, 117),
   (198, 119, 199, 120),
   (171, 119, 172, 118),
   (157, 116, 158, 117),
   (212, 116, 213, 115)],
  [unnamed link-15_filled(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (16, 0, 17, 21),
      (18, 23, 19, 14),
      (14, 19, 29, 20),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (13, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 43),
      (25, 44, 26, 30),
      (35, 36, 15, 29),
      (35, 37, 38, 36),
      (37, 39, 40, 38),
      (39, 41, 42, 40),
      (41, 43, 44, 42)],
     13,
     15,
     5]]]],
 [[(11, 19, 12, 18),
   (257, 243, 258, 242),
   (15, 254, 16, 255),
   (52, 243, 53, 244),
   (39, 236, 40, 237),
   (218, 179, 219, 180),
   (224, 140, 225, 139),
   (221, 88, 222, 89),
   (123, 209, 124, 208),
   (89, 220, 90, 221),
   (133, 180, 134, 181),
   (91, 179, 92, 178),
   (165, 20, 166, 21),
   (17, 168, 18, 169),
   (38, 151, 39, 152),
   (84, 137, 85, 138),
   (115, 108, 116, 109),
   (122, 21, 123, 22),
   (102, 20, 103, 19),
   (61, 25, 62, 24),
   (16, 56, 17, 55),
   (184, 236, 185, 235),
   (185, 151, 186, 150),
   (207, 22, 208, 23),
   (204, 103, 205, 104),
   (206, 122, 207, 121),
   (200, 247, 201, 248),
   (106, 246, 107, 245),
   (104, 203, 105, 204),
   (109, 114, 110, 115),
   (25, 198, 26, 199),
   (196, 2, 197, 1),
   (195, 268, 196, 269),
   (194, 42, 195, 41),
   (191, 32, 192, 33),
   (118, 202, 119, 201),
   (117, 246, 118, 247),
   (261, 228, 262, 229),
   (259, 83, 260, 82),
   (260, 141, 261, 142),
   (54, 14, 55, 13),
   (255, 14, 256, 15),
   (270, 238, 271, 237),
   (271, 153, 272, 152),
   (56, 157, 57, 158),
   (47, 139, 48, 138),
   (50, 83, 51, 84),
   (49, 227, 50, 226),
   (86, 223, 87, 224),
   (188, 71, 189, 72),
   (36, 74, 37, 73),
   (273, 72, 274, 73),
   (57, 98, 58, 99),
   (166, 102, 167, 101),
   (156, 98, 157, 97),
   (241, 97, 242, 96),
   (68, 95, 69, 96),
   (142, 93, 143, 94),
   (81, 95, 82, 94),
   (77, 146, 78, 147),
   (74, 275, 75, 276),
   (75, 35, 76, 34),
   (76, 189, 77, 190),
   (79, 130, 80, 131),
   (70, 130, 71, 129),
   (238, 127, 239, 128),
   (153, 128, 154, 129),
   (163, 120, 164, 121),
   (59, 127, 60, 126),
   (233, 193, 234, 192),
   (232, 31, 233, 32),
   (234, 278, 235, 277),
   (231, 133, 232, 132),
   (240, 156, 241, 155),
   (229, 92, 230, 93),
   (230, 218, 231, 217),
   (80, 215, 81, 216),
   (69, 215, 70, 214),
   (239, 212, 240, 213),
   (154, 213, 155, 214),
   (164, 205, 165, 206),
   (58, 212, 59, 211),
   (147, 191, 148, 190),
   (148, 33, 149, 34),
   (149, 277, 150, 276),
   (143, 217, 144, 216),
   (144, 132, 145, 131),
   (99, 8, 100, 9),
   (125, 7, 126, 6),
   (210, 8, 211, 7),
   (60, 5, 61, 6),
   (167, 11, 168, 10),
   (140, 228, 141, 227),
   (145, 78, 146, 79),
   (193, 182, 194, 183),
   (272, 188, 273, 187),
   (37, 186, 38, 187),
   (30, 182, 31, 181),
   (278, 183, 279, 184),
   (171, 245, 172, 244),
   (169, 12, 170, 13),
   (43, 266, 44, 267),
   (28, 268, 29, 267),
   (0, 269, 1, 270),
   (177, 263, 178, 262),
   (219, 264, 220, 265),
   (134, 265, 135, 266),
   (90, 264, 91, 263),
   (176, 88, 177, 87),
   (174, 135, 175, 136),
   (175, 222, 176, 223),
   (258, 67, 259, 68),
   (51, 67, 52, 66),
   (172, 65, 173, 66),
   (116, 64, 117, 63),
   (107, 64, 108, 65),
   (199, 63, 200, 62),
   (4, 198, 5, 197),
   (274, 35, 275, 36),
   (173, 44, 174, 45),
   (225, 49, 226, 48),
   (85, 46, 86, 47),
   (136, 46, 137, 45),
   (279, 41, 0, 40),
   (29, 42, 30, 43),
   (23, 162, 24, 163),
   (9, 159, 10, 158),
   (209, 160, 210, 161),
   (124, 161, 125, 162),
   (100, 160, 101, 159),
   (113, 27, 114, 26),
   (112, 3, 113, 4),
   (250, 106, 251, 105),
   (248, 119, 249, 120),
   (249, 202, 250, 203),
   (251, 171, 252, 170),
   (252, 53, 253, 54),
   (253, 257, 254, 256),
   (2, 111, 3, 112),
   (27, 111, 28, 110)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 0, 23, 29),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (17, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 35),
      (25, 36, 26, 30),
      (29, 35, 36, 21)],
     17,
     21,
     -1]]]],
 [[(0, 103, 1, 104),
   (188, 106, 189, 105),
   (121, 175, 122, 174),
   (171, 117, 172, 116),
   (178, 65, 179, 66),
   (143, 60, 144, 61),
   (119, 14, 120, 15),
   (124, 67, 125, 68),
   (16, 117, 17, 118),
   (86, 63, 87, 64),
   (9, 65, 10, 64),
   (47, 63, 48, 62),
   (25, 38, 26, 39),
   (162, 40, 163, 39),
   (108, 38, 109, 37),
   (101, 146, 102, 147),
   (32, 146, 33, 145),
   (149, 156, 150, 157),
   (148, 32, 149, 31),
   (147, 102, 148, 103),
   (42, 29, 43, 30),
   (92, 28, 93, 27),
   (34, 45, 35, 46),
   (99, 45, 100, 44),
   (111, 152, 112, 153),
   (165, 150, 166, 151),
   (22, 152, 23, 151),
   (87, 71, 88, 70),
   (144, 74, 145, 73),
   (46, 71, 47, 72),
   (107, 96, 108, 97),
   (161, 94, 162, 95),
   (26, 96, 27, 95),
   (196, 12, 197, 11),
   (195, 176, 196, 177),
   (194, 123, 195, 124),
   (23, 182, 24, 183),
   (163, 185, 164, 184),
   (110, 182, 111, 181),
   (78, 116, 79, 115),
   (77, 171, 78, 170),
   (75, 18, 76, 19),
   (79, 139, 80, 138),
   (15, 140, 16, 141),
   (172, 140, 173, 139),
   (118, 142, 119, 141),
   (122, 53, 123, 54),
   (85, 48, 86, 49),
   (175, 52, 176, 53),
   (12, 52, 13, 51),
   (69, 9, 70, 8),
   (68, 179, 69, 180),
   (13, 82, 14, 83),
   (173, 81, 174, 80),
   (120, 82, 121, 81),
   (142, 132, 143, 131),
   (49, 128, 50, 129),
   (84, 130, 85, 129),
   (66, 125, 67, 126),
   (10, 127, 11, 128),
   (177, 127, 178, 126),
   (57, 74, 58, 75),
   (56, 20, 57, 19),
   (58, 133, 59, 134),
   (55, 168, 56, 169),
   (54, 113, 55, 114),
   (137, 115, 138, 114),
   (136, 170, 137, 169),
   (132, 59, 133, 60),
   (134, 17, 135, 18),
   (135, 77, 136, 76),
   (83, 199, 84, 198),
   (50, 197, 51, 198),
   (100, 203, 101, 0),
   (33, 203, 34, 202),
   (72, 201, 73, 202),
   (130, 199, 131, 200),
   (61, 201, 62, 200),
   (91, 106, 92, 107),
   (43, 105, 44, 104),
   (183, 5, 184, 4),
   (109, 6, 110, 7),
   (164, 3, 165, 4),
   (24, 6, 25, 5),
   (93, 160, 94, 161),
   (40, 160, 41, 159),
   (20, 168, 21, 167),
   (185, 159, 186, 158),
   (2, 157, 3, 158),
   (1, 31, 2, 30),
   (187, 28, 188, 29),
   (153, 112, 154, 113),
   (155, 166, 156, 167),
   (154, 22, 155, 21),
   (97, 90, 98, 91),
   (36, 90, 37, 89),
   (7, 193, 8, 192),
   (180, 193, 181, 194),
   (41, 187, 42, 186),
   (35, 190, 36, 191),
   (88, 191, 89, 192),
   (98, 190, 99, 189)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (16, 0, 17, 21),
      (29, 23, 15, 20),
      (19, 32, 28, 33),
      (33, 28, 34, 27),
      (23, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 39),
      (25, 40, 26, 30),
      (14, 35, 36, 29),
      (38, 37, 39, 40),
      (36, 35, 37, 38)],
     19,
     14,
     -3]]]],
 [[(26, 9, 27, 10),
   (84, 15, 85, 16),
   (199, 11, 200, 10),
   (62, 46, 63, 45),
   (161, 48, 162, 49),
   (0, 146, 1, 145),
   (181, 122, 182, 123),
   (183, 42, 184, 43),
   (182, 59, 183, 60),
   (184, 164, 185, 163),
   (103, 162, 104, 163),
   (106, 66, 107, 65),
   (104, 48, 105, 47),
   (105, 129, 106, 128),
   (41, 164, 42, 165),
   (43, 61, 44, 60),
   (44, 124, 45, 123),
   (33, 97, 34, 96),
   (34, 191, 35, 192),
   (49, 103, 50, 102),
   (50, 185, 51, 186),
   (51, 41, 52, 40),
   (112, 175, 113, 176),
   (3, 169, 4, 168),
   (54, 169, 55, 170),
   (2, 55, 3, 56),
   (172, 39, 173, 40),
   (173, 187, 174, 186),
   (174, 101, 175, 102),
   (61, 125, 62, 124),
   (177, 110, 178, 111),
   (130, 112, 131, 111),
   (137, 193, 138, 192),
   (139, 32, 140, 33),
   (138, 95, 139, 96),
   (131, 176, 132, 177),
   (125, 47, 126, 46),
   (153, 135, 154, 134),
   (159, 179, 160, 178),
   (152, 94, 153, 93),
   (150, 32, 151, 31),
   (154, 195, 155, 196),
   (158, 109, 159, 110),
   (67, 109, 68, 108),
   (71, 195, 72, 194),
   (75, 30, 76, 31),
   (73, 94, 74, 95),
   (66, 179, 67, 180),
   (72, 135, 73, 136),
   (1, 118, 2, 119),
   (198, 89, 199, 90),
   (25, 201, 26, 200),
   (6, 83, 7, 84),
   (165, 83, 166, 82),
   (56, 85, 57, 86),
   (36, 148, 37, 147),
   (35, 142, 36, 143),
   (38, 79, 39, 80),
   (21, 146, 22, 147),
   (116, 38, 117, 37),
   (115, 188, 116, 189),
   (114, 100, 115, 99),
   (100, 77, 101, 78),
   (97, 140, 98, 141),
   (98, 150, 99, 149),
   (107, 180, 108, 181),
   (189, 148, 190, 149),
   (187, 79, 188, 78),
   (190, 142, 191, 141),
   (18, 54, 19, 53),
   (19, 170, 20, 171),
   (20, 118, 21, 117),
   (193, 137, 194, 136),
   (196, 155, 197, 156),
   (197, 71, 198, 70),
   (27, 68, 28, 69),
   (28, 158, 29, 157),
   (29, 132, 30, 133),
   (171, 80, 172, 81),
   (52, 82, 53, 81),
   (113, 77, 114, 76),
   (151, 74, 152, 75),
   (92, 133, 93, 134),
   (160, 129, 161, 130),
   (166, 17, 167, 18),
   (167, 5, 168, 4),
   (90, 69, 91, 70),
   (91, 157, 92, 156),
   (11, 24, 12, 25),
   (88, 24, 89, 23),
   (143, 22, 144, 23),
   (5, 17, 6, 16),
   (144, 0, 145, 203),
   (87, 202, 88, 203),
   (12, 202, 13, 201),
   (57, 15, 58, 14),
   (58, 7, 59, 8),
   (64, 128, 65, 127),
   (119, 86, 120, 87),
   (121, 8, 122, 9),
   (120, 14, 121, 13),
   (126, 64, 127, 63)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (16, 0, 17, 21),
      (23, 19, 15, 29),
      (14, 32, 28, 33),
      (33, 28, 34, 27),
      (23, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 37),
      (25, 38, 26, 30),
      (20, 35, 36, 29),
      (36, 35, 37, 38)],
     14,
     20,
     -2]]]],
 [[(4, 92, 5, 91),
   (68, 14, 69, 13),
   (134, 16, 135, 15),
   (191, 14, 192, 15),
   (71, 26, 72, 27),
   (189, 25, 190, 24),
   (17, 8, 18, 9),
   (56, 41, 57, 42),
   (58, 105, 59, 106),
   (55, 219, 56, 218),
   (59, 84, 60, 85),
   (60, 149, 61, 150),
   (57, 177, 58, 176),
   (183, 76, 184, 77),
   (0, 25, 1, 26),
   (229, 160, 230, 161),
   (223, 144, 224, 145),
   (221, 80, 222, 81),
   (220, 180, 221, 179),
   (43, 216, 44, 217),
   (39, 178, 40, 179),
   (38, 82, 39, 81),
   (37, 147, 38, 146),
   (30, 162, 31, 161),
   (106, 175, 107, 176),
   (104, 84, 105, 83),
   (102, 148, 103, 147),
   (136, 23, 137, 24),
   (203, 79, 204, 78),
   (204, 181, 205, 182),
   (200, 146, 201, 145),
   (201, 222, 202, 223),
   (197, 35, 198, 34),
   (3, 157, 4, 156),
   (94, 19, 95, 20),
   (95, 7, 96, 6),
   (231, 133, 232, 132),
   (28, 131, 29, 132),
   (22, 157, 23, 158),
   (21, 92, 22, 93),
   (29, 195, 30, 194),
   (230, 193, 231, 194),
   (125, 148, 126, 149),
   (123, 82, 124, 83),
   (122, 178, 123, 177),
   (133, 193, 134, 192),
   (124, 103, 125, 104),
   (120, 220, 121, 219),
   (121, 40, 122, 41),
   (20, 168, 21, 167),
   (5, 168, 6, 169),
   (232, 68, 233, 67),
   (27, 66, 28, 67),
   (128, 63, 129, 64),
   (46, 65, 47, 66),
   (213, 65, 214, 64),
   (110, 61, 111, 62),
   (12, 70, 13, 69),
   (11, 190, 12, 191),
   (10, 136, 11, 135),
   (62, 127, 63, 128),
   (79, 118, 80, 119),
   (180, 120, 181, 119),
   (143, 116, 144, 117),
   (202, 118, 203, 117),
   (142, 208, 143, 207),
   (182, 205, 183, 206),
   (77, 207, 78, 206),
   (115, 224, 116, 225),
   (113, 37, 114, 36),
   (111, 126, 112, 127),
   (114, 200, 115, 199),
   (75, 54, 76, 55),
   (184, 54, 185, 53),
   (141, 52, 142, 53),
   (211, 196, 212, 197),
   (212, 130, 213, 129),
   (210, 33, 211, 34),
   (208, 226, 209, 225),
   (50, 227, 51, 228),
   (49, 33, 50, 32),
   (47, 130, 48, 131),
   (48, 196, 49, 195),
   (159, 16, 160, 17),
   (158, 10, 159, 9),
   (166, 94, 167, 93),
   (137, 3, 138, 2),
   (188, 1, 189, 2),
   (70, 0, 71, 233),
   (164, 7, 165, 8),
   (165, 19, 166, 18),
   (163, 228, 164, 229),
   (162, 32, 163, 31),
   (198, 100, 199, 99),
   (35, 101, 36, 100),
   (226, 97, 227, 98),
   (112, 102, 113, 101),
   (209, 98, 210, 99),
   (51, 97, 52, 96),
   (169, 141, 170, 140),
   (170, 185, 171, 186),
   (171, 75, 172, 74),
   (173, 42, 174, 43),
   (172, 218, 173, 217),
   (174, 107, 175, 108),
   (85, 109, 86, 108),
   (86, 215, 87, 216),
   (87, 45, 88, 44),
   (88, 73, 89, 74),
   (89, 187, 90, 186),
   (90, 139, 91, 140),
   (150, 110, 151, 109),
   (151, 214, 152, 215),
   (152, 46, 153, 45),
   (153, 72, 154, 73),
   (154, 188, 155, 187),
   (155, 138, 156, 139)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 29, 23, 21),
      (17, 32, 28, 33),
      (33, 28, 34, 27),
      (23, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 43),
      (25, 44, 26, 30),
      (0, 35, 36, 29),
      (42, 41, 43, 44),
      (40, 39, 41, 42),
      (38, 37, 39, 40),
      (36, 35, 37, 38)],
     17,
     0,
     -5]]]],
 [[(503, 53, 504, 52),
   (144, 54, 145, 53),
   (57, 236, 58, 237),
   (599, 54, 600, 55),
   (76, 219, 77, 220),
   (137, 195, 138, 194),
   (498, 140, 499, 139),
   (138, 393, 139, 394),
   (143, 546, 144, 547),
   (146, 243, 147, 244),
   (145, 505, 146, 504),
   (302, 153, 303, 154),
   (158, 227, 159, 228),
   (281, 166, 282, 167),
   (465, 165, 466, 164),
   (161, 521, 162, 520),
   (582, 165, 583, 166),
   (441, 197, 442, 196),
   (606, 195, 607, 196),
   (306, 197, 307, 198),
   (300, 234, 301, 233),
   (385, 235, 386, 234),
   (543, 239, 544, 238),
   (586, 226, 587, 225),
   (506, 241, 507, 242),
   (508, 239, 509, 240),
   (597, 243, 598, 242),
   (279, 468, 280, 469),
   (278, 523, 279, 524),
   (280, 580, 281, 579),
   (297, 514, 298, 515),
   (295, 539, 296, 538),
   (299, 385, 300, 384),
   (382, 515, 383, 516),
   (604, 392, 605, 391),
   (497, 392, 498, 393),
   (471, 527, 472, 526),
   (467, 580, 468, 581),
   (502, 547, 503, 548),
   (542, 509, 543, 510),
   (576, 527, 577, 528),
   (600, 546, 601, 545),
   (220, 75, 221, 76),
   (168, 74, 169, 73),
   (578, 71, 579, 72),
   (469, 71, 470, 70),
   (276, 67, 277, 68),
   (381, 62, 382, 63),
   (544, 55, 545, 56),
   (296, 61, 297, 62),
   (63, 380, 64, 381),
   (521, 374, 522, 375),
   (584, 372, 585, 371),
   (162, 375, 163, 376),
   (222, 370, 223, 369),
   (464, 373, 465, 374),
   (56, 593, 57, 594),
   (510, 595, 511, 596),
   (237, 595, 238, 594),
   (541, 597, 542, 596),
   (387, 593, 388, 592),
   (156, 587, 157, 588),
   (644, 586, 645, 585),
   (64, 293, 65, 294),
   (537, 295, 538, 294),
   (517, 290, 518, 291),
   (379, 293, 380, 292),
   (581, 466, 582, 467),
   (160, 464, 161, 463),
   (383, 456, 384, 457),
   (232, 457, 233, 458),
   (513, 455, 514, 454),
   (539, 452, 540, 453),
   (60, 454, 61, 453),
   (298, 455, 299, 456),
   (488, 259, 489, 260),
   (490, 38, 491, 37),
   (216, 173, 217, 174),
   (212, 568, 213, 567),
   (210, 481, 211, 482),
   (209, 267, 210, 266),
   (202, 35, 203, 36),
   (86, 28, 87, 27),
   (85, 268, 86, 269),
   (84, 480, 85, 479),
   (80, 571, 81, 572),
   (78, 172, 79, 171),
   (536, 273, 537, 274),
   (535, 25, 536, 24),
   (529, 473, 530, 472),
   (528, 575, 529, 576),
   (522, 164, 523, 163),
   (525, 69, 526, 68),
   (247, 140, 248, 141),
   (252, 390, 253, 389),
   (244, 550, 245, 549),
   (249, 46, 250, 47),
   (246, 499, 247, 500),
   (449, 501, 450, 500),
   (450, 245, 451, 246),
   (447, 49, 448, 48),
   (448, 142, 449, 141),
   (451, 550, 452, 551),
   (443, 390, 444, 391),
   (446, 601, 447, 602),
   (323, 623, 324, 622),
   (325, 424, 326, 425),
   (324, 364, 325, 363),
   (321, 215, 322, 214),
   (319, 82, 320, 83),
   (322, 175, 323, 176),
   (320, 570, 321, 569),
   (318, 477, 319, 478),
   (316, 270, 317, 269),
   (315, 26, 316, 27),
   (624, 423, 625, 424),
   (623, 365, 624, 364),
   (618, 212, 619, 211),
   (620, 177, 621, 178),
   (619, 567, 620, 566),
   (617, 480, 618, 481),
   (616, 268, 617, 267),
   (614, 87, 615, 88),
   (615, 28, 616, 29),
   (613, 315, 614, 314),
   (133, 310, 134, 311),
   (134, 609, 135, 610),
   (129, 31, 130, 30),
   (128, 207, 129, 208),
   (126, 265, 127, 266),
   (125, 483, 126, 482),
   (124, 565, 125, 566),
   (119, 179, 120, 178),
   (122, 359, 123, 360),
   (123, 429, 124, 428),
   (642, 159, 643, 160),
   (641, 462, 642, 463),
   (645, 225, 646, 224),
   (643, 285, 644, 284),
   (639, 377, 640, 376),
   (640, 519, 641, 520),
   (636, 69, 637, 70),
   (591, 152, 592, 153),
   (386, 151, 387, 152),
   (540, 147, 541, 148),
   (235, 150, 236, 151),
   (512, 150, 513, 149),
   (59, 149, 60, 148),
   (439, 308, 440, 309),
   (436, 34, 437, 33),
   (434, 205, 435, 206),
   (432, 263, 433, 264),
   (429, 485, 430, 484),
   (431, 562, 432, 563),
   (426, 180, 427, 179),
   (425, 362, 426, 363),
   (240, 507, 241, 508),
   (598, 505, 599, 506),
   (58, 512, 59, 511),
   (361, 180, 362, 181),
   (356, 562, 357, 561),
   (357, 486, 358, 487),
   (355, 263, 356, 262),
   (353, 205, 354, 204),
   (351, 34, 352, 35),
   (397, 440, 398, 441),
   (395, 136, 396, 137),
   (396, 608, 397, 607),
   (398, 308, 399, 307),
   (461, 228, 462, 229),
   (285, 227, 286, 226),
   (301, 591, 302, 590),
   (283, 373, 284, 372),
   (200, 650, 201, 649),
   (199, 349, 200, 348),
   (198, 399, 199, 400),
   (229, 289, 230, 288),
   (157, 286, 158, 287),
   (460, 287, 461, 288),
   (583, 283, 584, 282),
   (22, 534, 23, 533),
   (19, 475, 20, 474),
   (18, 573, 19, 574),
   (14, 168, 15, 167),
   (15, 73, 16, 72),
   (12, 223, 13, 224),
   (13, 370, 14, 371),
   (106, 22, 107, 21),
   (110, 271, 111, 272),
   (105, 477, 106, 476),
   (103, 570, 104, 571),
   (101, 175, 102, 174),
   (104, 82, 105, 81),
   (102, 215, 103, 216),
   (100, 365, 101, 366),
   (99, 423, 100, 422),
   (98, 625, 99, 626),
   (97, 326, 98, 327),
   (564, 483, 565, 484),
   (496, 605, 497, 606),
   (495, 443, 496, 442),
   (494, 305, 495, 306),
   (492, 347, 493, 348),
   (493, 401, 494, 400),
   (491, 648, 492, 649),
   (524, 637, 525, 638),
   (277, 639, 278, 638),
   (470, 635, 471, 636),
   (577, 635, 578, 634),
   (169, 632, 170, 633),
   (77, 630, 78, 631),
   (218, 630, 219, 629),
   (366, 628, 367, 627),
   (421, 626, 422, 627),
   (256, 39, 257, 40),
   (257, 647, 258, 646),
   (254, 401, 255, 402),
   (255, 347, 256, 346),
   (253, 305, 254, 304),
   (251, 444, 252, 445),
   (248, 604, 249, 603),
   (628, 419, 629, 420),
   (367, 420, 368, 421),
   (217, 418, 218, 419),
   (79, 417, 80, 416),
   (172, 418, 173, 417),
   (572, 415, 573, 416),
   (475, 415, 476, 414),
   (274, 411, 275, 412),
   (531, 413, 532, 412),
   (49, 143, 50, 142),
   (51, 548, 52, 549),
   (50, 502, 51, 501),
   (47, 602, 48, 603),
   (45, 250, 46, 251),
   (44, 446, 45, 445),
   (42, 303, 43, 304),
   (40, 345, 41, 346),
   (41, 403, 42, 402),
   (38, 647, 39, 648),
   (530, 335, 531, 336),
   (275, 337, 276, 336),
   (473, 334, 474, 335),
   (574, 334, 575, 333),
   (170, 331, 171, 332),
   (74, 329, 75, 330),
   (221, 329, 222, 328),
   (368, 328, 369, 327),
   (631, 331, 632, 330),
   (0, 309, 1, 310),
   (1, 608, 2, 609),
   (2, 136, 3, 135),
   (651, 439, 0, 438),
   (650, 349, 651, 350),
   (107, 533, 108, 532),
   (20, 414, 21, 413),
   (25, 272, 26, 273),
   (17, 332, 18, 333),
   (16, 633, 17, 634),
   (427, 121, 428, 120),
   (621, 118, 622, 119),
   (360, 121, 361, 122),
   (213, 116, 214, 117),
   (176, 118, 177, 117),
   (568, 115, 569, 116),
   (478, 114, 479, 113),
   (270, 111, 271, 112),
   (83, 115, 84, 114),
   (23, 109, 24, 108),
   (317, 112, 318, 113),
   (534, 110, 535, 109),
   (358, 95, 359, 96),
   (181, 97, 182, 96),
   (563, 92, 564, 93),
   (485, 95, 486, 94),
   (264, 91, 265, 92),
   (208, 89, 209, 90),
   (29, 89, 30, 88),
   (430, 94, 431, 93),
   (127, 91, 128, 90),
   (343, 589, 344, 588),
   (344, 155, 345, 156),
   (342, 459, 343, 460),
   (341, 231, 342, 230),
   (340, 290, 341, 289),
   (338, 378, 339, 377),
   (339, 518, 340, 519),
   (337, 66, 338, 67),
   (350, 7, 351, 8),
   (489, 11, 490, 10),
   (258, 11, 259, 12),
   (201, 8, 202, 9),
   (36, 10, 37, 9),
   (437, 7, 438, 6),
   (132, 6, 133, 5),
   (610, 3, 611, 4),
   (311, 4, 312, 5),
   (43, 388, 44, 389),
   (182, 488, 183, 487),
   (187, 352, 188, 353),
   (183, 560, 184, 561),
   (184, 261, 185, 262),
   (188, 436, 189, 435),
   (186, 203, 187, 204),
   (189, 33, 190, 32),
   (190, 132, 191, 131),
   (192, 611, 193, 612),
   (191, 312, 192, 313),
   (193, 395, 194, 394),
   (552, 314, 553, 313),
   (551, 613, 552, 612),
   (554, 31, 555, 32),
   (553, 130, 554, 131),
   (556, 433, 557, 434),
   (555, 207, 556, 206),
   (557, 355, 558, 354),
   (559, 261, 560, 260),
   (558, 185, 559, 186),
   (404, 589, 405, 590),
   (403, 155, 404, 154),
   (405, 459, 406, 458),
   (406, 231, 407, 232),
   (408, 291, 409, 292),
   (407, 517, 408, 516),
   (410, 66, 411, 65),
   (409, 378, 410, 379)],
  [unnamed link-14_filled(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (18, 13, 19, 14),
      (16, 0, 17, 21),
      (14, 19, 15, 23),
      (29, 17, 11, 18),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (20, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 43),
      (25, 44, 26, 30),
      (35, 36, 10, 29),
      (35, 37, 38, 36),
      (37, 39, 40, 38),
      (39, 41, 42, 40),
      (41, 43, 44, 42)],
     20,
     10,
     5]]]],
 [[(923, 277, 0, 276),
   (891, 708, 892, 709),
   (896, 538, 897, 537),
   (894, 226, 895, 225),
   (881, 60, 882, 61),
   (806, 875, 807, 876),
   (489, 876, 490, 877),
   (420, 871, 421, 872),
   (350, 884, 351, 883),
   (176, 874, 177, 873),
   (852, 274, 853, 273),
   (844, 210, 845, 209),
   (834, 719, 835, 720),
   (821, 702, 822, 703),
   (841, 589, 842, 588),
   (814, 552, 815, 551),
   (828, 532, 829, 531),
   (528, 834, 529, 833),
   (492, 809, 493, 810),
   (805, 488, 806, 489),
   (827, 448, 828, 449),
   (816, 238, 817, 237),
   (799, 183, 800, 182),
   (180, 802, 181, 801),
   (147, 831, 148, 830),
   (628, 796, 629, 795),
   (412, 793, 413, 794),
   (736, 769, 737, 770),
   (284, 768, 285, 767),
   (741, 310, 742, 311),
   (739, 283, 740, 282),
   (597, 717, 598, 716),
   (527, 719, 528, 718),
   (449, 720, 450, 721),
   (143, 715, 144, 714),
   (220, 716, 221, 715),
   (711, 227, 712, 226),
   (608, 702, 609, 701),
   (542, 708, 543, 707),
   (435, 700, 436, 701),
   (339, 699, 340, 698),
   (229, 707, 230, 706),
   (158, 700, 159, 699),
   (693, 275, 694, 274),
   (615, 554, 616, 555),
   (601, 532, 602, 533),
   (522, 591, 523, 592),
   (602, 448, 603, 447),
   (616, 241, 617, 242),
   (145, 598, 146, 599),
   (576, 267, 577, 268),
   (428, 556, 429, 555),
   (348, 549, 349, 550),
   (167, 552, 168, 553),
   (541, 228, 542, 229),
   (153, 536, 154, 537),
   (533, 447, 534, 446),
   (509, 272, 510, 273),
   (418, 483, 419, 484),
   (179, 485, 180, 484),
   (421, 361, 422, 360),
   (416, 182, 417, 181),
   (161, 433, 162, 432),
   (150, 446, 151, 445),
   (425, 54, 426, 55),
   (27, 384, 28, 385),
   (346, 235, 347, 236),
   (313, 280, 314, 281),
   (200, 269, 201, 270),
   (128, 275, 129, 276),
   (410, 632, 411, 631),
   (406, 636, 407, 635),
   (107, 792, 108, 793),
   (105, 631, 106, 630),
   (106, 411, 107, 412),
   (636, 406, 637, 405),
   (409, 104, 410, 105),
   (632, 104, 633, 103),
   (46, 785, 47, 786),
   (51, 98, 52, 99),
   (45, 641, 46, 640),
   (47, 400, 48, 401),
   (480, 413, 481, 414),
   (482, 184, 483, 183),
   (481, 108, 482, 109),
   (185, 103, 186, 102),
   (186, 408, 187, 407),
   (187, 634, 188, 635),
   (184, 792, 185, 791),
   (869, 179, 870, 178),
   (866, 803, 867, 804),
   (870, 419, 871, 420),
   (865, 627, 866, 626),
   (868, 485, 869, 486),
   (783, 44, 784, 45),
   (789, 100, 790, 101),
   (784, 642, 785, 641),
   (787, 402, 788, 403),
   (363, 405, 364, 404),
   (362, 102, 363, 101),
   (364, 637, 365, 638),
   (361, 791, 362, 790),
   (260, 100, 261, 99),
   (574, 856, 575, 855),
   (577, 198, 578, 199),
   (268, 199, 269, 200),
   (397, 197, 398, 196),
   (644, 195, 645, 196),
   (41, 195, 42, 194),
   (780, 194, 781, 193),
   (687, 465, 688, 464),
   (686, 579, 687, 580),
   (682, 854, 683, 853),
   (685, 202, 686, 203),
   (684, 271, 685, 272),
   (683, 508, 684, 509),
   (848, 514, 849, 513),
   (575, 506, 576, 507),
   (266, 505, 267, 506),
   (398, 504, 399, 503),
   (643, 502, 644, 503),
   (42, 502, 43, 501),
   (192, 499, 193, 500),
   (781, 501, 782, 500),
   (461, 90, 462, 91),
   (585, 87, 586, 86),
   (845, 84, 846, 85),
   (208, 86, 209, 85),
   (516, 84, 517, 83),
   (133, 83, 134, 82),
   (917, 80, 918, 81),
   (316, 80, 317, 79),
   (733, 76, 734, 77),
   (285, 79, 286, 78),
   (766, 77, 767, 78),
   (662, 82, 663, 81),
   (383, 26, 384, 27),
   (382, 75, 383, 76),
   (374, 666, 375, 665),
   (380, 765, 381, 766),
   (377, 289, 378, 288),
   (381, 732, 382, 733),
   (379, 319, 380, 318),
   (378, 915, 379, 916),
   (376, 136, 377, 135),
   (375, 519, 376, 518),
   (373, 211, 374, 210),
   (372, 843, 373, 844),
   (371, 587, 372, 586),
   (370, 457, 371, 458),
   (25, 74, 26, 75),
   (13, 671, 14, 670),
   (19, 760, 20, 761),
   (20, 292, 21, 291),
   (24, 731, 25, 732),
   (23, 321, 24, 320),
   (21, 912, 22, 913),
   (22, 140, 23, 139),
   (17, 521, 18, 520),
   (18, 214, 19, 213),
   (15, 840, 16, 841),
   (16, 590, 17, 589),
   (14, 455, 15, 456),
   (675, 9, 676, 8),
   (669, 457, 670, 456),
   (668, 587, 669, 588),
   (667, 843, 668, 842),
   (666, 211, 667, 212),
   (664, 517, 665, 518),
   (663, 134, 664, 135),
   (661, 919, 662, 918),
   (660, 315, 661, 316),
   (658, 738, 659, 737),
   (656, 281, 657, 282),
   (659, 771, 660, 770),
   (49, 263, 50, 262),
   (359, 258, 360, 259),
   (872, 258, 873, 257),
   (422, 260, 423, 259),
   (486, 256, 487, 255),
   (804, 254, 805, 253),
   (177, 256, 178, 257),
   (474, 861, 475, 862),
   (468, 572, 469, 571),
   (469, 265, 470, 264),
   (466, 198, 467, 197),
   (467, 505, 468, 504),
   (0, 127, 1, 128),
   (743, 126, 744, 127),
   (307, 125, 308, 124),
   (423, 119, 424, 118),
   (175, 116, 176, 117),
   (487, 115, 488, 114),
   (802, 112, 803, 111),
   (358, 117, 359, 118),
   (874, 116, 875, 115),
   (761, 291, 762, 290),
   (768, 735, 769, 736),
   (764, 320, 765, 319),
   (762, 913, 763, 914),
   (763, 139, 764, 138),
   (758, 522, 759, 521),
   (759, 215, 760, 214),
   (756, 839, 757, 840),
   (757, 591, 758, 590),
   (754, 453, 755, 454),
   (599, 334, 600, 335),
   (831, 333, 832, 332),
   (146, 333, 147, 334),
   (530, 331, 531, 332),
   (297, 453, 298, 452),
   (293, 592, 294, 593),
   (295, 839, 296, 838),
   (292, 215, 293, 216),
   (294, 523, 295, 524),
   (289, 136, 290, 137),
   (287, 917, 288, 916),
   (286, 317, 287, 318),
   (283, 735, 284, 734),
   (535, 899, 536, 898),
   (152, 898, 153, 897),
   (826, 901, 827, 902),
   (603, 901, 604, 900),
   (66, 723, 67, 724),
   (69, 327, 70, 326),
   (71, 908, 72, 909),
   (73, 143, 74, 142),
   (68, 526, 69, 525),
   (72, 220, 73, 219),
   (67, 836, 68, 837),
   (70, 596, 71, 595),
   (63, 454, 64, 455),
   (52, 120, 53, 119),
   (251, 879, 252, 878),
   (249, 811, 250, 810),
   (248, 496, 249, 495),
   (247, 170, 248, 171),
   (243, 427, 244, 426),
   (240, 553, 241, 554),
   (744, 696, 745, 695),
   (308, 697, 309, 698),
   (1, 695, 2, 694),
   (125, 696, 126, 697),
   (510, 691, 511, 692),
   (203, 690, 204, 691),
   (851, 693, 852, 692),
   (580, 689, 581, 690),
   (463, 689, 464, 688),
   (564, 880, 565, 879),
   (560, 808, 561, 807),
   (561, 491, 562, 490),
   (559, 174, 560, 175),
   (557, 425, 558, 424),
   (563, 250, 564, 251),
   (856, 574, 857, 573),
   (265, 572, 266, 573),
   (399, 571, 400, 570),
   (642, 569, 643, 570),
   (43, 569, 44, 568),
   (782, 568, 783, 567),
   (191, 566, 192, 567),
   (730, 322, 731, 321),
   (728, 911, 729, 912),
   (729, 141, 730, 140),
   (725, 525, 726, 524),
   (724, 837, 725, 838),
   (726, 594, 727, 593),
   (722, 451, 723, 452),
   (190, 864, 191, 863),
   (788, 859, 789, 860),
   (50, 857, 51, 858),
   (639, 863, 640, 862),
   (403, 860, 404, 861),
   (261, 859, 262, 858),
   (328, 718, 329, 717),
   (335, 445, 336, 444),
   (325, 594, 326, 595),
   (329, 833, 330, 832),
   (330, 529, 331, 530),
   (322, 141, 323, 142),
   (324, 910, 325, 909),
   (189, 477, 190, 476),
   (786, 473, 787, 474),
   (48, 471, 49, 472),
   (638, 476, 639, 475),
   (401, 472, 402, 473),
   (263, 471, 264, 470),
   (97, 854, 98, 855),
   (96, 508, 97, 507),
   (93, 579, 94, 578),
   (95, 271, 96, 270),
   (91, 396, 92, 397),
   (94, 202, 95, 201),
   (92, 465, 93, 466),
   (565, 369, 566, 368),
   (188, 366, 189, 365),
   (864, 367, 865, 368),
   (477, 366, 478, 367),
   (906, 328, 907, 327),
   (914, 138, 915, 137),
   (905, 527, 906, 526),
   (904, 835, 905, 836),
   (907, 597, 908, 596),
   (903, 450, 904, 451),
   (902, 721, 903, 722),
   (727, 217, 728, 216),
   (323, 218, 324, 219),
   (910, 218, 911, 217),
   (144, 221, 145, 222),
   (519, 212, 520, 213),
   (227, 156, 228, 157),
   (709, 155, 710, 154),
   (442, 152, 443, 151),
   (340, 159, 341, 160),
   (892, 156, 893, 155),
   (540, 157, 541, 158),
   (600, 149, 601, 150),
   (829, 149, 830, 148),
   (113, 255, 114, 254),
   (867, 112, 868, 113),
   (415, 110, 416, 111),
   (798, 109, 799, 110),
   (797, 414, 798, 415),
   (222, 337, 223, 338),
   (713, 339, 714, 338),
   (443, 337, 444, 336),
   (633, 409, 634, 408),
   (440, 899, 441, 900),
   (710, 893, 711, 894),
   (224, 896, 225, 895),
   (223, 538, 224, 539),
   (712, 540, 713, 539),
   (441, 535, 442, 534),
   (705, 436, 706, 437),
   (543, 439, 544, 438),
   (890, 439, 891, 440),
   (341, 435, 342, 434),
   (230, 438, 231, 437),
   (231, 606, 232, 607),
   (342, 609, 343, 610),
   (889, 605, 890, 604),
   (544, 605, 545, 606),
   (704, 608, 705, 607),
   (703, 822, 704, 823),
   (545, 825, 546, 824),
   (888, 825, 889, 826),
   (343, 821, 344, 820),
   (232, 824, 233, 823),
   (172, 493, 173, 494),
   (479, 794, 480, 795),
   (417, 800, 418, 801),
   (796, 628, 797, 627),
   (478, 630, 479, 629),
   (87, 778, 88, 779),
   (458, 779, 459, 780),
   (584, 778, 585, 777),
   (846, 775, 847, 776),
   (207, 777, 208, 776),
   (515, 775, 516, 774),
   (132, 774, 133, 773),
   (919, 772, 920, 773),
   (314, 772, 315, 771),
   (498, 370, 499, 369),
   (123, 307, 124, 306),
   (160, 305, 161, 306),
   (433, 305, 434, 304),
   (233, 300, 234, 301),
   (610, 303, 611, 304),
   (819, 303, 820, 302),
   (546, 299, 547, 300),
   (344, 301, 345, 302),
   (887, 299, 888, 298),
   (65, 297, 66, 296),
   (64, 755, 65, 756),
   (886, 753, 887, 754),
   (345, 751, 346, 750),
   (547, 753, 548, 752),
   (818, 749, 819, 750),
   (611, 749, 612, 748),
   (234, 752, 235, 751),
   (431, 746, 432, 747),
   (162, 748, 163, 747),
   (122, 745, 123, 746),
   (61, 12, 62, 13),
   (884, 11, 885, 12),
   (349, 11, 350, 10),
   (817, 6, 818, 7),
   (613, 5, 614, 4),
   (550, 10, 551, 9),
   (236, 8, 237, 7),
   (430, 3, 431, 4),
   (164, 6, 165, 5),
   (121, 2, 122, 3),
   (120, 682, 121, 681),
   (429, 681, 430, 680),
   (166, 677, 167, 678),
   (239, 678, 240, 679),
   (614, 679, 615, 680),
   (548, 673, 549, 674),
   (815, 677, 816, 676),
   (347, 674, 348, 675),
   (62, 672, 63, 671),
   (885, 673, 886, 672),
   (427, 243, 428, 242),
   (165, 238, 166, 239),
   (494, 171, 495, 172),
   (496, 812, 497, 811),
   (497, 881, 498, 880),
   (245, 618, 246, 619),
   (562, 623, 563, 624),
   (163, 612, 164, 613),
   (620, 173, 621, 174),
   (621, 809, 622, 808),
   (622, 492, 623, 491),
   (625, 252, 626, 253),
   (624, 878, 625, 877),
   (459, 40, 460, 41),
   (89, 38, 90, 39),
   (582, 38, 583, 37),
   (205, 37, 206, 36),
   (849, 34, 850, 35),
   (512, 36, 513, 35),
   (130, 34, 131, 33),
   (921, 32, 922, 33),
   (278, 32, 279, 31),
   (311, 31, 312, 30),
   (740, 29, 741, 30),
   (646, 40, 647, 39),
   (385, 28, 386, 29),
   (738, 658, 739, 657),
   (279, 654, 280, 655),
   (312, 655, 313, 656),
   (920, 654, 921, 653),
   (131, 652, 132, 653),
   (514, 651, 515, 652),
   (847, 651, 848, 650),
   (206, 649, 207, 650),
   (583, 648, 584, 649),
   (460, 646, 461, 645),
   (88, 648, 89, 647),
   (354, 58, 355, 57),
   (812, 59, 813, 60),
   (169, 59, 170, 58),
   (244, 56, 245, 55),
   (556, 54, 557, 53),
   (617, 57, 618, 56),
   (462, 395, 463, 396),
   (581, 395, 582, 394),
   (204, 394, 205, 393),
   (511, 393, 512, 392),
   (850, 391, 851, 392),
   (129, 391, 130, 390),
   (922, 389, 923, 390),
   (309, 387, 310, 386),
   (277, 389, 278, 388),
   (742, 387, 743, 388),
   (558, 357, 559, 358),
   (246, 355, 247, 356),
   (619, 356, 620, 357),
   (168, 353, 169, 354),
   (813, 353, 814, 352),
   (882, 352, 883, 351)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (18, 13, 19, 14),
      (16, 0, 17, 21),
      (14, 19, 15, 23),
      (29, 17, 11, 18),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (20, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 43),
      (25, 44, 26, 30),
      (35, 36, 10, 29),
      (35, 37, 38, 36),
      (37, 39, 40, 38),
      (39, 41, 42, 40),
      (41, 43, 44, 42)],
     20,
     10,
     5]]]],
 [[(293, 120, 0, 121),
   (291, 41, 292, 40),
   (234, 98, 235, 97),
   (188, 71, 189, 72),
   (162, 122, 163, 121),
   (164, 39, 165, 40),
   (125, 36, 126, 37),
   (105, 74, 106, 75),
   (55, 71, 56, 70),
   (47, 172, 48, 173),
   (245, 38, 246, 39),
   (243, 123, 244, 122),
   (244, 206, 245, 205),
   (163, 205, 164, 204),
   (292, 203, 293, 204),
   (117, 261, 118, 260),
   (109, 224, 110, 225),
   (195, 115, 196, 114),
   (198, 260, 199, 259),
   (194, 219, 195, 220),
   (88, 17, 89, 18),
   (93, 223, 94, 222),
   (92, 111, 93, 112),
   (90, 253, 91, 254),
   (91, 170, 92, 171),
   (94, 52, 95, 51),
   (89, 285, 90, 284),
   (151, 219, 152, 218),
   (150, 115, 151, 116),
   (146, 255, 147, 256),
   (148, 173, 149, 174),
   (147, 47, 148, 46),
   (145, 283, 146, 282),
   (134, 216, 135, 215),
   (27, 214, 28, 215),
   (45, 256, 46, 257),
   (174, 258, 175, 257),
   (288, 249, 289, 250),
   (72, 187, 73, 188),
   (106, 186, 107, 185),
   (37, 185, 38, 184),
   (124, 183, 125, 184),
   (31, 130, 32, 131),
   (236, 63, 237, 64),
   (144, 88, 145, 87),
   (154, 65, 155, 66),
   (16, 285, 17, 286),
   (15, 253, 16, 252),
   (14, 170, 15, 169),
   (11, 52, 12, 53),
   (9, 96, 10, 97),
   (7, 65, 8, 64),
   (280, 142, 281, 141),
   (43, 143, 44, 142),
   (175, 140, 176, 141),
   (258, 139, 259, 140),
   (216, 136, 217, 135),
   (13, 111, 14, 110),
   (48, 113, 49, 114),
   (247, 290, 248, 291),
   (246, 166, 247, 165),
   (200, 279, 201, 280),
   (201, 42, 202, 43),
   (199, 177, 200, 176),
   (197, 138, 198, 139),
   (128, 33, 129, 34),
   (126, 272, 127, 271),
   (102, 270, 103, 269),
   (59, 268, 60, 269),
   (131, 264, 132, 265),
   (35, 272, 36, 273),
   (30, 266, 31, 265),
   (34, 127, 35, 128),
   (286, 228, 287, 227),
   (251, 226, 252, 227),
   (168, 225, 169, 226),
   (49, 221, 50, 220),
   (12, 223, 13, 224),
   (231, 108, 232, 109),
   (232, 54, 233, 53),
   (230, 167, 231, 168),
   (229, 250, 230, 251),
   (228, 288, 229, 287),
   (41, 202, 42, 203),
   (44, 282, 45, 281),
   (0, 161, 1, 162),
   (277, 161, 278, 160),
   (178, 159, 179, 160),
   (136, 158, 137, 157),
   (261, 158, 262, 159),
   (217, 157, 218, 156),
   (26, 155, 27, 156),
   (123, 207, 124, 206),
   (119, 278, 120, 279),
   (118, 178, 119, 177),
   (116, 137, 117, 138),
   (29, 7, 30, 6),
   (210, 3, 211, 4),
   (263, 5, 264, 4),
   (132, 5, 133, 6),
   (180, 2, 181, 1),
   (275, 2, 276, 3),
   (213, 28, 214, 29),
   (212, 134, 213, 133),
   (211, 262, 212, 263),
   (207, 182, 208, 183),
   (209, 275, 210, 274),
   (208, 242, 209, 241),
   (273, 241, 274, 240),
   (266, 237, 267, 238),
   (129, 239, 130, 238),
   (32, 239, 33, 240),
   (179, 276, 180, 277),
   (181, 242, 182, 243),
   (100, 80, 101, 79),
   (61, 78, 62, 79),
   (77, 60, 78, 61),
   (76, 102, 77, 101),
   (75, 104, 76, 105),
   (270, 104, 271, 103),
   (86, 144, 87, 143),
   (83, 167, 84, 166),
   (84, 289, 85, 290),
   (85, 249, 86, 248),
   (82, 108, 83, 107),
   (80, 73, 81, 74),
   (267, 58, 268, 59),
   (62, 58, 63, 57),
   (99, 56, 100, 57),
   (66, 153, 67, 154),
   (69, 98, 70, 99),
   (67, 9, 68, 8),
   (68, 235, 69, 236),
   (221, 22, 222, 23),
   (254, 20, 255, 19),
   (171, 21, 172, 20),
   (112, 22, 113, 21),
   (50, 23, 51, 24),
   (283, 18, 284, 19),
   (193, 25, 194, 24),
   (152, 25, 153, 26),
   (149, 196, 150, 197),
   (10, 192, 11, 191),
   (233, 190, 234, 191),
   (95, 192, 96, 193),
   (54, 189, 55, 190),
   (81, 187, 82, 186)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 0, 17, 21),
      (29, 23, 8, 2),
      (3, 32, 28, 33),
      (33, 28, 34, 27),
      (23, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 39),
      (25, 40, 26, 30),
      (7, 35, 36, 29),
      (35, 37, 38, 36),
      (37, 39, 40, 38)],
     3,
     7,
     3]]]],
 [[(201, 283, 202, 282),
   (177, 253, 178, 252),
   (172, 228, 173, 227),
   (176, 71, 177, 72),
   (52, 36, 53, 35),
   (245, 34, 246, 35),
   (255, 46, 256, 47),
   (247, 265, 248, 264),
   (241, 138, 242, 139),
   (157, 137, 158, 136),
   (152, 261, 153, 262),
   (155, 55, 156, 54),
   (153, 37, 154, 36),
   (108, 212, 109, 211),
   (294, 209, 295, 210),
   (56, 138, 57, 137),
   (50, 263, 51, 264),
   (301, 125, 302, 124),
   (300, 22, 301, 21),
   (122, 20, 123, 19),
   (5, 90, 6, 91),
   (212, 86, 213, 85),
   (290, 92, 291, 91),
   (107, 86, 108, 87),
   (79, 182, 80, 183),
   (68, 230, 69, 229),
   (76, 179, 77, 180),
   (119, 280, 120, 281),
   (23, 274, 24, 275),
   (299, 276, 300, 277),
   (226, 174, 227, 173),
   (216, 186, 217, 185),
   (223, 73, 224, 72),
   (6, 206, 7, 205),
   (127, 303, 128, 302),
   (0, 298, 1, 297),
   (221, 250, 222, 251),
   (33, 246, 34, 247),
   (30, 152, 31, 151),
   (24, 126, 25, 125),
   (26, 304, 27, 303),
   (273, 304, 274, 305),
   (272, 27, 273, 28),
   (270, 129, 271, 130),
   (268, 149, 269, 150),
   (265, 249, 266, 248),
   (73, 223, 74, 222),
   (74, 252, 75, 251),
   (87, 211, 88, 210),
   (234, 115, 235, 116),
   (233, 285, 234, 284),
   (64, 285, 65, 286),
   (63, 115, 64, 114),
   (166, 283, 167, 284),
   (165, 117, 166, 116),
   (298, 190, 299, 189),
   (104, 191, 105, 192),
   (305, 190, 0, 191),
   (16, 199, 17, 200),
   (196, 109, 197, 110),
   (193, 293, 194, 292),
   (195, 207, 196, 206),
   (194, 89, 195, 90),
   (113, 63, 114, 62),
   (286, 61, 287, 62),
   (11, 61, 12, 60),
   (281, 199, 282, 198),
   (238, 161, 239, 162),
   (111, 165, 112, 164),
   (289, 162, 290, 163),
   (8, 164, 9, 163),
   (58, 160, 59, 159),
   (156, 243, 157, 244),
   (55, 242, 56, 243),
   (9, 236, 10, 237),
   (288, 238, 289, 237),
   (112, 235, 113, 236),
   (207, 89, 208, 88),
   (204, 8, 205, 7),
   (208, 293, 209, 294),
   (203, 111, 204, 110),
   (202, 117, 203, 118),
   (97, 168, 98, 169),
   (95, 66, 96, 67),
   (96, 232, 97, 231),
   (94, 60, 95, 59),
   (93, 161, 94, 160),
   (92, 239, 93, 240),
   (200, 15, 201, 16),
   (167, 15, 168, 14),
   (65, 13, 66, 12),
   (232, 13, 233, 14),
   (118, 197, 119, 198),
   (180, 77, 181, 78),
   (175, 225, 176, 224),
   (133, 266, 134, 267),
   (134, 249, 135, 250),
   (131, 151, 132, 150),
   (126, 26, 127, 25),
   (228, 172, 229, 171),
   (69, 170, 70, 171),
   (260, 29, 261, 30),
   (259, 130, 260, 131),
   (258, 270, 259, 269),
   (257, 148, 258, 149),
   (253, 179, 254, 178),
   (256, 219, 257, 220),
   (254, 76, 255, 75),
   (32, 52, 33, 51),
   (132, 50, 133, 49),
   (267, 48, 268, 49),
   (78, 45, 79, 46),
   (220, 48, 221, 47),
   (181, 44, 182, 45),
   (41, 174, 42, 175),
   (43, 70, 44, 71),
   (42, 226, 43, 225),
   (37, 155, 38, 154),
   (39, 244, 40, 245),
   (38, 54, 39, 53),
   (40, 136, 41, 135),
   (31, 262, 32, 263),
   (144, 169, 145, 170),
   (142, 67, 143, 68),
   (143, 231, 144, 230),
   (141, 159, 142, 158),
   (139, 240, 140, 241),
   (140, 58, 141, 57),
   (295, 3, 296, 2),
   (188, 278, 189, 277),
   (186, 123, 187, 124),
   (187, 20, 188, 21),
   (183, 146, 184, 147),
   (28, 104, 29, 103),
   (128, 102, 129, 101),
   (271, 102, 272, 103),
   (184, 99, 185, 100),
   (84, 280, 85, 279),
   (83, 120, 84, 121),
   (82, 17, 83, 18),
   (81, 98, 82, 99),
   (80, 145, 81, 146),
   (4, 292, 5, 291),
   (105, 297, 106, 296),
   (218, 148, 219, 147),
   (217, 101, 218, 100),
   (215, 19, 216, 18),
   (214, 122, 215, 121),
   (213, 278, 214, 279),
   (106, 1, 107, 2),
   (287, 11, 288, 10),
   (192, 3, 193, 4),
   (275, 22, 276, 23)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (14, 19, 15, 20),
      (16, 0, 17, 21),
      (18, 23, 19, 14),
      (10, 17, 29, 18),
      (13, 32, 28, 33),
      (33, 28, 34, 27),
      (23, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 39),
      (25, 40, 26, 30),
      (11, 35, 36, 29),
      (35, 37, 38, 36),
      (37, 39, 40, 38)],
     13,
     11,
     3]]]],
 [[(254, 7, 255, 8),
   (241, 127, 242, 126),
   (30, 244, 31, 243),
   (242, 30, 243, 29),
   (118, 218, 119, 217),
   (21, 217, 22, 216),
   (206, 186, 207, 185),
   (117, 202, 118, 203),
   (20, 203, 21, 204),
   (180, 121, 181, 122),
   (115, 184, 116, 185),
   (177, 26, 178, 27),
   (33, 174, 34, 175),
   (23, 121, 24, 120),
   (81, 124, 82, 125),
   (114, 87, 115, 88),
   (119, 23, 120, 22),
   (122, 103, 123, 104),
   (24, 105, 25, 106),
   (31, 78, 32, 79),
   (79, 28, 80, 29),
   (66, 10, 67, 9),
   (12, 245, 13, 246),
   (13, 128, 14, 129),
   (10, 174, 11, 173),
   (11, 77, 12, 76),
   (135, 160, 136, 161),
   (205, 232, 206, 233),
   (207, 89, 208, 88),
   (36, 163, 37, 164),
   (219, 201, 220, 200),
   (96, 193, 97, 194),
   (106, 25, 107, 26),
   (110, 239, 111, 240),
   (108, 123, 109, 124),
   (107, 179, 108, 178),
   (109, 83, 110, 82),
   (275, 145, 276, 144),
   (213, 80, 214, 81),
   (215, 176, 216, 177),
   (212, 126, 213, 125),
   (211, 241, 212, 240),
   (214, 28, 215, 27),
   (225, 1, 226, 0),
   (97, 276, 98, 277),
   (194, 277, 195, 0),
   (59, 132, 60, 133),
   (54, 249, 55, 250),
   (56, 74, 57, 73),
   (53, 171, 54, 170),
   (158, 133, 159, 134),
   (153, 250, 154, 251),
   (155, 73, 156, 72),
   (152, 170, 153, 169),
   (222, 114, 223, 113),
   (100, 111, 101, 112),
   (197, 112, 198, 113),
   (267, 172, 268, 173),
   (266, 75, 267, 76),
   (264, 130, 265, 129),
   (265, 247, 266, 246),
   (137, 261, 138, 260),
   (145, 262, 146, 263),
   (140, 227, 141, 228),
   (139, 95, 140, 94),
   (138, 192, 139, 191),
   (196, 210, 197, 209),
   (99, 211, 100, 210),
   (223, 208, 224, 209),
   (190, 93, 191, 94),
   (186, 232, 187, 231),
   (183, 220, 184, 221),
   (179, 105, 180, 104),
   (182, 200, 183, 199),
   (195, 45, 196, 44),
   (98, 46, 99, 45),
   (224, 43, 225, 44),
   (89, 231, 90, 230),
   (86, 221, 87, 222),
   (83, 103, 84, 102),
   (85, 199, 86, 198),
   (91, 188, 92, 189),
   (236, 182, 237, 181),
   (237, 85, 238, 84),
   (234, 201, 235, 202),
   (238, 101, 239, 102),
   (235, 219, 236, 218),
   (253, 271, 254, 270),
   (257, 39, 258, 38),
   (252, 51, 253, 52),
   (251, 150, 252, 151),
   (255, 162, 256, 163),
   (247, 74, 248, 75),
   (204, 19, 205, 20),
   (77, 17, 78, 16),
   (175, 19, 176, 18),
   (127, 14, 128, 15),
   (244, 15, 245, 16),
   (32, 17, 33, 18),
   (69, 248, 70, 249),
   (71, 155, 72, 154),
   (68, 172, 69, 171),
   (70, 56, 71, 55),
   (65, 34, 66, 35),
   (67, 268, 68, 269),
   (192, 144, 193, 143),
   (95, 143, 96, 142),
   (226, 141, 227, 142),
   (116, 234, 117, 233),
   (168, 152, 169, 151),
   (167, 53, 168, 52),
   (164, 35, 165, 36),
   (166, 269, 167, 270),
   (165, 9, 166, 8),
   (146, 132, 147, 131),
   (149, 157, 150, 156),
   (47, 131, 48, 130),
   (50, 158, 51, 157),
   (48, 147, 49, 148),
   (46, 263, 47, 264),
   (42, 229, 43, 230),
   (41, 91, 42, 90),
   (40, 188, 41, 187),
   (39, 259, 40, 258),
   (272, 159, 273, 160),
   (274, 262, 275, 261),
   (271, 134, 272, 135),
   (37, 64, 38, 65),
   (256, 63, 257, 64),
   (273, 60, 274, 61),
   (136, 61, 137, 62),
   (49, 59, 50, 58),
   (148, 58, 149, 57),
   (1, 229, 2, 228),
   (2, 189, 3, 190),
   (3, 92, 4, 93),
   (4, 259, 5, 260),
   (5, 63, 6, 62),
   (6, 162, 7, 161)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (7, 3, 8, 2),
      (11, 4, 12, 5),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 0, 17, 21),
      (5, 12, 23, 13),
      (29, 16, 9, 15),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (6, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 43),
      (25, 44, 26, 30),
      (29, 35, 36, 8),
      (42, 41, 43, 44),
      (40, 39, 41, 42),
      (38, 37, 39, 40),
      (36, 35, 37, 38)],
     6,
     8,
     -5]]]],
 [[(150, 54, 151, 53),
   (94, 195, 95, 196),
   (92, 523, 93, 524),
   (450, 102, 451, 101),
   (311, 169, 312, 168),
   (316, 192, 317, 191),
   (495, 196, 496, 197),
   (447, 308, 448, 309),
   (310, 445, 311, 446),
   (317, 519, 318, 518),
   (449, 406, 450, 407),
   (451, 1, 452, 0),
   (493, 522, 494, 523),
   (152, 475, 153, 476),
   (48, 480, 49, 479),
   (357, 474, 358, 475),
   (355, 53, 356, 52),
   (158, 250, 159, 249),
   (9, 503, 10, 502),
   (415, 499, 416, 498),
   (524, 497, 525, 498),
   (197, 496, 198, 497),
   (6, 332, 7, 331),
   (7, 177, 8, 176),
   (5, 438, 6, 439),
   (262, 225, 263, 226),
   (470, 222, 471, 221),
   (58, 219, 59, 220),
   (352, 218, 353, 217),
   (145, 221, 146, 220),
   (167, 313, 168, 312),
   (166, 95, 167, 96),
   (161, 500, 162, 501),
   (203, 445, 204, 444),
   (201, 170, 202, 171),
   (157, 11, 158, 10),
   (198, 413, 199, 414),
   (525, 414, 526, 415),
   (165, 413, 166, 412),
   (163, 526, 164, 527),
   (164, 199, 165, 200),
   (333, 73, 334, 72),
   (2, 130, 3, 129),
   (336, 131, 337, 132),
   (41, 365, 42, 364),
   (45, 250, 46, 251),
   (40, 490, 41, 489),
   (42, 88, 43, 87),
   (36, 315, 37, 316),
   (38, 520, 39, 519),
   (37, 193, 38, 192),
   (370, 193, 371, 194),
   (369, 520, 370, 521),
   (371, 315, 372, 314),
   (367, 90, 368, 91),
   (368, 491, 369, 492),
   (359, 257, 360, 256),
   (425, 234, 426, 235),
   (264, 231, 265, 232),
   (466, 234, 467, 233),
   (62, 229, 63, 230),
   (347, 231, 348, 230),
   (228, 350, 229, 349),
   (227, 60, 228, 61),
   (222, 470, 223, 469),
   (226, 263, 227, 264),
   (385, 219, 386, 218),
   (389, 259, 390, 258),
   (388, 471, 389, 472),
   (387, 57, 388, 56),
   (384, 351, 385, 352),
   (254, 115, 255, 116),
   (476, 114, 477, 113),
   (51, 112, 52, 113),
   (360, 118, 361, 117),
   (153, 115, 154, 114),
   (21, 149, 22, 148),
   (22, 354, 23, 353),
   (19, 54, 20, 55),
   (18, 474, 19, 473),
   (23, 216, 24, 217),
   (16, 255, 17, 256),
   (155, 294, 156, 295),
   (361, 290, 362, 291),
   (50, 296, 51, 295),
   (478, 293, 479, 294),
   (253, 293, 254, 292),
   (149, 394, 150, 395),
   (354, 395, 355, 396),
   (55, 393, 56, 392),
   (472, 391, 473, 392),
   (257, 391, 258, 390),
   (20, 394, 21, 393),
   (39, 420, 40, 421),
   (365, 419, 366, 418),
   (46, 11, 47, 12),
   (358, 18, 359, 17),
   (248, 160, 249, 159),
   (252, 13, 253, 14),
   (245, 416, 246, 417),
   (243, 493, 244, 492),
   (244, 92, 245, 91),
   (240, 313, 241, 314),
   (242, 522, 243, 521),
   (241, 195, 242, 194),
   (49, 157, 50, 156),
   (93, 494, 94, 495),
   (88, 418, 89, 417),
   (318, 421, 319, 422),
   (319, 489, 320, 488),
   (190, 36, 191, 35),
   (517, 35, 518, 34),
   (423, 32, 424, 33),
   (224, 27, 225, 28),
   (383, 25, 384, 24),
   (259, 30, 260, 31),
   (468, 30, 469, 29),
   (59, 26, 60, 27),
   (350, 26, 351, 25),
   (143, 29, 144, 28),
   (490, 420, 491, 419),
   (487, 321, 488, 320),
   (481, 13, 482, 12),
   (485, 86, 486, 87),
   (482, 252, 483, 251),
   (486, 363, 487, 364),
   (480, 48, 481, 47),
   (477, 154, 478, 155),
   (356, 151, 357, 152),
   (386, 147, 387, 148),
   (57, 147, 58, 146),
   (465, 140, 466, 141),
   (261, 143, 262, 142),
   (223, 145, 224, 144),
   (428, 138, 429, 137),
   (511, 138, 512, 139),
   (183, 134, 184, 135),
   (346, 381, 347, 382),
   (63, 383, 64, 382),
   (464, 379, 465, 380),
   (265, 381, 266, 380),
   (426, 378, 427, 377),
   (238, 374, 239, 373),
   (514, 375, 515, 376),
   (189, 372, 190, 373),
   (139, 378, 140, 379),
   (212, 267, 213, 268),
   (211, 430, 212, 431),
   (215, 507, 216, 506),
   (208, 186, 209, 185),
   (209, 137, 210, 136),
   (404, 133, 405, 134),
   (403, 182, 404, 183),
   (396, 505, 397, 506),
   (400, 432, 401, 431),
   (398, 270, 399, 269),
   (3, 455, 4, 454),
   (512, 428, 513, 427),
   (329, 275, 330, 274),
   (8, 273, 9, 274),
   (446, 284, 447, 283),
   (439, 276, 440, 277),
   (509, 267, 510, 266),
   (179, 435, 180, 434),
   (174, 276, 175, 275),
   (4, 73, 5, 74),
   (453, 75, 454, 74),
   (436, 71, 437, 72),
   (271, 68, 272, 69),
   (178, 70, 179, 69),
   (507, 65, 508, 64),
   (397, 67, 398, 66),
   (214, 65, 215, 66),
   (304, 135, 305, 136),
   (302, 402, 303, 401),
   (301, 433, 302, 432),
   (305, 184, 306, 185),
   (296, 503, 297, 504),
   (299, 271, 300, 270),
   (298, 68, 299, 67),
   (297, 110, 298, 111),
   (61, 349, 62, 348),
   (213, 345, 214, 344),
   (399, 342, 400, 343),
   (300, 341, 301, 342),
   (268, 344, 269, 343),
   (508, 345, 509, 346),
   (180, 339, 181, 340),
   (433, 341, 434, 340),
   (457, 338, 458, 339),
   (132, 337, 133, 338),
   (107, 70, 108, 71),
   (109, 272, 110, 273),
   (111, 505, 112, 504),
   (108, 178, 109, 177),
   (106, 435, 107, 436),
   (105, 457, 106, 456),
   (103, 131, 104, 130),
   (104, 336, 105, 335),
   (99, 408, 100, 409),
   (210, 462, 211, 461),
   (402, 459, 403, 460),
   (303, 460, 304, 461),
   (260, 468, 261, 467),
   (510, 463, 511, 464),
   (181, 458, 182, 459),
   (429, 463, 430, 462),
   (291, 14, 292, 15),
   (288, 34, 289, 33),
   (289, 422, 290, 423),
   (287, 517, 288, 516),
   (284, 188, 285, 187),
   (285, 374, 286, 375),
   (282, 310, 283, 309),
   (279, 100, 280, 101),
   (280, 408, 281, 407),
   (278, 529, 279, 0),
   (286, 238, 287, 237),
   (141, 233, 142, 232),
   (188, 240, 189, 239),
   (515, 237, 516, 236),
   (75, 453, 76, 452),
   (307, 206, 308, 207),
   (281, 204, 282, 205),
   (97, 203, 98, 202),
   (448, 206, 449, 205),
   (411, 200, 412, 201),
   (334, 455, 335, 456),
   (332, 438, 333, 437),
   (330, 175, 331, 176),
   (327, 161, 328, 160),
   (328, 501, 329, 502),
   (324, 247, 325, 248),
   (321, 363, 322, 362),
   (323, 44, 324, 45),
   (325, 83, 326, 82),
   (322, 484, 323, 483),
   (410, 172, 411, 171),
   (409, 442, 410, 443),
   (528, 442, 529, 441),
   (527, 172, 528, 173),
   (98, 444, 99, 443),
   (96, 169, 97, 170),
   (116, 16, 117, 15),
   (119, 425, 120, 424),
   (118, 31, 119, 32),
   (121, 377, 122, 376),
   (120, 235, 121, 236),
   (122, 513, 123, 514),
   (123, 186, 124, 187),
   (124, 208, 125, 207),
   (125, 306, 126, 307),
   (126, 405, 127, 406),
   (127, 103, 128, 102),
   (128, 2, 129, 1),
   (76, 277, 77, 278),
   (77, 440, 78, 441),
   (78, 174, 79, 173),
   (81, 327, 82, 326),
   (80, 500, 81, 499),
   (79, 162, 80, 163),
   (83, 247, 84, 246),
   (84, 44, 85, 43),
   (89, 366, 90, 367),
   (85, 484, 86, 485)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (1, 7, 2, 6),
      (11, 4, 12, 5),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (23, 0, 17, 21),
      (7, 3, 29, 2),
      (23, 32, 28, 33),
      (33, 28, 34, 27),
      (16, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 37),
      (25, 38, 26, 30),
      (29, 35, 36, 8),
      (36, 35, 37, 38)],
     16,
     8,
     -2]]]],
 [[(97, 217, 98, 216),
   (224, 63, 225, 64),
   (223, 9, 224, 8),
   (195, 210, 196, 211),
   (184, 60, 185, 59),
   (183, 12, 184, 13),
   (102, 62, 103, 61),
   (103, 10, 104, 11),
   (86, 31, 87, 32),
   (84, 66, 85, 65),
   (15, 57, 16, 56),
   (47, 207, 48, 206),
   (130, 212, 131, 211),
   (48, 117, 49, 118),
   (132, 113, 133, 114),
   (24, 207, 25, 208),
   (23, 117, 24, 116),
   (74, 191, 75, 192),
   (75, 110, 76, 111),
   (73, 215, 74, 214),
   (72, 178, 73, 177),
   (71, 97, 72, 96),
   (69, 228, 70, 229),
   (67, 148, 68, 149),
   (60, 12, 61, 11),
   (108, 250, 109, 249),
   (218, 245, 219, 246),
   (180, 247, 181, 248),
   (99, 246, 100, 247),
   (227, 245, 228, 244),
   (1, 71, 2, 70),
   (4, 150, 5, 149),
   (2, 230, 3, 229),
   (253, 98, 0, 99),
   (252, 179, 253, 180),
   (0, 217, 1, 218),
   (250, 110, 251, 109),
   (251, 191, 252, 190),
   (226, 163, 227, 164),
   (100, 162, 101, 161),
   (181, 161, 182, 160),
   (219, 163, 220, 162),
   (107, 158, 108, 159),
   (155, 192, 156, 193),
   (156, 111, 157, 112),
   (154, 214, 155, 213),
   (153, 177, 154, 176),
   (152, 96, 153, 95),
   (151, 230, 152, 231),
   (157, 76, 158, 77),
   (119, 23, 120, 22),
   (118, 49, 119, 50),
   (231, 126, 232, 127),
   (94, 126, 95, 125),
   (175, 125, 176, 124),
   (212, 124, 213, 123),
   (112, 121, 113, 122),
   (193, 122, 194, 123),
   (199, 33, 200, 32),
   (205, 51, 206, 50),
   (204, 21, 205, 22),
   (34, 20, 35, 19),
   (33, 52, 34, 53),
   (83, 147, 84, 146),
   (101, 143, 102, 142),
   (225, 144, 226, 145),
   (182, 142, 183, 141),
   (35, 136, 36, 137),
   (203, 135, 204, 134),
   (120, 133, 121, 134),
   (140, 188, 141, 187),
   (13, 186, 14, 187),
   (58, 186, 59, 185),
   (139, 107, 140, 106),
   (14, 105, 15, 106),
   (57, 105, 58, 104),
   (62, 221, 63, 222),
   (178, 216, 179, 215),
   (9, 223, 10, 222),
   (143, 220, 144, 221),
   (145, 83, 146, 82),
   (7, 80, 8, 81),
   (64, 82, 65, 81),
   (55, 78, 56, 79),
   (16, 80, 17, 79),
   (138, 77, 139, 78),
   (114, 209, 115, 210),
   (88, 238, 89, 237),
   (26, 236, 27, 235),
   (45, 236, 46, 237),
   (129, 234, 130, 235),
   (89, 170, 90, 171),
   (232, 94, 233, 93),
   (127, 93, 128, 92),
   (43, 91, 44, 90),
   (28, 91, 29, 92),
   (168, 29, 169, 30),
   (165, 67, 166, 66),
   (164, 148, 165, 147),
   (167, 241, 168, 240),
   (233, 175, 234, 174),
   (128, 174, 129, 173),
   (44, 172, 45, 171),
   (27, 172, 28, 173),
   (241, 150, 242, 151),
   (243, 68, 244, 69),
   (239, 31, 240, 30),
   (131, 194, 132, 195),
   (208, 115, 209, 116),
   (85, 6, 86, 7),
   (54, 18, 55, 17),
   (242, 4, 243, 3),
   (166, 5, 167, 6),
   (189, 249, 190, 248),
   (188, 159, 189, 160),
   (169, 43, 170, 42),
   (198, 39, 199, 40),
   (87, 41, 88, 40),
   (238, 41, 239, 42),
   (51, 38, 52, 39),
   (20, 38, 21, 37),
   (135, 36, 136, 37),
   (137, 203, 138, 202),
   (18, 201, 19, 202),
   (53, 201, 54, 200),
   (46, 197, 47, 198),
   (25, 197, 26, 196)],
  [Regina_Triangulation(0,0),
   [unnamed link(0,0),
    [[(3, 1, 4, 0),
      (7, 3, 8, 2),
      (5, 12, 6, 13),
      (8, 16, 9, 15),
      (20, 9, 21, 10),
      (10, 17, 11, 18),
      (18, 13, 19, 14),
      (14, 19, 15, 20),
      (16, 0, 17, 21),
      (23, 7, 2, 6),
      (11, 29, 12, 5),
      (1, 32, 28, 33),
      (33, 28, 34, 27),
      (23, 31, 24, 32),
      (31, 25, 30, 24),
      (27, 34, 26, 41),
      (25, 42, 26, 30),
      (4, 35, 36, 29),
      (35, 37, 38, 36),
      (37, 39, 40, 38),
      (39, 41, 42, 40)],
     1,
     4,
     4]]]]]
In [ ]: