aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc/src/erl_fix_alloc.ps
diff options
context:
space:
mode:
Diffstat (limited to 'erts/doc/src/erl_fix_alloc.ps')
-rw-r--r--erts/doc/src/erl_fix_alloc.ps646
1 files changed, 646 insertions, 0 deletions
diff --git a/erts/doc/src/erl_fix_alloc.ps b/erts/doc/src/erl_fix_alloc.ps
new file mode 100644
index 0000000000..bf65d1556c
--- /dev/null
+++ b/erts/doc/src/erl_fix_alloc.ps
@@ -0,0 +1,646 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: erl_fix_alloc.fig
+%%Creator: fig2dev Version 3.1 Patchlevel 2
+%%CreationDate: Tue May 20 11:10:33 1997
+%%For: jocke@akvavit (Joakim Greben|,ETX/B/DUP)
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 506 462
+%%Pages: 0
+%%BeginSetup
+%%IncludeFeature: *PageSize A4
+%%EndSetup
+%%EndComments
+/MyAppDict 100 dict dup begin def
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+-18.0 481.0 translate
+1 -1 scale
+.9 .9 scale % to make patterns same scale as in xfig
+
+% This junk string is used by the show operators
+/PATsstr 1 string def
+/PATawidthshow { % cx cy cchar rx ry string
+ % Loop over each character in the string
+ { % cx cy cchar rx ry char
+ % Show the character
+ dup % cx cy cchar rx ry char char
+ PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
+ false charpath % cx cy cchar rx ry char
+ /clip load PATdraw
+ % Move past the character (charpath modified the
+ % current point)
+ currentpoint % cx cy cchar rx ry char x y
+ newpath
+ moveto % cx cy cchar rx ry char
+ % Reposition by cx,cy if the character in the string is cchar
+ 3 index eq { % cx cy cchar rx ry
+ 4 index 4 index rmoveto
+ } if
+ % Reposition all characters by rx ry
+ 2 copy rmoveto % cx cy cchar rx ry
+ } forall
+ pop pop pop pop pop % -
+ currentpoint
+ newpath
+ moveto
+} bind def
+/PATcg {
+ 7 dict dup begin
+ /lw currentlinewidth def
+ /lc currentlinecap def
+ /lj currentlinejoin def
+ /ml currentmiterlimit def
+ /ds [ currentdash ] def
+ /cc [ currentrgbcolor ] def
+ /cm matrix currentmatrix def
+ end
+} bind def
+% PATdraw - calculates the boundaries of the object and
+% fills it with the current pattern
+/PATdraw { % proc
+ save exch
+ PATpcalc % proc nw nh px py
+ 5 -1 roll exec % nw nh px py
+ newpath
+ PATfill % -
+ restore
+} bind def
+% PATfill - performs the tiling for the shape
+/PATfill { % nw nh px py PATfill -
+ PATDict /CurrentPattern get dup begin
+ setfont
+ % Set the coordinate system to Pattern Space
+ PatternGState PATsg
+ % Set the color for uncolored pattezns
+ PaintType 2 eq { PATDict /PColor get PATsc } if
+ % Create the string for showing
+ 3 index string % nw nh px py str
+ % Loop for each of the pattern sources
+ 0 1 Multi 1 sub { % nw nh px py str source
+ % Move to the starting location
+ 3 index 3 index % nw nh px py str source px py
+ moveto % nw nh px py str source
+ % For multiple sources, set the appropriate color
+ Multi 1 ne { dup PC exch get PATsc } if
+ % Set the appropriate string for the source
+ 0 1 7 index 1 sub { 2 index exch 2 index put } for pop
+ % Loop over the number of vertical cells
+ 3 index % nw nh px py str nh
+ { % nw nh px py str
+ currentpoint % nw nh px py str cx cy
+ 2 index show % nw nh px py str cx cy
+ YStep add moveto % nw nh px py str
+ } repeat % nw nh px py str
+ } for
+ 5 { pop } repeat
+ end
+} bind def
+
+% PATkshow - kshow with the current pattezn
+/PATkshow { % proc string
+ exch bind % string proc
+ 1 index 0 get % string proc char
+ % Loop over all but the last character in the string
+ 0 1 4 index length 2 sub {
+ % string proc char idx
+ % Find the n+1th character in the string
+ 3 index exch 1 add get % string proe char char+1
+ exch 2 copy % strinq proc char+1 char char+1 char
+ % Now show the nth character
+ PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
+ false charpath % string proc char+1 char char+1
+ /clip load PATdraw
+ % Move past the character (charpath modified the current point)
+ currentpoint newpath moveto
+ % Execute the user proc (should consume char and char+1)
+ mark 3 1 roll % string proc char+1 mark char char+1
+ 4 index exec % string proc char+1 mark...
+ cleartomark % string proc char+1
+ } for
+ % Now display the last character
+ PATsstr dup 0 4 -1 roll put % string proc (char+1)
+ false charpath % string proc
+ /clip load PATdraw
+ neewath
+ pop pop % -
+} bind def
+% PATmp - the makepattern equivalent
+/PATmp { % patdict patmtx PATmp patinstance
+ exch dup length 7 add % We will add 6 new entries plus 1 FID
+ dict copy % Create a new dictionary
+ begin
+ % Matrix to install when painting the pattern
+ TilingType PATtcalc
+ /PatternGState PATcg def
+ PatternGState /cm 3 -1 roll put
+ % Check for multi pattern sources (Level 1 fast color patterns)
+ currentdict /Multi known not { /Multi 1 def } if
+ % Font dictionary definitions
+ /FontType 3 def
+ % Create a dummy encoding vector
+ /Encoding 256 array def
+ 3 string 0 1 255 {
+ Encoding exch dup 3 index cvs cvn put } for pop
+ /FontMatrix matrix def
+ /FontBBox BBox def
+ /BuildChar {
+ mark 3 1 roll % mark dict char
+ exch begin
+ Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
+ PaintType 2 eq Multi 1 ne or
+ { XStep 0 FontBBox aload pop setcachedevice }
+ { XStep 0 setcharwidth } ifelse
+ currentdict % mark [paintdata] dict
+ /PaintProc load % mark [paintdata] dict paintproc
+ end
+ gsave
+ false PATredef exec true PATredef
+ grestore
+ cleartomark % -
+ } bind def
+ currentdict
+ end % newdict
+ /foo exch % /foo newlict
+ definefont % newfont
+} bind def
+% PATpcalc - calculates the starting point and width/height
+% of the tile fill for the shape
+/PATpcalc { % - PATpcalc nw nh px py
+ PATDict /CurrentPattern get begin
+ gsave
+ % Set up the coordinate system to Pattern Space
+ % and lock down pattern
+ PatternGState /cm get setmatrix
+ BBox aload pop pop pop translate
+ % Determine the bounding box of the shape
+ pathbbox % llx lly urx ury
+ grestore
+ % Determine (nw, nh) the # of cells to paint width and height
+ PatHeight div ceiling % llx lly urx qh
+ 4 1 roll % qh llx lly urx
+ PatWidth div ceiling % qh llx lly qw
+ 4 1 roll % qw qh llx lly
+ PatHeight div floor % qw qh llx ph
+ 4 1 roll % ph qw qh llx
+ PatWidth div floor % ph qw qh pw
+ 4 1 roll % pw ph qw qh
+ 2 index sub cvi abs % pw ph qs qh-ph
+ exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
+ % Determine the starting point of the pattern fill
+ %(px, py)
+ 4 2 roll % nw nh pw ph
+ PatHeight mul % nw nh pw py
+ exch % nw nh py pw
+ PatWidth mul exch % nw nh px py
+ end
+} bind def
+
+% Save the original routines so that we can use them later on
+/oldfill /fill load def
+/oldeofill /eofill load def
+/oldstroke /stroke load def
+/oldshow /show load def
+/oldashow /ashow load def
+/oldwidthshow /widthshow load def
+/oldawidthshow /awidthshow load def
+/oldkshow /kshow load def
+
+% These defs are necessary so that subsequent procs don't bind in
+% the originals
+/fill { oldfill } bind def
+/eofill { oldeofill } bind def
+/stroke { oldstroke } bind def
+/show { oldshow } bind def
+/ashow { oldashow } bind def
+/widthshow { oldwidthshow } bind def
+/awidthshow { oldawidthshow } bind def
+/kshow { oldkshow } bind def
+/PATredef {
+ MyAppDict begin
+ {
+ /fill { /clip load PATdraw newpath } bind def
+ /eofill { /eoclip load PATdraw newpath } bind def
+ /stroke { PATstroke } bind def
+ /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
+ /ashow { 0 0 null 6 3 roll PATawidthshow }
+ bind def
+ /widthshow { 0 0 3 -1 roll PATawidthshow }
+ bind def
+ /awidthshow { PATawidthshow } bind def
+ /kshow { PATkshow } bind def
+ } {
+ /fill { oldfill } bind def
+ /eofill { oldeofill } bind def
+ /stroke { oldstroke } bind def
+ /show { oldshow } bind def
+ /ashow { oldashow } bind def
+ /widthshow { oldwidthshow } bind def
+ /awidthshow { oldawidthshow } bind def
+ /kshow { oldkshow } bind def
+ } ifelse
+ end
+} bind def
+false PATredef
+% Conditionally define setcmykcolor if not available
+/setcmykcolor where { pop } {
+ /setcmykcolor {
+ 1 sub 4 1 roll
+ 3 {
+ 3 index add neg dup 0 lt { pop 0 } if 3 1 roll
+ } repeat
+ setrgbcolor - pop
+ } bind def
+} ifelse
+/PATsc { % colorarray
+ aload length % c1 ... cn length
+ dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
+ } ifelse } ifelse
+} bind def
+/PATsg { % dict
+ begin
+ lw setlinewidth
+ lc setlinecap
+ lj setlinejoin
+ ml setmiterlimit
+ ds aload pop setdash
+ cc aload pop setrgbcolor
+ cm setmatrix
+ end
+} bind def
+
+/PATDict 3 dict def
+/PATsp {
+ true PATredef
+ PATDict begin
+ /CurrentPattern exch def
+ % If it's an uncolored pattern, save the color
+ CurrentPattern /PaintType get 2 eq {
+ /PColor exch def
+ } if
+ /CColor [ currentrgbcolor ] def
+ end
+} bind def
+% PATstroke - stroke with the current pattern
+/PATstroke {
+ countdictstack
+ save
+ mark
+ {
+ currentpoint strokepath moveto
+ PATpcalc % proc nw nh px py
+ clip newpath PATfill
+ } stopped {
+ (*** PATstroke Warning: Path is too complex, stroking
+ with gray) =
+ cleartomark
+ restore
+ countdictstack exch sub dup 0 gt
+ { { end } repeat } { pop } ifelse
+ gsave 0.5 setgray oldstroke grestore
+ } { pop restore pop } ifelse
+ newpath
+} bind def
+/PATtcalc { % modmtx tilingtype PATtcalc tilematrix
+ % Note: tiling types 2 and 3 are not supported
+ gsave
+ exch concat % tilingtype
+ matrix currentmatrix exch % cmtx tilingtype
+ % Tiling type 1 and 3: constant spacing
+ 2 ne {
+ % Distort the pattern so that it occupies
+ % an integral number of device pixels
+ dup 4 get exch dup 5 get exch % tx ty cmtx
+ XStep 0 dtransform
+ round exch round exch % tx ty cmtx dx.x dx.y
+ XStep div exch XStep div exch % tx ty cmtx a b
+ 0 YStep dtransform
+ round exch round exch % tx ty cmtx a b dy.x dy.y
+ YStep div exch YStep div exch % tx ty cmtx a b c d
+ 7 -3 roll astore % { a b c d tx ty }
+ } if
+ grestore
+} bind def
+/PATusp {
+ false PATredef
+ PATDict begin
+ CColor PATsc
+ end
+} bind def
+
+% right30
+11 dict begin
+/PaintType 1 def
+/PatternType 1 def
+/TilingType 1 def
+/BBox [0 0 1 1] def
+/XStep 1 def
+/YStep 1 def
+/PatWidth 1 def
+/PatHeight 1 def
+/Multi 2 def
+/PaintData [
+ { clippath } bind
+ { 32 16 true [ 32 0 0 -16 0 16 ]
+ {<00030003000c000c0030003000c000c0030003000c000c00
+ 30003000c000c00000030003000c000c0030003000c000c0
+ 030003000c000c0030003000c000c000>}
+ imagemask } bind
+] def
+/PaintProc {
+ pop
+ exec fill
+} def
+currentdict
+end
+/P2 exch def
+1.1111 1.1111 scale %restore scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+ /DrawSplineSection {
+ /y3 exch def
+ /x3 exch def
+ /y2 exch def
+ /x2 exch def
+ /y1 exch def
+ /x1 exch def
+ /xa x1 x2 x1 sub 0.666667 mul add def
+ /ya y1 y2 y1 sub 0.666667 mul add def
+ /xb x3 x2 x3 sub 0.666667 mul add def
+ /yb y3 y2 y3 sub 0.666667 mul add def
+ x1 y1 lineto
+ xa ya xb yb x3 y3 curveto
+ } def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+%%EndProlog
+
+$F2psBegin
+10 setmiterlimit
+n 0 842 m 0 0 l 595 0 l 595 842 l cp clip
+ 0.06000 0.06000 sc
+7.500 slw
+% Polyline
+n 750 3600 m 750 1200 l 2325 1200 l 2325 3600 l gs col-1 s gr
+% Polyline
+n 750 1500 m 2325 1500 l gs col-1 s gr
+% Polyline
+n 750 1800 m 2325 1800 l gs col-1 s gr
+15.000 slw
+% Polyline
+n 375 2100 m 2775 2100 l gs col-1 s gr
+/Times-Roman ff 180.00 scf sf
+900 2025 m
+gs 1 -1 sc (allocated_blocks) col-1 sh gr
+/Times-Roman ff 180.00 scf sf
+1200 1725 m
+gs 1 -1 sc (free_list) col-1 sh gr
+/Times-Roman ff 180.00 scf sf
+1200 1425 m
+gs 1 -1 sc (item_size) col-1 sh gr
+7.500 slw
+% Polyline
+n 3525 1200 m 5025 1200 l 5025 1800 l 3525 1800 l cp gs col-1 s gr
+% Polyline
+n 3525 1500 m 5025 1500 l gs col-1 s gr
+/Times-Roman ff 180.00 scf sf
+4050 1425 m
+gs 1 -1 sc (next) col-1 sh gr
+/Times-Roman ff 180.00 scf sf
+4050 1725 m
+gs 1 -1 sc (block) col-1 sh gr
+% Polyline
+n 5850 1200 m 7350 1200 l 7350 1800 l 5850 1800 l cp gs col-1 s gr
+% Polyline
+n 5850 1500 m 7350 1500 l gs col-1 s gr
+/Times-Roman ff 180.00 scf sf
+6375 1425 m
+gs 1 -1 sc (next) col-1 sh gr
+/Times-Roman ff 180.00 scf sf
+6375 1725 m
+gs 1 -1 sc (block) col-1 sh gr
+15.000 slw
+% Polyline
+ [100.0] 0 sd
+n 3450 5700 m 5400 5700 l gs col-1 s gr [] 0 sd
+7.500 slw
+% Polyline
+n 3600 8000 m 3600 3450 l 5175 3450 l 5175 8000 l gs col-1 s gr
+15.000 slw
+% Polyline
+ [100.0] 0 sd
+n 3525 6900 m 5325 6900 l gs col-1 s gr [] 0 sd
+0.000 slw
+% Polyline
+ [33.3] 0 sd
+n 3675 3525 m 5100 3525 l 5100 4425 l 3675 4425 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
+15.00 15.00 sc P2 [16 0 0 -8 245.00 235.00] PATmp PATsp ef gr PATusp [] 0 sd
+% Polyline
+ [33.3] 0 sd
+n 3675 5775 m 5100 5775 l 5100 6825 l 3675 6825 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
+15.00 15.00 sc P2 [16 0 0 -8 245.00 385.00] PATmp PATsp ef gr PATusp [] 0 sd
+7.500 slw
+% Polyline
+ [15 50.0] 50.0 sd
+n 3600 4725 m 5250 4725 l gs col-1 s gr [] 0 sd
+% Polyline
+ [15 50.0] 50.0 sd
+n 3600 4950 m 5175 4950 l gs col-1 s gr [] 0 sd
+0.000 slw
+% Polyline
+ [15 25.0] 25.0 sd
+n 6375 3750 m 6675 3750 l 6675 4050 l 6375 4050 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
+15.00 15.00 sc P2 [16 0 0 -8 425.00 250.00] PATmp PATsp ef gr PATusp [] 0 sd
+7.500 slw
+% Polyline
+gs clippath
+4305 3253 m 4275 3373 l 4245 3253 l 4245 3415 l 4305 3415 l cp clip
+n 4275 1800 m 4275 3400 l gs col-1 s gr gr
+
+% arrowhead
+n 4305 3253 m 4275 3373 l 4245 3253 l 4275 3253 l 4305 3253 l cp gs 0.00 setgray ef gr col-1 s
+15.000 slw
+% Polyline
+ [100.0] 0 sd
+n 3450 4500 m 5325 4500 l gs col-1 s gr [] 0 sd
+7.500 slw
+% Polyline
+gs clippath
+6630 2778 m 6600 2898 l 6570 2778 l 6570 2940 l 6630 2940 l cp clip
+n 6600 1800 m 6600 2925 l gs col-1 s gr gr
+
+% arrowhead
+n 6630 2778 m 6600 2898 l 6570 2778 l 6600 2778 l 6630 2778 l cp gs 0.00 setgray ef gr col-1 s
+15.000 slw
+% Polyline
+gs clippath
+656 840 m 723 1078 l 552 900 l 713 1181 l 817 1121 l cp clip
+n 450 600 m 750 1125 l gs col-1 s gr gr
+
+% arrowhead
+n 656 840 m 723 1078 l 552 900 l 604 870 l 656 840 l cp gs 0.00 setgray ef gr col-1 s
+% Open spline
+gs clippath
+5627 1227 m 5749 1210 l 5650 1282 l 5800 1222 l 5778 1167 l cp clip
+7.500 slw
+n 4875.0 1350.0 m 5137.5 1350.0 l
+ 5137.5 1350.0 5400.0 1350.0 5587.5 1275.0 DrawSplineSection
+ 5775.0 1200.0 l gs col-1 s gr
+ gr
+
+% arrowhead
+n 5627 1227 m 5749 1210 l 5650 1282 l 5639 1255 l 5627 1227 l cp gs 0.00 setgray ef gr col-1 s
+% Open spline
+gs clippath
+7877 1227 m 7999 1210 l 7900 1282 l 8050 1222 l 8028 1167 l cp clip
+n 7125.0 1350.0 m 7387.5 1350.0 l
+ 7387.5 1350.0 7650.0 1350.0 7837.5 1275.0 DrawSplineSection
+ 8025.0 1200.0 l gs col-1 s gr
+ gr
+
+% arrowhead
+n 7877 1227 m 7999 1210 l 7900 1282 l 7889 1255 l 7877 1227 l cp gs 0.00 setgray ef gr col-1 s
+% Interp Spline
+gs clippath
+3308 4453 m 3423 4496 l 3300 4512 l 3461 4532 l 3468 4472 l cp clip
+n 2175 1650 m
+ 2346.9 1637.5 2421.9 1637.5 2475 1650 curveto
+ 2514.6 1659.3 2593.0 1702.0 2625 1725 curveto
+ 2665.4 1754.1 2753.1 1822.2 2775 1875 curveto
+ 2790.5 1912.4 2775.0 1990.8 2775 2025 curveto
+ 2775.0 2537.6 2542.8 3714.4 2775 4275 curveto
+ 2785.9 4301.4 2829.8 4335.4 2850 4350 curveto
+ 2882.0 4373.0 2962.7 4412.9 3000 4425 curveto
+ 3076.1 4449.8 3188.6 4468.5 3450 4500 curveto
+ gs col-1 s gr
+ gr
+
+% arrowhead
+n 3308 4453 m 3423 4496 l 3300 4512 l 3304 4483 l 3308 4453 l cp gs 0.00 setgray ef gr col-1 s
+% Interp Spline
+gs clippath
+5325 6973 m 5201 6969 l 5312 6914 l 5154 6949 l 5167 7007 l cp clip
+n 5100 4575 m
+ 5270.9 4558.6 5345.9 4558.6 5400 4575 curveto
+ 5465.1 4594.7 5582.7 4669.6 5625 4725 curveto
+ 5662.1 4773.6 5691.1 4895.0 5700 4950 curveto
+ 5764.9 5350.0 5796.1 6267.8 5700 6675 curveto
+ 5690.7 6714.6 5655.4 6794.6 5625 6825 curveto
+ 5594.6 6855.4 5511.4 6886.6 5475 6900 curveto
+ 5424.7 6918.6 5349.7 6937.4 5175 6975 curveto
+ gs col-1 s gr
+ gr
+
+% arrowhead
+n 5325 6973 m 5201 6969 l 5312 6914 l 5319 6944 l 5325 6973 l cp gs 0.00 setgray ef gr col-1 s
+% Interp Spline
+gs clippath
+3300 1202 m 3423 1205 l 3313 1261 l 3471 1226 l 3458 1168 l cp clip
+n 2250 1950 m
+ 2378.9 1959.4 2435.2 1959.4 2475 1950 curveto
+ 2514.6 1940.7 2593.0 1898.0 2625 1875 curveto
+ 2665.4 1845.9 2745.9 1765.4 2775 1725 curveto
+ 2821.1 1661.1 2878.9 1488.9 2925 1425 curveto
+ 2939.6 1404.8 2979.8 1364.6 3000 1350 curveto
+ 3032.0 1327.0 3113.7 1288.5 3150 1275 curveto
+ 3200.3 1256.4 3275.3 1237.7 3450 1200 curveto
+ gs col-1 s gr
+ gr
+
+% arrowhead
+n 3300 1202 m 3423 1205 l 3313 1261 l 3306 1231 l 3300 1202 l cp gs 0.00 setgray ef gr col-1 s
+/Times-Roman ff 180.00 scf sf
+3975 4650 m
+gs 1 -1 sc (next_free) col-1 sh gr
+/Times-Roman ff 180.00 scf sf
+4050 4875 m
+gs 1 -1 sc (magic) col-1 sh gr
+/Times-Bold ff 210.00 scf sf
+6825 3975 m
+gs 1 -1 sc (= allocated memory) col-1 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+3675 1125 m
+gs 1 -1 sc (AllocatedBlock) col-1 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+1575 1125 m
+gs 1 -1 sc (FixItem) col-1 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+2400 4650 m
+gs 1 -1 sc (FreeHeader) col-1 sh gr
+/Times-Bold ff 180.00 scf sf
+5250 3600 m
+gs 1 -1 sc 270.0 rot (item_size) col-1 sh gr
+/Times-Bold ff 270.00 scf sf
+300 525 m
+gs 1 -1 sc (fix_array) col-1 sh gr
+$F2psEnd
+rs
+end