$ od -c -N 50000 [eris]<LispCore>SOURCES>CMLARRAY!11
0000000 ( D E F I N E - F I L E - I N F
0000020 O 247 R E A D T A B L E " X C
0000040 L " 247 P A C K A G E " I N T
0000060 E R L I S P " ) \r 006 001 ( f i l e
0000100 c r e a t e d " 1 8 - O c t -
0000120 8 6 1 7 : 3 7 : 0 0 " 006 004 {
0000140 e r i s } < l i s p c o r e > s
0000160 o u r c e s > c m l a r r a y .
0000200 \ ; 1 1 006 001 1 3 0 2 8 1 \r \r
0000220 | c h a n g e s |
0000240 | t o : | ( f n s % g e t
0000260 - c a n o n i c a l - c m l - t
0000300 y p e % g e t - e n c l o s i
0000320 n g - s i g n e d - b y t e \r
0000340
0000360 % g e t
0000400 - e n c l o s i n g - u n s i g
0000420 n e d - b y t e % r e d u c e
0000440 - i n t e g e r % r e d u c e
0000460 - m o d ) \r \r | p r
0000500 e v i o u s | | d a t e : |
0000520 " 1 7 - O c t - 8 6 1 7 : 4 7
0000540 : 4 2 " { e r i s } < l i s p
0000560 c o r e > s o u r c e s > c m l
0000600 a r r a y . \ ; 9 ) \r \r \r ; C
0000620 o p y r i g h t ( c ) 1 9 8
0000640 6 b y X e r o x C o r p o
0000660 r a t i o n . A l l r i g
0000700 h t s r e s e r v e d . \r \r (
0000720 p r e t t y c o m p r i n t c
0000740 m l a r r a y c o m s ) \r \r ( r
0000760 p a q q 006 002 c m l a r r a y c
0001000 o m s 006 001 \r ( (
0001020 * | ; ; | " C o n t a i n s
0001040 t a b l e d r i v e n m a
0001060 c r o s " ) \r (
0001100 d e c l a r e \ : d o n t c o
0001120 p y e v a l @ c o m p i l e
0001140 ( e x p o r t ( f i l e s (
0001160 s y s l o a d f r o m v a l
0001200 u e o f d i r e c t o r i e s
0001220 ) \r
0001240
*
0001300 c m l a r r
0001320 a y - s u p p o r t ) ) ) \r
0001340 ( * | ; ; | " U
0001360 s e r e n t r y p o i n t s
0001400 " ) \r ( f u n c
0001420 t i o n s c l : a d j u s t -
0001440 a r r a y c l : a d j u s t a
0001460 b l e - a r r a y - p c l : a
0001500 r r a y - d i m e n s i o n c
0001520 l : a r r a y - d i m e n s i o
0001540 n s \r
0001560 c l : a r r a y - e l e m
0001600 e n t - t y p e c l : a r r a
0001620 y - h a s - f i l l - p o i n t
0001640 e r - p a r r a y - n e e d s
0001660 - i n d i r e c t i o n - p \r
0001700 c
0001720 l : a r r a y - r a n k c l :
0001740 a r r a y - t o t a l - s i z e
0001760 b i t c l : b i t - a n d
0002000 c l : b i t - a n d c 1 c l :
0002020 b i t - a n d c 2 b i t - a r
0002040 r a y - p \r
0002060 c l : b i t - e q v
0002100 c l : b i t - i o r c l : b
0002120 i t - n a n d c l : b i t - n
0002140 o r c l : b i t - n o t c l
0002160 : b i t - o r c 1 c l : b i t
0002200 - o r c 2 \r
0002220 c l : b i t - v e c
0002240 t o r - p c l : b i t - x o r
0002260 c h a r c l : a r r a y p
0002300 c l : s t r i n g p c o p y -
0002320 a r r a y d i s p l a c e d -
0002340 a r r a y - p \r
0002360 e q u a l - d i
0002400 m e n s i o n s - p e x t e n
0002420 d a b l e - a r r a y - p f i
0002440 l l - a r r a y c l : f i l l
0002460 - p o i n t e r f i l l - v e
0002500 c t o r \r
0002520 c l : m a k e - a r r
0002540 a y m a k e - v e c t o r r
0002560 e a d - o n l y - a r r a y - p
0002600 c l : s b i t c l : s c h a
0002620 r s e t - f i l l - p o i n t
0002640 e r \r
0002660 s i m p l e - a r r a y -
0002700 p c l : s i m p l e - b i t -
0002720 v e c t o r - p c l : s i m p
0002740 l e - s t r i n g - p c l : s
0002760 i m p l e - v e c t o r - p \r
0003000 s
0003020 t r i n g - a r r a y - p c l
0003040 : s v r e f v e c t o r - l e
0003060 n g t h c l : v e c t o r - p
0003100 o p c l : v e c t o r - p u s
0003120 h \r
0003140 c l : v e c t o r - p u s h
0003160 - e x t e n d c l : v e c t o
0003200 r p ) \r ( f n s
0003220 % c o p y - t o - n e w - a r
0003240 r a y c l : a r e f c l : a
0003260 r r a y - i n - b o u n d s - p
0003300 c l : a r r a y - r o w - m a
0003320 j o r - i n d e x a s e t c
0003340 l : v e c t o r ) \r
0003360 ( * | ; ; | " O b s o l
0003400 e t e b u t r e t a i n e d
0003420 t o a v o i d r e c o m p
0003440 i l a t i o n " ) \r
0003460 ( f n s s c h a r s e t )
0003500 \r ( * | ; ; |
0003520 " V a r s e t c " ) \r
0003540 ( * \ ; " * P R I
0003560 N T - A R R A Y * i s d e f
0003600 i n e d i n A P R I N T " )
0003620 \r ( v a r i a b
0003640 l e s c l : a r r a y - r a n
0003660 k - l i m i t c l : a r r a y
0003700 - t o t a l - s i z e - l i m i
0003720 t c l : a r r a y - d i m e n
0003740 s i o n - l i m i t \r
0003760 * d e f a
0004000 u l t - p u s h - e x t e n s i
0004020 o n - s i z e * ) \r
0004040 ( * | ; ; | " I n t e r
0004060 n a l s t u f f " ) \r
0004100 ( f n s % a l t e r -
0004120 a s - d i s p l a c e d - a r r
0004140 a y % a l t e r - a s - d i s
0004160 p l a c e d - t o - b a s e - a
0004200 r r a y % a r e f 0 % a r e
0004220 f 1 % a r e f 2 \r
0004240 % a r r a y - b
0004260 a s e % a r r a y - c o n t e
0004300 n t - i n i t i a l i z e % a
0004320 r r a y - e l e m e n t - i n i
0004340 t i a l i z e % a r r a y - o
0004360 f f s e t \r
0004400 % a r r a y - t y p e -
0004420 n u m b e r % a s e t 0 % a
0004440 s e t 1 % a s e t 2 % c h e
0004460 c k - s e q u e n c e - d i m e
0004500 n s i o n s % d o - l o g i c
0004520 a l - o p \r
0004540 % e x t e n d - a r r a
0004560 y % f a s t - c o p y - b a s
0004600 e % f a t - s t r i n g - a r
0004620 r a y - p % f i l l - a r r a
0004640 y - f r o m - s e q u e n c e
0004660 \r % f
0004700 l a t t e n - a r r a y % m a
0004720 k e - a r r a y - w r i t e a b
0004740 l e % m a k e - d i s p l a c
0004760 e d - a r r a y % m a k e - g
0005000 e n e r a l - a r r a y \r
0005020 % m a k e
0005040 - o n e d - a r r a y % m a k
0005060 e - s t r i n g - a r r a y - f
0005100 a t % m a k e - t w o d - a r
0005120 r a y % t o t a l - s i z e
0005140 s h r i n k - v e c t o r ) \r
0005160 ( * \ ; " F o
0005200 r I n t e r l i s p s t r i
0005220 n g h a c k " ) \r
0005240 ( f n s % s e t - a r r a
0005260 y - o f f s e t % s e t - a r
0005300 r a y - t y p e - n u m b e r )
0005320 \r ( * \ ; "
0005340 F a s t e r p r e d i c a t e
0005360 s n o t i n c l u d i n g
0005400 I L : S T R I N G P ' s " ) \r
0005420 ( f n s % a r r
0005440 a y p % s i m p l e - a r r a
0005460 y - p % s i m p l e - s t r i
0005500 n g - p % s t r i n g p % v
0005520 e c t o r p ) \r
0005540 ( * \ ; " L o w l e v e l
0005560 p r e d i c a t e s " ) \r
0005600 ( f n s % g e n e
0005620 r a l - a r r a y - p % o n e
0005640 d - a r r a y - p % t h i n -
0005660 s t r i n g - a r r a y - p %
0005700 t w o d - a r r a y - p ) \r
0005720 ( * \ ; " R e c
0005740 o r d d e f ' s " ) \r
0005760 ( d e c l a r e \ : d
0006000 o n t c o p y d o e v a l @ c
0006020 o m p i l e ( e x p o r t (
0006040 r e c o r d s a r r a y - h e
0006060 a d e r g e n e r a l - a r r
0006100 a y o n e d - a r r a y \r
0006120
*
0006200 t w o d - a r
0006220 r a y ) ) ) \r (
0006240 i n i t r e c o r d s g e n e
0006260 r a l - a r r a y o n e d - a
0006300 r r a y t w o d - a r r a y )
0006320 \r ( s y s r e c
0006340 o r d s g e n e r a l - a r r
0006360 a y o n e d - a r r a y t w
0006400 o d - a r r a y ) \r
0006420 ( p r o p d o p v a l %
0006440 a r e f 1 % a r e f 2 % a s
0006460 e t 1 % a s e t 2 ) \r
0006500 ( * | ; ; | " I / O
0006520 " ) \r ( f n s
0006540 % d e f p r i n t - a r r a y
0006560 % d e f p r i n t - b i t v e c
0006600 t o r % d e f p r i n t - g e
0006620 n e r i c - a r r a y % d e f
0006640 p r i n t - v e c t o r \r
0006660 % d e f p
0006700 r i n t - s t r i n g % p r i
0006720 n t - a r r a y - c o n t e n t
0006740 s ) \r ( p ( d
0006760 e f p r i n t ' o n e d - a r
0007000 r a y ' % d e f p r i n t - v
0007020 e c t o r ) \r
0007040 ( d e f p r i n t ' t w o
0007060 d - a r r a y ' % d e f p r i
0007100 n t - a r r a y ) \r
0007120 ( d e f p r i n t '
0007140 g e n e r a l - a r r a y ' %
0007160 d e f p r i n t - a r r a y ) )
0007200 \r ( * | ; ; |
0007220 " N e e d e d a t r u n
0007240 t i m e . l o w l e v e l
0007260 f u n c t i o n s f o r a c
0007300 c e s s i n g , s e t t i n g
0007320 , a n d a l l o c a t i n g
0007340 r a w s t o r a g e . a l
0007360 s o i n c l u d e s c m l
0007400 t y p e t o t y p e n u m b
0007420 e r c o n v e r t e r s " \r
0007440 ) \r
0007460 ( f n s % a r r a y -
0007500 r e a d % a r r a y - w r i t
0007520 e % c m l - t y p e - t o - t
0007540 y p e n u m b e r % g e t - c
0007560 a n o n i c a l - c m l - t y p
0007600 e \r
0007620 % g e t - e n c l o s i n g - s
0007640 i g n e d - b y t e % g e t -
0007660 e n c l o s i n g - u n s i g n
0007700 e d - b y t e % m a k e - a r
0007720 r a y - s t o r a g e \r
0007740 % r e d u c
0007760 e - i n t e g e r % r e d u c
0010000 e - m o d % s l o w - a r r a
0010020 y - r e a d % s l o w - a r r
0010040 a y - w r i t e ) \r
0010060 ( * | ; ; | " C o m p i
0010100 l e r o p t i o n s " ) \r
0010120 ( d e c l a r e \ :
0010140 d o n t e v a l @ l o a d d
0010160 o e v a l @ c o m p i l e d o
0010200 n t c o p y ( l o c a l v a r
0010220 s . t ) ) \r
0010240 ( p r o p f i l e t y p e c
0010260 m l a r r a y ) \r
0010300 ( d e c l a r e \ : d o n t
0010320 e v a l @ l o a d d o e v a l
0010340 @ c o m p i l e d o n t c o p
0010360 y c o m p i l e r v a r s \r
0010400 ( a
0010420 d d v a r s ( n l a m a ) \r
0010440
0010460 ( n l a m l ) \r
0010500
0010520 ( l a m a c l : v e c t
0010540 o r a s e t c l : a r r a y
0010560 - r o w - m a j o r - i n d e x
0010600 c l : a r r a y - i n - b o u
0010620 n d s - p c l : a r e f ) ) )
0010640 ) ) \r \r \r \r 006 004 ( * | ; ; |
0010660 " C o n t a i n s t a b l e
0010700 d r i v e n m a c r o s " ) 006
0010720 001 \r \r ( d e c l a r e \ : d o
0010740 n t c o p y e v a l @ c o m p
0010760 i l e \r ( * F O L L O W I N
0011000 G D E F I N I T I O N S E X
0011020 P O R T E D ) \r \r \r ( f i l e s
0011040 l o a d ( s y s l o a d f r
0011060 o m v a l u e o f d i r e c
0011100 t o r i e s ) \r c
0011120 m l a r r a y - s u p p o r t )
0011140 \r \r \r ( * E N D E X P O R T
0011160 E D D E F I N I T I O N S ) \r
0011200 \r ) \r \r \r \r 006 004 ( * | ; ; |
0011220 " U s e r e n t r y p o i n
0011240 t s " ) 006 001 \r \r ( c l : d e f u
0011260 n 006 002 c l : a d j u s t - a r
0011300 r a y 006 001 ( a d j u s t a b l
0011320 e - a r r a y d i m e n s i o
0011340 n s & k e y ( e l e m e n t
0011360 - t y p e n i l e l e m e n
0011400 t - t y p e - p ) \r
0011420
0011440 ( i n i t
0011460 i a l - e l e m e n t n i l
0011500 i n i t i a l - e l e m e n t -
0011520 p ) \r
0011540
0011560 ( i n i t i a l - c o n
0011600 t e n t s n i l i n i t i a
0011620 l - c o n t e n t s - p ) \r
0011640
0011660 (
0011700 d i s p l a c e d - t o n i l
0011720 d i s p l a c e d - t o - p )
0011740 \r
0011760
0012000 ( d i s p l a c e d - t o -
0012020 b a s e n i l d i s p l a c
0012040 e d - t o - b a s e - p ) \r
0012060
0012100 (
0012120 d i s p l a c e d - i n d e x -
0012140 o f f s e t 0 d i s p l a c
0012160 e d - i n d e x - o f f s e t -
0012200 p ) \r
0012220
0012240 ( c l : f i l l - p o i
0012260 n t e r n i l f i l l - p o
0012300 i n t e r - p ) \r
0012320
0012340 f a t p )
0012360 " D o s o m e t h i n g w o
0012400 n d e r f u l " \r
0012420 \r 006 003
0012440 ( * * " S t r i n g s a r
0012460 e b y d e f a u l t t h i
0012500 n u n l e s s F A T P i s
0012520 T " ) 006 001 \r \r ( c l : i
0012540 f ( n o t ( e x t e n d a b
0012560 l e - a r r a y - p a d j u s
0012600 t a b l e - a r r a y ) ) \r
0012620 ( c l : e r r o
0012640 r " N o t a n a d j u s t
0012660 a b l e o r e x t e n d a b
0012700 l e a r r a y " ) ) \r (
0012720 c l : i f ( n o t ( c l : l
0012740 i s t p d i m e n s i o n s )
0012760 ) \r ( s e t
0013000 q d i m e n s i o n s ( l i
0013020 s t d i m e n s i o n s ) ) )
0013040 \r ( c l : i f ( c l : d
0013060 o l i s t ( d i m d i m e n
0013100 s i o n s n i l ) \r
0013120 ( c l :
0013140 i f ( o r ( < d i m 0 )
0013160 \r
0013200 ( > =
0013220 d i m c l : a r r a y - d i
0013240 m e n s i o n - l i m i t ) ) \r
0013260
0013300 ( r e t u r n
0013320 t ) ) ) \r (
0013340 c l : e r r o r " D i m e n s
0013360 i o n s o u t o f b o u n
0013400 d s ~ S " d i m e n s i o n
0013420 s ) ) \r ( l e t ( ( a d
0013440 j u s t a b l e - a r r a y - e
0013460 l e m e n t - t y p e ( c l :
0013500 a r r a y - e l e m e n t - t y
0013520 p e a d j u s t a b l e - a r
0013540 r a y ) ) \r (
0013560 n e l t s ( % t o t a l - s i
0013600 z e d i m e n s i o n s ) ) \r
0013620 ( r a n k (
0013640 l e n g t h d i m e n s i o n
0013660 s ) ) \r ( e x
0013700 t e n d a b l e - p ( n o t
0013720 ( c l : a d j u s t a b l e - a
0013740 r r a y - p a d j u s t a b l
0013760 e - a r r a y ) ) ) ) \r
0014000 \r
0014020 006 003 ( * * " C o n s i s t
0014040 e n c y c h e c k s " ) 006 001 \r
0014060 \r ( c l : i f
0014100 ( > = r a n k c l : a r r a
0014120 y - r a n k - l i m i t ) \r
0014140 ( c l
0014160 : e r r o r " T o o m a n y
0014200 d i m e n s i o n s : ~ A "
0014220 r a n k ) ) \r
0014240 ( c l : i f ( > = n e l t s
0014260 c l : a r r a y - t o t a l -
0014300 s i z e - l i m i t ) \r
0014320 ( c l : e
0014340 r r o r " T o o m a n y e
0014360 l e m e n t s : ~ A " n e l
0014400 t s ) ) \r ( c l
0014420 : i f ( n o t ( e q l r a
0014440 n k ( c l : a r r a y - r a n
0014460 k a d j u s t a b l e - a r r
0014500 a y ) ) ) \r
0014520 ( c l : e r r o r "
0014540 R a n k m i s m a t c h ~ S
0014560 " d i m e n s i o n s ) ) \r
0014600 ( c l : i f e l
0014620 e m e n t - t y p e - p ( c l
0014640 : i f ( n o t ( e q u a l
0014660 e l e m e n t - t y p e a d j
0014700 u s t a b l e - a r r a y - e l
0014720 e m e n t - t y p e ) ) \r
0014740
*
0015000 ( c l : e r r o r " A D J
0015020 U S T A B L E - A R R A Y n o
0015040 t o f s p e c i f i e d e
0015060 l e m e n t - t y p e : ~ A "
0015100 \r
0015120
0015140 e l
0015160 e m e n t - t y p e ) ) \r
0015200 ( s e t
0015220 q e l e m e n t - t y p e a
0015240 d j u s t a b l e - a r r a y -
0015260 e l e m e n t - t y p e ) ) \r
0015300 ( c l : i f ( a
0015320 n d f i l l - p o i n t e r -
0015340 p ( n u l l c l : f i l l -
0015360 p o i n t e r ) \r
0015400 ( c l
0015420 : a r r a y - h a s - f i l l -
0015440 p o i n t e r - p a d j u s t
0015460 a b l e - a r r a y ) ) \r
0015500 ( c l :
0015520 e r r o r " A D J U S T A B L
0015540 E - A R R A Y h a s f i l l
0015560 p o i n t e r " ) ) \r
0015600 ( c l : i f ( o r (
0015620 a n d d i s p l a c e d - t o
0015640 - p ( o r i n i t i a l - e
0015660 l e m e n t - p i n i t i a l
0015700 - c o n t e n t s - p d i s p
0015720 l a c e d - t o - b a s e - p )
0015740 ) \r
0015760 ( a n d d i s p l a
0016000 c e d - t o - b a s e - p ( o
0016020 r i n i t i a l - e l e m e n
0016040 t - p i n i t i a l - c o n t
0016060 e n t s - p d i s p l a c e d
0016100 - t o - p ) ) \r
0016120 ( a n d
0016140 f i l l - p o i n t e r - p c
0016160 l : f i l l - p o i n t e r (
0016200 n o t ( e q l r a n k 1 )
0016220 ) ) \r
0016240 ( a n d d i s p l
0016260 a c e d - i n d e x - o f f s e
0016300 t - p ( n o t ( o r d i s
0016320 p l a c e d - t o - p d i s p
0016340 l a c e d - t o - b a s e - p )
0016360 ) ) \r
0016400 ( a n d i n i t i
0016420 a l - e l e m e n t - p i n i
0016440 t i a l - c o n t e n t s - p )
0016460 ) \r
0016500 ( c l : e r r o r " I n c o
0016520 n s i s t e n t o p t i o n s
0016540 t o a d j u s t - a r r a y
0016560 " ) ) \r ( c l :
0016600 i f d i s p l a c e d - t o -
0016620 p ( c o n d \r
0016640
0016660 ( ( n o t (
0016700 % a r r a y p d i s p l a c e
0016720 d - t o ) ) \r
0016740
0016760 ( c l : e r r
0017000 o r " C a n n o t d i s p l
0017020 a c e t o a n I n t e r l
0017040 i s p a r r a y / s t r i n g
0017060 " ) ) \r
0017100
0017120 ( ( n o t ( e q u a
0017140 l a d j u s t a b l e - a r r
0017160 a y - e l e m e n t - t y p e
0017200 ( c l : a r r a y - e l e m e n
0017220 t - t y p e \r
0017240
*
0017340 d i s p l a c e d - t o
0017360 ) ) ) \r
0017400
0017420 ( c l : e r r o r
0017440 " N o t d i s p l a c e d t
0017460 o a n a r r a y o f t h
0017500 e s a m e e l e m e n t - t
0017520 y p e : " ) ) \r
0017540
0017560 ( ( > ( +
0017600 d i s p l a c e d - i n d e x -
0017620 o f f s e t n e l t s ) \r
0017640
*
0017700 ( c l : a r r a y - t o t
0017720 a l - s i z e d i s p l a c e
0017740 d - t o ) ) \r
0017760
0020000 ( c l : e r r
0020020 o r " M o r e e l e m e n t
0020040 s t h a n d i s p l a c e d
0020060 - t o a r r a y " ) ) ) ) \r
0020100 ( c l : i f c l
0020120 : f i l l - p o i n t e r ( c
0020140 o n d \r
0020160
0020200 ( ( e q c l : f i
0020220 l l - p o i n t e r t ) \r
0020240
*
0020300 ( s e t q c l : f i l l - p
0020320 o i n t e r n e l t s ) ) \r
0020340
*
0020400 ( ( n o t ( a n d ( > =
0020420 c l : f i l l - p o i n t e r
0020440 0 ) \r
0020460
*
0020520 ( < = c l : f i l l - p o i n
0020540 t e r n e l t s ) ) ) \r
0020560
*
0020620 ( c l : e r r o r " F i l l
0020640 p o i n t e r o u t o f b
0020660 o u n d s ~ A " c l : f i l
0020700 l - p o i n t e r ) ) ) \r
0020720 ( c l :
0020740 i f ( c l : a r r a y - h a s
0020760 - f i l l - p o i n t e r - p
0021000 a d j u s t a b l e - a r r a y
0021020 ) \r
0021040 ( s e t q c l
0021060 : f i l l - p o i n t e r ( m
0021100 i n ( c l : f i l l - p o i n
0021120 t e r a d j u s t a b l e - a
0021140 r r a y ) \r
0021160
*
0021220 n e l t s ) ) ) )
0021240 \r ( c l : i f
0021260 e x t e n d a b l e - p ( c o
0021300 n d \r
0021320
0021340 ( ( o r d i s p l a c e d
0021360 - t o - p d i s p l a c e d -
0021400 t o - b a s e - p ) \r
0021420
0021440 ( c l : e
0021460 r r o r " C a n n o t a d j
0021500 u s t a n e x t e n d a b l
0021520 e a r r a y t o b e d i
0021540 s p l a c e d " ) ) \r
0021560
0021600 ( ( < n e
0021620 l t s ( c l : a r r a y - t o
0021640 t a l - s i z e a d j u s t a
0021660 b l e - a r r a y ) ) \r
0021700
0021720 ( c l :
0021740 e r r o r " C a n n o t e x
0021760 t e n d a n e x t e n d a b
0022000 l e a r r a y t o h a v e
0022020 f e w e r e l e m e n t s "
0022040 ) \r
0022060
0022100 ) ) ) \r
0022120 \r 006 003 ( *
0022140 * " S p e c s r e a d y ,
0022160 d o t h e s u r g u r y " )
0022200 006 001 \r \r ( c o n
0022220 d \r ( d i
0022240 s p l a c e d - t o - p ( % a
0022260 l t e r - a s - d i s p l a c e
0022300 d - a r r a y a d j u s t a b
0022320 l e - a r r a y d i m e n s i
0022340 o n s d i s p l a c e d - t o
0022360 \r
0022400
0022420 d i s p l a c e d - i n
0022440 d e x - o f f s e t c l : f i
0022460 l l - p o i n t e r ) ) \r
0022500 ( d i s p l a c
0022520 e d - t o - b a s e - p ( % a
0022540 l t e r - a s - d i s p l a c e
0022560 d - t o - b a s e - a r r a y
0022600 a d j u s t a b l e - a r r a y
0022620 d i m e n s i o n s \r
0022640
*
0022700 e l e m e n t - t y p e
0022720 d i s p l a c e d - t o - b a
0022740 s e d i s p l a c e d - i n d
0022760 e x - o f f s e t \r
0023000
*
0023040 c l : f i l l - p o i n t e
0023060 r f a t p ) ) \r
0023100 ( t ( c l : i f ( e
0023120 q u a l ( c l : a r r a y - d
0023140 i m e n s i o n s a d j u s t
0023160 a b l e - a r r a y ) \r
0023200
0023220 d i m e n s i o
0023240 n s ) \r
0023260 ( c l : i f
0023300 c l : f i l l - p o i n t e r
0023320 ( s e t - f i l l - p o i n t e
0023340 r a d j u s t a b l e - a r r
0023360 a y c l : f i l l - p o i n t
0023400 e r ) ) \r
0023420 ( l e t (
0023440 ( n e w - a r r a y ( c l : m
0023460 a k e - a r r a y d i m e n s
0023500 i o n s : e l e m e n t - t y
0023520 p e e l e m e n t - t y p e
0023540 : f a t p \r
0023560
*
0023620 ( % f a t - s t r i n g -
0023640 a r r a y - p a d j u s t a b
0023660 l e - a r r a y ) ) ) ) \r
0023700
0023720 ( c o n d \r
0023740
0023760 ( i n i t i
0024000 a l - c o n t e n t s - p ( %
0024020 a r r a y - c o n t e n t - i n
0024040 i t i a l i z e n e w - a r r
0024060 a y \r
0024100
*
0024140 i n i t
0024160 i a l - c o n t e n t s ) ) \r
0024200
0024220 ( t (
0024240 c l : i f i n i t i a l - e l
0024260 e m e n t - p ( % a r r a y -
0024300 e l e m e n t - i n i t i a l i
0024320 z e n e w - a r r a y \r
0024340
*
0024420 i n
0024440 i t i a l - e l e m e n t ) ) \r
0024460
*
0024520 ( % c o p y - t o - n e w - a r
0024540 r a y ( c l : a r r a y - d i
0024560 m e n s i o n s a d j u s t a
0024600 b l e - a r r a y ) \r
0024620
*
0024660 ( % f l a t t e n - a r r a
0024700 y a d j u s t a b l e - a r r
0024720 a y ) \r
0024740
0024760 0 d i m
0025000 e n s i o n s ( % f l a t t e
0025020 n - a r r a y n e w - a r r a
0025040 y ) \r
0025060
0025100 0 ) ) ) \r
0025120
0025140 ( % e x t e n
0025160 d - a r r a y a d j u s t a b
0025200 l e - a r r a y n e w - a r r
0025220 a y d i m e n s i o n s c l
0025240 : f i l l - p o i n t e r ) ) )
0025260 ) ) \r \r
0025300 006 003 ( * * "
0025320 R e t u r n t h e a d j u s
0025340 t e d a r r a y " ) 006 001 \r \r
0025360 a d j u s t a b l
0025400 e - a r r a y ) ) \r \r ( c l : d
0025420 e f u n 006 002 c l : a d j u s t
0025440 a b l e - a r r a y - p 006 001 (
0025460 a r r a y ) \r
0025500 \r 006 003 (
0025520 * * ) 006 001 \r ( c o n d \r
0025540 ( ( % a r r a y p a r r a
0025560 y ) \r ( | f e t c h |
0025600 ( a r r a y - h e a d e r a
0025620 d j u s t a b l e - p ) \r
0025640 | o f | a r
0025660 r a y ) ) \r ( ( s t r i
0025700 n g p a r r a y ) \r
0025720 n i l ) \r ( t ( c l :
0025740 e r r o r " N o t a n a r
0025760 r a y ~ S " a r r a y ) ) )
0026000 ) \r \r ( c l : d e f u n 006 002 c
0026020 l : a r r a y - d i m e n s i o
0026040 n 006 001 ( a r r a y d i m e n
0026060 s i o n ) \r
0026100 \r 006 003 ( *
0026120 * ) 006 001 \r ( c o n d \r
0026140 ( ( % o n e d - a r r a y - p
0026160 a r r a y ) \r ( c l
0026200 : i f ( e q l 0 d i m e n
0026220 s i o n ) \r
0026240 ( | f e t c h | ( a r r a
0026260 y - h e a d e r t o t a l - s
0026300 i z e ) \r
0026320 | o f | a r r
0026340 a y ) \r
0026360 ( c l : e r r o r " D i m e n
0026400 s i o n o u t o f b o u n
0026420 d s : ~ A " d i m e n s i o
0026440 n ) ) ) \r ( ( % t w o d
0026460 - a r r a y - p a r r a y ) \r
0026500 ( c a s e d i m e n
0026520 s i o n ( 0 ( | f f e t c h
0026540 | ( t w o d - a r r a y b o
0026560 u n d 0 ) \r
0026600
0026620 | o f | a r r a y )
0026640 ) \r ( 1
0026660 ( | f f e t c h | ( t w o d -
0026700 a r r a y b o u n d 1 ) \r
0026720
0026740 | o f | a r r a y ) ) \r
0026760 ( c l : o
0027000 t h e r w i s e ( c l : e r r
0027020 o r " D i m e n s i o n o u
0027040 t o f b o u n d s : ~ A "
0027060 d i m e n s i o n ) ) ) ) \r
0027100 ( ( % g e n e r a l - a r
0027120 r a y - p a r r a y ) \r
0027140 ( l e t * ( ( d i m s (
0027160 | f f e t c h | ( g e n e r a
0027200 l - a r r a y d i m s ) \r
0027220
0027240 | o f | a r r a
0027260 y ) ) \r
0027300 ( r a n k ( l e n g t h d i
0027320 m s ) ) ) \r
0027340 ( c l : i f ( n o t ( <
0027360 - 1 d i m e n s i o n r a n
0027400 k ) ) \r
0027420 ( c l : e r r o r
0027440 " D i m e n s i o n o u t o
0027460 f b o u n d s : ~ A " d i
0027500 m e n s i o n ) ) \r
0027520 ( c l : i f ( e q l
0027540 r a n k 1 ) \r
0027560 ( | f e t
0027600 c h | ( a r r a y - h e a d e
0027620 r t o t a l - s i z e ) \r
0027640
0027660 | o f | a r r a
0027700 y ) \r
0027720 ( c l : n t h d i m
0027740 e n s i o n d i m s ) ) ) ) \r
0027760 ( ( s t r i n g p a r
0030000 r a y )
0030020
0030040 006 003 (
0030060 * " H a c k t o h a n d l
0030100 e I L : S T R I N G P ' s " )
0030120 006 001 \r ( c l : i f (
0030140 e q l d i m e n s i o n 0 )
0030160 \r ( n c
0030200 h a r s a r r a y ) \r
0030220 ( c l : e r r o
0030240 r " D i m e n s i o n o u t
0030260 o f b o u n d s : ~ A "
0030300 d i m e n s i o n ) ) ) \r
0030320 ( t ( c l : e r r o r " N
0030340 o t a n a r r a y ~ S "
0030360 a r r a y ) ) ) ) \r \r ( c l : d
0030400 e f u n 006 002 c l : a r r a y -
0030420 d i m e n s i o n s 006 001 ( a r
0030440 r a y ) 006 003 006 001
0030460
0030500 006 003 ( * | j o p : | " 5 -
0030520 S e p - 8 6 1 2 : 5 5 " ) 006 001
0030540 \r \r
0030560 006 003 ( * * ) 006 001 \r
0030600 \r ( c o n d \r
0030620 ( ( % o n e d - a r r a y - p
0030640 a r r a y ) \r ( l
0030660 i s t ( | f f e t c h | ( o
0030700 n e d - a r r a y t o t a l -
0030720 s i z e ) \r
0030740 | o f | a
0030760 r r a y ) ) ) \r ( (
0031000 % t w o d - a r r a y - p a r
0031020 r a y ) \r ( l i s
0031040 t ( | f f e t c h | ( t w o
0031060 d - a r r a y b o u n d 0 ) \r
0031100
0031120 | o f | a r r a y ) \r
0031140 ( | f
0031160 f e t c h | ( t w o d - a r r
0031200 a y b o u n d 1 ) \r
0031220 |
0031240 o f | a r r a y ) ) ) \r
0031260 ( ( % g e n e r a l - a r
0031300 r a y - p a r r a y ) \r
0031320 ( | f f e t c h | ( g
0031340 e n e r a l - a r r a y d i m
0031360 s ) \r
0031400 | o f | a r r a y ) ) \r
0031420 ( ( s t r i n g p a r
0031440 r a y )
0031460
0031500 006 003 ( *
0031520 " H a c k t o h a n d l e
0031540 I L : S T R I N G P ' s " ) 006 001
0031560 \r ( l i s t ( n
0031600 c h a r s a r r a y ) ) ) \r
0031620 ( t ( c l : e r r o
0031640 r " N o t a n a r r a y
0031660 ~ S " a r r a y ) ) ) ) \r \r (
0031700 c l : d e f u n 006 002 c l : a r
0031720 r a y - e l e m e n t - t y p e
0031740 006 001 ( a r r a y ) \r
0031760 \r
0032000 006 003 ( * * ) 006 001 \r ( c o n
0032020 d \r ( ( % a r r a y p
0032040 a r r a y ) \r ( % t y
0032060 p e n u m b e r - t o - c m l -
0032100 t y p e ( % a r r a y - t y p
0032120 e - n u m b e r a r r a y ) )
0032140 ) \r ( ( s t r i n g p
0032160 a r r a y )
0032200
0032220 006
0032240 003 ( * " H a c k t o h a n
0032260 d l e I L : S T R I N G P ' s
0032300 " ) 006 001 \r ' c l : s t
0032320 r i n g - c h a r ) \r (
0032340 t ( c l : e r r o r " N o t
0032360 a n a r r a y ~ S " a r
0032400 r a y ) ) ) ) \r \r ( c l : d e f
0032420 u n 006 002 c l : a r r a y - h a
0032440 s - f i l l - p o i n t e r - p
0032460 006 001 ( a r r a y ) \r
0032500 \r
0032520 006 003 ( * * ) 006 001 \r ( c o n
0032540 d \r ( ( % a r r a y p
0032560 a r r a y ) \r ( | f e
0032600 t c h | ( a r r a y - h e a d
0032620 e r f i l l - p o i n t e r -
0032640 p ) \r |
0032660 o f | a r r a y ) ) \r
0032700 ( ( s t r i n g p a r r a y )
0032720
*
0032760 006 003 ( * " H
0033000 a c k t o h a n d l e I L
0033020 : S T R I N G P ' s " ) 006 001 \r
0033040 n i l ) \r ( t
0033060 ( c l : e r r o r " N o t a
0033100 n a r r a y ~ S " a r r a
0033120 y ) ) ) ) \r \r ( c l : d e f u n
0033140 006 002 a r r a y - n e e d s - i
0033160 n d i r e c t i o n - p 006 001 (
0033200 a r r a y ) \r
0033220 \r 006 003 (
0033240 * * ) 006 001 \r ( c o n d \r
0033260 ( ( o r ( % o n e d - a r
0033300 r a y - p a r r a y ) \r
0033320 ( % t w o d - a r r
0033340 a y - p a r r a y ) \r
0033360 ( s t r i n g p a r
0033400 r a y ) ) \r n i l ) \r
0033420 ( ( % g e n e r a l - a
0033440 r r a y - p a r r a y ) \r
0033460 ( | f e t c h | ( a r r
0033500 a y - h e a d e r i n d i r e
0033520 c t - p ) \r
0033540 | o f | a r r a y ) ) \r
0033560 ( t ( c l : e r r o r
0033600 " N o t a n a r r a y ~ S
0033620 " a r r a y ) ) ) ) \r \r ( c l
0033640 : d e f u n 006 002 c l : a r r a
0033660 y - r a n k 006 001 ( a r r a y )
0033700 \r \r
0033720 006 003 ( * * ) 006 001
0033740 \r ( c o n d \r ( ( % o
0033760 n e d - a r r a y - p a r r a
0034000 y ) \r 1 ) \r (
0034020 ( % t w o d - a r r a y - p a
0034040 r r a y ) \r 2 ) \r
0034060 ( ( % g e n e r a l - a r r
0034100 a y - p a r r a y ) \r
0034120 ( l e n g t h ( | f f e t c
0034140 h | ( g e n e r a l - a r r a
0034160 y d i m s ) \r
0034200 | o f |
0034220 a r r a y ) ) ) \r ( (
0034240 s t r i n g p a r r a y )
0034260
*
0034320 006 003 ( * " H a c
0034340 k t o h a n d l e I L : S
0034360 T R I N G P ' s " ) 006 001 \r
0034400 1 ) \r ( t ( c l :
0034420 e r r o r " N o t a n a r
0034440 r a y ~ S " a r r a y ) ) )
0034460 ) \r \r ( c l : d e f u n 006 002 c
0034500 l : a r r a y - t o t a l - s i
0034520 z e 006 001 ( a r r a y ) \r
0034540 \r
0034560 006 003 ( * * ) 006 001 \r ( c
0034600 o n d \r ( ( % a r r a y
0034620 p a r r a y ) \r ( |
0034640 f e t c h | ( a r r a y - h e
0034660 a d e r t o t a l - s i z e )
0034700 \r | o f
0034720 | a r r a y ) ) \r ( (
0034740 s t r i n g p a r r a y )
0034760
*
0035020 006 003 ( * " H a c
0035040 k t o h a n d l e I L : S
0035060 T R I N G P ' s " ) 006 001 \r
0035100 ( n c h a r s a r r a y )
0035120 ) \r ( t ( c l : e r r
0035140 o r " N o t a n a r r a y
0035160 ~ S " a r r a y ) ) ) ) \r \r
0035200 ( c l : d e f u n 006 002 b i t 006
0035220 001 ( b i t - a r r a y & r e
0035240 s t i n d i c e s ) ( c l :
0035260 a s s e r t ( t y p e p b i
0035300 t - a r r a y ' ( c l : a r r
0035320 a y b i t ) ) \r
0035340
*
0035400 ( b i t - a r r
0035420 a y ) \r
0035440
*
0035500 " N o t a b i t - a r
0035520 r a y : ~ S " b i t - a r r
0035540 a y ) \r
0035560
0035600 ( c l :
0035620 a p p l y ( f u n c t i o n
0035640 c l : a r e f ) \r
0035660
*
0035720 b i t - a r r a
0035740 y i n d i c e s ) ) \r \r ( c l
0035760 : d e f u n 006 002 c l : b i t -
0036000 a n d 006 001 ( b i t - a r r a y
0036020 1 b i t - a r r a y 2 & o p
0036040 t i o n a l b i t - r e s u l
0036060 t ) \r \r
0036100 006 003 ( * * )
0036120 006 001 \r ( % e x p a n d - b i t
0036140 - o p 006 002 a n d 006 001 b i t -
0036160 a r r a y 1 b i t - a r r a y
0036200 2 b i t - r e s u l t ) ) \r \r
0036220 ( c l : d e f u n 006 002 c l : b
0036240 i t - a n d c 1 006 001 ( b i t -
0036260 a r r a y 1 b i t - a r r a y
0036300 2 & o p t i o n a l b i t -
0036320 r e s u l t ) \r
0036340 \r 006 003
0036360 ( * * ) 006 001 \r ( % e x p a n
0036400 d - b i t - o p a n d c 1 b
0036420 i t - a r r a y 1 b i t - a r
0036440 r a y 2 b i t - r e s u l t )
0036460 ) \r \r ( c l : d e f u n 006 002 c
0036500 l : b i t - a n d c 2 006 001 ( b
0036520 i t - a r r a y 1 b i t - a r
0036540 r a y 2 & o p t i o n a l b
0036560 i t - r e s u l t ) \r
0036600 \r
0036620 006 003 ( * * ) 006 001 \r ( % e x
0036640 p a n d - b i t - o p a n d c
0036660 2 b i t - a r r a y 1 b i t
0036700 - a r r a y 2 b i t - r e s u
0036720 l t ) ) \r \r ( c l : d e f u n
0036740 006 002 b i t - a r r a y - p 006 001
0036760 ( a r r a y ) ( a n d ( % a
0037000 r r a y p a r r a y ) \r
0037020
*
0037060 ( | f e t c h | ( a r r a y -
0037100 h e a d e r b i t - p ) \r
0037120
*
0037160 | o f | a r r
0037200 a y ) ) ) \r \r ( c l : d e f u n
0037220 006 002 c l : b i t - e q v 006 001
0037240 ( b i t - a r r a y 1 b i t -
0037260 a r r a y 2 & o p t i o n a l
0037300 b i t - r e s u l t ) \r
0037320 \r
0037340 006 003 ( * * ) 006 001 \r ( %
0037360 e x p a n d - b i t - o p e q
0037400 v b i t - a r r a y 1 b i t
0037420 - a r r a y 2 b i t - r e s u
0037440 l t ) ) \r \r ( c l : d e f u n
0037460 006 002 c l : b i t - i o r 006 001 (
0037500 b i t - a r r a y 1 b i t - a
0037520 r r a y 2 & o p t i o n a l
0037540 b i t - r e s u l t ) \r
0037560 \r
0037600 006 003 ( * * ) 006 001 \r ( % e
0037620 x p a n d - b i t - o p i o r
0037640 b i t - a r r a y 1 b i t -
0037660 a r r a y 2 b i t - r e s u l
0037700 t ) ) \r \r ( c l : d e f u n 006
0037720 002 c l : b i t - n a n d 006 001 (
0037740 b i t - a r r a y 1 b i t - a
0037760 r r a y 2 & o p t i o n a l
0040000 b i t - r e s u l t ) \r
0040020 \r
0040040 006 003 ( * * ) 006 001 \r ( % e
0040060 x p a n d - b i t - o p n a n
0040100 d b i t - a r r a y 1 b i t
0040120 - a r r a y 2 b i t - r e s u
0040140 l t ) ) \r \r ( c l : d e f u n
0040160 006 002 c l : b i t - n o r 006 001 (
0040200 b i t - a r r a y 1 b i t - a
0040220 r r a y 2 & o p t i o n a l
0040240 b i t - r e s u l t ) \r
0040260 \r
0040300 006 003 ( * * ) 006 001 \r ( % e
0040320 x p a n d - b i t - o p 006 002 n
0040340 o r 006 001 b i t - a r r a y 1
0040360 b i t - a r r a y 2 b i t - r
0040400 e s u l t ) ) \r \r ( c l : d e f
0040420 u n 006 002 c l : b i t - n o t 006
0040440 001 ( b i t - a r r a y & o p
0040460 t i o n a l r e s u l t - b i
0040500 t - a r r a y ) 006 003 006 001 006 003
0040520 ( * | j o p : | " 9 - S e
0040540 p - 8 6 1 7 : 0 5 " ) 006 001 \r
0040560 \r
0040600 006 003 ( * * ) 006 001 \r \r
0040620 ( c l : i f ( n o t ( b
0040640 i t - a r r a y - p b i t - a
0040660 r r a y ) ) \r
0040700 ( c l : e r r o r " B I T -
0040720 A R R A Y n o t a b i t
0040740 a r r a y " ) ) \r ( c o n
0040760 d \r ( ( n u l l r
0041000 e s u l t - b i t - a r r a y )
0041020 \r ( s e t q r e
0041040 s u l t - b i t - a r r a y (
0041060 c l : m a k e - a r r a y ( c
0041100 l : a r r a y - d i m e n s i o
0041120 n s b i t - a r r a y ) \r
0041140
*
0041200 : e l e m e n t - t y p e
0041220 \r
0041240
0041260 ' b i t ) ) ) \r
0041300 ( ( e q r e s u l t -
0041320 b i t - a r r a y t ) \r
0041340 ( s e t q r e s u l t
0041360 - b i t - a r r a y b i t - a
0041400 r r a y ) ) \r ( ( n
0041420 o t ( a n d ( b i t - a r r
0041440 a y - p r e s u l t - b i t -
0041460 a r r a y ) \r
0041500 ( e q u a l - d
0041520 i m e n s i o n s - p b i t -
0041540 a r r a y r e s u l t - b i t
0041560 - a r r a y ) ) ) \r
0041600 ( c l : e r r o r " I l l e
0041620 g a l r e s u l t a r r a y
0041640 " ) ) ) \r ( % d o - l o g
0041660 i c a l - o p ' n o t b i t
0041700 - a r r a y r e s u l t - b i
0041720 t - a r r a y ) \r r e s u
0041740 l t - b i t - a r r a y ) \r \r (
0041760 c l : d e f u n 006 002 c l : b i
0042000 t - o r c 1 006 001 ( b i t - a r
0042020 r a y 1 b i t - a r r a y 2
0042040 & o p t i o n a l b i t - r e
0042060 s u l t ) \r
0042100 \r 006 003 ( *
0042120 * ) 006 001 \r ( % e x p a n d -
0042140 b i t - o p o r c 1 b i t -
0042160 a r r a y 1 b i t - a r r a y
0042200 2 b i t - r e s u l t ) ) \r \r
0042220 ( c l : d e f u n 006 002 c l : b
0042240 i t - o r c 2 006 001 ( b i t - a
0042260 r r a y 1 b i t - a r r a y 2
0042300 & o p t i o n a l b i t - r
0042320 e s u l t ) \r
0042340 \r 006 003 (
0042360 * * ) 006 001 \r ( % e x p a n d
0042400 - b i t - o p o r c 2 b i t
0042420 - a r r a y 1 b i t - a r r a
0042440 y 2 b i t - r e s u l t ) ) \r
0042460 \r ( c l : d e f u n 006 002 c l :
0042500 b i t - v e c t o r - p 006 001 (
0042520 c l : v e c t o r ) \r
0042540 \r
0042560 006 003 ( * * ) 006 001 \r ( a n d
0042600 ( % v e c t o r p c l : v e
0042620 c t o r ) \r ( | f e
0042640 t c h | ( a r r a y - h e a d
0042660 e r b i t - p ) \r
0042700 | o f | c l : v
0042720 e c t o r ) ) ) \r \r ( c l : d e
0042740 f u n 006 002 c l : b i t - x o r
0042760 006 001 ( b i t - a r r a y 1 b
0043000 i t - a r r a y 2 & o p t i o
0043020 n a l b i t - r e s u l t )
0043040 \r \r
0043060 006 003 ( * * ) 006 001 \r
0043100 ( % e x p a n d - b i t - o p
0043120 x o r b i t - a r r a y 1
0043140 b i t - a r r a y 2 b i t - r
0043160 e s u l t ) ) \r \r ( c l : d e f
0043200 u n 006 002 c h a r 006 001 ( s t r
0043220 i n g i n d e x ) ( c l : a
0043240 s s e r t ( t y p e p s t r
0043260 i n g ' s t r i n g ) \r
0043300
*
0043340 ( s t r i n g ) \r
0043360
*
0043420 " N o t a s t r i n g : ~
0043440 S " s t r i n g ) \r
0043460
0043500 ( c l : a r e
0043520 f s t r i n g i n d e x ) )
0043540 \r \r ( c l : d e f u n 006 002 c l
0043560 : a r r a y p 006 001 ( a r r a y
0043600 ) 006 003 006 001
0043620
0043640 006 003 ( * | j o p
0043660 : | " 5 - S e p - 8 6 1 2
0043700 : 5 3 " ) 006 001 \r
0043720 \r 006 003 (
0043740 * * ) 006 001 \r \r ( a n d
0043760 ( o r ( % a r r a y p a r r
0044000 a y ) \r
0044020 ( s t r i n g p a r r a y ) )
0044040 \r t ) ) \r \r ( c
0044060 l : d e f u n 006 002 c l : s t r
0044100 i n g p 006 001 ( s t r i n g )
0044120 ( a n d ( o r ( % s t r i n
0044140 g p s t r i n g ) \r
0044160
*
0044220 ( s t r i n g p s t r i n
0044240 g ) ) \r
0044260
0044300 t ) ) \r \r ( c l :
0044320 d e f u n 006 002 c o p y - a r r
0044340 a y 006 001 ( f r o m - a r r a y
0044360 & o p t i o n a l t o - a r
0044400 r a y ) ( c l : i f ( n o t
0044420 ( % a r r a y p f r o m - a
0044440 r r a y ) ) \r
0044460
*
0044540 ( c l : e r r o r " N o
0044560 t a n a r r a y : ~ S "
0044600 f r o m - a r r a y ) ) \r
0044620
*
0044700 ( c o n d \r
0044720
*
0045000 ( ( n u l l t o - a r r a y )
0045020 \r
0045040
*
0045100 ( s e t q
0045120 t o - a r r a y ( c l : m a k
0045140 e - a r r a y ( \r
0045160
*
0045260 c l : a
0045300 r r a y - d i m e n s i o n s \r
0045320
*
0045440 f r o m - a r r
0045460 a y ) \r
0045500
*
0045600 : e l e m e n t - t y p e
0045620 \r
0045640
*
0045740 ( c l : a r r a y - e l e m e n
0045760 t - t y p e \r
0046000
*
0046100 f r o m - a r r a
0046120 y ) \r
0046140
*
0046240 : f a t p \r
0046260
*
0046360 ( % f a t - s t r
0046400 i n g - a r r a y - p \r
0046420
*
0046520 f r o m
0046540 - a r r a y ) ) ) ) \r
0046560
*
0046640 ( ( n o t ( e q u a l -
0046660 d i m e n s i o n s - p f r o
0046700 m - a r r a y t o - a r r a y
0046720 \r
0046740
*
0047020 ) ) \r
0047040
*
0047120 ( c l : e r r o r " D i m
0047140 e n s i o n a l i t y m i s m
0047160 a t c h " ) ) ) \r
0047200
*
0047240 ( c
0047260 l : i f ( | f e t c h | ( a
0047300 r r a y - h e a d e r r e a d
0047320 - o n l y - p ) \r
0047340
*
0047420 | o f |
0047440 t o - a r r a y ) \r
0047460
*
0047540 ( % m a k e - a r
0047560 r a y - w r i t e a b l e t o
0047600 - a r r a y ) ) \r
0047620
*
0047660 ( l
0047700 e t ( ( f r o m - t y p e - n
0047720 u m b e r ( % a r r a y - t y
0047740 p e - n u m b e r \r
0047760
*
0050060 f r o m - a r r
0050100 a y ) ) \r
0050120
*
0050200 ( t o - t y p e - n u m b e r
0050220 ( % a r r a y - t y p e - n u m
0050240 b e r \r
0050260
*
0050360 t o - a r r a y )
0050400 ) ) \r
0050420
*
0050460 ( c l
0050500 : w h e n ( a n d ( % f a t
0050520 - c h a r - t y p e - p \r
0050540
*
0050640 f r o
0050660 m - t y p e - n u m b e r ) \r
0050700
*
0051000 ( % t h i n - c h
0051020 a r - t y p e - p \r
0051040
*
0051140 t o - t y p
0051160 e - n u m b e r ) ) \r
0051200
*
0051260 ( % m a
0051300 k e - s t r i n g - a r r a y -
0051320 f a t t o - a r r a y ) \r
0051340
*
0051420 (
0051440 s e t q t o - t y p e - n u m
0051460 b e r ( \r
0051500
*
0051600 % a r r a y -
0051620 t y p e - n u m b e r \r
0051640
*
0051760 t o - a r r a y ) ) ) \r
0052000
*
0052060 ( c l : i f
0052100 ( n o t ( e q f r o m - t y
0052120 p e - n u m b e r \r
0052140
*
0052240 t o - t y p e - n u m
0052260 b e r ) ) \r
0052300
*
0052360 ( c l : e r r o r
0052400 \r
0052420
*
0052500 " A r r a y s h a v e
0052520 d i f f e r e n t t y p e n
0052540 u m b e r s " \r
0052560
*
0052660 ) ) \r
0052700
*
0052740 ( % f
0052760 a s t - c o p y - b a s e ( %
0053000 a r r a y - b a s e f r o m -
0053020 a r r a y ) \r
0053040
*
0053120 ( % a r r a y -
0053140 o f f s e t f r o m - a r r a
0053160 y ) \r
0053200
*
0053260 ( % a r r a y - b a s e
0053300 t o - a r r a y ) \r
0053320
*
0053400 ( % a r
0053420 r a y - o f f s e t t o - a r
0053440 r a y ) \r
0053460
*
0053540 ( | f e t c h | (
0053560 a r r a y - h e a d e r t o t
0053600 a l - s i z e ) \r
0053620
*
0053720 | o f | f r o m - a r r a y
0053740 ) \r
0053760
*
0054040 f r o m - t y p e - n u m
0054060 b e r ) \r
0054100
*
0054140 t
0054160 o - a r r a y ) ) \r \r ( c l : d
0054200 e f u n 006 002 d i s p l a c e d
0054220 - a r r a y - p 006 001 ( a r r a
0054240 y ) \r \r
0054260 006 003 ( * * )
0054300 006 001 \r ( c o n d \r ( (
0054320 % a r r a y p a r r a y ) \r
0054340 ( | f e t c h | ( a r
0054360 r a y - h e a d e r d i s p l
0054400 a c e d - p ) \r
0054420 | o f | a r r a y ) )
0054440 \r ( ( s t r i n g p a
0054460 r r a y ) \r n i l ) \r
0054500 ( t ( c l : e r r o r
0054520 " N o t a n a r r a y ~
0054540 S " a r r a y ) ) ) ) \r \r ( c
0054560 l : d e f u n 006 002 e q u a l -
0054600 d i m e n s i o n s - p 006 001 (
0054620 a r r a y - 1 a r r a y - 2 )
0054640 \r ( c o n d \r
0054660 ( ( % o n e d - a r r a y - p
0054700 a r r a y - 1 ) \r
0054720 ( c o n d \r
0054740 ( ( % o n e d - a r r a y - p
0054760 a r r a y - 2 ) \r
0055000 ( e q l ( | f e t c h
0055020 | ( a r r a y - h e a d e r
0055040 t o t a l - s i z e ) \r
0055060
0055100 | o f | a r r a y - 1 )
0055120 \r
0055140 ( | f e t c h | ( a r r a y
0055160 - h e a d e r t o t a l - s i
0055200 z e ) \r
0055220 | o f |
0055240 a r r a y - 2 ) ) ) \r
0055260 ( ( % t w o d - a r r
0055300 a y - p a r r a y - 2 ) \r
0055320 n i l ) \r
0055340 ( ( % g e n e r
0055360 a l - a r r a y - p a r r a y
0055400 - 2 ) \r (
0055420 a n d ( e q 1 ( l e n g t
0055440 h ( | f f e t c h | ( g e n
0055460 e r a l - a r r a y d i m s )
0055500 \r
0055520
0055540 | o f | a r r a y
0055560 - 2 ) ) ) \r
0055600 ( e q l ( | f e t
0055620 c h | ( a r r a y - h e a d e
0055640 r t o t a l - s i z e ) \r
0055660
0055700 | o f | a
0055720 r r a y - 1 ) \r
0055740 ( | f
0055760 e t c h | ( a r r a y - h e a
0056000 d e r t o t a l - s i z e ) \r
0056020
0056040 | o f |
0056060 a r r a y - 2 ) ) ) ) \r
0056100 ( t n i l ) ) )
0056120 \r ( ( % t w o d - a
0056140 r r a y - p a r r a y - 1 ) \r
0056160 ( c o n d \r
0056200 ( ( % o n e d - a
0056220 r r a y - p a r r a y - 2 ) \r
0056240 n i l ) \r
0056260 ( ( % t w o
0056300 d - a r r a y - p a r r a y -
0056320 2 ) \r ( a
0056340 n d ( e q l ( | f f e t c h
0056360 | ( t w o d - a r r a y b o
0056400 u n d 0 ) \r
0056420
0056440 | o f | a r r a y - 1 ) \r
0056460
0056500 ( | f f e t c h | (
0056520 t w o d - a r r a y b o u n d
0056540 0 ) \r
0056560 |
0056600 o f | a r r a y - 2 ) ) \r
0056620 ( e
0056640 q l ( | f f e t c h | ( t w
0056660 o d - a r r a y b o u n d 1 )
0056700 \r
0056720 | o f
0056740 | a r r a y - 1 ) \r
0056760
0057000 ( | f f e t c h | ( t w o d -
0057020 a r r a y b o u n d 1 ) \r
0057040
0057060 | o f | a
0057100 r r a y - 2 ) ) ) ) \r
0057120 ( ( % g e n e r a l -
0057140 a r r a y - p a r r a y - 2 )
0057160 \r ( l e t
0057200 ( ( d i m s ( | f f e t c h
0057220 | ( g e n e r a l - a r r a y
0057240 d i m s ) \r
0057260
0057300 | o f | a r r a y -
0057320 2 ) ) ) \r
0057340 ( a n d ( e q 2
0057360 ( l e n g t h d i m s ) ) \r
0057400
0057420 ( a n d ( e q l ( |
0057440 f f e t c h | ( t w o d - a r
0057460 r a y b o u n d 0 ) \r
0057500
*
0057540 | o f | a r r a y - 1 ) \r
0057560
0057600 (
0057620 c a r d i m s ) ) \r
0057640
0057660 ( e q l ( | f f e t
0057700 c h | ( t w o d - a r r a y
0057720 b o u n d 1 ) \r
0057740
0057760 | o
0060000 f | a r r a y - 1 ) \r
0060020
0060040 ( c a d r
0060060 d i m s ) ) ) ) ) ) \r
0060100 ( t n i l ) ) ) \r
0060120 ( ( % g e n e r a l
0060140 - a r r a y - p a r r a y - 1
0060160 ) \r ( l e t ( (
0060200 d i m s ( | f f e t c h | (
0060220 g e n e r a l - a r r a y d i
0060240 m s ) \r
0060260 | o
0060300 f | a r r a y - 1 ) ) ) \r
0060320 ( c o n d \r
0060340 (
0060360 ( % o n e d - a r r a y - p a
0060400 r r a y - 2 ) \r
0060420 ( a n d ( e q
0060440 1 ( l e n g t h d i m s )
0060460 ) \r
0060500 ( e q l ( | f e
0060520 t c h | ( a r r a y - h e a d
0060540 e r t o t a l - s i z e ) \r
0060560
*
0060620 | o f | a r r a y - 1 ) \r
0060640
0060660 ( | f e t c h |
0060700 ( a r r a y - h e a d e r t
0060720 o t a l - s i z e ) \r
0060740
0060760 | o f |
0061000 a r r a y - 2 ) ) ) ) \r
0061020 ( ( % t
0061040 w o d - a r r a y - p a r r a
0061060 y - 2 ) \r
0061100 ( a n d ( e q 2
0061120 ( l e n g t h d i m s ) ) \r
0061140
0061160 ( a n d ( e q l ( c
0061200 a r d i m s ) \r
0061220
0061240 ( | f f e t c h
0061260 | ( t w o d - a r r a y b o
0061300 u n d 0 ) \r
0061320
0061340 | o f |
0061360 a r r a y - 2 ) ) \r
0061400
0061420 ( e q l ( c a d r
0061440 d i m s ) \r
0061460
0061500 ( | f f e t c h | (
0061520 t w o d - a r r a y b o u n d
0061540 1 ) \r
0061560
0061600 | o f | a r
0061620 r a y - 2 ) ) ) ) ) \r
0061640 ( ( % g e n
0061660 e r a l - a r r a y - p a r r
0061700 a y - 2 ) \r
0061720 ( e q u a l d i m
0061740 s ( | f f e t c h | ( g e n
0061760 e r a l - a r r a y d i m s )
0062000 \r
0062020
0062040 | o f | a r r a y - 2
0062060 ) ) ) \r
0062100 ( t n i l ) ) ) ) \r
0062120 ( t n i l ) ) ) \r \r (
0062140 c l : d e f u n 006 002 e x t e n
0062160 d a b l e - a r r a y - p 006 001
0062200 ( a r r a y ) \r
0062220 \r 006 003
0062240 ( * * ) 006 001 \r ( c o n d \r
0062260 ( ( % a r r a y p a r r
0062300 a y ) \r ( | f e t c h
0062320 | ( a r r a y - h e a d e r
0062340 e x t e n d a b l e - p ) \r
0062360 | o f | a
0062400 r r a y ) ) \r ( ( s t r
0062420 i n g p a r r a y ) \r
0062440 n i l ) \r ( t ( c l
0062460 : e r r o r " N o t a n a
0062500 r r a y ~ S " a r r a y ) )
0062520 ) ) \r \r ( c l : d e f u n 006 002
0062540 f i l l - a r r a y 006 001 ( a r
0062560 r a y v a l u e ) ( c l : i
0062600 f ( n o t ( % a r r a y p
0062620 a r r a y ) ) \r
0062640
*
0062700 ( c l : e r r o r " N o t
0062720 a n a r r a y : ~ S " a
0062740 r r a y ) ) \r
0062760
0063000 ( l e t (
0063020 ( t o t a l - s i z e ( | f e
0063040 t c h | ( a r r a y - h e a d
0063060 e r t o t a l - s i z e ) \r
0063100
*
0063160 | o f |
0063200 a r r a y ) ) \r
0063220
*
0063260 ( t y p e - n u m b e r ( %
0063300 a r r a y - t y p e - n u m b e
0063320 r a r r a y ) ) ) \r
0063340
*
0063400 ( c l : i f ( | f e t c
0063420 h | ( a r r a y - h e a d e r
0063440 r e a d - o n l y - p ) \r
0063460
*
0063540 | o f | a r r a y ) \r
0063560
*
0063620 (
0063640 % m a k e - a r r a y - w r i t
0063660 e a b l e a r r a y ) ) \r
0063700
*
0063740 ( c l : w h e n (
0063760 > t o t a l - s i z e 0 ) \r
0064000
*
0064040 (
0064060 c l : w h e n ( a n d ( % t
0064100 h i n - c h a r - t y p e - p
0064120 t y p e - n u m b e r ) \r
0064140
*
0064220 ( % f a t -
0064240 s t r i n g - c h a r - p v a
0064260 l u e ) ) \r
0064300
*
0064340 ( % m a
0064360 k e - s t r i n g - a r r a y -
0064400 f a t a r r a y ) \r
0064420
*
0064500 ( s e t q t y p e - n u m b
0064520 e r ( % a r r a y - t y p e -
0064540 n u m b e r a r r a y ) ) ) \r
0064560
*
0064620 (
0064640 c l : i f ( n o t ( % l l a
0064660 r r a y - t y p e p t y p e -
0064700 n u m b e r v a l u e ) ) \r
0064720
*
0065000 ( c l : e r r o r \r
0065020
*
0065100 " V a l u e
0065120 o f i n c o r r e c t t y p
0065140 e f o r t h i s a r r a y
0065160 : ~ S " \r
0065200
*
0065260 v a l u e ) ) \r
0065300
*
0065340 ( l e t
0065360 ( ( b a s e ( % a r r a y - b
0065400 a s e a r r a y ) ) \r
0065420
*
0065500 ( o f f s e t ( % a r r a y
0065520 - o f f s e t a r r a y ) ) )
0065540 \r
0065560
*
0065620 006 003
0065640 ( * " S t a r t t h i n g s
0065660 o f f " ) 006 001 \r
0065700
*
0065740 ( % a
0065760 r r a y - w r i t e v a l u e
0066000 b a s e t y p e - n u m b e
0066020 r o f f s e t ) \r
0066040
*
0066120 006 003 ( * " A n
0066140 o v e r l a p p i n g b l t "
0066160 ) 006 001 \r
0066200
*
0066240 ( % f a s t - c
0066260 o p y - b a s e b a s e o f
0066300 f s e t b a s e ( c l : 1 +
0066320 o f f s e t ) \r
0066340
*
0066420 ( c l : 1 - t o t a l
0066440 - s i z e ) \r
0066460
*
0066540 t y p e - n u m b e r ) ) )
0066560 \r
0066600
0066620 a r r a y ) )
0066640 \r \r ( c l : d e f u n 006 002 c l
0066660 : f i l l - p o i n t e r 006 001
0066700 ( c l : v e c t o r ) \r
0066720 \r
0066740 006 003 ( * * ) 006 001 \r ( c o
0066760 n d \r ( ( a n d ( o r
0067000 ( % o n e d - a r r a y - p
0067020 c l : v e c t o r ) \r
0067040 ( % g e n e r
0067060 a l - a r r a y - p c l : v e
0067100 c t o r ) ) \r
0067120 ( | f e t c h | ( a r r a y
0067140 - h e a d e r f i l l - p o i
0067160 n t e r - p ) \r
0067200 | o f | c l
0067220 : v e c t o r ) ) \r (
0067240 | f e t c h | ( a r r a y - h
0067260 e a d e r c l : f i l l - p o
0067300 i n t e r ) \r
0067320 | o f | c l : v e c t o
0067340 r ) ) \r ( ( o r ( % v
0067360 e c t o r p c l : v e c t o r
0067400 ) \r ( s t r i
0067420 n g p c l : v e c t o r ) ) \r
0067440 ( c l : e r r o r "
0067460 v e c t o r h a s n o f i
0067500 l l p o i n t e r " ) ) \r
0067520 ( t ( c l : e r r o r "
0067540 N o t a v e c t o r ~ S "
0067560 c l : v e c t o r ) ) ) ) \r \r
0067600 ( c l : d e f u n 006 002 f i l l
0067620 - v e c t o r 006 001 ( c l : v e
0067640 c t o r v a l u e & k e y
0067660 ( s t a r t 0 ) \r
0067700
0067720 e n d ) ( c l :
0067740 i f ( n o t ( % v e c t o r
0067760 p c l : v e c t o r ) ) \r
0070000
*
0070040 ( c l : e r r o r
0070060 " N o t a v e c t o r :
0070100 ~ S " c l : v e c t o r ) ) \r
0070120
*
0070160 ( c l : i f ( < s t a r
0070200 t 0 ) \r
0070220
0070240 ( c
0070260 l : e r r o r " I n v a l i d
0070300 : s t a r t a r g : ~ S "
0070320 s t a r t ) ) \r
0070340
0070360 ( c o n d
0070400 \r
0070420
0070440 ( ( n u l l e n d
0070460 ) \r
0070500
0070520 ( s e t q e n
0070540 d ( | f e t c h | ( a r r a
0070560 y - h e a d e r t o t a l - s
0070600 i z e ) \r
0070620
*
0070660 | o f |
0070700 c l : v e c t o r ) ) ) \r
0070720
*
0070760 ( ( n o t ( < = 0 e
0071000 n d ( | f e t c h | ( a r r
0071020 a y - h e a d e r t o t a l -
0071040 s i z e ) \r
0071060
*
0071140 | o f | c l : v e c t o r
0071160 ) ) ) \r
0071200
0071220 ( c l : e r
0071240 r o r " I n v a l i d : e n
0071260 d a r g : ~ S " e n d ) )
0071300 ) \r
0071320
0071340 ( l e t ( ( c n t (
0071360 - e n d s t a r t ) ) \r
0071400
*
0071440 ( t y p e - n u m b
0071460 e r ( % a r r a y - t y p e -
0071500 n u m b e r c l : v e c t o r
0071520 ) ) ) \r
0071540
0071560 ( c l : i
0071600 f ( | f e t c h | ( a r r a
0071620 y - h e a d e r r e a d - o n
0071640 l y - p ) \r
0071660
*
0071720 | o f |
0071740 c l : v e c t o r ) \r
0071760
*
0072020 ( % m a k e -
0072040 a r r a y - w r i t e a b l e
0072060 c l : v e c t o r ) ) \r
0072100
*
0072140 ( c l : w h e n ( > c
0072160 n t 0 ) \r
0072200
*
0072240 ( c l : w h e n ( a n
0072260 d ( % t h i n - c h a r - t y
0072300 p e - p t y p e - n u m b e r
0072320 ) \r
0072340
*
0072400 ( %
0072420 f a t - s t r i n g - c h a r -
0072440 p v a l u e ) ) \r
0072460
*
0072520 (
0072540 % m a k e - s t r i n g - a r r
0072560 a y - f a t c l : v e c t o r
0072600 ) \r
0072620
*
0072660 ( s e t q t y p
0072700 e - n u m b e r ( % a r r a y
0072720 - t y p e - n u m b e r c l :
0072740 v e c t o r ) \r
0072760
*
0073020 ) )
0073040 \r
0073060
0073100 (
0073120 c l : i f ( n o t ( % l l a
0073140 r r a y - t y p e p t y p e -
0073160 n u m b e r v a l u e ) ) \r
0073200
*
0073260 ( c l : e r r o r \r
0073300
*
0073360 " V a l u e o
0073400 f i n c o r r e c t t y p e
0073420 f o r t h i s a r r a y :
0073440 ~ S " \r
0073460
*
0073540 v a l u e ) ) \r
0073560
*
0073620 ( l e t ( ( b
0073640 a s e ( % a r r a y - b a s e
0073660 c l : v e c t o r ) ) \r
0073700
*
0073760 ( o f f s e t ( + s t a r
0074000 t ( % a r r a y - o f f s e t
0074020 c l : v e c t o r ) ) ) ) \r
0074040
*
0074120 006 003 ( *
0074140 " S t a r t t h i n g s o
0074160 f f " ) 006 001 \r
0074200
*
0074240 ( % a r r a
0074260 y - w r i t e v a l u e b a
0074300 s e t y p e - n u m b e r o
0074320 f f s e t ) \r
0074340
*
0074420 006 003 ( * " A n o v e
0074440 r l a p p i n g b l t " ) 006 001
0074460 \r
0074500
*
0074540 ( % f a s t - c o p y -
0074560 b a s e b a s e o f f s e t
0074600 b a s e ( c l : 1 + o f f
0074620 s e t ) \r
0074640
*
0074700 (
0074720 c l : 1 - c n t ) \r
0074740
*
0075020 t y p e - n u m b e r
0075040 ) ) ) \r
0075060
0075100 c l : v e
0075120 c t o r ) ) \r \r ( c l : d e f u
0075140 n 006 002 c l : m a k e - a r r a
0075160 y 006 001 ( d i m e n s i o n s
0075200 & k e y ( e l e m e n t - t y
0075220 p e t ) \r
0075240
0075260 ( i n i t i a l - e l
0075300 e m e n t n i l i n i t i a
0075320 l - e l e m e n t - p ) \r
0075340
0075360 ( i n i
0075400 t i a l - c o n t e n t s n i
0075420 l i n i t i a l - c o n t e n
0075440 t s - p ) \r
0075460
0075500 ( d i s p l a c e d -
0075520 t o n i l d i s p l a c e d
0075540 - t o - p ) \r
0075560
0075600 ( d i s p l a c e d
0075620 - t o - b a s e n i l d i s
0075640 p l a c e d - t o - b a s e - p
0075660 ) \r
0075700
0075720 ( d i s p l a c e d - i n d e
0075740 x - o f f s e t 0 d i s p l
0075760 a c e d - i n d e x - o f f s e
0076000 t - p ) \r
0076020
0076040 c l : f i l l - p o i n
0076060 t e r a d j u s t a b l e e
0076100 x t e n d a b l e f a t p r
0076120 e a d - o n l y - p ) \r
0076140
*
0076220 " M a k e a n a
0076240 r r a y f o l l o w i n g t
0076260 h e k e y w o r d s p e c
0076300 s " \r \r
0076320 006 003 ( * * "
0076340 S t r i n g a r e b y d e
0076360 f a u l t t h i n u n l e s
0076400 s F A T P i s T . D I S
0076420 P L A C E D - T O - B A S E i
0076440 n d i c a t e s d i s p l a c
0076460 e m e n t t o a r a w s
0076500 t o r a g e b l o c k . R E
0076520 A D - O N L Y - P i n d i c a
0076540 t e s a r e a d o n l y
0076560 a r r a y " ) 006 001 \r \r ( c
0076600 l : i f ( n o t ( c l : l i
0076620 s t p d i m e n s i o n s ) )
0076640 \r ( s e t q
0076660 d i m e n s i o n s ( l i s
0076700 t d i m e n s i o n s ) ) ) \r
0076720 ( c l : i f ( c l : d o
0076740 l i s t ( d i m d i m e n s
0076760 i o n s n i l ) \r
0077000 ( c l : i
0077020 f ( o r ( < d i m 0 ) \r
0077040
0077060 ( > =
0077100 d i m c l : a r r a y - d i m
0077120 e n s i o n - l i m i t ) ) \r
0077140
0077160 ( r e t u r n t
0077200 ) ) ) \r ( c
0077220 l : e r r o r " D i m e n s i
0077240 o n s o u t o f b o u n d
0077260 s ~ S " d i m e n s i o n s
0077300 ) ) \r ( l e t ( ( r a n
0077320 k ( l e n g t h d i m e n s
0077340 i o n s ) ) \r
0077360 ( n e l t s ( % t o t a l - s
0077400 i z e d i m e n s i o n s ) )
0077420 \r a r r a y )
0077440 \r \r
0077460 006 003 ( * * " C o
0077500 n s i s t e n c y c h e c k s
0077520 " ) 006 001 \r \r ( c
0077540 l : i f ( > = r a n k c l
0077560 : a r r a y - r a n k - l i m i
0077600 t ) \r
0077620 ( c l : e r r o r " T o o
0077640 m a n y d i m e n s i o n s
0077660 : ~ A " r a n k ) ) \r
0077700 ( c l : i f ( > =
0077720 n e l t s c l : a r r a y - t
0077740 o t a l - s i z e - l i m i t )
0077760 \r
0100000 ( c l : e r r o r " T o o m
0100020 a n y e l e m e n t s : ~ A
0100040 " n e l t s ) ) \r
0100060 ( c l : i f ( o r ( a n
0100100 d d i s p l a c e d - t o - p
0100120 ( o r i n i t i a l - e l e
0100140 m e n t - p i n i t i a l - c
0100160 o n t e n t s - p d i s p l a
0100200 c e d - t o - b a s e - p ) ) \r
0100220
0100240 ( a n d d i s p l a c e
0100260 d - t o - b a s e - p ( o r
0100300 i n i t i a l - e l e m e n t -
0100320 p i n i t i a l - c o n t e n
0100340 t s - p d i s p l a c e d - t
0100360 o - p ) ) \r
0100400 ( a n d c l
0100420 : f i l l - p o i n t e r ( n
0100440 o t ( e q l r a n k 1 ) )
0100460 ) \r
0100500 ( a n d d i s p l a
0100520 c e d - i n d e x - o f f s e t
0100540 - p ( n o t ( o r d i s p
0100560 l a c e d - t o - p d i s p l
0100600 a c e d - t o - b a s e - p ) )
0100620 ) \r
0100640 ( a n d i n i t i a
0100660 l - e l e m e n t - p i n i t
0100700 i a l - c o n t e n t s - p ) \r
0100720
0100740 ( a n d a d j u s t a b
0100760 l e e x t e n d a b l e ) \r
0101000
0101020 ( a n d r e a d - o n l y
0101040 - p ( o r e x t e n d a b l
0101060 e a d j u s t a b l e ) ) ) \r
0101100 (
0101120 c l : e r r o r " I n c o n s
0101140 i s t e n t o p t i o n s t
0101160 o m a k e - a r r a y " ) ) \r
0101200 ( c l : i f d
0101220 i s p l a c e d - t o - p ( c
0101240 o n d \r
0101260
0101300 ( ( n o t ( % a r r
0101320 a y p d i s p l a c e d - t o
0101340 ) ) \r
0101360
0101400 ( c l : e r r o r "
0101420 C a n n o t d i s p l a c e
0101440 t o a n I n t e r l i s p
0101460 a r r a y / s t r i n g " ) ) \r
0101500
*
0101540 ( ( n o t ( e q u a l ( %
0101560 g e t - c a n o n i c a l - c m
0101600 l - t y p e e l e m e n t - t
0101620 y p e ) \r
0101640
*
0101700 ( c l : a r r a y - e l e
0101720 m e n t - t y p e d i s p l a
0101740 c e d - t o ) ) ) \r
0101760
0102000 ( c l :
0102020 e r r o r " N o t d i s p l
0102040 a c e d t o a n a r r a y
0102060 o f t h e s a m e e l e
0102100 m e n t - t y p e " ) ) \r
0102120
0102140 ( (
0102160 > ( + d i s p l a c e d - i
0102200 n d e x - o f f s e t n e l t
0102220 s ) \r
0102240
0102260 ( c l : a r r a
0102300 y - t o t a l - s i z e d i s
0102320 p l a c e d - t o ) ) \r
0102340
0102360 ( c
0102400 l : e r r o r " d i s p l a c
0102420 e d a r r a y o u t o f
0102440 b o u n d s " ) ) ) ) \r
0102460 ( c l : i f c l : f i
0102500 l l - p o i n t e r ( c o n d
0102520 \r
0102540
0102560 ( ( e q c l : f i l l -
0102600 p o i n t e r t ) \r
0102620
0102640 ( s
0102660 e t q c l : f i l l - p o i n
0102700 t e r n e l t s ) ) \r
0102720
0102740 ( (
0102760 n o t ( a n d ( > = c l :
0103000 f i l l - p o i n t e r 0 ) \r
0103020
*
0103060 ( < =
0103100 c l : f i l l - p o i n t e r
0103120 n e l t s ) ) ) \r
0103140
0103160 ( c l
0103200 : e r r o r " F i l l p o i
0103220 n t e r o u t o f b o u n
0103240 d s ~ A " c l : f i l l - p
0103260 o i n t e r ) ) ) ) \r
0103300 \r
0103320 006 003 ( * * " S p e c s r e
0103340 a d y , m a k e t h e a r
0103360 r a y b y c a s e " ) 006 001 \r
0103400 \r ( s e t q a
0103420 r r a y ( c o n d \r
0103440
0103460 ( d i s p l a c e d - t o -
0103500 p ( % m a k e - d i s p l a c
0103520 e d - a r r a y n e l t s d
0103540 i m e n s i o n s e l e m e n
0103560 t - t y p e \r
0103600
*
0103640 d i s p l a c e d -
0103660 t o d i s p l a c e d - i n d
0103700 e x - o f f s e t c l : f i l
0103720 l - p o i n t e r \r
0103740
*
0104000 r e a d - o n
0104020 l y - p a d j u s t a b l e
0104040 e x t e n d a b l e ) ) \r
0104060
0104100 ( d i s p l a c e d - t
0104120 o - b a s e ( c l : i f ( o
0104140 r ( > r a n k 1 ) \r
0104160
*
0104240 a d j u s t a b l e ) \r
0104260
*
0104320 (
0104340 % m a k e - g e n e r a l - a r
0104360 r a y n e l t s d i m e n s
0104400 i o n s e l e m e n t - t y p
0104420 e \r
0104440
*
0104500 c l : f i
0104520 l l - p o i n t e r f a t p
0104540 r e a d - o n l y - p a d j u
0104560 s t a b l e \r
0104600
*
0104660 e x t e n d a b l e d i s p l
0104700 a c e d - t o - b a s e \r
0104720
*
0105000 d i s p l a c e d -
0105020 i n d e x - o f f s e t ) \r
0105040
*
0105100 (
0105120 % m a k e - o n e d - a r r a y
0105140 n e l t s e l e m e n t - t
0105160 y p e c l : f i l l - p o i n
0105200 t e r \r
0105220
*
0105260 f a t
0105300 p r e a d - o n l y - p e x
0105320 t e n d a b l e d i s p l a c
0105340 e d - t o - b a s e \r
0105360
*
0105440 d i s p l a c e d - i n
0105460 d e x - o f f s e t ) ) ) \r
0105500
0105520 ( ( a n d ( e q r
0105540 a n k 1 ) \r
0105560
0105600 ( n o t a d j u s t a
0105620 b l e ) ) \r
0105640 ( %
0105660 m a k e - o n e d - a r r a y
0105700 n e l t s e l e m e n t - t y
0105720 p e c l : f i l l - p o i n t
0105740 e r f a t p r e a d - o n l
0105760 y - p \r
0106000
0106020 e x t e n d a b l e ) )
0106040 \r
0106060 ( ( a n d ( e
0106100 q r a n k 2 ) \r
0106120
0106140 ( n o t a d j u
0106160 s t a b l e ) ) \r
0106200
0106220 ( % m a k e - t w o d - a r r
0106240 a y n e l t s d i m e n s i
0106260 o n s e l e m e n t - t y p e
0106300 f a t p r e a d - o n l y -
0106320 p e x t e n d a b l e ) ) \r
0106340
0106360 ( t ( % m a k e -
0106400 g e n e r a l - a r r a y n e
0106420 l t s d i m e n s i o n s e
0106440 l e m e n t - t y p e c l : f
0106460 i l l - p o i n t e r f a t p
0106500 \r
0106520
0106540 r e a d - o n l y - p a
0106560 d j u s t a b l e e x t e n d
0106600 a b l e ) ) ) ) \r
0106620 \r 006 003
0106640 ( * * " I n i t i a l i z e
0106660 t h e s t o r a g e " ) 006 001
0106700 \r \r ( c o n d \r
0106720 ( i n i t
0106740 i a l - c o n t e n t s - p (
0106760 % a r r a y - c o n t e n t - i
0107000 n i t i a l i z e a r r a y
0107020 i n i t i a l - c o n t e n t s
0107040 ) ) \r ( i
0107060 n i t i a l - e l e m e n t - p
0107100 ( % a r r a y - e l e m e n t
0107120 - i n i t i a l i z e a r r a
0107140 y i n i t i a l - e l e m e n
0107160 t ) ) ) \r \r
0107200 006 003 ( * *
0107220 " R e t u r n t h e a r r
0107240 a y " ) 006 001 \r \r
0107260 a r r a y ) ) \r \r ( c l : d e f
0107300 u n 006 002 m a k e - v e c t o r
0107320 006 001 ( s i z e & k e y ( e
0107340 l e m e n t - t y p e t ) \r
0107360
0107400 ( i n i t
0107420 i a l - e l e m e n t n i l
0107440 i n i t i a l - e l e m e n t -
0107460 p ) \r
0107500 f
0107520 a t p ) " M a k e a v e c
0107540 t o r " ( c l : i f ( o r
0107560 ( < s i z e 0 ) \r
0107600
*
0107660 ( > = s i z e
0107700 c l : a r r a y - t o t a l -
0107720 s i z e - l i m i t ) ) \r
0107740
*
0110020 ( c l : e r r o r
0110040 " S i z e o u t o f b o u
0110060 n d s : ~ A " s i z e ) ) \r
0110100
*
0110160 ( l e t ( ( c l : v e c t
0110200 o r ( % m a k e - o n e d - a
0110220 r r a y s i z e \r
0110240
*
0110340 e l e m e n t - t y p
0110360 e n i l f a t p ) ) ) \r
0110400
*
0110460 ( c l : i f i n i t
0110500 i a l - e l e m e n t - p ( f
0110520 i l l - a r r a y c l : v e c
0110540 t o r \r
0110560
*
0110660 i n i t i
0110700 a l - e l e m e n t \r
0110720
*
0111040 ) ) \r
0111060
*
0111120 c l : v
0111140 e c t o r ) ) \r \r ( c l : d e f
0111160 u n 006 002 r e a d - o n l y - a
0111200 r r a y - p 006 001 ( a r r a y )
0111220 \r \r
0111240 006 003 ( * * ) 006 001
0111260 \r ( c o n d \r ( ( % a
0111300 r r a y p a r r a y ) \r
0111320 ( | f e t c h | ( a r r a
0111340 y - h e a d e r r e a d - o n
0111360 l y - p ) \r
0111400 | o f | a r r a y ) ) \r
0111420 ( ( s t r i n g p a r r
0111440 a y ) \r n i l ) \r
0111460 ( t ( c l : e r r o r "
0111500 N o t a n a r r a y ~ S "
0111520 a r r a y ) ) ) ) \r \r ( c l :
0111540 d e f u n 006 002 c l : s b i t 006
0111560 001 ( s i m p l e - b i t - a r
0111600 r a y & r e s t i n d i c e
0111620 s ) ( c l : a s s e r t ( t
0111640 y p e p s i m p l e - b i t -
0111660 a r r a y \r
0111700
*
0111760 ' ( c l :
0112000 s i m p l e - a r r a y b i t
0112020 ) ) \r
0112040
*
0112100 ( s i
0112120 m p l e - b i t - a r r a y ) \r
0112140
*
0112220 " N o t a
0112240 b i t - a r r a y : ~ S "
0112260 s i m p l e - b i t - a r r a y
0112300 ) \r
0112320
*
0112360 ( c l : a p p l y (
0112400 f u n c t i o n c l : a r e f
0112420 ) \r
0112440
*
0112500 s i m p
0112520 l e - b i t - a r r a y i n d
0112540 i c e s ) ) \r \r ( c l : d e f u
0112560 n 006 002 c l : s c h a r 006 001 (
0112600 c l : s i m p l e - s t r i n g
0112620 i n d e x ) ( c l : a s s e
0112640 r t ( t y p e p c l : s i m
0112660 p l e - s t r i n g ' c l : s
0112700 i m p l e - s t r i n g ) \r
0112720
*
0113000 ( c l : s i m p l e - s t r i
0113020 n g ) \r
0113040
*
0113100 " N o t a s i
0113120 m p l e - s t r i n g : ~ S "
0113140 c l : s i m p l e - s t r i n
0113160 g ) \r
0113200
0113220 (
0113240 c l : a r e f c l : s i m p l
0113260 e - s t r i n g i n d e x ) )
0113300 \r \r ( c l : d e f u n 006 002 s e
0113320 t - f i l l - p o i n t e r 006 001
0113340 ( c l : v e c t o r n e w v
0113360 a l u e ) 006 003 006 001
0113400 006 003 ( * | j o p
0113420 : | " 5 - S e p - 8 6 1 2
0113440 : 5 5 " ) 006 001 \r
0113460 \r 006 003 (
0113500 * * ) 006 001 \r \r ( c o n d
0113520 \r ( ( a n d ( o r
0113540 ( % o n e d - a r r a y - p
0113560 c l : v e c t o r ) \r
0113600 ( % g e n
0113620 e r a l - a r r a y - p c l :
0113640 v e c t o r ) ) \r
0113660 ( | f e t c h | ( a
0113700 r r a y - h e a d e r f i l l
0113720 - p o i n t e r - p ) \r
0113740 |
0113760 o f | c l : v e c t o r ) ) \r
0114000 ( c l : i f ( n
0114020 o t ( < = 0 n e w v a l u
0114040 e ( | f e t c h | ( a r r a
0114060 y - h e a d e r t o t a l - s
0114100 i z e ) \r
0114120
0114140 | o
0114160 f | c l : v e c t o r ) ) ) \r
0114200 ( c
0114220 l : e r r o r " F i l l p o
0114240 i n t e r o u t o f b o u
0114260 n d s : ~ A " n e w v a l u
0114300 e ) ) \r ( | r e p
0114320 l a c e | ( a r r a y - h e a
0114340 d e r c l : f i l l - p o i n
0114360 t e r ) \r
0114400 | o f | c l : v e c t o
0114420 r | w i t h | n e w v a l u
0114440 e ) \r n e w v a l
0114460 u e ) \r ( ( o r (
0114500 % v e c t o r p c l : v e c t
0114520 o r ) \r (
0114540 s t r i n g p c l : v e c t o
0114560 r ) ) \r ( c l : e
0114600 r r o r " V e c t o r h a s
0114620 n o f i l l p o i n t e r
0114640 " ) ) \r ( t ( c l
0114660 : e r r o r " N o t a v e
0114700 c t o r ~ S " c l : v e c t
0114720 o r ) ) ) ) \r \r ( c l : d e f u
0114740 n 006 002 s i m p l e - a r r a y
0114760 - p 006 001 ( a r r a y ) \r
0115000 \r
0115020 006 003 ( * * ) 006 001 \r ( a
0115040 n d ( o r ( % s i m p l e -
0115060 a r r a y - p a r r a y ) \r
0115100 ( s t r i n g
0115120 p a r r a y ) ) \r
0115140 t ) ) \r \r ( c l : d e f u n 006
0115160 002 c l : s i m p l e - b i t - v
0115200 e c t o r - p 006 001 ( c l : v e
0115220 c t o r ) \r
0115240 \r 006 003 ( *
0115260 * ) 006 001 \r ( a n d ( % o n
0115300 e d - a r r a y - p c l : v e
0115320 c t o r ) \r ( | f e
0115340 t c h | ( a r r a y - h e a d
0115360 e r s i m p l e - p ) \r
0115400 | o f | c
0115420 l : v e c t o r ) \r
0115440 ( | f e t c h | ( a r r a y -
0115460 h e a d e r b i t - p ) \r
0115500 | o f |
0115520 c l : v e c t o r ) ) ) \r \r ( c
0115540 l : d e f u n 006 002 c l : s i m
0115560 p l e - s t r i n g - p 006 001 (
0115600 s t r i n g ) \r
0115620 \r 006 003
0115640 ( * * ) 006 001 \r ( a n d ( o
0115660 r ( % s i m p l e - s t r i n
0115700 g - p s t r i n g ) \r
0115720 ( s t r i n g p s
0115740 t r i n g ) ) \r t )
0115760 ) \r \r ( c l : d e f u n 006 002 c
0116000 l : s i m p l e - v e c t o r -
0116020 p 006 001 ( c l : v e c t o r )
0116040 006 003 006 001
0116060 006 003 ( * | j o
0116100 p : | " 5 - S e p - 8 6 1
0116120 2 : 5 4 " ) 006 001 \r
0116140 \r 006 003
0116160 ( * * ) 006 001 \r \r ( a n d
0116200 ( % o n e d - a r r a y - p
0116220 c l : v e c t o r ) \r
0116240 ( | f e t c h | ( a r r
0116260 a y - h e a d e r s i m p l e
0116300 - p ) \r
0116320 | o f | c l : v e c t o
0116340 r ) \r ( e q (
0116360 c l : a r r a y - e l e m e n t
0116400 - t y p e c l : v e c t o r )
0116420 \r t ) )
0116440 ) \r \r ( c l : d e f u n 006 002 s
0116460 t r i n g - a r r a y - p 006 001
0116500 ( a r r a y ) \r
0116520 \r 006 003
0116540 ( * * ) 006 001 \r ( % c h a r -
0116560 t y p e - p ( % a r r a y - t
0116600 y p e - n u m b e r a r r a y
0116620 ) ) ) \r \r ( c l : d e f u n 006
0116640 002 c l : s v r e f 006 001 ( c l :
0116660 s i m p l e - v e c t o r i n
0116700 d e x ) ( c l : a s s e r t
0116720 ( t y p e p c l : s i m p l e
0116740 - v e c t o r ' c l : s i m p
0116760 l e - v e c t o r ) \r
0117000
*
0117040 ( c
0117060 l : s i m p l e - v e c t o r )
0117100 \r
0117120
*
0117160 " N o t a s i m p l
0117200 e - v e c t o r : ~ S " c l
0117220 : s i m p l e - v e c t o r ) \r
0117240
*
0117300 ( c l :
0117320 a r e f c l : s i m p l e - v
0117340 e c t o r i n d e x ) ) \r \r (
0117360 c l : d e f u n 006 002 v e c t o
0117400 r - l e n g t h 006 001 ( c l : v
0117420 e c t o r ) 006 003 006 001
0117440
0117460 006 003 ( * | j o p : |
0117500 " 5 - S e p - 8 6 1 2 : 5 5
0117520 " ) 006 001 \r ( c o n d \r
0117540 ( ( % v e c t o r p c
0117560 l : v e c t o r ) \r
0117600 ( | f e t c h | ( a r r a y
0117620 - h e a d e r c l : f i l l -
0117640 p o i n t e r ) \r
0117660 | o f | c l : v
0117700 e c t o r ) ) \r ( (
0117720 s t r i n g p c l : v e c t o
0117740 r ) \r ( n c h a r
0117760 s c l : v e c t o r ) ) \r
0120000 ( t ( c l : e r r o r
0120020 " N o t a v e c t o r :
0120040 ~ s " c l : v e c t o r ) ) )
0120060 ) \r \r ( c l : d e f u n 006 002 c
0120100 l : v e c t o r - p o p 006 001 (
0120120 c l : v e c t o r ) 006 003 006 001
0120140
0120160 006 003 ( * | j o
0120200 p : | " 5 - S e p - 8 6 1
0120220 2 : 5 5 " ) 006 001 \r
0120240 \r 006 003
0120260 ( * * ) 006 001 \r \r ( c o n
0120300 d \r ( ( a n d ( o
0120320 r ( % o n e d - a r r a y - p
0120340 c l : v e c t o r ) \r
0120360 ( % g e
0120400 n e r a l - a r r a y - p c l
0120420 : v e c t o r ) ) \r
0120440 ( | f e t c h | (
0120460 a r r a y - h e a d e r f i l
0120500 l - p o i n t e r - p ) \r
0120520
0120540 | o f | c l : v e c t o r ) )
0120560 \r ( l e t ( ( c
0120600 l : f i l l - p o i n t e r (
0120620 | f e t c h | ( a r r a y - h
0120640 e a d e r c l : f i l l - p o
0120660 i n t e r ) \r
0120700
0120720 | o f |
0120740 c l : v e c t o r ) ) ) \r
0120760 ( c l : i f
0121000 ( < = c l : f i l l - p o i
0121020 n t e r 0 ) \r
0121040 ( c l : e
0121060 r r o r " C a n ' t p o p
0121100 f r o m z e r o f i l l p
0121120 o i n t e r " ) ) \r
0121140 ( s e t q c l : f
0121160 i l l - p o i n t e r ( c l :
0121200 1 - c l : f i l l - p o i n t
0121220 e r ) ) \r
0121240 ( | r e p l a c e | ( a r r
0121260 a y - h e a d e r c l : f i l
0121300 l - p o i n t e r ) \r
0121320 | o
0121340 f | c l : v e c t o r | w i
0121360 t h | c l : f i l l - p o i n
0121400 t e r ) \r
0121420 ( c l : a r e f c l : v e c
0121440 t o r c l : f i l l - p o i n
0121460 t e r ) ) ) \r ( ( o
0121500 r ( % v e c t o r p c l : v
0121520 e c t o r ) \r
0121540 ( s t r i n g p c l : v e
0121560 c t o r ) ) \r ( c
0121600 l : e r r o r " V e c t o r
0121620 h a s n o f i l l p o i n
0121640 t e r " ) ) \r ( t
0121660 ( c l : e r r o r " N o t a
0121700 v e c t o r ~ S " c l : v
0121720 e c t o r ) ) ) ) \r \r ( c l : d
0121740 e f u n 006 002 c l : v e c t o r
0121760 - p u s h 006 001 ( n e w - e l e
0122000 m e n t c l : v e c t o r )
0122020 006 003 006 001
0122040 006 003 ( * | j o p : | " 5 -
0122060 S e p - 8 6 1 2 : 5 5 " ) 006 001
0122100 \r \r
0122120 006 003 ( * * ) 006 001 \r
0122140 \r ( c o n d \r
0122160 ( ( a n d ( o r ( % o n e d
0122200 - a r r a y - p c l : v e c t
0122220 o r ) \r
0122240 ( % g e n e r a l - a r
0122260 r a y - p c l : v e c t o r )
0122300 ) \r ( |
0122320 f e t c h | ( a r r a y - h e
0122340 a d e r f i l l - p o i n t e
0122360 r - p ) \r
0122400 | o f | c l :
0122420 v e c t o r ) ) \r
0122440 ( l e t ( ( c l : f i l l - p
0122460 o i n t e r ( | f e t c h |
0122500 ( a r r a y - h e a d e r c l
0122520 : f i l l - p o i n t e r ) \r
0122540
*
0122600 | o f | c l : v e c t
0122620 o r ) ) ) \r
0122640 ( c l : w h e n ( < c l
0122660 : f i l l - p o i n t e r ( |
0122700 f e t c h | ( a r r a y - h e
0122720 a d e r t o t a l - s i z e )
0122740 \r
0122760
*
0123020 | o f | c l : v e c t o r ) )
0123040 \r
0123060 ( a s e t n e w - e l
0123100 e m e n t c l : v e c t o r
0123120 c l : f i l l - p o i n t e r )
0123140 \r
0123160 ( | r e p l a c e | (
0123200 a r r a y - h e a d e r c l :
0123220 f i l l - p o i n t e r ) \r
0123240
0123260 | o f | c l :
0123300 v e c t o r | w i t h | ( c
0123320 l : 1 + c l : f i l l - p o i
0123340 n t e r ) ) \r
0123360 c l : f i l
0123400 l - p o i n t e r ) ) ) \r
0123420 ( ( o r ( % v e c t o r
0123440 p c l : v e c t o r ) \r
0123460 ( s t r i n g p
0123500 c l : v e c t o r ) ) \r
0123520 ( c l : e r r o r " V
0123540 e c t o r h a s n o f i l
0123560 l p o i n t e r " ) ) \r
0123600 ( t ( c l : e r r o r
0123620 " N o t a v e c t o r ~ S
0123640 " c l : v e c t o r ) ) ) ) \r
0123660 \r ( c l : d e f u n 006 002 c l :
0123700 v e c t o r - p u s h - e x t e
0123720 n d 006 001 ( n e w - e l e m e n
0123740 t c l : v e c t o r & o p t
0123760 i o n a l ( e x t e n s i o n
0124000 - s i z e \r
0124020
*
0124100 *
0124120 d e f a u l t - p u s h - e x t
0124140 e n s i o n - s i z e * \r
0124160
*
0124260 ) ) " L i k e V E
0124300 C T O R - P U S H e x c e p t
0124320 i f V E C T O R i s a d
0124340 j u s t a b l e - - i n w
0124360 h i c h c a s e a p u s h
0124400 b e y o n d ( a r r a y - t
0124420 o t a l - s i z e V E C T O R
0124440 ) w i l l c a l l a d j
0124460 u s t - a r r a y " \r ( l
0124500 e t ( ( n e w - i n d e x (
0124520 c l : v e c t o r - p u s h n
0124540 e w - e l e m e n t c l : v e
0124560 c t o r ) ) ) \r
0124600 ( c l : i f ( n u l l n e w
0124620 - i n d e x ) \r
0124640 ( c o n d \r
0124660 (
0124700 ( > e x t e n s i o n - s i z
0124720 e 0 ) \r
0124740 ( c l : a d j u
0124760 s t - a r r a y c l : v e c t
0125000 o r ( + ( c l : a r r a y -
0125020 t o t a l - s i z e c l : v e
0125040 c t o r ) \r
0125060
*
0125120 e x t e n s i o n
0125140 - s i z e ) ) \r
0125160 ( c l : v
0125200 e c t o r - p u s h n e w - e
0125220 l e m e n t c l : v e c t o r
0125240 ) ) \r
0125260 ( t ( c l : e r r o
0125300 r " E x t e n s i o n - s i z
0125320 e n o t g r e a t e r t h
0125340 a n z e r o " ) ) ) \r
0125360 n e w - i
0125400 n d e x ) ) ) \r \r ( c l : d e f
0125420 u n 006 002 c l : v e c t o r p 006
0125440 001 ( c l : v e c t o r ) 006 003
0125460 006 001
0125500 006 003
0125520 ( * | j o p : | " 5 - S e
0125540 p - 8 6 1 2 : 5 5 " ) 006 001 \r
0125560 \r
0125600 006 003 ( * * ) 006 001 \r \r
0125620 ( a n d ( o r ( % v e c
0125640 t o r p c l : v e c t o r ) \r
0125660 ( s t r
0125700 i n g p c l : v e c t o r ) )
0125720 \r t ) ) \r \r ( d
0125740 e f i n e q \r \r ( 006 004 % c o p y
0125760 - t o - n e w - a r r a y 006 001 \r
0126000 ( l a m b d a ( o l d - d
0126020 i m s o l d - a r r a y o l
0126040 d - o f f s e t n e w - d i m
0126060 s n e w - a r r a y n e w -
0126100 o f f s e t ) 006 003 006 001 \r
0126120
*
0126200 006 003 ( * | j
0126220 o p : | " 2 1 - S e p - 8 6
0126240 1 6 : 5 5 " ) 006 001 \r
0126260 \r 006
0126300 003 ( * * " I t i s a s s
0126320 u m e d t h a t O L D - A R
0126340 R A Y a n d N E W - A R R A
0126360 Y a r e o f t h e s a m
0126400 e r a n k " ) 006 001 \r \r
0126420 ( l e t ( ( s i z e ( m i n
0126440 ( c a r o l d - d i m s ) \r
0126460
0126500 ( c a r n e w - d i
0126520 m s ) ) ) ) \r
0126540 ( c l : i f ( c d r o l d -
0126560 d i m s ) \r
0126600 ( c l : d o t i m e
0126620 s ( i s i z e ) \r
0126640
0126660 ( 006 002 % c o p y - t o - n e
0126700 w - a r r a y 006 001 ( c d r o
0126720 l d - d i m s ) \r
0126740
0126760 o l d - a r r a y
0127000 \r
0127020 (
0127040 c l : * ( c a d r o l d - d
0127060 i m s ) \r
0127100
0127120 ( + o l d -
0127140 o f f s e t i ) ) \r
0127160
0127200 ( c d r n e
0127220 w - d i m s ) \r
0127240
0127260 n e w - a r r a y \r
0127300
0127320 ( c
0127340 l : * ( c a d r n e w - d i
0127360 m s ) \r
0127400
0127420 ( + n e w - o
0127440 f f s e t i ) ) ) ) \r
0127460 ( l e t
0127500 ( ( o l d - t y p e - n u m b
0127520 e r ( 006 002 % a r r a y - t y p
0127540 e - n u m b e r 006 001 o l d - a
0127560 r r a y ) ) \r
0127600 ( n e
0127620 w - t y p e - n u m b e r ( 006
0127640 002 % a r r a y - t y p e - n u m
0127660 b e r 006 001 n e w - a r r a y )
0127700 ) ) \r
0127720
*
0130000 006 003 ( * \r 006 001
0130020
0130040 006 003
0130060 " C a n o n l y d o a f
0130100 a s t c o p y w h e n a r
0130120 r a y s h a v e t h e s a
0130140 m e t y p e n u m b e r " )
0130160 006 001 \r
0130200 ( c l : i f (
0130220 e q o l d - t y p e - n u m b
0130240 e r n e w - t y p e - n u m b
0130260 e r ) \r
0130300
0130320 ( 006 002 % f a s t - c o p y - b a
0130340 s e 006 001 ( 006 002 % a r r a y - b
0130360 a s e 006 001 o l d - a r r a y )
0130400 \r
0130420
0130440 o l d - o f f s e t \r
0130460
*
0130520 ( 006 002 % a r r a y - b a s e
0130540 006 001 n e w - a r r a y ) \r
0130560
*
0130620 n e w - o f f s e t s i z e
0130640 o l d - t y p e - n u m b e r
0130660 ) \r
0130700 ( c
0130720 l : e r r o r " A r r a y s
0130740 h a v e d i f f e r i n g t
0130760 y p e n u m b e r s " ) ) ) )
0131000 ) ) ) \r \r ( 006 004 c l : a r e f 006
0131020 001 \r ( l a m b d a a r g s
0131040 006 003 006 001
0131060
*
0131120 006 003 ( * | j o p : | "
0131140 2 1 - S e p - 8 6 1 5 : 0 0 "
0131160 ) 006 001 \r \r
0131200 006 003 ( * * )
0131220 006 001 \r \r ( c l : i f (
0131240 < a r g s 1 ) \r
0131260 ( c l : e r r o r "
0131300 A r e f t a k e s a t l e
0131320 a s t o n e a r g " ) ) \r
0131340 ( l e t ( ( a r r a y
0131360 ( a r g a r g s 1 ) ) ) \r
0131400 ( c a s e a r
0131420 g s ( 1 ( 006 002 % a r e f 0 006
0131440 001 a r r a y ) ) \r
0131460 ( 2 ( 006 002 %
0131500 a r e f 1 006 001 a r r a y ( a
0131520 r g a r g s 2 ) ) ) \r
0131540 ( 3 (
0131560 006 002 % a r e f 2 006 001 a r r a y
0131600 ( a r g a r g s 2 ) \r
0131620
0131640 ( a r g a r g s
0131660 3 ) ) ) \r
0131700 ( c l : o t h e r w i
0131720 s e ( c o n d \r
0131740
0131760 ( ( n o t (
0132000 006 002 % a r r a y p 006 001 a r r a
0132020 y ) ) \r
0132040
0132060 ( c l : e r r o r "
0132100 N o t a n a r r a y ~ S "
0132120 a r r a y ) ) \r
0132140
0132160 ( ( n o t (
0132200 e q l ( c l : a r r a y - r a
0132220 n k a r r a y ) \r
0132240
*
0132300 ( c l : 1 - a r g s
0132320 ) ) ) \r
0132340
0132360 ( c l : e r r o r "
0132400 R a n k m i s m a t c h " ) )
0132420 \r
0132440
0132460 ( t \r \r
0132500 006 003 ( * *
0132520 " I f w e ' v e g o t t e
0132540 n t h i s f a r A R R A Y
0132560 m u s t b e a g e n e r
0132600 a l a r r a y " ) 006 001 \r
0132620
*
0132700 006 003 ( * "
0132720 C h e c k i n d i c e s i n
0132740 b o u n d s " ) 006 001 \r
0132760
0133000 (
0133020 c l : d o ( ( i 2 ( c l :
0133040 1 + i ) ) \r
0133060
*
0133120 ( d i m l i s t ( 006 002 | f
0133140 f e t c h | 006 001 ( g e n e r a
0133160 l - a r r a y d i m s ) 006 002
0133200 | o f | 006 001 a r r a y ) \r
0133220
*
0133300 ( c d r d i m l i s t ) ) \r
0133320
*
0133360 i n d e x )
0133400 \r
0133420
0133440 ( ( > i
0133460 a r g s ) ) \r
0133500
*
0133540 ( s e t q i n d e x ( a
0133560 r g a r g s i ) ) \r
0133600
*
0133640 ( c l : i f ( n o
0133660 t ( a n d ( > = i n d e x
0133700 0 ) \r
0133720
*
0133760 (
0134000 < i n d e x ( c a r d i m
0134020 l i s t ) ) ) ) \r
0134040
*
0134100 ( c l : e r
0134120 r o r " I n d e x o u t o
0134140 f b o u n d s : ~ A " i n
0134160 d e x ) ) ) \r
0134200
*
0134260 006 003 ( * " N o w p r
0134300 o c e e d t o e x t r a c t
0134320 t h e e l e m e n t " ) 006 001
0134340 \r
0134360
0134400 ( l e t ( ( r o w - m
0134420 a j o r - i n d e x ( c l : d
0134440 o ( ( i 2 ( c l : 1 + i
0134460 ) ) \r
0134500
*
0134560 ( d i m l i s t ( c
0134600 d r ( 006 002 | f f e t c h | 006 001
0134620 \r
0134640
*
0134740 ( g e n e r a l - a r r a y
0134760 \r
0135000
*
0135100 d i m s ) 006 002 | o f | 006
0135120 001 a r r a y ) ) \r
0135140
*
0135240 ( c d r d i m l i s t )
0135260 ) \r
0135300
*
0135360 ( t o t a l 0 ) ) \r
0135400
*
0135500 ( ( e q l i a r g s ) \r
0135520
*
0135620 ( + t o t a l ( a r g a r
0135640 g s a r g s ) ) ) \r
0135660
*
0135740 ( s e t
0135760 q t o t a l \r
0136000
*
0136060 ( c l : *
0136100 ( c a r d i m l i s t ) \r
0136120
*
0136220 ( + t o t a l (
0136240 a r g a r g s i ) ) ) ) ) )
0136260 \r
0136300
0136320 ( b a s e -
0136340 a r r a y a r r a y ) ) \r
0136360
*
0136420 ( % g e n e r a l -
0136440 a r r a y - a d j u s t - b a s
0136460 e b a s e - a r r a y r o w
0136500 - m a j o r - i n d e x ) \r
0136520
*
0136560 ( 006 002 % a r r a y -
0136600 r e a d 006 001 ( 006 002 | f e t c h
0136620 | 006 001 ( a r r a y - h e a d e
0136640 r b a s e ) 006 002 | o f | 006 001
0136660 b a s e - a r r a y ) \r
0136700
*
0136740 ( 006 002 |
0136760 f e t c h | 006 001 ( a r r a y -
0137000 h e a d e r t y p e - n u m b
0137020 e r ) 006 002 | o f | 006 001 b a s
0137040 e - a r r a y ) \r
0137060
*
0137120 ( + ( % g e t
0137140 - a r r a y - o f f s e t b a
0137160 s e - a r r a y ) \r
0137200
*
0137240 r o w -
0137260 m a j o r - i n d e x ) ) ) ) )
0137300 ) ) ) ) ) \r \r ( 006 004 c l : a r r
0137320 a y - i n - b o u n d s - p 006 001
0137340 \r ( l a m b d a a r g s 006
0137360 003 006 001
0137400
*
0137440 006 003 ( * | j o p : | "
0137460 5 - S e p - 8 6 1 1 : 2 2 " )
0137500 006 001 \r \r
0137520 006 003 ( * * ) 006
0137540 001 \r \r ( c l : i f ( <
0137560 a r g s 1 ) \r
0137600 ( c l : e r r o r " A
0137620 r r a y - i n - b o u n d s - p
0137640 t a k e s a t l e a s t
0137660 o n e a r g " ) ) \r (
0137700 l e t ( ( a r r a y ( a r g
0137720 a r g s 1 ) ) ) \r
0137740 ( c o n d \r
0137760 ( ( n o t ( c l :
0140000 a r r a y p a r r a y ) ) \r
0140020 ( c l :
0140040 e r r o r " N o t a n a r
0140060 r a y ~ S " a r r a y ) ) \r
0140100 ( ( n o
0140120 t ( e q l ( c l : a r r a y
0140140 - r a n k a r r a y ) \r
0140160
0140200 ( c l : 1 - a r g s )
0140220 ) ) \r
0140240 ( c l : e r r o r " R a n k
0140260 m i s m a t c h " ) ) \r
0140300 ( t ( % c h e
0140320 c k - i n d i c e s a r r a y
0140340 2 a r g s ) ) ) ) ) ) \r \r (
0140360 006 004 c l : a r r a y - r o w - m
0140400 a j o r - i n d e x 006 001 \r (
0140420 l a m b d a a r g s 006 003 006 001
0140440
*
0140500 006 003
0140520 ( * | j o p : | " 5 - S e
0140540 p - 8 6 1 1 : 2 3 " ) 006 001 \r
0140560 \r
0140600 006 003 ( * * ) 006 001 \r \r
0140620 ( c l : i f ( < a r g
0140640 s 1 ) \r
0140660 ( c l : e r r o r " A r r a y
0140700 - r o w - m a j o r - i n d e x
0140720 t a k e s a t l e a s t
0140740 o n e a r g " ) ) \r (
0140760 l e t * ( ( a r r a y ( a r
0141000 g a r g s 1 ) ) \r
0141020 ( r a n k ( c l :
0141040 a r r a y - r a n k a r r a y
0141060 ) ) ) \r ( c
0141100 o n d \r
0141120 ( ( n o t ( e q l r a n k
0141140 ( c l : 1 - a r g s ) ) ) \r
0141160 ( c
0141200 l : e r r o r " R a n k m i
0141220 s m a t c h " ) ) \r
0141240 ( ( n o t ( % c
0141260 h e c k - i n d i c e s a r r
0141300 a y 2 a r g s ) ) \r
0141320 ( c l : e r
0141340 r o r " I n d e x o u t o
0141360 f b o u n d s " ) ) \r
0141400 ( t ( c l :
0141420 d o ( ( i 2 ( c l : 1 +
0141440 i ) ) \r
0141460 ( t o t
0141500 a l 0 ) ) \r
0141520