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