$ od -c -N 50000 [Indigo]<Casaba>7.0>Saffron3.0>Derived>SaffronCG4Impl.Mesa!15
0000000    -   -       S   a   f   f   r   o   n   C   G   4   I   m   p
0000020    l   .   m   e   s   a  \r       -   -       C   o   p   y   r
0000040    i   g   h   t     323       1   9   8   7       b   y       X
0000060    e   r   o   x       C   o   r   p   o   r   a   t   i   o   n
0000100    .           A   l   l       r   i   g   h   t   s       r   e
0000120    s   e   r   v   e   d   .  \r       -   -       G   e   n   e
0000140    r   a   t   e   d       b   y       R   a   u   e   n   .   p
0000160    a       a   t       A   u   g   u   s   t       7   ,       1
0000200    9   8   8       7   :   5   7   :   4   9       p   m       P
0000220    D   T  \r       -   -           u   s   i   n   g       T   h
0000240    r   e   e   C   a   s   a   b   a   F   o   u   r       [   1
0000260    .   2   ]       o   f       J   u   n   e       1   ,       1
0000300    9   8   7       6   :   0   0   :   0   0       p   m       P
0000320    D   T  \r  \r   D   I   R   E   C   T   O   R   Y  \r  \t   S
0000340    a   f   f   r   o   n   A   G   7   a   D   e   f   ,  \r  \t
0000360    S   a   f   f   r   o   n   A   G   1   a   D   e   f   ,  \r
0000400   \t   S   a   f   f   r   o   n   A   G   6   b   D   e   f   ,
0000420   \r  \t   S   a   f   f   r   o   n   A   G   5   D   e   f   ,
0000440   \r  \t   S   a   f   f   r   o   n   A   G   4   D   e   f   ,
0000460   \r  \t   S   a   f   f   r   o   n   A   G   9   D   e   f   ,
0000500   \r  \t   S   a   f   f   r   o   n   A   G   2   D   e   f   ,
0000520   \r  \t   S   a   f   f   r   o   n   G   e   n   e   r   i   c
0000540    D   e   f   ,  \r  \t   T   h   r   e   e   C   4   S   u   p
0000560    p   o   r   t   ,  \r  \t   S   a   f   f   r   o   n   C   G
0000600    4   D   e   f       U   S   I   N   G   [   ]   ,  \r  \t   S
0000620    a   f   f   r   o   n   A   T   D   e   f   ;  \r  \r   S   a
0000640    f   f   r   o   n   C   G   4   I   m   p   l   :       C   E
0000660    D   A   R       P   R   O   G   R   A   M       I   M   P   O
0000700    R   T   S       S   a   f   f   r   o   n   A   G   7   a   D
0000720    e   f   ,       S   a   f   f   r   o   n   A   G   1   a   D
0000740    e   f   ,       S   a   f   f   r   o   n   A   G   6   b   D
0000760    e   f   ,       S   a   f   f   r   o   n   A   G   5   D   e
0001000    f   ,       S   a   f   f   r   o   n   A   G   4   D   e   f
0001020    ,       S   a   f   f   r   o   n   A   G   9   D   e   f   ,
0001040        S   a   f   f   r   o   n   A   G   2   D   e   f       E
0001060    X   P   O   R   T   S       S   a   f   f   r   o   n   C   G
0001100    4   D   e   f   =      \r   B   E   G   I   N  \r   O   P   E
0001120    N       S   a   f   f   r   o   n   A   G   7   a   D   e   f
0001140    ,       S   a   f   f   r   o   n   A   G   1   a   D   e   f
0001160    ,       S   a   f   f   r   o   n   A   G   6   b   D   e   f
0001200    ,       S   a   f   f   r   o   n   A   G   5   D   e   f   ,
0001220        S   a   f   f   r   o   n   A   G   4   D   e   f   ,    
0001240    S   a   f   f   r   o   n   A   G   9   D   e   f   ,       S
0001260    a   f   f   r   o   n   A   G   2   D   e   f   ,       S   a
0001300    f   f   r   o   n   G   e   n   e   r   i   c   D   e   f   ,
0001320        T   h   r   e   e   C   4   S   u   p   p   o   r   t   ,
0001340        S   a   f   f   r   o   n   A   T   D   e   f   ;  \r   S
0001360    a   f   f   r   o   n   C   G   4   L   i   n   k   P   r   o
0001400    c   :       P   U   B   L   I   C       P   R   O   C   [   p
0001420    r   o   d   L   i   n   k   A   r   r   a   y   :       S   e
0001440    e   P   r   o   d   L   i   n   k   A   r   r   a   y   ,    
0001460    t   k   n   L   i   n   k   A   r   r   a   y   :       T   o
0001500    k   e   n   L   i   n   k   A   r   r   a   y   ]       =  \r
0001520    B   E   G   I   N  \r   p   r   o   d   L   i   n   k   A   r
0001540    r   a   y   [   1   8   4   ]       _       S   e   e   r   a
0001560    n   g   e   a   ;  \r   p   r   o   d   L   i   n   k   A   r
0001600    r   a   y   [   1   8   5   ]       _       S   e   e   r   a
0001620    n   g   e   b   ;  \r   p   r   o   d   L   i   n   k   A   r
0001640    r   a   y   [   1   8   6   ]       _       S   e   e   r   a
0001660    n   g   e   c   ;  \r   p   r   o   d   L   i   n   k   A   r
0001700    r   a   y   [   1   8   7   ]       _       S   e   e   r   a
0001720    n   g   e   d   ;  \r   p   r   o   d   L   i   n   k   A   r
0001740    r   a   y   [   1   8   8   ]       _       S   e   e   r   a
0001760    n   g   e   e   ;  \r   p   r   o   d   L   i   n   k   A   r
0002000    r   a   y   [   1   8   9   ]       _       S   e   e   t   r
0002020    a   s   h   t   r   a   s   h   ;  \r   p   r   o   d   L   i
0002040    n   k   A   r   r   a   y   [   1   9   0   ]       _       S
0002060    e   e   t   r   a   s   h   n   u   l   l   ;  \r   p   r   o
0002100    d   L   i   n   k   A   r   r   a   y   [   1   9   1   ]    
0002120    _       S   e   e   d   e   f   a   u   l   t   o   p   t   g
0002140    e   t   s   t   r   a   s   h   ;  \r   p   r   o   d   L   i
0002160    n   k   A   r   r   a   y   [   1   9   2   ]       _       S
0002200    e   e   d   e   f   a   u   l   t   o   p   t   g   e   t   s
0002220    e   x   p   o   r   t   r   a   s   h   ;  \r   p   r   o   d
0002240    L   i   n   k   A   r   r   a   y   [   1   9   3   ]       _
0002260        S   e   e   d   e   f   a   u   l   t   o   p   t   g   e
0002300    t   s   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0002320    y   [   1   9   4   ]       _       S   e   e   d   e   f   a
0002340    u   l   t   o   p   t   g   e   t   s   e   x   p   ;  \r   p
0002360    r   o   d   L   i   n   k   A   r   r   a   y   [   1   9   5
0002400    ]       _       S   e   e   o   r   d   e   r   l   i   s   t
0002420    o   n   e   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0002440    a   y   [   1   9   6   ]       _       S   e   e   o   r   d
0002460    e   r   l   i   s   t   m   o   r   e   ;  \r   p   r   o   d
0002500    L   i   n   k   A   r   r   a   y   [   1   9   7   ]       _
0002520        S   e   e   t   r   u   s   t   e   d   ;  \r   p   r   o
0002540    d   L   i   n   k   A   r   r   a   y   [   1   9   8   ]    
0002560    _       S   e   e   o   p   t   r   e   l   a   t   i   o   n
0002600    n   e   g   a   t   i   v   e   ;  \r   p   r   o   d   L   i
0002620    n   k   A   r   r   a   y   [   1   9   9   ]       _       S
0002640    e   e   o   p   t   r   e   l   a   t   i   o   n   p   o   s
0002660    i   t   i   v   e   ;  \r   p   r   o   d   L   i   n   k   A
0002700    r   r   a   y   [   2   0   0   ]       _       S   e   e   r
0002720    e   l   a   t   i   o   n   t   a   i   l   r   a   n   g   e
0002740    ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [
0002760    2   0   1   ]       _       S   e   e   r   e   l   a   t   i
0003000    o   n   t   a   i   l   r   e   l   o   p   ;  \r   p   r   o
0003020    d   L   i   n   k   A   r   r   a   y   [   2   0   2   ]    
0003040    _       S   e   e   r   e   l   o   p   e   q   ;  \r   p   r
0003060    o   d   L   i   n   k   A   r   r   a   y   [   2   0   3   ]
0003100        _       S   e   e   r   e   l   o   p   n   e   ;  \r   p
0003120    r   o   d   L   i   n   k   A   r   r   a   y   [   2   0   4
0003140    ]       _       S   e   e   r   e   l   o   p   l   t   ;  \r
0003160    p   r   o   d   L   i   n   k   A   r   r   a   y   [   2   0
0003200    5   ]       _       S   e   e   r   e   l   o   p   l   e   ;
0003220   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   2
0003240    0   6   ]       _       S   e   e   r   e   l   o   p   g   t
0003260    ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [
0003300    2   0   7   ]       _       S   e   e   r   e   l   o   p   g
0003320    e   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y
0003340    [   2   0   8   ]       _       S   e   e   s   h   a   r   e
0003360    s   p   r   e   s   e   n   t   ;  \r   p   r   o   d   L   i
0003400    n   k   A   r   r   a   y   [   2   0   9   ]       _       S
0003420    e   e   s   h   a   r   e   s   a   b   s   e   n   t   ;  \r
0003440    p   r   o   d   L   i   n   k   A   r   r   a   y   [   2   1
0003460    0   ]       _       S   e   e   s   t   a   t   e   m   e   n
0003500    t   i   f   t   h   e   n   ;  \r   p   r   o   d   L   i   n
0003520    k   A   r   r   a   y   [   2   1   1   ]       _       S   e
0003540    e   s   t   a   t   e   m   e   n   t   i   f   t   h   e   n
0003560    e   l   s   e   ;  \r   p   r   o   d   L   i   n   k   A   r
0003600    r   a   y   [   2   1   2   ]       _       S   e   e   s   t
0003620    a   t   e   m   e   n   t   s   e   l   e   c   t   ;  \r   p
0003640    r   o   d   L   i   n   k   A   r   r   a   y   [   2   1   3
0003660    ]       _       S   e   e   s   t   a   t   e   m   e   n   t
0003700    b   a   s   i   c   s   t   m   t   ;  \r   p   r   o   d   L
0003720    i   n   k   A   r   r   a   y   [   2   1   4   ]       _    
0003740    S   e   e   b   a   l   s   t   m   t   i   f   t   h   e   n
0003760    e   l   s   e   ;  \r   p   r   o   d   L   i   n   k   A   r
0004000    r   a   y   [   2   1   5   ]       _       S   e   e   b   a
0004020    l   s   t   m   t   s   e   l   e   c   t   ;  \r   p   r   o
0004040    d   L   i   n   k   A   r   r   a   y   [   2   1   6   ]    
0004060    _       S   e   e   b   a   l   s   t   m   t   b   a   s   i
0004100    c   s   t   m   t   ;  \r   p   r   o   d   L   i   n   k   A
0004120    r   r   a   y   [   2   1   7   ]       _       S   e   e   b
0004140    a   s   i   c   s   t   m   t   e   x   p   ;  \r   p   r   o
0004160    d   L   i   n   k   A   r   r   a   y   [   2   1   8   ]    
0004200    _       S   e   e   b   a   s   i   c   s   t   m   t   a   s
0004220    s   i   g   n   ;  \r   p   r   o   d   L   i   n   k   A   r
0004240    r   a   y   [   2   1   9   ]       _       S   e   e   b   a
0004260    s   i   c   s   t   m   t   m   u   l   t   i   a   s   s   i
0004300    g   n   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0004320    y   [   2   2   0   ]       _       S   e   e   b   a   s   i
0004340    c   s   t   m   t   b   l   o   c   k   ;  \r   p   r   o   d
0004360    L   i   n   k   A   r   r   a   y   [   2   2   1   ]       _
0004400        S   e   e   b   a   s   i   c   s   t   m   t   s   e   l
0004420    e   c   t   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0004440    a   y   [   2   2   2   ]       _       S   e   e   b   a   s
0004460    i   c   s   t   m   t   l   o   o   p   c   o   n   t   r   o
0004500    l   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y
0004520    [   2   2   3   ]       _       S   e   e   b   a   s   i   c
0004540    s   t   m   t   e   x   i   t   ;  \r   p   r   o   d   L   i
0004560    n   k   A   r   r   a   y   [   2   2   4   ]       _       S
0004600    e   e   b   a   s   i   c   s   t   m   t   l   o   o   p   ;
0004620   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   2
0004640    2   5   ]       _       S   e   e   b   a   s   i   c   s   t
0004660    m   t   i   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0004700    a   y   [   2   2   6   ]       _       S   e   e   b   a   s
0004720    i   c   s   t   m   t   j   ;  \r   p   r   o   d   L   i   n
0004740    k   A   r   r   a   y   [   2   2   7   ]       _       S   e
0004760    e   b   a   s   i   c   s   t   m   t   r   e   t   u   r   n
0005000    ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [
0005020    2   2   8   ]       _       S   e   e   b   a   s   i   c   s
0005040    t   m   t   t   r   a   n   s   f   e   r   ;  \r   p   r   o
0005060    d   L   i   n   k   A   r   r   a   y   [   2   2   9   ]    
0005100    _       S   e   e   b   a   s   i   c   s   t   m   t   f   r
0005120    e   e   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0005140    y   [   2   3   0   ]       _       S   e   e   b   a   s   i
0005160    c   s   t   m   t   w   a   i   t   ;  \r   p   r   o   d   L
0005200    i   n   k   A   r   r   a   y   [   2   3   1   ]       _    
0005220    S   e   e   b   a   s   i   c   s   t   m   t   e   r   r   o
0005240    r   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y
0005260    [   2   3   2   ]       _       S   e   e   b   a   s   i   c
0005300    s   t   m   t   s   t   o   p   ;  \r   p   r   o   d   L   i
0005320    n   k   A   r   r   a   y   [   2   3   3   ]       _       S
0005340    e   e   b   a   s   i   c   s   t   m   t   n   u   l   l   ;
0005360   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   2
0005400    3   4   ]       _       S   e   e   b   a   s   i   c   s   t
0005420    m   t   r   e   s   u   m   e   ;  \r   p   r   o   d   L   i
0005440    n   k   A   r   r   a   y   [   2   3   5   ]       _       S
0005460    e   e   b   a   s   i   c   s   t   m   t   r   e   j   e   c
0005500    t   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y
0005520    [   2   3   6   ]       _       S   e   e   b   a   s   i   c
0005540    s   t   m   t   c   o   n   t   i   n   u   e   ;  \r   p   r
0005560    o   d   L   i   n   k   A   r   r   a   y   [   2   3   7   ]
0005600        _       S   e   e   b   a   s   i   c   s   t   m   t   r
0005620    e   t   r   y   ;  \r   p   r   o   d   L   i   n   k   A   r
0005640    r   a   y   [   2   3   8   ]       _       S   e   e   b   a
0005660    s   i   c   s   t   m   t   g   e   t   s   t   a   t   e   ;
0005700   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   2
0005720    3   9   ]       _       S   e   e   b   a   s   i   c   s   t
0005740    m   t   s   e   t   s   t   a   t   e   ;  \r   p   r   o   d
0005760    L   i   n   k   A   r   r   a   y   [   2   4   0   ]       _
0006000        S   e   e   f   o   r   c   l   a   u   s   e   a   s   s
0006020    i   g   n   a   t   i   o   n   ;  \r   p   r   o   d   L   i
0006040    n   k   A   r   r   a   y   [   2   4   1   ]       _       S
0006060    e   e   f   o   r   c   l   a   u   s   e   i   t   e   r   a
0006100    t   i   o   n   ;  \r   p   r   o   d   L   i   n   k   A   r
0006120    r   a   y   [   2   4   2   ]       _       S   e   e   f   o
0006140    r   c   l   a   u   s   e   r   e   p   e   t   i   t   i   o
0006160    n   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y
0006200    [   2   4   3   ]       _       S   e   e   f   o   r   c   l
0006220    a   u   s   e   e   m   p   t   y   ;  \r   p   r   o   d   L
0006240    i   n   k   A   r   r   a   y   [   2   4   4   ]       _    
0006260    S   e   e   c   o   n   t   r   o   l   i   d   n   e   w   ;
0006300   \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [   2
0006320    4   5   ]       _       S   e   e   c   o   n   t   r   o   l
0006340    i   d   o   l   d   ;  \r   p   r   o   d   L   i   n   k   A
0006360    r   r   a   y   [   2   4   6   ]       _       S   e   e   d
0006400    i   r   e   c   t   i   o   n   y   e   s   ;  \r   p   r   o
0006420    d   L   i   n   k   A   r   r   a   y   [   2   4   7   ]    
0006440    _       S   e   e   d   i   r   e   c   t   i   o   n   n   o
0006460    ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y   [
0006500    2   4   8   ]       _       S   e   e   d   o   e   x   i   t
0006520    a   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a   y
0006540    [   2   4   9   ]       _       S   e   e   d   o   e   x   i
0006560    t   b   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0006600    y   [   2   5   0   ]       _       S   e   e   d   o   e   x
0006620    i   t   c   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0006640    a   y   [   2   5   1   ]       _       S   e   e   d   o   e
0006660    x   i   t   d   ;  \r   p   r   o   d   L   i   n   k   A   r
0006700    r   a   y   [   2   5   2   ]       _       S   e   e   t   r
0006720    a   n   s   f   e   r   s   i   g   n   a   l   ;  \r   p   r
0006740    o   d   L   i   n   k   A   r   r   a   y   [   2   5   3   ]
0006760        _       S   e   e   t   r   a   n   s   f   e   r   e   r
0007000    r   o   r   ;  \r   p   r   o   d   L   i   n   k   A   r   r
0007020    a   y   [   2   5   4   ]       _       S   e   e   t   r   a
0007040    n   s   f   e   r   r   e   t   u   r   n   w   i   t   h   e
0007060    r   r   o   r   ;  \r   p   r   o   d   L   i   n   k   A   r
0007100    r   a   y   [   2   5   5   ]       _       S   e   e   t   r
0007120    a   n   s   f   e   r   s   t   a   r   t   ;  \r   p   r   o
0007140    d   L   i   n   k   A   r   r   a   y   [   2   5   6   ]    
0007160    _       S   e   e   t   r   a   n   s   f   e   r   r   e   s
0007200    t   a   r   t   ;  \r   p   r   o   d   L   i   n   k   A   r
0007220    r   a   y   [   2   5   7   ]       _       S   e   e   t   r
0007240    a   n   s   f   e   r   j   o   i   n   ;  \r   p   r   o   d
0007260    L   i   n   k   A   r   r   a   y   [   2   5   8   ]       _
0007300        S   e   e   t   r   a   n   s   f   e   r   n   o   t   i
0007320    f   y   ;  \r   p   r   o   d   L   i   n   k   A   r   r   a
0007340    y   [   2   5   9   ]       _       S   e   e   t   r   a   n
0007360    s   f   e   r   b   r   o   a   d   c   a   s   t   ;  \r   p
0007400    r   o   d   L   i   n   k   A   r   r   a   y   [   2   6   0
0007420    ]       _       S   e   e   t   r   a   n   s   f   e   r   t
0007440    r   a   n   s   f   e   r   w   i   t   h   ;  \r   p   r   o
0007460    d   L   i   n   k   A   r   r   a   y   [   2   6   1   ]    
0007500    _       S   e   e   t   r   a   n   s   f   e   r   r   e   t
0007520    u   r   n   w   i   t   h   ;  \r   E   N   D   ;  \r  \r   S
0007540    e   e   r   a   n   g   e   a   :       P   R   O   C       [
0007560    n   o   d   e   s   :       L   I   S   T       O   F       R
0007600    E   F       A   N   Y   ,       p   o   s   i   t   i   o   n
0007620    :       I   N   T   ,       l   e   n   g   t   h   :       I
0007640    N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I
0007660    S   T       O   F       R   E   F       A   N   Y   ]       =
0007700   \r   B   E   G   I   N  \r   s   t   a   c   k   :       L   I
0007720    S   T       O   F       R   E   F       A   N   Y       _    
0007740    n   o   d   e   s   ;  \r   I   d   :       I   d   N   o   d
0007760    e   ;  \r   I   d       _       N   A   R   R   O   W   [   s
0010000    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0010020    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0010040   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0010060    i   l   d   R   a   n   g   e   t   y   p   e   i   d   P   r
0010100    o   d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,
0010120        l   e   n   g   t   h   ,       B   u   i   l   d   T   y
0010140    p   e   I   d   i   d   P   r   o   d   N   o   d   e   [   I
0010160    d   .   p   o   s   i   t   i   o   n   ,       I   d   .   l
0010200    e   n   g   t   h   ,       I   d   ]   ]   ,       s   t   a
0010220    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0010240    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   r   a   n
0010260    g   e   b   :       P   R   O   C       [   n   o   d   e   s
0010300    :       L   I   S   T       O   F       R   E   F       A   N
0010320    Y   ,       p   o   s   i   t   i   o   n   :       I   N   T
0010340    ,       l   e   n   g   t   h   :       I   N   T   ]  \r  \t
0010360    R   E   T   U   R   N   S       [   L   I   S   T       O   F
0010400        R   E   F       A   N   Y   ]       =  \r   B   E   G   I
0010420    N  \r   s   t   a   c   k   :       L   I   S   T       O   F
0010440        R   E   F       A   N   Y       _       n   o   d   e   s
0010460    ;  \r   I   d   :       I   d   N   o   d   e   ;  \r   i   n
0010500    t   e   r   v   a   l   :       I   n   t   e   r   v   a   l
0010520    N   o   d   e   ;  \r   i   n   t   e   r   v   a   l       _
0010540        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0010560    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0010600    a   c   k   .   r   e   s   t   ;  \r   I   d       _       N
0010620    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0010640    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0010660    k   .   r   e   s   t   ;  \r   s   t   a   c   k       _    
0010700    C   O   N   S   [   B   u   i   l   d   R   a   n   g   e   s
0010720    u   b   r   a   n   g   e   P   r   o   d   N   o   d   e   [
0010740    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0010760    ,       B   u   i   l   d   S   u   b   r   a   n   g   e   n
0011000    a   m   e   d   P   r   o   d   N   o   d   e   [   I   d   .
0011020    p   o   s   i   t   i   o   n   ,       i   n   t   e   r   v
0011040    a   l   .   p   o   s   i   t   i   o   n       +       i   n
0011060    t   e   r   v   a   l   .   l   e   n   g   t   h       -    
0011100    I   d   .   p   o   s   i   t   i   o   n   ,       B   u   i
0011120    l   d   T   y   p   e   I   d   i   d   P   r   o   d   N   o
0011140    d   e   [   I   d   .   p   o   s   i   t   i   o   n   ,    
0011160    I   d   .   l   e   n   g   t   h   ,       I   d   ]   ,    
0011200    i   n   t   e   r   v   a   l   ]   ]   ,       s   t   a   c
0011220    k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c
0011240    k   ]  \r   E   N   D   ;  \r  \r   S   e   e   r   a   n   g
0011260    e   c   :       P   R   O   C       [   n   o   d   e   s   :
0011300        L   I   S   T       O   F       R   E   F       A   N   Y
0011320    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0011340        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0011360    E   T   U   R   N   S       [   L   I   S   T       O   F    
0011400    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0011420   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0011440    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0011460   \r   t   y   p   e   i   d   :       T   y   p   e   I   d   N
0011500    o   d   e   ;  \r   i   n   t   e   r   v   a   l   :       I
0011520    n   t   e   r   v   a   l   N   o   d   e   ;  \r   i   n   t
0011540    e   r   v   a   l       _       N   A   R   R   O   W   [   s
0011560    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0011600    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0011620   \r   t   y   p   e   i   d       _       N   A   R   R   O   W
0011640    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0011660    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0011700    t   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0011720    B   u   i   l   d   R   a   n   g   e   s   u   b   r   a   n
0011740    g   e   P   r   o   d   N   o   d   e   [   p   o   s   i   t
0011760    i   o   n   ,       l   e   n   g   t   h   ,       B   u   i
0012000    l   d   S   u   b   r   a   n   g   e   n   a   m   e   d   P
0012020    r   o   d   N   o   d   e   [   t   y   p   e   i   d   .   p
0012040    o   s   i   t   i   o   n   ,       i   n   t   e   r   v   a
0012060    l   .   p   o   s   i   t   i   o   n       +       i   n   t
0012100    e   r   v   a   l   .   l   e   n   g   t   h       -       t
0012120    y   p   e   i   d   .   p   o   s   i   t   i   o   n   ,    
0012140    t   y   p   e   i   d   ,       i   n   t   e   r   v   a   l
0012160    ]   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U
0012200    R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r
0012220   \r   S   e   e   r   a   n   g   e   d   :       P   R   O   C
0012240        [   n   o   d   e   s   :       L   I   S   T       O   F
0012260        R   E   F       A   N   Y   ,       p   o   s   i   t   i
0012300    o   n   :       I   N   T   ,       l   e   n   g   t   h   :
0012320        I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [
0012340    L   I   S   T       O   F       R   E   F       A   N   Y   ]
0012360        =  \r   B   E   G   I   N  \r   s   t   a   c   k   :    
0012400    L   I   S   T       O   F       R   E   F       A   N   Y    
0012420    _       n   o   d   e   s   ;  \r   i   n   t   e   r   v   a
0012440    l   :       I   n   t   e   r   v   a   l   N   o   d   e   ;
0012460   \r   i   n   t   e   r   v   a   l       _       N   A   R   R
0012500    O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;
0012520   \r   s   t   a   c   k       _       s   t   a   c   k   .   r
0012540    e   s   t   ;  \r   s   t   a   c   k       _       C   O   N
0012560    S   [   B   u   i   l   d   R   a   n   g   e   s   u   b   r
0012600    a   n   g   e   P   r   o   d   N   o   d   e   [   p   o   s
0012620    i   t   i   o   n   ,       l   e   n   g   t   h   ,       B
0012640    u   i   l   d   S   u   b   r   a   n   g   e   u   n   n   a
0012660    m   e   d   P   r   o   d   N   o   d   e   [   i   n   t   e
0012700    r   v   a   l   .   p   o   s   i   t   i   o   n   ,       i
0012720    n   t   e   r   v   a   l   .   l   e   n   g   t   h   ,    
0012740    i   n   t   e   r   v   a   l   ]   ]   ,       s   t   a   c
0012760    k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c
0013000    k   ]  \r   E   N   D   ;  \r  \r   S   e   e   r   a   n   g
0013020    e   e   :       P   R   O   C       [   n   o   d   e   s   :
0013040        L   I   S   T       O   F       R   E   F       A   N   Y
0013060    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0013100        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0013120    E   T   U   R   N   S       [   L   I   S   T       O   F    
0013140    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0013160   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0013200    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0013220   \r   t   y   p   e   i   d   :       T   y   p   e   I   d   N
0013240    o   d   e   ;  \r   t   y   p   e   i   d       _       N   A
0013260    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0013300    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0013320    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0013340    O   N   S   [   B   u   i   l   d   R   a   n   g   e   t   y
0013360    p   e   i   d   P   r   o   d   N   o   d   e   [   p   o   s
0013400    i   t   i   o   n   ,       l   e   n   g   t   h   ,       t
0013420    y   p   e   i   d   ]   ,       s   t   a   c   k   ]   ;  \r
0013440    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0013460    N   D   ;  \r  \r   S   e   e   t   r   a   s   h   t   r   a
0013500    s   h   :       P   R   O   C       [   n   o   d   e   s   :
0013520        L   I   S   T       O   F       R   E   F       A   N   Y
0013540    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0013560        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0013600    E   T   U   R   N   S       [   L   I   S   T       O   F    
0013620    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0013640   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0013660    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0013700   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0013720    i   l   d   J   u   n   k   P   r   o   d   N   o   d   e   [
0013740    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0013760    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0014000    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0014020    S   e   e   t   r   a   s   h   n   u   l   l   :       P   R
0014040    O   C       [   n   o   d   e   s   :       L   I   S   T    
0014060    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0014100    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0014120    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0014140        [   L   I   S   T       O   F       R   E   F       A   N
0014160    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0014200    :       L   I   S   T       O   F       R   E   F       A   N
0014220    Y       _       n   o   d   e   s   ;  \r   s   t   a   c   k
0014240        _       C   O   N   S   [   B   u   i   l   d   J   u   n
0014260    k   P   r   o   d   N   o   d   e   [   p   o   s   i   t   i
0014300    o   n   ,       l   e   n   g   t   h   ]   ,       s   t   a
0014320    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0014340    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   d   e   f
0014360    a   u   l   t   o   p   t   g   e   t   s   t   r   a   s   h
0014400    :       P   R   O   C       [   n   o   d   e   s   :       L
0014420    I   S   T       O   F       R   E   F       A   N   Y   ,    
0014440    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0014460    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0014500    U   R   N   S       [   L   I   S   T       O   F       R   E
0014520    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0014540    t   a   c   k   :       L   I   S   T       O   F       R   E
0014560    F       A   N   Y       _       n   o   d   e   s   ;  \r   t
0014600    r   a   s   h   :       J   u   n   k   N   o   d   e   ;  \r
0014620    t   r   a   s   h       _       N   A   R   R   O   W   [   s
0014640    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0014660    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0014700   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0014720    i   l   d   D   e   f   a   u   l   t   g   e   t   s   t   r
0014740    a   s   h   P   r   o   d   N   o   d   e   [   p   o   s   i
0014760    t   i   o   n   ,       l   e   n   g   t   h   ]   ,       s
0015000    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0015020    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   d
0015040    e   f   a   u   l   t   o   p   t   g   e   t   s   e   x   p
0015060    o   r   t   r   a   s   h   :       P   R   O   C       [   n
0015100    o   d   e   s   :       L   I   S   T       O   F       R   E
0015120    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0015140        I   N   T   ,       l   e   n   g   t   h   :       I   N
0015160    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0015200    T       O   F       R   E   F       A   N   Y   ]       =  \r
0015220    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0015240    T       O   F       R   E   F       A   N   Y       _       n
0015260    o   d   e   s   ;  \r   e   x   p   :       E   x   p   N   o
0015300    d   e   ;  \r   t   r   a   s   h   :       J   u   n   k   N
0015320    o   d   e   ;  \r   t   r   a   s   h       _       N   A   R
0015340    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0015360    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0015400    r   e   s   t   ;  \r   e   x   p       _       N   A   R   R
0015420    O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;
0015440   \r   s   t   a   c   k       _       s   t   a   c   k   .   r
0015460    e   s   t   ;  \r   s   t   a   c   k       _       C   O   N
0015500    S   [   B   u   i   l   d   D   e   f   a   u   l   t   g   e
0015520    t   s   e   x   p   o   r   t   r   a   s   h   P   r   o   d
0015540    N   o   d   e   [   p   o   s   i   t   i   o   n   ,       l
0015560    e   n   g   t   h   ,       e   x   p   ]   ,       s   t   a
0015600    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0015620    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   d   e   f
0015640    a   u   l   t   o   p   t   g   e   t   s   :       P   R   O
0015660    C       [   n   o   d   e   s   :       L   I   S   T       O
0015700    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0015720    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0015740    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0015760    [   L   I   S   T       O   F       R   E   F       A   N   Y
0016000    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0016020        L   I   S   T       O   F       R   E   F       A   N   Y
0016040        _       n   o   d   e   s   ;  \r   s   t   a   c   k    
0016060    _       C   O   N   S   [   B   u   i   l   d   D   e   f   a
0016100    u   l   t   g   e   t   s   P   r   o   d   N   o   d   e   [
0016120    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0016140    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0016160    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0016200    S   e   e   d   e   f   a   u   l   t   o   p   t   g   e   t
0016220    s   e   x   p   :       P   R   O   C       [   n   o   d   e
0016240    s   :       L   I   S   T       O   F       R   E   F       A
0016260    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0016300    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0016320   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0016340    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0016360    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0016400    F       R   E   F       A   N   Y       _       n   o   d   e
0016420    s   ;  \r   e   x   p   :       E   x   p   N   o   d   e   ;
0016440   \r   e   x   p       _       N   A   R   R   O   W   [   s   t
0016460    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0016500    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0016520    s   t   a   c   k       _       C   O   N   S   [   B   u   i
0016540    l   d   D   e   f   a   u   l   t   g   e   t   s   e   x   p
0016560    P   r   o   d   N   o   d   e   [   p   o   s   i   t   i   o
0016600    n   ,       l   e   n   g   t   h   ,       e   x   p   ]   ,
0016620        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0016640    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0016660    e   o   r   d   e   r   l   i   s   t   o   n   e   :       P
0016700    R   O   C       [   n   o   d   e   s   :       L   I   S   T
0016720        O   F       R   E   F       A   N   Y   ,       p   o   s
0016740    i   t   i   o   n   :       I   N   T   ,       l   e   n   g
0016760    t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N
0017000    S       [   L   I   S   T       O   F       R   E   F       A
0017020    N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c
0017040    k   :       L   I   S   T       O   F       R   E   F       A
0017060    N   Y       _       n   o   d   e   s   ;  \r   o   p   t   e
0017100    x   p   :       O   p   t   E   x   p   N   o   d   e   ;  \r
0017120    o   p   t   e   x   p       _       N   A   R   R   O   W   [
0017140    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0017160    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0017200    ;  \r   s   t   a   c   k       _       C   O   N   S   [   B
0017220    u   i   l   d   O   r   d   e   r   L   i   s   t   o   n   e
0017240    P   r   o   d   N   o   d   e   [   p   o   s   i   t   i   o
0017260    n   ,       l   e   n   g   t   h   ,       o   p   t   e   x
0017300    p   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U
0017320    R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r
0017340   \r   S   e   e   o   r   d   e   r   l   i   s   t   m   o   r
0017360    e   :       P   R   O   C       [   n   o   d   e   s   :    
0017400    L   I   S   T       O   F       R   E   F       A   N   Y   ,
0017420        p   o   s   i   t   i   o   n   :       I   N   T   ,    
0017440    l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E
0017460    T   U   R   N   S       [   L   I   S   T       O   F       R
0017500    E   F       A   N   Y   ]       =  \r   B   E   G   I   N  \r
0017520    s   t   a   c   k   :       L   I   S   T       O   F       R
0017540    E   F       A   N   Y       _       n   o   d   e   s   ;  \r
0017560    o   r   d   e   r   l   i   s   t   :       O   r   d   e   r
0017600    L   i   s   t   N   o   d   e   ;  \r   o   p   t   e   x   p
0017620    :       O   p   t   E   x   p   N   o   d   e   ;  \r   o   p
0017640    t   e   x   p       _       N   A   R   R   O   W   [   s   t
0017660    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0017700    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0017720    o   r   d   e   r   l   i   s   t       _       N   A   R   R
0017740    O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;
0017760   \r   s   t   a   c   k       _       s   t   a   c   k   .   r
0020000    e   s   t   ;  \r   s   t   a   c   k       _       C   O   N
0020020    S   [   B   u   i   l   d   O   r   d   e   r   L   i   s   t
0020040    m   o   r   e   P   r   o   d   N   o   d   e   [   p   o   s
0020060    i   t   i   o   n   ,       l   e   n   g   t   h   ,       o
0020100    r   d   e   r   l   i   s   t   ,       o   p   t   e   x   p
0020120    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0020140    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0020160    S   e   e   t   r   u   s   t   e   d   :       P   R   O   C
0020200        [   n   o   d   e   s   :       L   I   S   T       O   F
0020220        R   E   F       A   N   Y   ,       p   o   s   i   t   i
0020240    o   n   :       I   N   T   ,       l   e   n   g   t   h   :
0020260        I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [
0020300    L   I   S   T       O   F       R   E   F       A   N   Y   ]
0020320        =  \r   B   E   G   I   N  \r   s   t   a   c   k   :    
0020340    L   I   S   T       O   F       R   E   F       A   N   Y    
0020360    _       n   o   d   e   s   ;  \r   s   t   a   c   k       _
0020400        C   O   N   S   [   B   u   i   l   d   J   u   n   k   P
0020420    r   o   d   N   o   d   e   [   p   o   s   i   t   i   o   n
0020440    ,       l   e   n   g   t   h   ]   ,       s   t   a   c   k
0020460    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0020500    ]  \r   E   N   D   ;  \r  \r   S   e   e   o   p   t   r   e
0020520    l   a   t   i   o   n   n   e   g   a   t   i   v   e   :    
0020540    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0020560    T       O   F       R   E   F       A   N   Y   ,       p   o
0020600    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0020620    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0020640    N   S       [   L   I   S   T       O   F       R   E   F    
0020660    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0020700    c   k   :       L   I   S   T       O   F       R   E   F    
0020720    A   N   Y       _       n   o   d   e   s   ;  \r   r   e   l
0020740    a   t   i   o   n   t   a   i   l   :       R   e   l   a   t
0020760    i   o   n   T   a   i   l   N   o   d   e   ;  \r   r   e   l
0021000    a   t   i   o   n   t   a   i   l       _       N   A   R   R
0021020    O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;
0021040   \r   s   t   a   c   k       _       s   t   a   c   k   .   r
0021060    e   s   t   ;  \r   s   t   a   c   k       _       C   O   N
0021100    S   [   B   u   i   l   d   R   e   l   a   t   i   o   n   n
0021120    e   g   a   t   i   v   e   P   r   o   d   N   o   d   e   [
0021140    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0021160    ,       r   e   l   a   t   i   o   n   t   a   i   l   ]   ,
0021200        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0021220    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0021240    e   o   p   t   r   e   l   a   t   i   o   n   p   o   s   i
0021260    t   i   v   e   :       P   R   O   C       [   n   o   d   e
0021300    s   :       L   I   S   T       O   F       R   E   F       A
0021320    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0021340    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0021360   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0021400    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0021420    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0021440    F       R   E   F       A   N   Y       _       n   o   d   e
0021460    s   ;  \r   r   e   l   a   t   i   o   n   t   a   i   l   :
0021500        R   e   l   a   t   i   o   n   T   a   i   l   N   o   d
0021520    e   ;  \r   r   e   l   a   t   i   o   n   t   a   i   l    
0021540    _       N   A   R   R   O   W   [   s   t   a   c   k   .   f
0021560    i   r   s   t   ]   ;  \r   s   t   a   c   k       _       s
0021600    t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k
0021620        _       C   O   N   S   [   B   u   i   l   d   R   e   l
0021640    a   t   i   o   n   p   o   s   i   t   i   v   e   P   r   o
0021660    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0021700    l   e   n   g   t   h   ,       r   e   l   a   t   i   o   n
0021720    t   a   i   l   ]   ,       s   t   a   c   k   ]   ;  \r   R
0021740    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0021760    D   ;  \r  \r   S   e   e   r   e   l   a   t   i   o   n   t
0022000    a   i   l   r   a   n   g   e   :       P   R   O   C       [
0022020    n   o   d   e   s   :       L   I   S   T       O   F       R
0022040    E   F       A   N   Y   ,       p   o   s   i   t   i   o   n
0022060    :       I   N   T   ,       l   e   n   g   t   h   :       I
0022100    N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I
0022120    S   T       O   F       R   E   F       A   N   Y   ]       =
0022140   \r   B   E   G   I   N  \r   s   t   a   c   k   :       L   I
0022160    S   T       O   F       R   E   F       A   N   Y       _    
0022200    n   o   d   e   s   ;  \r   r   a   n   g   e   :       R   a
0022220    n   g   e   N   o   d   e   ;  \r   r   a   n   g   e       _
0022240        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0022260    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0022300    a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k    
0022320    _       C   O   N   S   [   B   u   i   l   d   R   e   l   a
0022340    t   i   o   n   T   a   i   l   r   a   n   g   e   P   r   o
0022360    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0022400    l   e   n   g   t   h   ,       r   a   n   g   e   ]   ,    
0022420    s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [
0022440    s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e
0022460    r   e   l   a   t   i   o   n   t   a   i   l   r   e   l   o
0022500    p   :       P   R   O   C       [   n   o   d   e   s   :    
0022520    L   I   S   T       O   F       R   E   F       A   N   Y   ,
0022540        p   o   s   i   t   i   o   n   :       I   N   T   ,    
0022560    l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E
0022600    T   U   R   N   S       [   L   I   S   T       O   F       R
0022620    E   F       A   N   Y   ]       =  \r   B   E   G   I   N  \r
0022640    s   t   a   c   k   :       L   I   S   T       O   F       R
0022660    E   F       A   N   Y       _       n   o   d   e   s   ;  \r
0022700    r   e   l   o   p   :       R   e   l   o   p   N   o   d   e
0022720    ;  \r   s   u   m   :       E   x   p   N   o   d   e   ;  \r
0022740    s   u   m       _       N   A   R   R   O   W   [   s   t   a
0022760    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0023000        _       s   t   a   c   k   .   r   e   s   t   ;  \r   r
0023020    e   l   o   p       _       N   A   R   R   O   W   [   s   t
0023040    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0023060    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0023100    s   t   a   c   k       _       C   O   N   S   [   B   u   i
0023120    l   d   R   e   l   a   t   i   o   n   T   a   i   l   r   e
0023140    l   o   p   P   r   o   d   N   o   d   e   [   p   o   s   i
0023160    t   i   o   n   ,       l   e   n   g   t   h   ,       r   e
0023200    l   o   p   ,       s   u   m   ]   ,       s   t   a   c   k
0023220    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0023240    ]  \r   E   N   D   ;  \r  \r   S   e   e   r   e   l   o   p
0023260    e   q   :       P   R   O   C       [   n   o   d   e   s   :
0023300        L   I   S   T       O   F       R   E   F       A   N   Y
0023320    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0023340        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0023360    E   T   U   R   N   S       [   L   I   S   T       O   F    
0023400    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0023420   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0023440    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0023460   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0023500    i   l   d   R   e   l   o   p   e   q   P   r   o   d   N   o
0023520    d   e   [   p   o   s   i   t   i   o   n   ,       l   e   n
0023540    g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r   R   E
0023560    T   U   R   N       [   s   t   a   c   k   ]  \r   E   N   D
0023600    ;  \r  \r   S   e   e   r   e   l   o   p   n   e   :       P
0023620    R   O   C       [   n   o   d   e   s   :       L   I   S   T
0023640        O   F       R   E   F       A   N   Y   ,       p   o   s
0023660    i   t   i   o   n   :       I   N   T   ,       l   e   n   g
0023700    t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N
0023720    S       [   L   I   S   T       O   F       R   E   F       A
0023740    N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c
0023760    k   :       L   I   S   T       O   F       R   E   F       A
0024000    N   Y       _       n   o   d   e   s   ;  \r   s   t   a   c
0024020    k       _       C   O   N   S   [   B   u   i   l   d   R   e
0024040    l   o   p   n   e   P   r   o   d   N   o   d   e   [   p   o
0024060    s   i   t   i   o   n   ,       l   e   n   g   t   h   ]   ,
0024100        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0024120    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0024140    e   r   e   l   o   p   l   t   :       P   R   O   C       [
0024160    n   o   d   e   s   :       L   I   S   T       O   F       R
0024200    E   F       A   N   Y   ,       p   o   s   i   t   i   o   n
0024220    :       I   N   T   ,       l   e   n   g   t   h   :       I
0024240    N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I
0024260    S   T       O   F       R   E   F       A   N   Y   ]       =
0024300   \r   B   E   G   I   N  \r   s   t   a   c   k   :       L   I
0024320    S   T       O   F       R   E   F       A   N   Y       _    
0024340    n   o   d   e   s   ;  \r   s   t   a   c   k       _       C
0024360    O   N   S   [   B   u   i   l   d   R   e   l   o   p   l   t
0024400    P   r   o   d   N   o   d   e   [   p   o   s   i   t   i   o
0024420    n   ,       l   e   n   g   t   h   ]   ,       s   t   a   c
0024440    k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c
0024460    k   ]  \r   E   N   D   ;  \r  \r   S   e   e   r   e   l   o
0024500    p   l   e   :       P   R   O   C       [   n   o   d   e   s
0024520    :       L   I   S   T       O   F       R   E   F       A   N
0024540    Y   ,       p   o   s   i   t   i   o   n   :       I   N   T
0024560    ,       l   e   n   g   t   h   :       I   N   T   ]  \r  \t
0024600    R   E   T   U   R   N   S       [   L   I   S   T       O   F
0024620        R   E   F       A   N   Y   ]       =  \r   B   E   G   I
0024640    N  \r   s   t   a   c   k   :       L   I   S   T       O   F
0024660        R   E   F       A   N   Y       _       n   o   d   e   s
0024700    ;  \r   s   t   a   c   k       _       C   O   N   S   [   B
0024720    u   i   l   d   R   e   l   o   p   l   e   P   r   o   d   N
0024740    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0024760    n   g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r   R
0025000    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0025020    D   ;  \r  \r   S   e   e   r   e   l   o   p   g   t   :    
0025040    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0025060    T       O   F       R   E   F       A   N   Y   ,       p   o
0025100    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0025120    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0025140    N   S       [   L   I   S   T       O   F       R   E   F    
0025160    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0025200    c   k   :       L   I   S   T       O   F       R   E   F    
0025220    A   N   Y       _       n   o   d   e   s   ;  \r   s   t   a
0025240    c   k       _       C   O   N   S   [   B   u   i   l   d   R
0025260    e   l   o   p   g   t   P   r   o   d   N   o   d   e   [   p
0025300    o   s   i   t   i   o   n   ,       l   e   n   g   t   h   ]
0025320    ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N
0025340        [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S
0025360    e   e   r   e   l   o   p   g   e   :       P   R   O   C    
0025400    [   n   o   d   e   s   :       L   I   S   T       O   F    
0025420    R   E   F       A   N   Y   ,       p   o   s   i   t   i   o
0025440    n   :       I   N   T   ,       l   e   n   g   t   h   :    
0025460    I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L
0025500    I   S   T       O   F       R   E   F       A   N   Y   ]    
0025520    =  \r   B   E   G   I   N  \r   s   t   a   c   k   :       L
0025540    I   S   T       O   F       R   E   F       A   N   Y       _
0025560        n   o   d   e   s   ;  \r   s   t   a   c   k       _    
0025600    C   O   N   S   [   B   u   i   l   d   R   e   l   o   p   g
0025620    e   P   r   o   d   N   o   d   e   [   p   o   s   i   t   i
0025640    o   n   ,       l   e   n   g   t   h   ]   ,       s   t   a
0025660    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0025700    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   s   h   a
0025720    r   e   s   p   r   e   s   e   n   t   :       P   R   O   C
0025740        [   n   o   d   e   s   :       L   I   S   T       O   F
0025760        R   E   F       A   N   Y   ,       p   o   s   i   t   i
0026000    o   n   :       I   N   T   ,       l   e   n   g   t   h   :
0026020        I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [
0026040    L   I   S   T       O   F       R   E   F       A   N   Y   ]
0026060        =  \r   B   E   G   I   N  \r   s   t   a   c   k   :    
0026100    L   I   S   T       O   F       R   E   F       A   N   Y    
0026120    _       n   o   d   e   s   ;  \r   i   d   l   i   s   t   :
0026140        I   d   L   i   s   t   N   o   d   e   ;  \r   i   d   l
0026160    i   s   t       _       N   A   R   R   O   W   [   s   t   a
0026200    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0026220        _       s   t   a   c   k   .   r   e   s   t   ;  \r   s
0026240    t   a   c   k       _       C   O   N   S   [   B   u   i   l
0026260    d   S   h   a   r   e   s   p   r   e   s   e   n   t   P   r
0026300    o   d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,
0026320        l   e   n   g   t   h   ,       i   d   l   i   s   t   ]
0026340    ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N
0026360        [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S
0026400    e   e   s   h   a   r   e   s   a   b   s   e   n   t   :    
0026420    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0026440    T       O   F       R   E   F       A   N   Y   ,       p   o
0026460    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0026500    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0026520    N   S       [   L   I   S   T       O   F       R   E   F    
0026540    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0026560    c   k   :       L   I   S   T       O   F       R   E   F    
0026600    A   N   Y       _       n   o   d   e   s   ;  \r   s   t   a
0026620    c   k       _       C   O   N   S   [   B   u   i   l   d   S
0026640    h   a   r   e   s   a   b   s   e   n   t   P   r   o   d   N
0026660    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0026700    n   g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r   R
0026720    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0026740    D   ;  \r  \r   S   e   e   s   t   a   t   e   m   e   n   t
0026760    i   f   t   h   e   n   :       P   R   O   C       [   n   o
0027000    d   e   s   :       L   I   S   T       O   F       R   E   F
0027020        A   N   Y   ,       p   o   s   i   t   i   o   n   :    
0027040    I   N   T   ,       l   e   n   g   t   h   :       I   N   T
0027060    ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S   T
0027100        O   F       R   E   F       A   N   Y   ]       =  \r   B
0027120    E   G   I   N  \r   s   t   a   c   k   :       L   I   S   T
0027140        O   F       R   E   F       A   N   Y       _       n   o
0027160    d   e   s   ;  \r   e   x   p   :       E   x   p   N   o   d
0027200    e   ;  \r   s   t   a   t   e   m   e   n   t   :       S   t
0027220    a   t   e   m   e   n   t   N   o   d   e   ;  \r   s   t   a
0027240    t   e   m   e   n   t       _       N   A   R   R   O   W   [
0027260    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0027300    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0027320    ;  \r   e   x   p       _       N   A   R   R   O   W   [   s
0027340    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0027360    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0027400   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0027420    i   l   d   S   t   a   t   e   m   e   n   t   i   f   t   h
0027440    e   n   P   r   o   d   N   o   d   e   [   p   o   s   i   t
0027460    i   o   n   ,       l   e   n   g   t   h   ,       e   x   p
0027500    ,       s   t   a   t   e   m   e   n   t   ]   ,       s   t
0027520    a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t
0027540    a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   s   t
0027560    a   t   e   m   e   n   t   i   f   t   h   e   n   e   l   s
0027600    e   :       P   R   O   C       [   n   o   d   e   s   :    
0027620    L   I   S   T       O   F       R   E   F       A   N   Y   ,
0027640        p   o   s   i   t   i   o   n   :       I   N   T   ,    
0027660    l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E
0027700    T   U   R   N   S       [   L   I   S   T       O   F       R
0027720    E   F       A   N   Y   ]       =  \r   B   E   G   I   N  \r
0027740    s   t   a   c   k   :       L   I   S   T       O   F       R
0027760    E   F       A   N   Y       _       n   o   d   e   s   ;  \r
0030000    e   x   p   :       E   x   p   N   o   d   e   ;  \r   b   a
0030020    l   s   t   m   t   :       S   t   a   t   e   m   e   n   t
0030040    N   o   d   e   ;  \r   s   t   a   t   e   m   e   n   t   :
0030060        S   t   a   t   e   m   e   n   t   N   o   d   e   ;  \r
0030100    s   t   a   t   e   m   e   n   t       _       N   A   R   R
0030120    O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;
0030140   \r   s   t   a   c   k       _       s   t   a   c   k   .   r
0030160    e   s   t   ;  \r   b   a   l   s   t   m   t       _       N
0030200    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0030220    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0030240    k   .   r   e   s   t   ;  \r   e   x   p       _       N   A
0030260    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0030300    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0030320    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0030340    O   N   S   [   B   u   i   l   d   S   t   a   t   e   m   e
0030360    n   t   i   f   t   h   e   n   e   l   s   e   P   r   o   d
0030400    N   o   d   e   [   p   o   s   i   t   i   o   n   ,       l
0030420    e   n   g   t   h   ,       e   x   p   ,       b   a   l   s
0030440    t   m   t   ,       s   t   a   t   e   m   e   n   t   ]   ,
0030460        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0030500    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0030520    e   s   t   a   t   e   m   e   n   t   s   e   l   e   c   t
0030540    :       P   R   O   C       [   n   o   d   e   s   :       L
0030560    I   S   T       O   F       R   E   F       A   N   Y   ,    
0030600    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0030620    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0030640    U   R   N   S       [   L   I   S   T       O   F       R   E
0030660    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0030700    t   a   c   k   :       L   I   S   T       O   F       R   E
0030720    F       A   N   Y       _       n   o   d   e   s   ;  \r   c
0030740    a   s   e   h   e   a   d   :       S   e   l   e   c   t   H
0030760    e   a   d   N   o   d   e   ;  \r   c   a   s   e   s   t   m
0031000    t   l   i   s   t   :       S   e   l   e   c   t   S   t   m
0031020    t   L   i   s   t   N   o   d   e   ;  \r   s   t   a   t   e
0031040    m   e   n   t   :       S   t   a   t   e   m   e   n   t   N
0031060    o   d   e   ;  \r   s   t   a   t   e   m   e   n   t       _
0031100        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0031120    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0031140    a   c   k   .   r   e   s   t   ;  \r   c   a   s   e   s   t
0031160    m   t   l   i   s   t       _       N   A   R   R   O   W   [
0031200    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0031220    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0031240    ;  \r   c   a   s   e   h   e   a   d       _       N   A   R
0031260    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0031300    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0031320    r   e   s   t   ;  \r   s   t   a   c   k       _       C   O
0031340    N   S   [   B   u   i   l   d   S   t   a   t   e   m   e   n
0031360    t   s   e   l   e   c   t   P   r   o   d   N   o   d   e   [
0031400    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0031420    ,       c   a   s   e   h   e   a   d   ,       c   a   s   e
0031440    s   t   m   t   l   i   s   t   ,       B   u   i   l   d   O
0031460    p   t   S   t   a   t   e   m   e   n   t   p   r   e   s   e
0031500    n   t   P   r   o   d   N   o   d   e   [   s   t   a   t   e
0031520    m   e   n   t   .   p   o   s   i   t   i   o   n   ,       s
0031540    t   a   t   e   m   e   n   t   .   l   e   n   g   t   h   ,
0031560        s   t   a   t   e   m   e   n   t   ]   ]   ,       s   t
0031600    a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t
0031620    a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   s   t
0031640    a   t   e   m   e   n   t   b   a   s   i   c   s   t   m   t
0031660    :       P   R   O   C       [   n   o   d   e   s   :       L
0031700    I   S   T       O   F       R   E   F       A   N   Y   ,    
0031720    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0031740    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0031760    U   R   N   S       [   L   I   S   T       O   F       R   E
0032000    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0032020    t   a   c   k   :       L   I   S   T       O   F       R   E
0032040    F       A   N   Y       _       n   o   d   e   s   ;  \r   b
0032060    a   s   i   c   s   t   m   t   :       S   t   a   t   e   m
0032100    e   n   t   N   o   d   e   ;  \r   b   a   s   i   c   s   t
0032120    m   t       _       N   A   R   R   O   W   [   s   t   a   c
0032140    k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k    
0032160    _       s   t   a   c   k   .   r   e   s   t   ;  \r   s   t
0032200    a   c   k       _       C   O   N   S   [   b   a   s   i   c
0032220    s   t   m   t   ,       s   t   a   c   k   ]   ;  \r   R   E
0032240    T   U   R   N       [   s   t   a   c   k   ]  \r   E   N   D
0032260    ;  \r  \r   S   e   e   b   a   l   s   t   m   t   i   f   t
0032300    h   e   n   e   l   s   e   :       P   R   O   C       [   n
0032320    o   d   e   s   :       L   I   S   T       O   F       R   E
0032340    F       A   N   Y   ,       p   o   s   i   t   i   o   n   :
0032360        I   N   T   ,       l   e   n   g   t   h   :       I   N
0032400    T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S
0032420    T       O   F       R   E   F       A   N   Y   ]       =  \r
0032440    B   E   G   I   N  \r   s   t   a   c   k   :       L   I   S
0032460    T       O   F       R   E   F       A   N   Y       _       n
0032500    o   d   e   s   ;  \r   e   x   p   :       E   x   p   N   o
0032520    d   e   ;  \r   b   a   l   s   t   m   t   t   h   e   n   p
0032540    a   r   t   :       S   t   a   t   e   m   e   n   t   N   o
0032560    d   e   ;  \r   b   a   l   s   t   m   t   e   l   s   e   p
0032600    a   r   t   :       S   t   a   t   e   m   e   n   t   N   o
0032620    d   e   ;  \r   b   a   l   s   t   m   t   e   l   s   e   p
0032640    a   r   t       _       N   A   R   R   O   W   [   s   t   a
0032660    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0032700        _       s   t   a   c   k   .   r   e   s   t   ;  \r   b
0032720    a   l   s   t   m   t   t   h   e   n   p   a   r   t       _
0032740        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0032760    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0033000    a   c   k   .   r   e   s   t   ;  \r   e   x   p       _    
0033020    N   A   R   R   O   W   [   s   t   a   c   k   .   f   i   r
0033040    s   t   ]   ;  \r   s   t   a   c   k       _       s   t   a
0033060    c   k   .   r   e   s   t   ;  \r   s   t   a   c   k       _
0033100        C   O   N   S   [   B   u   i   l   d   S   t   a   t   e
0033120    m   e   n   t   i   f   t   h   e   n   e   l   s   e   P   r
0033140    o   d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,
0033160        l   e   n   g   t   h   ,       e   x   p   ,       b   a
0033200    l   s   t   m   t   t   h   e   n   p   a   r   t   ,       b
0033220    a   l   s   t   m   t   e   l   s   e   p   a   r   t   ]   ,
0033240        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0033260    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0033300    e   b   a   l   s   t   m   t   s   e   l   e   c   t   :    
0033320    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0033340    T       O   F       R   E   F       A   N   Y   ,       p   o
0033360    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0033400    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0033420    N   S       [   L   I   S   T       O   F       R   E   F    
0033440    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0033460    c   k   :       L   I   S   T       O   F       R   E   F    
0033500    A   N   Y       _       n   o   d   e   s   ;  \r   c   a   s
0033520    e   h   e   a   d   :       S   e   l   e   c   t   H   e   a
0033540    d   N   o   d   e   ;  \r   c   a   s   e   s   t   m   t   l
0033560    i   s   t   :       S   e   l   e   c   t   S   t   m   t   L
0033600    i   s   t   N   o   d   e   ;  \r   b   a   l   s   t   m   t
0033620    :       S   t   a   t   e   m   e   n   t   N   o   d   e   ;
0033640   \r   b   a   l   s   t   m   t       _       N   A   R   R   O
0033660    W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r
0033700    s   t   a   c   k       _       s   t   a   c   k   .   r   e
0033720    s   t   ;  \r   c   a   s   e   s   t   m   t   l   i   s   t
0033740        _       N   A   R   R   O   W   [   s   t   a   c   k   .
0033760    f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _    
0034000    s   t   a   c   k   .   r   e   s   t   ;  \r   c   a   s   e
0034020    h   e   a   d       _       N   A   R   R   O   W   [   s   t
0034040    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0034060    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0034100    s   t   a   c   k       _       C   O   N   S   [   B   u   i
0034120    l   d   S   t   a   t   e   m   e   n   t   s   e   l   e   c
0034140    t   P   r   o   d   N   o   d   e   [   p   o   s   i   t   i
0034160    o   n   ,       l   e   n   g   t   h   ,       c   a   s   e
0034200    h   e   a   d   ,       c   a   s   e   s   t   m   t   l   i
0034220    s   t   ,       B   u   i   l   d   O   p   t   S   t   a   t
0034240    e   m   e   n   t   p   r   e   s   e   n   t   P   r   o   d
0034260    N   o   d   e   [   b   a   l   s   t   m   t   .   p   o   s
0034300    i   t   i   o   n   ,       b   a   l   s   t   m   t   .   l
0034320    e   n   g   t   h   ,       b   a   l   s   t   m   t   ]   ]
0034340    ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N
0034360        [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S
0034400    e   e   b   a   l   s   t   m   t   b   a   s   i   c   s   t
0034420    m   t   :       P   R   O   C       [   n   o   d   e   s   :
0034440        L   I   S   T       O   F       R   E   F       A   N   Y
0034460    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0034500        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0034520    E   T   U   R   N   S       [   L   I   S   T       O   F    
0034540    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0034560   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0034600    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0034620   \r   b   a   s   i   c   s   t   m   t   :       S   t   a   t
0034640    e   m   e   n   t   N   o   d   e   ;  \r   b   a   s   i   c
0034660    s   t   m   t       _       N   A   R   R   O   W   [   s   t
0034700    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0034720    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0034740    s   t   a   c   k       _       C   O   N   S   [   b   a   s
0034760    i   c   s   t   m   t   ,       s   t   a   c   k   ]   ;  \r
0035000    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0035020    N   D   ;  \r  \r   S   e   e   b   a   s   i   c   s   t   m
0035040    t   e   x   p   :       P   R   O   C       [   n   o   d   e
0035060    s   :       L   I   S   T       O   F       R   E   F       A
0035100    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0035120    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0035140   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0035160    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0035200    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0035220    F       R   E   F       A   N   Y       _       n   o   d   e
0035240    s   ;  \r   l   h   s   :       E   x   p   N   o   d   e   ;
0035260   \r   l   h   s       _       N   A   R   R   O   W   [   s   t
0035300    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0035320    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0035340    s   t   a   c   k       _       C   O   N   S   [   B   u   i
0035360    l   d   S   t   a   t   e   m   e   n   t   e   x   p   P   r
0035400    o   d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,
0035420        l   e   n   g   t   h   ,       l   h   s   ]   ,       s
0035440    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0035460    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   b
0035500    a   s   i   c   s   t   m   t   a   s   s   i   g   n   :    
0035520    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0035540    T       O   F       R   E   F       A   N   Y   ,       p   o
0035560    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0035600    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0035620    N   S       [   L   I   S   T       O   F       R   E   F    
0035640    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0035660    c   k   :       L   I   S   T       O   F       R   E   F    
0035700    A   N   Y       _       n   o   d   e   s   ;  \r   l   h   s
0035720    :       E   x   p   N   o   d   e   ;  \r   e   x   p   :    
0035740    E   x   p   N   o   d   e   ;  \r   e   x   p       _       N
0035760    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0036000    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0036020    k   .   r   e   s   t   ;  \r   l   h   s       _       N   A
0036040    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0036060    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0036100    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0036120    O   N   S   [   B   u   i   l   d   S   t   a   t   e   m   e
0036140    n   t   a   s   s   i   g   n   P   r   o   d   N   o   d   e
0036160    [   p   o   s   i   t   i   o   n   ,       l   e   n   g   t
0036200    h   ,       l   h   s   ,       e   x   p   ]   ,       s   t
0036220    a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t
0036240    a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   b   a
0036260    s   i   c   s   t   m   t   m   u   l   t   i   a   s   s   i
0036300    g   n   :       P   R   O   C       [   n   o   d   e   s   :
0036320        L   I   S   T       O   F       R   E   F       A   N   Y
0036340    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0036360        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0036400    E   T   U   R   N   S       [   L   I   S   T       O   F    
0036420    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0036440   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0036460    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0036500   \r   e   x   p   l   i   s   t   :       E   x   p   L   i   s
0036520    t   N   o   d   e   ;  \r   e   x   p   :       E   x   p   N
0036540    o   d   e   ;  \r   e   x   p       _       N   A   R   R   O
0036560    W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r
0036600    s   t   a   c   k       _       s   t   a   c   k   .   r   e
0036620    s   t   ;  \r   e   x   p   l   i   s   t       _       N   A
0036640    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0036660    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0036700    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0036720    O   N   S   [   B   u   i   l   d   S   t   a   t   e   m   e
0036740    n   t   m   u   l   t   i   a   s   s   i   g   n   P   r   o
0036760    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0037000    l   e   n   g   t   h   ,       e   x   p   l   i   s   t   ,
0037020        e   x   p   ]   ,       s   t   a   c   k   ]   ;  \r   R
0037040    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0037060    D   ;  \r  \r   S   e   e   b   a   s   i   c   s   t   m   t
0037100    b   l   o   c   k   :       P   R   O   C       [   n   o   d
0037120    e   s   :       L   I   S   T       O   F       R   E   F    
0037140    A   N   Y   ,       p   o   s   i   t   i   o   n   :       I
0037160    N   T   ,       l   e   n   g   t   h   :       I   N   T   ]
0037200   \r  \t   R   E   T   U   R   N   S       [   L   I   S   T    
0037220    O   F       R   E   F       A   N   Y   ]       =  \r   B   E
0037240    G   I   N  \r   s   t   a   c   k   :       L   I   S   T    
0037260    O   F       R   E   F       A   N   Y       _       n   o   d
0037300    e   s   ;  \r   t   r   u   s   t   e   d   :       J   u   n
0037320    k   N   o   d   e   ;  \r   c   h   e   c   k   e   d   :    
0037340    C   h   e   c   k   e   d   N   o   d   e   ;  \r   b   l   o
0037360    c   k   :       B   l   o   c   k   N   o   d   e   ;  \r   b
0037400    l   o   c   k       _       N   A   R   R   O   W   [   s   t
0037420    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0037440    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0037460    c   h   e   c   k   e   d       _       N   A   R   R   O   W
0037500    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0037520    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0037540    t   ;  \r   t   r   u   s   t   e   d       _       N   A   R
0037560    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0037600    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0037620    r   e   s   t   ;  \r   s   t   a   c   k       _       C   O
0037640    N   S   [   B   u   i   l   d   S   t   a   t   e   m   e   n
0037660    t   b   l   o   c   k   P   r   o   d   N   o   d   e   [   p
0037700    o   s   i   t   i   o   n   ,       l   e   n   g   t   h   ,
0037720        c   h   e   c   k   e   d   ,       b   l   o   c   k   ]
0037740    ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N
0037760        [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S
0040000    e   e   b   a   s   i   c   s   t   m   t   s   e   l   e   c
0040020    t   :       P   R   O   C       [   n   o   d   e   s   :    
0040040    L   I   S   T       O   F       R   E   F       A   N   Y   ,
0040060        p   o   s   i   t   i   o   n   :       I   N   T   ,    
0040100    l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E
0040120    T   U   R   N   S       [   L   I   S   T       O   F       R
0040140    E   F       A   N   Y   ]       =  \r   B   E   G   I   N  \r
0040160    s   t   a   c   k   :       L   I   S   T       O   F       R
0040200    E   F       A   N   Y       _       n   o   d   e   s   ;  \r
0040220    c   a   s   e   h   e   a   d   :       S   e   l   e   c   t
0040240    H   e   a   d   N   o   d   e   ;  \r   c   a   s   e   s   t
0040260    m   t   l   i   s   t   :       S   e   l   e   c   t   S   t
0040300    m   t   L   i   s   t   N   o   d   e   ;  \r   c   a   s   e
0040320    s   t   m   t   l   i   s   t       _       N   A   R   R   O
0040340    W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r
0040360    s   t   a   c   k       _       s   t   a   c   k   .   r   e
0040400    s   t   ;  \r   c   a   s   e   h   e   a   d       _       N
0040420    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0040440    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0040460    k   .   r   e   s   t   ;  \r   s   t   a   c   k       _    
0040500    C   O   N   S   [   B   u   i   l   d   S   t   a   t   e   m
0040520    e   n   t   s   e   l   e   c   t   P   r   o   d   N   o   d
0040540    e   [   p   o   s   i   t   i   o   n   ,       l   e   n   g
0040560    t   h   ,       c   a   s   e   h   e   a   d   ,       c   a
0040600    s   e   s   t   m   t   l   i   s   t   ,       B   u   i   l
0040620    d   O   p   t   S   t   a   t   e   m   e   n   t   a   b   s
0040640    e   n   t   P   r   o   d   N   o   d   e   [   c   a   s   e
0040660    s   t   m   t   l   i   s   t   .   p   o   s   i   t   i   o
0040700    n       +       c   a   s   e   s   t   m   t   l   i   s   t
0040720    .   l   e   n   g   t   h   ,       c   a   s   e   s   t   m
0040740    t   l   i   s   t   .   p   o   s   i   t   i   o   n       +
0040760        c   a   s   e   s   t   m   t   l   i   s   t   .   l   e
0041000    n   g   t   h       -       c   a   s   e   s   t   m   t   l
0041020    i   s   t   .   p   o   s   i   t   i   o   n       -       c
0041040    a   s   e   s   t   m   t   l   i   s   t   .   l   e   n   g
0041060    t   h   ]   ]   ,       s   t   a   c   k   ]   ;  \r   R   E
0041100    T   U   R   N       [   s   t   a   c   k   ]  \r   E   N   D
0041120    ;  \r  \r   S   e   e   b   a   s   i   c   s   t   m   t   l
0041140    o   o   p   c   o   n   t   r   o   l   :       P   R   O   C
0041160        [   n   o   d   e   s   :       L   I   S   T       O   F
0041200        R   E   F       A   N   Y   ,       p   o   s   i   t   i
0041220    o   n   :       I   N   T   ,       l   e   n   g   t   h   :
0041240        I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [
0041260    L   I   S   T       O   F       R   E   F       A   N   Y   ]
0041300        =  \r   B   E   G   I   N  \r   s   t   a   c   k   :    
0041320    L   I   S   T       O   F       R   E   F       A   N   Y    
0041340    _       n   o   d   e   s   ;  \r   f   o   r   c   l   a   u
0041360    s   e   :       F   o   r   C   l   a   u   s   e   N   o   d
0041400    e   ;  \r   d   o   t   e   s   t   :       D   o   T   e   s
0041420    t   N   o   d   e   ;  \r   s   c   o   p   e   :       S   c
0041440    o   p   e   N   o   d   e   ;  \r   d   o   e   x   i   t   :
0041460        D   o   E   x   i   t   N   o   d   e   ;  \r   d   o   e
0041500    x   i   t       _       N   A   R   R   O   W   [   s   t   a
0041520    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0041540        _       s   t   a   c   k   .   r   e   s   t   ;  \r   s
0041560    c   o   p   e       _       N   A   R   R   O   W   [   s   t
0041600    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0041620    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0041640    d   o   t   e   s   t       _       N   A   R   R   O   W   [
0041660    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0041700    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0041720    ;  \r   f   o   r   c   l   a   u   s   e       _       N   A
0041740    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0041760    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0042000    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0042020    O   N   S   [   B   u   i   l   d   S   t   a   t   e   m   e
0042040    n   t   l   o   o   p   c   o   n   t   r   o   l   P   r   o
0042060    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0042100    l   e   n   g   t   h   ,       f   o   r   c   l   a   u   s
0042120    e   ,       d   o   t   e   s   t   ,       s   c   o   p   e
0042140    ,       d   o   e   x   i   t   ]   ,       s   t   a   c   k
0042160    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0042200    ]  \r   E   N   D   ;  \r  \r   S   e   e   b   a   s   i   c
0042220    s   t   m   t   e   x   i   t   :       P   R   O   C       [
0042240    n   o   d   e   s   :       L   I   S   T       O   F       R
0042260    E   F       A   N   Y   ,       p   o   s   i   t   i   o   n
0042300    :       I   N   T   ,       l   e   n   g   t   h   :       I
0042320    N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I
0042340    S   T       O   F       R   E   F       A   N   Y   ]       =
0042360   \r   B   E   G   I   N  \r   s   t   a   c   k   :       L   I
0042400    S   T       O   F       R   E   F       A   N   Y       _    
0042420    n   o   d   e   s   ;  \r   s   t   a   c   k       _       C
0042440    O   N   S   [   B   u   i   l   d   S   t   a   t   e   m   e
0042460    n   t   e   x   i   t   P   r   o   d   N   o   d   e   [   p
0042500    o   s   i   t   i   o   n   ,       l   e   n   g   t   h   ]
0042520    ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N
0042540        [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S
0042560    e   e   b   a   s   i   c   s   t   m   t   l   o   o   p   :
0042600        P   R   O   C       [   n   o   d   e   s   :       L   I
0042620    S   T       O   F       R   E   F       A   N   Y   ,       p
0042640    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0042660    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0042700    R   N   S       [   L   I   S   T       O   F       R   E   F
0042720        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0042740    a   c   k   :       L   I   S   T       O   F       R   E   F
0042760        A   N   Y       _       n   o   d   e   s   ;  \r   s   t
0043000    a   c   k       _       C   O   N   S   [   B   u   i   l   d
0043020    S   t   a   t   e   m   e   n   t   l   o   o   p   P   r   o
0043040    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0043060    l   e   n   g   t   h   ]   ,       s   t   a   c   k   ]   ;
0043100   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0043120    E   N   D   ;  \r  \r   S   e   e   b   a   s   i   c   s   t
0043140    m   t   i   :       P   R   O   C       [   n   o   d   e   s
0043160    :       L   I   S   T       O   F       R   E   F       A   N
0043200    Y   ,       p   o   s   i   t   i   o   n   :       I   N   T
0043220    ,       l   e   n   g   t   h   :       I   N   T   ]  \r  \t
0043240    R   E   T   U   R   N   S       [   L   I   S   T       O   F
0043260        R   E   F       A   N   Y   ]       =  \r   B   E   G   I
0043300    N  \r   s   t   a   c   k   :       L   I   S   T       O   F
0043320        R   E   F       A   N   Y       _       n   o   d   e   s
0043340    ;  \r   I   d   :       I   d   N   o   d   e   ;  \r   I   d
0043360        _       N   A   R   R   O   W   [   s   t   a   c   k   .
0043400    f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _    
0043420    s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c
0043440    k       _       C   O   N   S   [   B   u   i   l   d   S   t
0043460    a   t   e   m   e   n   t   g   o   t   o   P   r   o   d   N
0043500    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0043520    n   g   t   h   ,       I   d   ]   ,       s   t   a   c   k
0043540    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0043560    ]  \r   E   N   D   ;  \r  \r   S   e   e   b   a   s   i   c
0043600    s   t   m   t   j   :       P   R   O   C       [   n   o   d
0043620    e   s   :       L   I   S   T       O   F       R   E   F    
0043640    A   N   Y   ,       p   o   s   i   t   i   o   n   :       I
0043660    N   T   ,       l   e   n   g   t   h   :       I   N   T   ]
0043700   \r  \t   R   E   T   U   R   N   S       [   L   I   S   T    
0043720    O   F       R   E   F       A   N   Y   ]       =  \r   B   E
0043740    G   I   N  \r   s   t   a   c   k   :       L   I   S   T    
0043760    O   F       R   E   F       A   N   Y       _       n   o   d
0044000    e   s   ;  \r   I   d   :       I   d   N   o   d   e   ;  \r
0044020    I   d       _       N   A   R   R   O   W   [   s   t   a   c
0044040    k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k    
0044060    _       s   t   a   c   k   .   r   e   s   t   ;  \r   s   t
0044100    a   c   k       _       C   O   N   S   [   B   u   i   l   d
0044120    S   t   a   t   e   m   e   n   t   g   o   t   o   P   r   o
0044140    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0044160    l   e   n   g   t   h   ,       I   d   ]   ,       s   t   a
0044200    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0044220    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   b   a   s
0044240    i   c   s   t   m   t   r   e   t   u   r   n   :       P   R
0044260    O   C       [   n   o   d   e   s   :       L   I   S   T    
0044300    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0044320    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0044340    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0044360        [   L   I   S   T       O   F       R   E   F       A   N
0044400    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0044420    :       L   I   S   T       O   F       R   E   F       A   N
0044440    Y       _       n   o   d   e   s   ;  \r   o   p   t   a   r
0044460    g   s   :       O   p   t   A   r   g   s   N   o   d   e   ;
0044500   \r   o   p   t   a   r   g   s       _       N   A   R   R   O
0044520    W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r
0044540    s   t   a   c   k       _       s   t   a   c   k   .   r   e
0044560    s   t   ;  \r   s   t   a   c   k       _       C   O   N   S
0044600    [   B   u   i   l   d   S   t   a   t   e   m   e   n   t   r
0044620    e   t   u   r   n   P   r   o   d   N   o   d   e   [   p   o
0044640    s   i   t   i   o   n   ,       l   e   n   g   t   h   ,    
0044660    o   p   t   a   r   g   s   ]   ,       s   t   a   c   k   ]
0044700    ;  \r   R   E   T   U   R   N       [   s   t   a   c   k   ]
0044720   \r   E   N   D   ;  \r  \r   S   e   e   b   a   s   i   c   s
0044740    t   m   t   t   r   a   n   s   f   e   r   :       P   R   O
0044760    C       [   n   o   d   e   s   :       L   I   S   T       O
0045000    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0045020    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0045040    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0045060    [   L   I   S   T       O   F       R   E   F       A   N   Y
0045100    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0045120        L   I   S   T       O   F       R   E   F       A   N   Y
0045140        _       n   o   d   e   s   ;  \r   t   r   a   n   s   f
0045160    e   r   :       T   r   a   n   s   f   e   r   N   o   d   e
0045200    ;  \r   l   h   s   :       E   x   p   N   o   d   e   ;  \r
0045220    l   h   s       _       N   A   R   R   O   W   [   s   t   a
0045240    c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k
0045260        _       s   t   a   c   k   .   r   e   s   t   ;  \r   t
0045300    r   a   n   s   f   e   r       _       N   A   R   R   O   W
0045320    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0045340    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0045360    t   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0045400    B   u   i   l   d   S   t   a   t   e   m   e   n   t   t   r
0045420    a   n   s   f   e   r   P   r   o   d   N   o   d   e   [   p
0045440    o   s   i   t   i   o   n   ,       l   e   n   g   t   h   ,
0045460        t   r   a   n   s   f   e   r   ,       l   h   s   ]   ,
0045500        s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N    
0045520    [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e
0045540    e   b   a   s   i   c   s   t   m   t   f   r   e   e   :    
0045560    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0045600    T       O   F       R   E   F       A   N   Y   ,       p   o
0045620    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0045640    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0045660    N   S       [   L   I   S   T       O   F       R   E   F    
0045700    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0045720    c   k   :       L   I   S   T       O   F       R   E   F    
0045740    A   N   Y       _       n   o   d   e   s   ;  \r   f   r   e
0045760    e   :       F   r   e   e   N   o   d   e   ;  \r   e   x   p
0046000    :       E   x   p   N   o   d   e   ;  \r   o   p   t   c   a
0046020    t   c   h   :       C   a   t   c   h   N   o   d   e   ;  \r
0046040    o   p   t   c   a   t   c   h       _       N   A   R   R   O
0046060    W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r
0046100    s   t   a   c   k       _       s   t   a   c   k   .   r   e
0046120    s   t   ;  \r   e   x   p       _       N   A   R   R   O   W
0046140    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0046160    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0046200    t   ;  \r   f   r   e   e       _       N   A   R   R   O   W
0046220    [   s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s
0046240    t   a   c   k       _       s   t   a   c   k   .   r   e   s
0046260    t   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0046300    B   u   i   l   d   S   t   a   t   e   m   e   n   t   f   r
0046320    e   e   P   r   o   d   N   o   d   e   [   p   o   s   i   t
0046340    i   o   n   ,       l   e   n   g   t   h   ,       f   r   e
0046360    e   ,       e   x   p   ,       o   p   t   c   a   t   c   h
0046400    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0046420    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0046440    S   e   e   b   a   s   i   c   s   t   m   t   w   a   i   t
0046460    :       P   R   O   C       [   n   o   d   e   s   :       L
0046500    I   S   T       O   F       R   E   F       A   N   Y   ,    
0046520    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0046540    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0046560    U   R   N   S       [   L   I   S   T       O   F       R   E
0046600    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0046620    t   a   c   k   :       L   I   S   T       O   F       R   E
0046640    F       A   N   Y       _       n   o   d   e   s   ;  \r   l
0046660    h   s   :       E   x   p   N   o   d   e   ;  \r   l   h   s
0046700        _       N   A   R   R   O   W   [   s   t   a   c   k   .
0046720    f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _    
0046740    s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c
0046760    k       _       C   O   N   S   [   B   u   i   l   d   S   t
0047000    a   t   e   m   e   n   t   w   a   i   t   P   r   o   d   N
0047020    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0047040    n   g   t   h   ,       l   h   s   ]   ,       s   t   a   c
0047060    k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c
0047100    k   ]  \r   E   N   D   ;  \r  \r   S   e   e   b   a   s   i
0047120    c   s   t   m   t   e   r   r   o   r   :       P   R   O   C
0047140        [   n   o   d   e   s   :       L   I   S   T       O   F
0047160        R   E   F       A   N   Y   ,       p   o   s   i   t   i
0047200    o   n   :       I   N   T   ,       l   e   n   g   t   h   :
0047220        I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [
0047240    L   I   S   T       O   F       R   E   F       A   N   Y   ]
0047260        =  \r   B   E   G   I   N  \r   s   t   a   c   k   :    
0047300    L   I   S   T       O   F       R   E   F       A   N   Y    
0047320    _       n   o   d   e   s   ;  \r   s   t   a   c   k       _
0047340        C   O   N   S   [   B   u   i   l   d   S   t   a   t   e
0047360    m   e   n   t   e   r   r   o   r   P   r   o   d   N   o   d
0047400    e   [   p   o   s   i   t   i   o   n   ,       l   e   n   g
0047420    t   h   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T
0047440    U   R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;
0047460   \r  \r   S   e   e   b   a   s   i   c   s   t   m   t   s   t
0047500    o   p   :       P   R   O   C       [   n   o   d   e   s   :
0047520        L   I   S   T       O   F       R   E   F       A   N   Y
0047540    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0047560        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0047600    E   T   U   R   N   S       [   L   I   S   T       O   F    
0047620    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0047640   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0047660    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0047700   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0047720    i   l   d   S   t   a   t   e   m   e   n   t   s   t   o   p
0047740    P   r   o   d   N   o   d   e   [   p   o   s   i   t   i   o
0047760    n   ,       l   e   n   g   t   h   ]   ,       s   t   a   c
0050000    k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c
0050020    k   ]  \r   E   N   D   ;  \r  \r   S   e   e   b   a   s   i
0050040    c   s   t   m   t   n   u   l   l   :       P   R   O   C    
0050060    [   n   o   d   e   s   :       L   I   S   T       O   F    
0050100    R   E   F       A   N   Y   ,       p   o   s   i   t   i   o
0050120    n   :       I   N   T   ,       l   e   n   g   t   h   :    
0050140    I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L
0050160    I   S   T       O   F       R   E   F       A   N   Y   ]    
0050200    =  \r   B   E   G   I   N  \r   s   t   a   c   k   :       L
0050220    I   S   T       O   F       R   E   F       A   N   Y       _
0050240        n   o   d   e   s   ;  \r   s   t   a   c   k       _    
0050260    C   O   N   S   [   B   u   i   l   d   S   t   a   t   e   m
0050300    e   n   t   n   u   l   l   P   r   o   d   N   o   d   e   [
0050320    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0050340    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0050360    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0050400    S   e   e   b   a   s   i   c   s   t   m   t   r   e   s   u
0050420    m   e   :       P   R   O   C       [   n   o   d   e   s   :
0050440        L   I   S   T       O   F       R   E   F       A   N   Y
0050460    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0050500        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0050520    E   T   U   R   N   S       [   L   I   S   T       O   F    
0050540    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0050560   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0050600    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0050620   \r   o   p   t   a   r   g   s   :       O   p   t   A   r   g
0050640    s   N   o   d   e   ;  \r   o   p   t   a   r   g   s       _
0050660        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0050700    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0050720    a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k    
0050740    _       C   O   N   S   [   B   u   i   l   d   S   t   a   t
0050760    e   m   e   n   t   r   e   s   u   m   e   P   r   o   d   N
0051000    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0051020    n   g   t   h   ,       o   p   t   a   r   g   s   ]   ,    
0051040    s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [
0051060    s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e
0051100    b   a   s   i   c   s   t   m   t   r   e   j   e   c   t   :
0051120        P   R   O   C       [   n   o   d   e   s   :       L   I
0051140    S   T       O   F       R   E   F       A   N   Y   ,       p
0051160    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0051200    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0051220    R   N   S       [   L   I   S   T       O   F       R   E   F
0051240        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0051260    a   c   k   :       L   I   S   T       O   F       R   E   F
0051300        A   N   Y       _       n   o   d   e   s   ;  \r   s   t
0051320    a   c   k       _       C   O   N   S   [   B   u   i   l   d
0051340    S   t   a   t   e   m   e   n   t   r   e   j   e   c   t   P
0051360    r   o   d   N   o   d   e   [   p   o   s   i   t   i   o   n
0051400    ,       l   e   n   g   t   h   ]   ,       s   t   a   c   k
0051420    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0051440    ]  \r   E   N   D   ;  \r  \r   S   e   e   b   a   s   i   c
0051460    s   t   m   t   c   o   n   t   i   n   u   e   :       P   R
0051500    O   C       [   n   o   d   e   s   :       L   I   S   T    
0051520    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0051540    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0051560    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0051600        [   L   I   S   T       O   F       R   E   F       A   N
0051620    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0051640    :       L   I   S   T       O   F       R   E   F       A   N
0051660    Y       _       n   o   d   e   s   ;  \r   s   t   a   c   k
0051700        _       C   O   N   S   [   B   u   i   l   d   S   t   a
0051720    t   e   m   e   n   t   c   o   n   t   i   n   u   e   P   r
0051740    o   d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,
0051760        l   e   n   g   t   h   ]   ,       s   t   a   c   k   ]
0052000    ;  \r   R   E   T   U   R   N       [   s   t   a   c   k   ]
0052020   \r   E   N   D   ;  \r  \r   S   e   e   b   a   s   i   c   s
0052040    t   m   t   r   e   t   r   y   :       P   R   O   C       [
0052060    n   o   d   e   s   :       L   I   S   T       O   F       R
0052100    E   F       A   N   Y   ,       p   o   s   i   t   i   o   n
0052120    :       I   N   T   ,       l   e   n   g   t   h   :       I
0052140    N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L   I
0052160    S   T       O   F       R   E   F       A   N   Y   ]       =
0052200   \r   B   E   G   I   N  \r   s   t   a   c   k   :       L   I
0052220    S   T       O   F       R   E   F       A   N   Y       _    
0052240    n   o   d   e   s   ;  \r   s   t   a   c   k       _       C
0052260    O   N   S   [   B   u   i   l   d   S   t   a   t   e   m   e
0052300    n   t   r   e   t   r   y   P   r   o   d   N   o   d   e   [
0052320    p   o   s   i   t   i   o   n   ,       l   e   n   g   t   h
0052340    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0052360    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0052400    S   e   e   b   a   s   i   c   s   t   m   t   g   e   t   s
0052420    t   a   t   e   :       P   R   O   C       [   n   o   d   e
0052440    s   :       L   I   S   T       O   F       R   E   F       A
0052460    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0052500    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0052520   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0052540    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0052560    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0052600    F       R   E   F       A   N   Y       _       n   o   d   e
0052620    s   ;  \r   l   h   s   :       E   x   p   N   o   d   e   ;
0052640   \r   l   h   s       _       N   A   R   R   O   W   [   s   t
0052660    a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c
0052700    k       _       s   t   a   c   k   .   r   e   s   t   ;  \r
0052720    s   t   a   c   k       _       C   O   N   S   [   B   u   i
0052740    l   d   S   t   a   t   e   m   e   n   t   g   e   t   s   t
0052760    a   t   e   P   r   o   d   N   o   d   e   [   p   o   s   i
0053000    t   i   o   n   ,       l   e   n   g   t   h   ,       l   h
0053020    s   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U
0053040    R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r
0053060   \r   S   e   e   b   a   s   i   c   s   t   m   t   s   e   t
0053100    s   t   a   t   e   :       P   R   O   C       [   n   o   d
0053120    e   s   :       L   I   S   T       O   F       R   E   F    
0053140    A   N   Y   ,       p   o   s   i   t   i   o   n   :       I
0053160    N   T   ,       l   e   n   g   t   h   :       I   N   T   ]
0053200   \r  \t   R   E   T   U   R   N   S       [   L   I   S   T    
0053220    O   F       R   E   F       A   N   Y   ]       =  \r   B   E
0053240    G   I   N  \r   s   t   a   c   k   :       L   I   S   T    
0053260    O   F       R   E   F       A   N   Y       _       n   o   d
0053300    e   s   ;  \r   e   x   p   :       E   x   p   N   o   d   e
0053320    ;  \r   e   x   p       _       N   A   R   R   O   W   [   s
0053340    t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t   a
0053360    c   k       _       s   t   a   c   k   .   r   e   s   t   ;
0053400   \r   s   t   a   c   k       _       C   O   N   S   [   B   u
0053420    i   l   d   S   t   a   t   e   m   e   n   t   s   e   t   s
0053440    t   a   t   e   P   r   o   d   N   o   d   e   [   p   o   s
0053460    i   t   i   o   n   ,       l   e   n   g   t   h   ,       e
0053500    x   p   ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T
0053520    U   R   N       [   s   t   a   c   k   ]  \r   E   N   D   ;
0053540   \r  \r   S   e   e   f   o   r   c   l   a   u   s   e   a   s
0053560    s   i   g   n   a   t   i   o   n   :       P   R   O   C    
0053600    [   n   o   d   e   s   :       L   I   S   T       O   F    
0053620    R   E   F       A   N   Y   ,       p   o   s   i   t   i   o
0053640    n   :       I   N   T   ,       l   e   n   g   t   h   :    
0053660    I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L
0053700    I   S   T       O   F       R   E   F       A   N   Y   ]    
0053720    =  \r   B   E   G   I   N  \r   s   t   a   c   k   :       L
0053740    I   S   T       O   F       R   E   F       A   N   Y       _
0053760        n   o   d   e   s   ;  \r   c   o   n   t   r   o   l   i
0054000    d   :       C   o   n   t   r   o   l   I   d   N   o   d   e
0054020    ;  \r   e   x   p   i   n   i   t   i   a   l   :       E   x
0054040    p   N   o   d   e   ;  \r   e   x   p   n   e   x   t   :    
0054060    E   x   p   N   o   d   e   ;  \r   e   x   p   n   e   x   t
0054100        _       N   A   R   R   O   W   [   s   t   a   c   k   .
0054120    f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _    
0054140    s   t   a   c   k   .   r   e   s   t   ;  \r   e   x   p   i
0054160    n   i   t   i   a   l       _       N   A   R   R   O   W   [
0054200    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0054220    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0054240    ;  \r   c   o   n   t   r   o   l   i   d       _       N   A
0054260    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0054300    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0054320    .   r   e   s   t   ;  \r   s   t   a   c   k       _       C
0054340    O   N   S   [   B   u   i   l   d   F   o   r   C   l   a   u
0054360    s   e   a   s   s   i   g   n   a   t   i   o   n   P   r   o
0054400    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0054420    l   e   n   g   t   h   ,       c   o   n   t   r   o   l   i
0054440    d   ,       e   x   p   i   n   i   t   i   a   l   ,       e
0054460    x   p   n   e   x   t   ]   ,       s   t   a   c   k   ]   ;
0054500   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0054520    E   N   D   ;  \r  \r   S   e   e   f   o   r   c   l   a   u
0054540    s   e   i   t   e   r   a   t   i   o   n   :       P   R   O
0054560    C       [   n   o   d   e   s   :       L   I   S   T       O
0054600    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0054620    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0054640    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0054660    [   L   I   S   T       O   F       R   E   F       A   N   Y
0054700    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0054720        L   I   S   T       O   F       R   E   F       A   N   Y
0054740        _       n   o   d   e   s   ;  \r   c   o   n   t   r   o
0054760    l   i   d   :       C   o   n   t   r   o   l   I   d   N   o
0055000    d   e   ;  \r   d   i   r   e   c   t   i   o   n   :       D
0055020    e   c   r   e   a   s   i   n   g   N   o   d   e   ;  \r   r
0055040    a   n   g   e   :       R   a   n   g   e   N   o   d   e   ;
0055060   \r   r   a   n   g   e       _       N   A   R   R   O   W   [
0055100    s   t   a   c   k   .   f   i   r   s   t   ]   ;  \r   s   t
0055120    a   c   k       _       s   t   a   c   k   .   r   e   s   t
0055140    ;  \r   d   i   r   e   c   t   i   o   n       _       N   A
0055160    R   R   O   W   [   s   t   a   c   k   .   f   i   r   s   t
0055200    ]   ;  \r   s   t   a   c   k       _       s   t   a   c   k
0055220    .   r   e   s   t   ;  \r   c   o   n   t   r   o   l   i   d
0055240        _       N   A   R   R   O   W   [   s   t   a   c   k   .
0055260    f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _    
0055300    s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c
0055320    k       _       C   O   N   S   [   B   u   i   l   d   F   o
0055340    r   C   l   a   u   s   e   i   t   e   r   a   t   i   o   n
0055360    P   r   o   d   N   o   d   e   [   p   o   s   i   t   i   o
0055400    n   ,       l   e   n   g   t   h   ,       c   o   n   t   r
0055420    o   l   i   d   ,       d   i   r   e   c   t   i   o   n   ,
0055440        r   a   n   g   e   ]   ,       s   t   a   c   k   ]   ;
0055460   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0055500    E   N   D   ;  \r  \r   S   e   e   f   o   r   c   l   a   u
0055520    s   e   r   e   p   e   t   i   t   i   o   n   :       P   R
0055540    O   C       [   n   o   d   e   s   :       L   I   S   T    
0055560    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0055600    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0055620    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0055640        [   L   I   S   T       O   F       R   E   F       A   N
0055660    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0055700    :       L   I   S   T       O   F       R   E   F       A   N
0055720    Y       _       n   o   d   e   s   ;  \r   r   a   n   g   e
0055740    :       R   a   n   g   e   N   o   d   e   ;  \r   r   a   n
0055760    g   e       _       N   A   R   R   O   W   [   s   t   a   c
0056000    k   .   f   i   r   s   t   ]   ;  \r   s   t   a   c   k    
0056020    _       s   t   a   c   k   .   r   e   s   t   ;  \r   s   t
0056040    a   c   k       _       C   O   N   S   [   B   u   i   l   d
0056060    F   o   r   C   l   a   u   s   e   r   e   p   e   t   i   t
0056100    i   o   n   P   r   o   d   N   o   d   e   [   p   o   s   i
0056120    t   i   o   n   ,       l   e   n   g   t   h   ,       r   a
0056140    n   g   e   ]   ,       s   t   a   c   k   ]   ;  \r   R   E
0056160    T   U   R   N       [   s   t   a   c   k   ]  \r   E   N   D
0056200    ;  \r  \r   S   e   e   f   o   r   c   l   a   u   s   e   e
0056220    m   p   t   y   :       P   R   O   C       [   n   o   d   e
0056240    s   :       L   I   S   T       O   F       R   E   F       A
0056260    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0056300    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0056320   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0056340    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0056360    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0056400    F       R   E   F       A   N   Y       _       n   o   d   e
0056420    s   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0056440    B   u   i   l   d   F   o   r   C   l   a   u   s   e   e   m
0056460    p   t   y   P   r   o   d   N   o   d   e   [   p   o   s   i
0056500    t   i   o   n   ,       l   e   n   g   t   h   ]   ,       s
0056520    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0056540    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   c
0056560    o   n   t   r   o   l   i   d   n   e   w   :       P   R   O
0056600    C       [   n   o   d   e   s   :       L   I   S   T       O
0056620    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0056640    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0056660    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0056700    [   L   I   S   T       O   F       R   E   F       A   N   Y
0056720    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0056740        L   I   S   T       O   F       R   E   F       A   N   Y
0056760        _       n   o   d   e   s   ;  \r   i   d   e   n   t   :
0057000        I   d   e   n   t   N   o   d   e   ;  \r   t   y   p   e
0057020    e   x   p   :       T   y   p   e   E   x   p   N   o   d   e
0057040    ;  \r   t   y   p   e   e   x   p       _       N   A   R   R
0057060    O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;
0057100   \r   s   t   a   c   k       _       s   t   a   c   k   .   r
0057120    e   s   t   ;  \r   i   d   e   n   t       _       N   A   R
0057140    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0057160    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0057200    r   e   s   t   ;  \r   s   t   a   c   k       _       C   O
0057220    N   S   [   B   u   i   l   d   C   o   n   t   r   o   l   I
0057240    d   n   e   w   P   r   o   d   N   o   d   e   [   p   o   s
0057260    i   t   i   o   n   ,       l   e   n   g   t   h   ,       i
0057300    d   e   n   t   ,       t   y   p   e   e   x   p   ]   ,    
0057320    s   t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [
0057340    s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e
0057360    c   o   n   t   r   o   l   i   d   o   l   d   :       P   R
0057400    O   C       [   n   o   d   e   s   :       L   I   S   T    
0057420    O   F       R   E   F       A   N   Y   ,       p   o   s   i
0057440    t   i   o   n   :       I   N   T   ,       l   e   n   g   t
0057460    h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S
0057500        [   L   I   S   T       O   F       R   E   F       A   N
0057520    Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k
0057540    :       L   I   S   T       O   F       R   E   F       A   N
0057560    Y       _       n   o   d   e   s   ;  \r   I   d   :       I
0057600    d   N   o   d   e   ;  \r   I   d       _       N   A   R   R
0057620    O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]   ;
0057640   \r   s   t   a   c   k       _       s   t   a   c   k   .   r
0057660    e   s   t   ;  \r   s   t   a   c   k       _       C   O   N
0057700    S   [   B   u   i   l   d   C   o   n   t   r   o   l   I   d
0057720    o   l   d   P   r   o   d   N   o   d   e   [   p   o   s   i
0057740    t   i   o   n   ,       l   e   n   g   t   h   ,       I   d
0057760    ]   ,       s   t   a   c   k   ]   ;  \r   R   E   T   U   R
0060000    N       [   s   t   a   c   k   ]  \r   E   N   D   ;  \r  \r
0060020    S   e   e   d   i   r   e   c   t   i   o   n   y   e   s   :
0060040        P   R   O   C       [   n   o   d   e   s   :       L   I
0060060    S   T       O   F       R   E   F       A   N   Y   ,       p
0060100    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0060120    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0060140    R   N   S       [   L   I   S   T       O   F       R   E   F
0060160        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0060200    a   c   k   :       L   I   S   T       O   F       R   E   F
0060220        A   N   Y       _       n   o   d   e   s   ;  \r   s   t
0060240    a   c   k       _       C   O   N   S   [   B   u   i   l   d
0060260    D   e   c   r   e   a   s   i   n   g   y   e   s   P   r   o
0060300    d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,    
0060320    l   e   n   g   t   h   ]   ,       s   t   a   c   k   ]   ;
0060340   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0060360    E   N   D   ;  \r  \r   S   e   e   d   i   r   e   c   t   i
0060400    o   n   n   o   :       P   R   O   C       [   n   o   d   e
0060420    s   :       L   I   S   T       O   F       R   E   F       A
0060440    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0060460    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0060500   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0060520    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0060540    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0060560    F       R   E   F       A   N   Y       _       n   o   d   e
0060600    s   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0060620    B   u   i   l   d   D   e   c   r   e   a   s   i   n   g   n
0060640    o   P   r   o   d   N   o   d   e   [   p   o   s   i   t   i
0060660    o   n   ,       l   e   n   g   t   h   ]   ,       s   t   a
0060700    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0060720    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   d   o   e
0060740    x   i   t   a   :       P   R   O   C       [   n   o   d   e
0060760    s   :       L   I   S   T       O   F       R   E   F       A
0061000    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0061020    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0061040   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0061060    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0061100    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0061120    F       R   E   F       A   N   Y       _       n   o   d   e
0061140    s   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0061160    B   u   i   l   d   D   o   E   x   i   t   P   r   o   d   N
0061200    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0061220    n   g   t   h   ,       B   u   i   l   d   E   x   i   t   L
0061240    i   s   t   e   m   p   t   y   P   r   o   d   N   o   d   e
0061260    [   p   o   s   i   t   i   o   n   ,       l   e   n   g   t
0061300    h   ]   ,       B   u   i   l   d   O   p   t   S   t   a   t
0061320    e   m   e   n   t   a   b   s   e   n   t   P   r   o   d   N
0061340    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0061360    n   g   t   h   ]   ]   ,       s   t   a   c   k   ]   ;  \r
0061400    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0061420    N   D   ;  \r  \r   S   e   e   d   o   e   x   i   t   b   :
0061440        P   R   O   C       [   n   o   d   e   s   :       L   I
0061460    S   T       O   F       R   E   F       A   N   Y   ,       p
0061500    o   s   i   t   i   o   n   :       I   N   T   ,       l   e
0061520    n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U
0061540    R   N   S       [   L   I   S   T       O   F       R   E   F
0061560        A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t
0061600    a   c   k   :       L   I   S   T       O   F       R   E   F
0061620        A   N   Y       _       n   o   d   e   s   ;  \r   e   x
0061640    i   t   l   i   s   t   :       E   x   i   t   L   i   s   t
0061660    N   o   d   e   ;  \r   e   x   i   t   l   i   s   t       _
0061700        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0061720    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0061740    a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k    
0061760    _       C   O   N   S   [   B   u   i   l   d   D   o   E   x
0062000    i   t   P   r   o   d   N   o   d   e   [   p   o   s   i   t
0062020    i   o   n   ,       l   e   n   g   t   h   ,       e   x   i
0062040    t   l   i   s   t   ,       B   u   i   l   d   O   p   t   S
0062060    t   a   t   e   m   e   n   t   a   b   s   e   n   t   P   r
0062100    o   d   N   o   d   e   [   e   x   i   t   l   i   s   t   .
0062120    p   o   s   i   t   i   o   n       +       e   x   i   t   l
0062140    i   s   t   .   l   e   n   g   t   h   ,       e   x   i   t
0062160    l   i   s   t   .   p   o   s   i   t   i   o   n       +    
0062200    e   x   i   t   l   i   s   t   .   l   e   n   g   t   h    
0062220    -       e   x   i   t   l   i   s   t   .   p   o   s   i   t
0062240    i   o   n       -       e   x   i   t   l   i   s   t   .   l
0062260    e   n   g   t   h   ]   ]   ,       s   t   a   c   k   ]   ;
0062300   \r   R   E   T   U   R   N       [   s   t   a   c   k   ]  \r
0062320    E   N   D   ;  \r  \r   S   e   e   d   o   e   x   i   t   c
0062340    :       P   R   O   C       [   n   o   d   e   s   :       L
0062360    I   S   T       O   F       R   E   F       A   N   Y   ,    
0062400    p   o   s   i   t   i   o   n   :       I   N   T   ,       l
0062420    e   n   g   t   h   :       I   N   T   ]  \r  \t   R   E   T
0062440    U   R   N   S       [   L   I   S   T       O   F       R   E
0062460    F       A   N   Y   ]       =  \r   B   E   G   I   N  \r   s
0062500    t   a   c   k   :       L   I   S   T       O   F       R   E
0062520    F       A   N   Y       _       n   o   d   e   s   ;  \r   e
0062540    x   i   t   l   i   s   t   :       E   x   i   t   L   i   s
0062560    t   N   o   d   e   ;  \r   s   t   a   t   e   m   e   n   t
0062600    :       S   t   a   t   e   m   e   n   t   N   o   d   e   ;
0062620   \r   s   t   a   t   e   m   e   n   t       _       N   A   R
0062640    R   O   W   [   s   t   a   c   k   .   f   i   r   s   t   ]
0062660    ;  \r   s   t   a   c   k       _       s   t   a   c   k   .
0062700    r   e   s   t   ;  \r   e   x   i   t   l   i   s   t       _
0062720        N   A   R   R   O   W   [   s   t   a   c   k   .   f   i
0062740    r   s   t   ]   ;  \r   s   t   a   c   k       _       s   t
0062760    a   c   k   .   r   e   s   t   ;  \r   s   t   a   c   k    
0063000    _       C   O   N   S   [   B   u   i   l   d   D   o   E   x
0063020    i   t   P   r   o   d   N   o   d   e   [   p   o   s   i   t
0063040    i   o   n   ,       l   e   n   g   t   h   ,       e   x   i
0063060    t   l   i   s   t   ,       B   u   i   l   d   O   p   t   S
0063100    t   a   t   e   m   e   n   t   p   r   e   s   e   n   t   P
0063120    r   o   d   N   o   d   e   [   s   t   a   t   e   m   e   n
0063140    t   .   p   o   s   i   t   i   o   n   ,       s   t   a   t
0063160    e   m   e   n   t   .   l   e   n   g   t   h   ,       s   t
0063200    a   t   e   m   e   n   t   ]   ]   ,       s   t   a   c   k
0063220    ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c   k
0063240    ]  \r   E   N   D   ;  \r  \r   S   e   e   d   o   e   x   i
0063260    t   d   :       P   R   O   C       [   n   o   d   e   s   :
0063300        L   I   S   T       O   F       R   E   F       A   N   Y
0063320    ,       p   o   s   i   t   i   o   n   :       I   N   T   ,
0063340        l   e   n   g   t   h   :       I   N   T   ]  \r  \t   R
0063360    E   T   U   R   N   S       [   L   I   S   T       O   F    
0063400    R   E   F       A   N   Y   ]       =  \r   B   E   G   I   N
0063420   \r   s   t   a   c   k   :       L   I   S   T       O   F    
0063440    R   E   F       A   N   Y       _       n   o   d   e   s   ;
0063460   \r   e   x   i   t   l   i   s   t   :       E   x   i   t   L
0063500    i   s   t   N   o   d   e   ;  \r   s   t   a   t   e   m   e
0063520    n   t   :       S   t   a   t   e   m   e   n   t   N   o   d
0063540    e   ;  \r   s   t   a   t   e   m   e   n   t       _       N
0063560    A   R   R   O   W   [   s   t   a   c   k   .   f   i   r   s
0063600    t   ]   ;  \r   s   t   a   c   k       _       s   t   a   c
0063620    k   .   r   e   s   t   ;  \r   e   x   i   t   l   i   s   t
0063640        _       N   A   R   R   O   W   [   s   t   a   c   k   .
0063660    f   i   r   s   t   ]   ;  \r   s   t   a   c   k       _    
0063700    s   t   a   c   k   .   r   e   s   t   ;  \r   s   t   a   c
0063720    k       _       C   O   N   S   [   B   u   i   l   d   D   o
0063740    E   x   i   t   P   r   o   d   N   o   d   e   [   p   o   s
0063760    i   t   i   o   n   ,       l   e   n   g   t   h   ,       e
0064000    x   i   t   l   i   s   t   ,       B   u   i   l   d   O   p
0064020    t   S   t   a   t   e   m   e   n   t   p   r   e   s   e   n
0064040    t   P   r   o   d   N   o   d   e   [   s   t   a   t   e   m
0064060    e   n   t   .   p   o   s   i   t   i   o   n   ,       s   t
0064100    a   t   e   m   e   n   t   .   l   e   n   g   t   h   ,    
0064120    s   t   a   t   e   m   e   n   t   ]   ]   ,       s   t   a
0064140    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0064160    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t   r   a
0064200    n   s   f   e   r   s   i   g   n   a   l   :       P   R   O
0064220    C       [   n   o   d   e   s   :       L   I   S   T       O
0064240    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0064260    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0064300    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0064320    [   L   I   S   T       O   F       R   E   F       A   N   Y
0064340    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0064360        L   I   S   T       O   F       R   E   F       A   N   Y
0064400        _       n   o   d   e   s   ;  \r   s   t   a   c   k    
0064420    _       C   O   N   S   [   B   u   i   l   d   T   r   a   n
0064440    s   f   e   r   s   i   g   n   a   l   P   r   o   d   N   o
0064460    d   e   [   p   o   s   i   t   i   o   n   ,       l   e   n
0064500    g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r   R   E
0064520    T   U   R   N       [   s   t   a   c   k   ]  \r   E   N   D
0064540    ;  \r  \r   S   e   e   t   r   a   n   s   f   e   r   e   r
0064560    r   o   r   :       P   R   O   C       [   n   o   d   e   s
0064600    :       L   I   S   T       O   F       R   E   F       A   N
0064620    Y   ,       p   o   s   i   t   i   o   n   :       I   N   T
0064640    ,       l   e   n   g   t   h   :       I   N   T   ]  \r  \t
0064660    R   E   T   U   R   N   S       [   L   I   S   T       O   F
0064700        R   E   F       A   N   Y   ]       =  \r   B   E   G   I
0064720    N  \r   s   t   a   c   k   :       L   I   S   T       O   F
0064740        R   E   F       A   N   Y       _       n   o   d   e   s
0064760    ;  \r   s   t   a   c   k       _       C   O   N   S   [   B
0065000    u   i   l   d   T   r   a   n   s   f   e   r   e   r   r   o
0065020    r   P   r   o   d   N   o   d   e   [   p   o   s   i   t   i
0065040    o   n   ,       l   e   n   g   t   h   ]   ,       s   t   a
0065060    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0065100    c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t   r   a
0065120    n   s   f   e   r   r   e   t   u   r   n   w   i   t   h   e
0065140    r   r   o   r   :       P   R   O   C       [   n   o   d   e
0065160    s   :       L   I   S   T       O   F       R   E   F       A
0065200    N   Y   ,       p   o   s   i   t   i   o   n   :       I   N
0065220    T   ,       l   e   n   g   t   h   :       I   N   T   ]  \r
0065240   \t   R   E   T   U   R   N   S       [   L   I   S   T       O
0065260    F       R   E   F       A   N   Y   ]       =  \r   B   E   G
0065300    I   N  \r   s   t   a   c   k   :       L   I   S   T       O
0065320    F       R   E   F       A   N   Y       _       n   o   d   e
0065340    s   ;  \r   s   t   a   c   k       _       C   O   N   S   [
0065360    B   u   i   l   d   T   r   a   n   s   f   e   r   r   e   t
0065400    u   r   n   w   i   t   h   e   r   r   o   r   P   r   o   d
0065420    N   o   d   e   [   p   o   s   i   t   i   o   n   ,       l
0065440    e   n   g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r
0065460    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0065500    N   D   ;  \r  \r   S   e   e   t   r   a   n   s   f   e   r
0065520    s   t   a   r   t   :       P   R   O   C       [   n   o   d
0065540    e   s   :       L   I   S   T       O   F       R   E   F    
0065560    A   N   Y   ,       p   o   s   i   t   i   o   n   :       I
0065600    N   T   ,       l   e   n   g   t   h   :       I   N   T   ]
0065620   \r  \t   R   E   T   U   R   N   S       [   L   I   S   T    
0065640    O   F       R   E   F       A   N   Y   ]       =  \r   B   E
0065660    G   I   N  \r   s   t   a   c   k   :       L   I   S   T    
0065700    O   F       R   E   F       A   N   Y       _       n   o   d
0065720    e   s   ;  \r   s   t   a   c   k       _       C   O   N   S
0065740    [   B   u   i   l   d   T   r   a   n   s   f   e   r   s   t
0065760    a   r   t   P   r   o   d   N   o   d   e   [   p   o   s   i
0066000    t   i   o   n   ,       l   e   n   g   t   h   ]   ,       s
0066020    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0066040    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t
0066060    r   a   n   s   f   e   r   r   e   s   t   a   r   t   :    
0066100    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0066120    T       O   F       R   E   F       A   N   Y   ,       p   o
0066140    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0066160    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0066200    N   S       [   L   I   S   T       O   F       R   E   F    
0066220    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0066240    c   k   :       L   I   S   T       O   F       R   E   F    
0066260    A   N   Y       _       n   o   d   e   s   ;  \r   s   t   a
0066300    c   k       _       C   O   N   S   [   B   u   i   l   d   T
0066320    r   a   n   s   f   e   r   r   e   s   t   a   r   t   P   r
0066340    o   d   N   o   d   e   [   p   o   s   i   t   i   o   n   ,
0066360        l   e   n   g   t   h   ]   ,       s   t   a   c   k   ]
0066400    ;  \r   R   E   T   U   R   N       [   s   t   a   c   k   ]
0066420   \r   E   N   D   ;  \r  \r   S   e   e   t   r   a   n   s   f
0066440    e   r   j   o   i   n   :       P   R   O   C       [   n   o
0066460    d   e   s   :       L   I   S   T       O   F       R   E   F
0066500        A   N   Y   ,       p   o   s   i   t   i   o   n   :    
0066520    I   N   T   ,       l   e   n   g   t   h   :       I   N   T
0066540    ]  \r  \t   R   E   T   U   R   N   S       [   L   I   S   T
0066560        O   F       R   E   F       A   N   Y   ]       =  \r   B
0066600    E   G   I   N  \r   s   t   a   c   k   :       L   I   S   T
0066620        O   F       R   E   F       A   N   Y       _       n   o
0066640    d   e   s   ;  \r   s   t   a   c   k       _       C   O   N
0066660    S   [   B   u   i   l   d   T   r   a   n   s   f   e   r   j
0066700    o   i   n   P   r   o   d   N   o   d   e   [   p   o   s   i
0066720    t   i   o   n   ,       l   e   n   g   t   h   ]   ,       s
0066740    t   a   c   k   ]   ;  \r   R   E   T   U   R   N       [   s
0066760    t   a   c   k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t
0067000    r   a   n   s   f   e   r   n   o   t   i   f   y   :       P
0067020    R   O   C       [   n   o   d   e   s   :       L   I   S   T
0067040        O   F       R   E   F       A   N   Y   ,       p   o   s
0067060    i   t   i   o   n   :       I   N   T   ,       l   e   n   g
0067100    t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R   N
0067120    S       [   L   I   S   T       O   F       R   E   F       A
0067140    N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a   c
0067160    k   :       L   I   S   T       O   F       R   E   F       A
0067200    N   Y       _       n   o   d   e   s   ;  \r   s   t   a   c
0067220    k       _       C   O   N   S   [   B   u   i   l   d   T   r
0067240    a   n   s   f   e   r   n   o   t   i   f   y   P   r   o   d
0067260    N   o   d   e   [   p   o   s   i   t   i   o   n   ,       l
0067300    e   n   g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r
0067320    R   E   T   U   R   N       [   s   t   a   c   k   ]  \r   E
0067340    N   D   ;  \r  \r   S   e   e   t   r   a   n   s   f   e   r
0067360    b   r   o   a   d   c   a   s   t   :       P   R   O   C    
0067400    [   n   o   d   e   s   :       L   I   S   T       O   F    
0067420    R   E   F       A   N   Y   ,       p   o   s   i   t   i   o
0067440    n   :       I   N   T   ,       l   e   n   g   t   h   :    
0067460    I   N   T   ]  \r  \t   R   E   T   U   R   N   S       [   L
0067500    I   S   T       O   F       R   E   F       A   N   Y   ]    
0067520    =  \r   B   E   G   I   N  \r   s   t   a   c   k   :       L
0067540    I   S   T       O   F       R   E   F       A   N   Y       _
0067560        n   o   d   e   s   ;  \r   s   t   a   c   k       _    
0067600    C   O   N   S   [   B   u   i   l   d   T   r   a   n   s   f
0067620    e   r   b   r   o   a   d   c   a   s   t   P   r   o   d   N
0067640    o   d   e   [   p   o   s   i   t   i   o   n   ,       l   e
0067660    n   g   t   h   ]   ,       s   t   a   c   k   ]   ;  \r   R
0067700    E   T   U   R   N       [   s   t   a   c   k   ]  \r   E   N
0067720    D   ;  \r  \r   S   e   e   t   r   a   n   s   f   e   r   t
0067740    r   a   n   s   f   e   r   w   i   t   h   :       P   R   O
0067760    C       [   n   o   d   e   s   :       L   I   S   T       O
0070000    F       R   E   F       A   N   Y   ,       p   o   s   i   t
0070020    i   o   n   :       I   N   T   ,       l   e   n   g   t   h
0070040    :       I   N   T   ]  \r  \t   R   E   T   U   R   N   S    
0070060    [   L   I   S   T       O   F       R   E   F       A   N   Y
0070100    ]       =  \r   B   E   G   I   N  \r   s   t   a   c   k   :
0070120        L   I   S   T       O   F       R   E   F       A   N   Y
0070140        _       n   o   d   e   s   ;  \r   s   t   a   c   k    
0070160    _       C   O   N   S   [   B   u   i   l   d   T   r   a   n
0070200    s   f   e   r   t   r   a   n   s   f   e   r   w   i   t   h
0070220    P   r   o   d   N   o   d   e   [   p   o   s   i   t   i   o
0070240    n   ,       l   e   n   g   t   h   ]   ,       s   t   a   c
0070260    k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a   c
0070300    k   ]  \r   E   N   D   ;  \r  \r   S   e   e   t   r   a   n
0070320    s   f   e   r   r   e   t   u   r   n   w   i   t   h   :    
0070340    P   R   O   C       [   n   o   d   e   s   :       L   I   S
0070360    T       O   F       R   E   F       A   N   Y   ,       p   o
0070400    s   i   t   i   o   n   :       I   N   T   ,       l   e   n
0070420    g   t   h   :       I   N   T   ]  \r  \t   R   E   T   U   R
0070440    N   S       [   L   I   S   T       O   F       R   E   F    
0070460    A   N   Y   ]       =  \r   B   E   G   I   N  \r   s   t   a
0070500    c   k   :       L   I   S   T       O   F       R   E   F    
0070520    A   N   Y       _       n   o   d   e   s   ;  \r   s   t   a
0070540    c   k       _       C   O   N   S   [   B   u   i   l   d   T
0070560    r   a   n   s   f   e   r   r   e   t   u   r   n   w   i   t
0070600    h   P   r   o   d   N   o   d   e   [   p   o   s   i   t   i
0070620    o   n   ,       l   e   n   g   t   h   ]   ,       s   t   a
0070640    c   k   ]   ;  \r   R   E   T   U   R   N       [   s   t   a
0070660    c   k   ]  \r   E   N   D   ;  \r  \r   E   N   D   .   .  \r
0070700