Skip to content

Instantly share code, notes, and snippets.

@dwaite
Created January 10, 2009 18:55
Show Gist options
  • Save dwaite/45525 to your computer and use it in GitHub Desktop.
Save dwaite/45525 to your computer and use it in GitHub Desktop.
%!PS-Adobe-3.0 EPSF-3.0
%APL_DSC_Encoding: UTF8
%APLProducer: (Version 10.5.6 (Build 9G55) Quartz PS Context)
%%Title: (Unknown)
%%Creator: (Unknown)
%%CreationDate: (Unknown)
%%For: (Unknown)
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%Pages: 1
%%BoundingBox: 0 0 391 280
%%EndComments
%%BeginProlog
%%BeginFile: cg-pdf.ps
%%Copyright: Copyright 2000-2004 Apple Computer Incorporated.
%%Copyright: All Rights Reserved.
currentpacking true setpacking
/cg_md 141 dict def
cg_md begin
/L3? languagelevel 3 ge def
/bd{bind def}bind def
/ld{load def}bd
/xs{exch store}bd
/xd{exch def}bd
/cmmtx matrix def
mark
/sc/setcolor
/scs/setcolorspace
/dr/defineresource
/fr/findresource
/T/true
/F/false
/d/setdash
/w/setlinewidth
/J/setlinecap
/j/setlinejoin
/M/setmiterlimit
/i/setflat
/rc/rectclip
/rf/rectfill
/rs/rectstroke
/f/fill
/f*/eofill
/sf/selectfont
/s/show
/xS/xshow
/yS/yshow
/xyS/xyshow
/S/stroke
/m/moveto
/l/lineto
/c/curveto
/h/closepath
/n/newpath
/q/gsave
/Q/grestore
counttomark 2 idiv
{ld}repeat pop
/SC{
/ColorSpace fr scs
}bd
/sopr /setoverprint where{pop/setoverprint}{/pop}ifelse ld
/soprm /setoverprintmode where{pop/setoverprintmode}{/pop}ifelse ld
/cgmtx matrix def
/sdmtx{cgmtx currentmatrix pop}bd
/CM {cgmtx setmatrix}bd
/cm {cmmtx astore CM concat}bd
/W{clip newpath}bd
/W*{eoclip newpath}bd
statusdict begin product end dup (HP) anchorsearch{
pop pop pop
true
}{
pop
(hp) anchorsearch{
pop pop true
}{
pop false
}ifelse
}ifelse
{
{
{
pop pop
(0)dup 0 4 -1 roll put
F charpath
}cshow
}
}{
{F charpath}
}ifelse
/cply exch bd
/cps {cply stroke}bd
/pgsave 0 def
/bp{/pgsave save store}bd
/ep{pgsave restore showpage}def
/re{4 2 roll m 1 index 0 rlineto 0 exch rlineto neg 0 rlineto h}bd
/scrdict 10 dict def
/scrmtx matrix def
/patarray 0 def
/createpat{patarray 3 1 roll put}bd
/makepat{
scrmtx astore pop
gsave
initgraphics
CM
patarray exch get
scrmtx
makepattern
grestore
setpattern
}bd
/cg_BeginEPSF{
userdict save/cg_b4_Inc_state exch put
userdict/cg_endepsf/cg_EndEPSF load put
count userdict/cg_op_count 3 -1 roll put
countdictstack dup array dictstack userdict/cg_dict_array 3 -1 roll put
3 sub{end}repeat
/showpage {} def
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
false setstrokeadjust false setoverprint
}bd
/cg_EndEPSF{
countdictstack 3 sub { end } repeat
cg_dict_array 3 1 index length 3 sub getinterval
{begin}forall
count userdict/cg_op_count get sub{pop}repeat
userdict/cg_b4_Inc_state get restore
F setpacking
}bd
/cg_biproc{currentfile/RunLengthDecode filter}bd
/cg_aiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}bd
/ImageDataSource 0 def
L3?{
/cg_mibiproc{pop pop/ImageDataSource{cg_biproc}def}bd
/cg_miaiproc{pop pop/ImageDataSource{cg_aiproc}def}bd
}{
/ImageBandMask 0 def
/ImageBandData 0 def
/cg_mibiproc{
string/ImageBandMask xs
string/ImageBandData xs
/ImageDataSource{[currentfile/RunLengthDecode filter dup ImageBandMask/readstring cvx
/pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd
}bd
/cg_miaiproc{
string/ImageBandMask xs
string/ImageBandData xs
/ImageDataSource{[currentfile/ASCII85Decode filter/RunLengthDecode filter
dup ImageBandMask/readstring cvx
/pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd
}bd
}ifelse
/imsave 0 def
/BI{save/imsave xd mark}bd
/EI{imsave restore}bd
/ID{
counttomark 2 idiv
dup 2 add
dict begin
{def} repeat
pop
/ImageType 1 def
/ImageMatrix[Width 0 0 Height neg 0 Height]def
currentdict dup/ImageMask known{ImageMask}{F}ifelse exch
L3?{
dup/MaskedImage known
{
pop
<<
/ImageType 3
/InterleaveType 2
/DataDict currentdict
/MaskDict
<< /ImageType 1
/Width Width
/Height Height
/ImageMatrix ImageMatrix
/BitsPerComponent 1
/Decode [0 1]
currentdict/Interpolate known
{/Interpolate Interpolate}if
>>
>>
}if
}if
exch
{imagemask}{image}ifelse
end
}bd
/cguidfix{statusdict begin mark version end
{cvr}stopped{cleartomark 0}{exch pop}ifelse
2012 lt{dup findfont dup length dict begin
{1 index/FID ne 2 index/UniqueID ne and
{def} {pop pop} ifelse}forall
currentdict end definefont pop
}{pop}ifelse
}bd
/t_array 0 def
/t_i 0 def
/t_c 1 string def
/x_proc{
exch t_array t_i get add exch moveto
/t_i t_i 1 add store
}bd
/y_proc{
t_array t_i get add moveto
/t_i t_i 1 add store
}bd
/xy_proc{
t_array t_i 2 copy 1 add get 3 1 roll get
4 -1 roll add 3 1 roll add moveto
/t_i t_i 2 add store
}bd
/sop 0 def
/cp_proc/x_proc ld
/base_charpath
{
/t_array xs
/t_i 0 def
{
t_c 0 3 -1 roll put
currentpoint
t_c cply sop
cp_proc
}forall
/t_array 0 def
}bd
/sop/stroke ld
/nop{}def
/xsp/base_charpath ld
/ysp{/cp_proc/y_proc ld base_charpath/cp_proc/x_proc ld}bd
/xysp{/cp_proc/xy_proc ld base_charpath/cp_proc/x_proc ld}bd
/xmp{/sop/nop ld /cp_proc/x_proc ld base_charpath/sop/stroke ld}bd
/ymp{/sop/nop ld /cp_proc/y_proc ld base_charpath/sop/stroke ld}bd
/xymp{/sop/nop ld /cp_proc/xy_proc ld base_charpath/sop/stroke ld}bd
/refnt{
findfont dup length dict copy dup
/Encoding 4 -1 roll put
definefont pop
}bd
/renmfont{
findfont dup length dict copy definefont pop
}bd
L3? dup dup{save exch}if
/Range 0 def
/DataSource 0 def
/val 0 def
/nRange 0 def
/mulRange 0 def
/d0 0 def
/r0 0 def
/di 0 def
/ri 0 def
/a0 0 def
/a1 0 def
/r1 0 def
/r2 0 def
/dx 0 def
/Nsteps 0 def
/sh3tp 0 def
/ymax 0 def
/ymin 0 def
/xmax 0 def
/xmin 0 def
/setupFunEval
{
begin
/nRange Range length 2 idiv store
/mulRange
[
0 1 nRange 1 sub
{
2 mul/nDim2 xd
Range nDim2 get
Range nDim2 1 add get
1 index sub
255 div
exch
}for
]store
end
}bd
/FunEval
{
begin
nRange mul /val xd
0 1 nRange 1 sub
{
dup 2 mul/nDim2 xd
val
add DataSource exch get
mulRange nDim2 get mul
mulRange nDim2 1 add get
add
}for
end
}bd
/max
{
2 copy lt
{exch pop}{pop}ifelse
}bd
/sh2
{
/Coords load aload pop
3 index 3 index translate
3 -1 roll sub
3 1 roll exch
sub
2 copy
dup mul exch dup mul add sqrt
dup
scale
atan
rotate
/Function load setupFunEval
clippath {pathbbox}stopped {0 0 0 0}if newpath
/ymax xs
/xmax xs
/ymin xs
/xmin xs
currentdict/Extend known
{
/Extend load 0 get
{
0/Function load FunEval sc
xmin ymin xmin abs ymax ymin sub rectfill
}if
}if
/Nsteps/Function load/Size get 0 get 1 sub store
/dx 1 Nsteps div store
gsave
/di ymax ymin sub store
/Function load
0 1 Nsteps
{
1 index FunEval sc
0 ymin dx di rectfill
dx 0 translate
}for
pop
grestore
currentdict/Extend known
{
/Extend load 1 get
{
Nsteps/Function load FunEval sc
1 ymin xmax 1 sub abs ymax ymin sub rectfill
}if
}if
}bd
/shp
{
4 copy
dup 0 gt{
0 exch a1 a0 arc
}{
pop 0 moveto
}ifelse
dup 0 gt{
0 exch a0 a1 arcn
}{
pop 0 lineto
}ifelse
fill
dup 0 gt{
0 exch a0 a1 arc
}{
pop 0 moveto
}ifelse
dup 0 gt{
0 exch a1 a0 arcn
}{
pop 0 lineto
}ifelse
fill
}bd
/calcmaxs
{
xmin dup mul ymin dup mul add sqrt
xmax dup mul ymin dup mul add sqrt
xmin dup mul ymax dup mul add sqrt
xmax dup mul ymax dup mul add sqrt
max max max
}bd
/sh3
{
/Coords load aload pop
5 index 5 index translate
3 -1 roll 6 -1 roll sub
3 -1 roll 5 -1 roll sub
2 copy dup mul exch dup mul add sqrt
/dx xs
2 copy 0 ne exch 0 ne or
{
exch atan rotate
}{
pop pop
}ifelse
/r2 xs
/r1 xs
/Function load
dup/Size get 0 get 1 sub
/Nsteps xs
setupFunEval
dx r2 add r1 lt{
0
}{
dx r1 add r2 le
{
1
}{
r1 r2 eq
{
2
}{
3
}ifelse
}ifelse
}ifelse
/sh3tp xs
clippath {pathbbox}stopped {0 0 0 0}if
newpath
/ymax xs
/xmax xs
/ymin xs
/xmin xs
dx dup mul r2 r1 sub dup mul sub dup 0 gt
{
sqrt r2 r1 sub atan
/a0 exch 180 exch sub store
/a1 a0 neg store
}{
pop
/a0 0 store
/a1 360 store
}ifelse
currentdict/Extend known
{
/Extend load 0 get r1 0 gt and
{
0/Function load FunEval sc
{
{
dx 0 r1 360 0 arcn
xmin ymin moveto
xmax ymin lineto
xmax ymax lineto
xmin ymax lineto
xmin ymin lineto
eofill
}
{
r1 0 gt{0 0 r1 0 360 arc fill}if
}
{
0 r1 xmin abs r1 add neg r1 shp
}
{
r2 r1 gt{
0 r1
r1 neg r2 r1 sub div dx mul
0
shp
}{
0 r1 calcmaxs
dup
r2 add dx mul dx r1 r2 sub sub div
neg
exch 1 index
abs exch sub
shp
}ifelse
}
}sh3tp get exec
}if
}if
/d0 0 store
/r0 r1 store
/di dx Nsteps div store
/ri r2 r1 sub Nsteps div store
/Function load
0 1 Nsteps
{
1 index FunEval sc
d0 di add r0 ri add d0 r0 shp
{
d0 0 r0 a1 a0 arc
d0 di add 0 r0 ri add a0 a1 arcn
fill
d0 0 r0 a0 a1 arc
d0 di add 0 r0 ri add a1 a0 arcn
fill
}pop
/d0 d0 di add store
/r0 r0 ri add store
}for
pop
currentdict/Extend known
{
/Extend load 1 get r2 0 gt and
{
Nsteps/Function load FunEval sc
{
{
dx 0 r2 0 360 arc fill
}
{
dx 0 r2 360 0 arcn
xmin ymin moveto
xmax ymin lineto
xmax ymax lineto
xmin ymax lineto
xmin ymin lineto
eofill
}
{
xmax abs r1 add r1 dx r1 shp
}
{
r2 r1 gt{
calcmaxs dup
r1 add dx mul dx r2 r1 sub sub div
exch 1 index
exch sub
dx r2
shp
}{
r1 neg r2 r1 sub div dx mul
0
dx
r2
shp
}ifelse
}
}
sh3tp get exec
}if
}if
}bd
/sh
{
begin
/ShadingType load dup dup 2 eq exch 3 eq or
{
gsave
newpath
/ColorSpace load scs
currentdict/BBox known
{
/BBox load aload pop
2 index sub
3 index
3 -1 roll exch sub
exch rectclip
}if
2 eq
{sh2}{sh3}ifelse
grestore
}{
pop
(DEBUG: shading type unimplemented\n)print flush
}ifelse
end
}bd
{restore}if not dup{save exch}if
L3?{
/sh/shfill ld
/csq/clipsave ld
/csQ/cliprestore ld
}if
{restore}if
end
setpacking
%%EndFile
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%PageBoundingBox: 0 0 391 280
%%BeginPageSetup
cg_md begin
bp
sdmtx
[ /CIEBasedABC 4 dict dup begin
/WhitePoint [ 0.9505 1.0000 1.0891 ] def
/DecodeABC [ { 1.8008 exp } bind { 1.8008 exp } bind { 1.8008 exp } bind ] def
/MatrixABC [ 0.4294 0.2332 0.0202 0.3278 0.6737 0.1105 0.1933 0.0938 0.9580 ] def
/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def
end ] /Cs1 exch/ColorSpace dr pop
%%EndPageSetup
/Cs1 SC
0.50196081 0 0 sc
q
0 0 390.99823 279.28162 rc
195.48541 44.276611 m
170.08031 44.276611 149.48541 64.871521 149.48541 90.276611 c
149.48541 115.68172 170.08031 136.27661 195.48541 136.27661 c
220.8905 136.27661 241.48541 115.68172 241.48541 90.276611 c
241.48541 64.871521 220.8905 44.276611 195.48541 44.276611 c
h
f
8.0749283 89.286179 m
13.737221 99.090385 26.275295 102.44807 36.079498 96.785774 c
137.39627 38.271584 l
147.20047 32.609291 150.55817 20.07122 144.89587 10.267014 c
139.23358 0.4628067 126.6955 -2.8948746 116.8913 2.7674179 c
15.574526 61.281605 l
5.770319 66.943893 2.4126358 79.481972 8.0749273 89.286179 c
h
f
246.08359 10.252029 m
240.41916 20.055 243.77409 32.593803 253.57706 38.258247 c
354.88101 96.79464 l
364.68396 102.45908 377.22278 99.104141 382.88721 89.301178 c
388.55167 79.498215 385.19672 66.959404 375.39377 61.29496 c
274.08981 2.7585678 l
264.28683 -2.9058685 251.74803 0.44906616 246.0836 10.252029 c
h
f
1 0.50196081 0 sc
390.98541 83.276611 m
389.28314 106.02394 387.16736 129.02444 379.09213 150.66797 c
357.83453 207.64331 311.09723 251.88493 253.26978 270.46484 c
234.41653 276.52237 214.67383 278.53448 194.98538 279.27661 c
165.30066 277.89191 137.08115 272.60403 110.0113 259.94888 c
60.157078 236.64203 21.457909 189.5961 6.202682 136.9953 c
1.0120167 119.09775 -0.08602199 100.87024 0.010688514 82.276611 c
5.5022717 88.943283 9.523551 97.928345 17.48539 101.27661 c
24.675335 104.30026 31.028038 100.94328 38.799355 100.27661 c
38.492188 159.313 73.3013 198.64665 127.2617 223.87332 c
148.43707 233.77289 171.5932 238.97853 194.98209 239.27661 c
213.47275 239.51227 232.70596 235.83054 249.9606 229.32117 c
269.51401 221.94458 287.48996 210.5282 302.61713 196.12262 c
317.74457 181.71677 330.02539 164.3201 338.35712 145.15424 c
346.77539 125.78926 349.48541 111.71924 351.48541 100.71924 c
356.48541 100.71924 367.20224 104.04584 374.48541 100.71924 c
382.01978 97.277908 385.80188 88.757492 390.96011 82.276611 c
390.96854 82.60994 391.01028 82.944107 390.98541 83.276611 c
h
f
298.48541 82.276611 m
318.4903 82.276611 315.4881 110.07909 309.92957 124.9776 c
295.29703 164.19717 271.17667 186.98531 231.37064 199.77484 c
218.39264 203.94463 208.53238 204.76578 194.97949 205.27661 c
177.2673 204.45039 164.76369 202.78503 148.25369 196.02432 c
110.65131 180.62643 88.402496 155.41083 77.110191 116.44116 c
75.485405 98.719238 74.485405 82.719238 90.485397 82.276611 c
116.5899 81.554451 110.88076 109.13097 118.53167 123.29761 c
124.91779 135.12234 131.36258 142.77936 141.94391 151.06635 c
166.3667 170.19357 191.12619 174.22623 220.7171 165.3851 c
238.13541 160.18088 249.75977 152.03041 261.39185 138.14911 c
268.36749 129.8246 272.71649 122.77252 276.2821 112.47971 c
283.6832 102.41201 276.47833 82.276611 298.48541 82.276611 c
h
f
ep
end
%%Trailer
%%EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment