changeset 0:9fc7603e8e8b

add nobu-prosym
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Thu, 17 Nov 2011 08:38:35 +0900
parents
children 878e70793abe
files Makefile Makefile.sample Makefile.sample~ Makefile~ codesegment.eps ebibsample.bib figure/.DS_Store figure/codesegment.eps figure/codesegment.graffle figure/continuation.eps figure/continuation.graffle figure/factorial.eps figure/factorial.graffle figure/fastcall.eps figure/fastcall.graffle ipsjcommon.sty ipsjdrafts.sty ipsjpapers.cls ipsjpapers.sty ipsjsort.bst ipsjunsrt.bst nobu-prosym.aux nobu-prosym.dvi nobu-prosym.log nobu-prosym.pdf nobu-prosym.tex nobu-prosym.tex~ sample.pdf sample.tex
diffstat 29 files changed, 10480 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,11 @@
+all: nobu-prosym.pdf
+
+nobu-prosym.pdf: nobu-prosym.dvi
+	dvipdfmx nobu-prosym.dvi
+	open nobu-prosym.pdf
+
+nobu-prosym.dvi: nobu-prosym.tex
+	platex nobu-prosym.tex
+
+clean:
+	rm *.{log,aux,dvi,pdf}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.sample	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,11 @@
+all: sample.pdf
+
+sample.pdf: sample.dvi
+	dvipdfmx sample.dvi
+	open sample.pdf
+
+sample.dvi: sample.tex
+	platex sample.tex
+
+clean:
+	rm *.{log,aux,dvi,pdf}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.sample~	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,11 @@
+all: nobu-prosym.pdf
+
+nobu-prosym.pdf: nobu-prosym.dvi
+	dvipdfmx nobu-prosym.dvi
+	open nobu-prosym.pdf
+
+nobu-prosym.dvi: nobu-prosym.tex
+	platex nobu-prosym.tex
+
+clean:
+	rm *.{log,aux,dvi,pdf}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile~	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,11 @@
+all: nobu-graduation.pdf
+
+nobu-graduation.pdf: nobu-graduation.dvi
+	dvipdfmx nobu-graduation.dvi
+	open nobu-graduation.pdf
+
+nobu-graduation.dvi: nobu-graduation.tex
+	platex nobu-graduation.tex
+
+clean:
+	rm *.{log,aux,dvi,pdf}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/codesegment.eps	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1021 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%HiResBoundingBox: 0.000000 0.000000 385.000000 201.000000
+%APL_DSC_Encoding: UTF8
+%APLProducer: (Version 10.7.2 (Build 11C74) Quartz PS Context)
+%%Title: (Unknown)
+%%Creator: (Unknown)
+%%CreationDate: (Unknown)
+%%For: (Unknown)
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 0 0 385 201
+%%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 385 201
+%%BeginPageSetup
+cg_md begin
+bp
+sdmtx
+%RBIBeginFontSubset: Helvetica
+%!FontType1-1.0: Helvetica 1.0000.0.0000
+
14 dict begin/FontName /Helvetica def
+
/PaintType 0 def
+
/Encoding 256 array 0 1 255{1 index exch/.notdef put}for
+
dup 33 /c put
+
dup 34 /o put
+
dup 35 /d put
+
dup 36 /e put
+
dup 37 /s put
+
dup 38 /g put
+
dup 39 /m put
+
dup 40 /n put
+
dup 41 /t put
+
readonly def
+
42/FontType resourcestatus{pop pop false}{true}ifelse
+
%APLsfntBegin
+
{currentfile 0(%APLsfntEnd\n)/SubFileDecode filter flushfile}if
+
/FontType 42 def
+
/FontMatrix matrix def
+
/FontBBox[2048 -1947 1 index div -985 2 index div 2961 3 index div 2297 5 -1 roll div]cvx def
+
/sfnts [<
+
74727565000900000000000063767420000000000000009C0000036C6670676D000000000000040800000A1D676C79660000000000000E2800000A286865616400000000000018500000003668686561000000000000188800000024686D747800000000000018AC000000286C6F636100000000000018D4000000166D61787000000000000018EC0000002070726570000000000000190C000003CF05C0001005BD00280580001A042F001F0000FFD90000FFDA0000FFD9FE55FFE605C70010FE6DFFF1033B000000B9000000B902FE3F3C00C0008D009B00AF000600A800C00028005E009800C9016A00B9015C00B400D6011E002E0080000400B8004C00CC01FFFFD1006600A400AF007400C2009500B1000C0028006D0015004C008E0125FF7A000C0040004C00620084FFA200240038008600BD0039005E008E00EDFFA9FFB300400052005500AA00AB00C200CB012302B10413FFAEFFE4000800510074008400AA00D1FF4CFFAF0012002C004200500051008400BE012503DAFF680018003B0098009C009F00A100C100EC018201B4FF68FF76FFD0FFE100020018001C00530053007D01B401E103AF0486FF9CFFEAFFFE001F0028002A00520060009300A300AA00AF00AF00C001000145016B0174019301950240028202B404850517FEFD00060029004700470048006F008800B400B900C400F200F901EF02180310037403C5FF35FFF3000B004B004C0052005500650076007600870087008E00AB00BB0106013001430150017D0194019501D3022A025502580277027802E6034E035C037903D3047304B2058C0598060BFEF5FFBBFFC7FFD50017001D005B0072007E009C00C200D000F400FA01030106011C0125013B0142015E015E0180019B02B901A101B9025001C001D002AA01DF01E301EF01FB0205020C0215022B0274029302AB02C202CE03690395039903DF03F5043E050205A105E5062507DBFE62FE89FECEFF3BFFE1FFF800030008002100390042004E005F0061006F00700034007F008E00AD00AD00AF00BD00C400C500C900C900C900E3011C00ED00F800F901000112011A0132014D014D014E014F01660169019E01BA01BA01BE01E301EF01F602000200020902110217021C02530262026D028002D50280031B032A034A035A03AF03AF03C803D603FB03FB04050413041504470449008C046D049A049A04A604A804B204CF0539053E054E055605800589058C036305D105D6067E068E06B206EF06F00728074C076F078C00B400C900C000C10000000000000000000000000004012400AF0032006E0063014401620096014301A10161008A00740064018801EF01700028FF5D037E0347023000AA00BE007B0062009A007D0089035C00A1FFD803AA00D70093006C0000008000A70442001D0597001D00820030002A
+
002A002A002A002A40292A292827262524232221201F1E1D1C1B1A191817161514131211100D0C0B0A090807060504030201002C4523466020B02660B004262348482D2C452346236120B02661B004262348482D2C45234660B0206120B04660B004262348482D2C4523462361B0206020B02661B02061B004262348482D2C45234660B0406120B06660B004262348482D2C4523462361B0406020B02661B04061B004262348482D2C0110203C003C2D2C20452320B0CD442320B8015A51582320B08D44235920B0ED51582320B04D44235920B09051582320B00D44235921212D2C20204518684420B001602045B04676688A4560442D2C01B9400000000A2D2C00B9000040000B2D2C2045B00043617D6818B0004360442D2C45B01A234445B01923442D2C2045B00325456164B050515845441B2121592D2C20B0032552582359212D2C69B04061B0008B0C6423648BB8400062600C642364615C58B0036159B002602D2C45B0112BB0172344B0177AE5182D2C45B0112BB01723442D2C45B0112BB017458CB0172344B0177AE5182D2CB002254661658A46B040608B482D2CB0022546608A46B040618C482D2C4B53205C58B002855958B00185592D2C20B0032545B019236A4445B01A23444565234520B00325606A20B009234223688A6A606120B0005258B21A401A4523614459B0005058B219401945236144592D2CB9187E3B210B2D2CB92D412D410B2D2CB93B21187E0B2D2CB93B21E7830B2D2CB92D41D2C00B2D2CB9187EC4E00B2D2C4B525845441B2121592D2C0120B003252349B04060B0206320B000525823B002253823B002256538008A63381B212121212159012D2C456920B00943B0022660B00325B005254961B0805358B21940194523616844B21A401A4523606A44B209191A45652345604259B00943608A103A2D2C01B005251023208AF500B0016023EDEC2D2C01B005251023208AF500B0016123EDEC2D2C01B0062510F500EDEC2D2C20B001600110203C003C2D2C20B001610110203C003C2D2C764520B003254523616818236860442D2C7645B00325452361682318456860442D2C7645B0032545616823452361442D2C4569B014B0324B505821B0205961442DB8002B2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8002C2C2020456944B001602DB8002D2CB8002C2A212DB8002E2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8002F2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800302C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800312C2020456944B0016020
+
20457D691844B001602DB800322CB800312A2DB800332C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800342C4B535845441B2121592DB800352C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800362C2020456944B001602DB800372CB800362A212DB800382C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800392C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8003A2C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB8003B2C2020456944B001602020457D691844B001602DB8003C2CB8003B2A2DB8003D2C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8003E2C4B535845441B2121592DB8003F2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800402C2020456944B001602DB800412CB800402A212DB800422C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800432C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800442C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800452C2020456944B001602020457D691844B001602DB800462CB800452A2DB800472C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800482C4B535845441B2121592DB800492C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8004A2C2020456944B001602DB8004B2CB8004A2A212DB8004C2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8004D2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8004E2C4B20B0032650585158
+
B080441BB04044591B21212045B0C05058B0C0441B2159592DB8004F2C2020456944B001602020457D691844B001602DB800502CB8004F2A2DB800512C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800522C4B535845441B2121592DB800532C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800542C2020456944B001602DB800552CB800542A212DB800562C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800572C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800582C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800592C2020456944B001602020457D691844B001602DB8005A2CB800592A2DB8005B2C4B20B003265358B0401BB000598A8A20B0032653582321B0808A8A1B8A235920B0032653582321B800C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8005C2C4B535845441B2121592D00000000020042000004D005BD00030007003FB800532BB800082FB800092FB8000810B80000D0B800002FB8000910B80003DCB80004DCB8000010B80007DC00BA0007000000562BBA0002000500562B3031331121112711211142048EB8FCE205BDFA43B8044DFBB300000002003BFFE103D0044E001A001B00A7402FA719019818A808AA18034A08119B14030314061D1A070D1D140B1B071B1B1710271201032702111A1D0A2717191C1DB80107B321727D182B2B4EF44DED4E10F63C4DED3939ED12392F003F3FED3FED12392F10ED313043794034001908250C150A26000E1310260112110F1007190A26000500032101010204030B160D26000F120D2600091806260104010621012B2B2B2B01103C103C2B2B103C103C2B2B2B81005D015D001617232E012322070615141633323637330E01232202351000330702D6E317AF10727EAC4A308892708319AF1EF0BBD2FA0112D41C044EB0D76383A86DA0A1DC8977D5C50133E6011A013A0500020038FFDA03ED05C2000B001D00774032370E470E570EA704A91B05250814020F1D1000081D1D07130A021D170B052E132E102911121A1F0B271A191E1F87217242182B2B4EF44DED4E10F63C4DFDE4E4003FED3F3FED3F1139113931304379401A181C090A000101180B
+
2600091C0B260000190226000A1B0826012B2B012B2B818181005D1216333236353426232206150017161711331123350E0123220035341233F692A17DA1A67A88A9018A53303DADA23FAC6FB3FEFAEFDE015FE8D7C9CBC3D0CA0237341E4B021DFA3E956358012DFAEA015700030048FFDA041A0449001C00240025010C40799708991AA71F03050E020F0514150E120F1514400C401408291A014B0BB603C701C603C71BD808D909D61FD823E817E8230BC711C712025C080521240F9A161D243906070716211D1C070A1D160B2507971CA71CB71CD71C0425160F251C05190A0C07110E270F1D27051A27242E072719192627D421A65D182B2B4EF44DFDE44E10F64DEDD4FD391239391112393912392F5D003F3FED3FED12392F3CFD3C10ED1112393130437940460023040503050205010504061F26111012101310141004060C25221B24260020001D26011E1D09170726000B150E26010D0E231A2126011E0521260108180A26000D100A2600002B2B2B2B01103C2B2B103C2B2B2B2A2B2A8101715D00715D5D00161716171615211E013332373637330E01070607062322001110003301262726232206070102B4D638361210FCEF0590978D543014B1074F3152794152C8FEEA0118E2011F0B284AAD7CA805012304476B55516C4AA2A3C55D36473B912E501C100123010601020142FE26754682B38A01DC0000000003003DFE3B03E80449001F002D002E00B7404D36144908490958085909880CA91BA81DA927A62BB91B0B4008031622290EC40A221D1F070406291D190A121D0A0F2E072E2E051C032E162E2D29051A300C0E270D3E26271C192F3087217242182B2B4EF44DEDF4ED394E10F64DFDE4F51112392F003F3FED3FED3F3FED10ED1112393931304379402C23281A1E0B1124251026231E262600281A262600110B0E21000F0E0C0D251D222601271B2926000F0C122100002B2B2B01103C103C2B2B2B2B2B818181005D00171617353311140706212226273316171633323736270E0123222411100033002623220706151416333237363501027C5E3335A63C70FEC9ADEC0EB70D273D83CF40260336987DAEFEFB0107BA0144A47FBE4625937CC24F2CFED104423E234387FC32CC76DA9BA548273C9256DD5250F7011D010D012EFEA1C0B25F9AB5BDAF6384022D00000001008400000625044700260085403B0708070E060F1708170E170F2708270E270F4819560B670B0C23250A1A1D23190A02041725211D171D0D060700061B1C2503130A2817171A112914B80101B21A291DB80101400A00012E25292600192728B8010DB3216242182B2B4EF43C4DFDE410F4EDF4FD4E456544E6003F173C3F3F3C4DEDED111217390111123912393130005D13331536373633321716173E0133321716151123113426232206151123
+
1134272623220615112384B240345971804E2C243CA265D84E2ABB6B4D6A99B71A297066A7B4042F984F243D3F244656539C548EFD3702E86B508EA6FD9102BB6D324B9ECFFDC80000020084000003ED04490019001A005E4031B706C706020406140627147606740705140C021418101D05070006180B0A1A071A1A000C29091A1C012E18291900191B1CB80106B3216242182B2B4EF43C4DFDE44E10F64DED12392F003F3F3C3F3FED1139390112393130005D015D1333153E01333217161511231134272623220706070E011511230184AB4CAA68E4502CB71D307E40294A382D1BB401A7042F985E529F57A2FD5102A3623C640D1642357169FDCF0449000003003BFFD90421044E000C0018001900904033980896109916A504A808A610A916B808C808D704E50EE9140C3A08061D18070C1D120B190719191502270F1A1B092715191A1BB80109B321725D182B2B4EF44DED4E10F64DED12392F003F3FED3FED31304379402C001704260B1309260000110226010717092600050D0226010A140C260001100C26000816062601030E0626012B2B2B2B012B2B2B2B2B81005D241235342726232206151416331200111002212200351000330702E085304CBAA59696A3D6011EFCFEF7DDFEFC0112E70674010FA6965E94FCB2ABE403DAFEECFEF4FEFDFEAE012BFC010E01400500020042FFD703B6044B002E002F012E408F38099805961299149815982A062824252736214621472447275624572766246726790C790D790E7623742474257426A61EA82C1303000B15052D042E13001A151B171C18152D142E280F0B6908262536250225220D0A042B1318C61C1D1307041D2E9A2B0B2F07090E100207002F212F1A1F18161827173E28260727281A310E1F27103E00272E193031B221A65D182B2B4EF44DEDF4FD394E10F64DFD3910F4FD3911123939392F111239113939003F3FEDED3FEDED111217397131304379404C012D022615251A26210E1F21000926072101032C002100052A0721011D121F21001B14182101200F22210021220E0D08270A21012625090A012D04210006290421001E111C210119161C2101002B2B2B2B103C103C2B103C103C2B012B2B2B2B2B2B2B2B2B81005D5D015D13161716333236353427262F01262726353436333217160723262726232206151417161F011617161514062322262701EF082544A864983D27738F894174DBB9F26B4302AA05263E99666945284E77C24269D9DEEFC70701B701505A3057575B4524161D24222A498198BC8E5A683D32474E40462A19131D2F2C45948FD0D9A002F900010017FFEF0209055A00180052B50D2E0AC00E01B8013F40250416391703060E0A111A17171A0301062900150E150F031F030203FC1619191AFC21677D182B2B4EF44DFD5D39C42F3CFD3C104E4565
+
44E6002F3F3F3C4DFD3CED10FDE431301333113315231114171633323637150E012322263511233533A8B6ABAB2615310D1E141F43277E5A9191055AFED593FD4538130B01028E0908816702C593000000010000000000006B8BED625F0F3CF500110800000000005F4D8F0000000000C9C13CF7F865FC270B9108F9000000090001000000000000000100000629FE2900000C01F865FCED0B9100010000000000000000000000000000000A051200420400003B04730038047300480473003D06AA0084047300840473003B04000042023900170000003400B6012201EC02940310036C03E404C40514000000010000000A00920009006B0007000200100010005D000007E80A1D00040001B800532BB800492BB8003F2BB800352BB8002B2B4118008001A6009001A600A001A600030069018B0079018B0089018B0099018B00040089018B0099018B00A9018B00B9018BB2040840BA0179001A014A400B041F5414191F180A0B1FD2B80106B49E1FD918E3BB0119000D00E10119B20D0009410A01A0019F0064001F01A50025017A00480028019AB3296C1F60410A01A9007001A9008001A90003008001A9000101A9B21E321FBE012C00250401001F0126001E0401B61FE7312D1FE531B80201B21FC227B80401B21FC11EB80201400F1FC01D9E1FBF1D671FBE1D671FAB27B80401B21FAA29B80401B61FA91D6C1F931EB8019AB21F921DB80101B21F911DB80101B21F751DB80201B61F6D29961F6431B8019AB21F4C96B802ABB21F391DB80156400B1F3638211F351DE41F2F27B80801400B1F2D1D4C1F2A31CD1F241DB802ABB21F201EB8012540111F1C1D931F3A1D4C1F1E1D45273A1D4527BB01AA019B002A019BB2254A1FBA019B0025017AB349293896B8017BB348283125B8017A403648289629482725294C1F252946272729482756C80784075B07410732072B072807260721071B071408120810080E080C080A08080807B801ACB23F1F06BB01AB003F001F01ABB308060805B801AEB23F1F04BB01AD003F001F01ADB70804080208000814B8FFE0B40000010014B801ABB41000000100B801ABB606100000010006B801ADB300000100B801AD401F04000001000410000001001002000001000200000001000002010802004A00B0018DB806008516763F183F123E113946443E113946443E113946443E113946443E113946443E11394660443E11394660443E11394660442B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B18011DB0964B5358B0AA1D59B0324B5358B0FF1D592B2B2B2B2B2B2B2B182B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B74752B2B2B65422B2B4B5279B376706A66456523456023456560234560B08B766818B080622020B16A704565234520B0
+
03266062636820B003266165B070236544B06A234420B176664565234520B003266062636820B003266165B066236544B0762344B10066455458B166406544B27640764523614459B36242725D456523456023456560234560B089766818B080622020B172424565234520B003266062636820B003266165B042236544B072234420B1625D4565234520B003266062636820B003266165B05D236544B0622344B1005D455458B15D406544B262406245236144592B2B2B2B456953427374B8019A2045694B20B02853B049515A58B020615944B801A6204569447500
+
00>] def
+
/CharStrings 10 dict dup begin
+
/.notdef 0 def
+/c 1 def
+/d 2 def
+/e 3 def
+/g 4 def
+/m 5 def
+/n 6 def
+/o 7 def
+/s 8 def
+/t 9 def
+ end readonly def
+
currentdict dup/FontName get exch definefont pop end
+
%APLsfntEnd
+
42/FontType resourcestatus{pop pop true}{false}ifelse
+
{currentfile 0(%APLT1End\n)/SubFileDecode filter flushfile}if
+
/FontType 1 def
+
/FontMatrix [ 0.00048828125 0 0 0.00048828125 0 0 ] def
+
/FontBBox{-1947 -985 2961 2297}def
+
/UniqueID 4257378 def
+
currentdict currentfile eexec
+
54544758EC884CF30C3CD503CEDBFF3839C47C3C3333173232E3FDBFF439491DB843E1924E63AA7726BBB0485AB56D93D8C0906F647A47162891E73FFC2A9873C4B1EAC5EEBDFFC4D06084FBD84139DF4583C6E259D10699944D1068C9C45667DCCCFB9B7EA01B606435EDCBD273ABAC093D14085CCBAC149BD7382E842CFE0D7FE4FD2EF589A2471F6074A80A8B675C2F7A50D63AC1EF90D787BADD11633CB01CF6EE3B37AAF9078A69AC4740E9B6525D78BBD839551A1CB80DB8682FA5E87591BBD6EE8B946063A2A58D9CA3685AB305495DC5FB5747EB8A9A059C4976C0FE4EEAB1D56FF47F1E9664ED9F4A7DAB763AF92B2F6CF2FA7DEC24710E0B9096E30F772BA7FEA9BDBE496C42ED2CEB58F54E80BDF57CE7B4DB6CCFE7182F43BF93CCA0767AF95D62C5D2C3DC6AE1E6D139F51A2C63432117F1714C5566572EE9967A715420ABDCD1D7BD74F8450B89965FCC81C6ACA565C5F3CCF91D430D1F953E4F1A645300A98DD8C47CD64555F08F422340A85404EAE0D3229C4F9336B9470CACBD6BBF3395104750A915CC6EAAC197668267B8C62D2764C8CD69FD937CA3C924D997A0EDE7964BEB9EA2F92EF70C5E5DA0AA5567765E71F2B911B3C5586B741EEB93F3C73016EC16BFF283758900903D203992EFC8BAFAF13579C602F38C91B4F1C51BADFF3495C2924BE71970B75EDF2A199B50F98194813A33F63946432A100A72F0700E471C6AECB1F3AE72601F4FBA141E6DAA154933D47293681E1AF19EB09BC4B0B8EA08CB9CABB31741A44CF2EAB20ADC8CCB10041E91A8450A1C3A83C0D8A7A1CF3C8FD1095E69EF1D3170AD76CEE06E02AF47C641EE1485E6DE836985BC59DA1A2E6E367BF0C80CC7A7A71DB74D1466096944FE1D70969B23CDF8E83206FFD9E6C6C2F5CC615C32582DAF0B4EB9D786352AD3A0ED2B2EDFE69EDF671793E3E8CBFF2386C6CF8E6381139B08F28A96B7105542011331FE544A26335F9EA556441C0A6343A7C05AEDC67366A1B44C3F66DEA58643F87668E0F6F4AF67861F6101AA34179298307E0BA78A614DE48C9D3D387834E4275C82BE822AA102290A310A18E877ECEA50E28A4E18AB370A7785144F325105521D9311C7199D4E6272CB15A44C3E12823E998D850F06C0EF4ECCEA9B13FDFACD40B917D8CF2C5A1C8959CDB2F32916B06F389A3A5321D087406CD07B1D243DD5E90A305C5FBB3919B2F9B53B3FD6B054B086F029DB87A9D85028BA393594DCDEAEF2D5527097773CF3530E712B2430069319D3F9156BFFDC3438286106D07550EF1F760010304EECD42BB5B990F935E6F9DF57A4B9831C35D714CAC2288EF35B874E81D55C754B287A7F7CA0FE2A348FF8A027B387587232F4945135747F6D6B11D8C05707B2B614DC4B80ADC42435A539316DF2FE9AAD1028EC566A4B53522165B890B2BA1A
+
E72CFDD777A27A65BE9F12EF578B25CB33114DC277040E5906260EE2244D7C83623CD6D997339B4FB01EACD07C39C60F25C09CF632034BE4AB6DD689232BEA3963DC297D5BB0A0FE4B5A7A9EDFCC901F0F424585F9B8001F6C978D9449F17A7E7D90B74EB195517737628818CAD157EBE17ED46833B03E6F718AD961A33227D2E8842EE0D1C3048BE0761138ED4752996864192116D81753CD533010DE30BBEEBA8CAC33C7CCDFB1B7C4AD3F0E23CA800D7B168B0AACE9DA85DD6F2372F7737EC198D11D2A2DE7FF9044272E29D393DF9F5A1F20790E21F77A90A0793C34115954E28EAB254A3F12E166659D5F78AFD67253CD15313FA19AFF777BE210A3C77667A1348BB1CDE59A880CB337959EC7C48AE96CDDF638F30FD6890A38599CEDE7BF59FB10A1F7DFB9EEC9C4007374A01F89079B94B2FBC79FE01A5DDC963416B00552DB4709D83CDFBC2B5366F55083D196BB2FE597DBCAD571CA10C11B439F5F27D9371A6645456D60FEB314D2F3D63497E568AF0CE60FF7BA5B16AE81209F2FC9EDD46FEEE531BBEA85E215D52C02123F4157C8FE1EFB1AC019482718F47971417800090554FB8F231680B85400FB8BD0E9178DAF83D33884519E63A67B22D5C0E9A8C56F69E39A3D036FD6A80A1243D9CE9445276AC2E760F51B198682FB48A2EDE13D782D2717BCDD58D86A15B58017BC475F534080ED8F1CB2BFA4176AD8B6022796DDB6D3744948229497C3C21A5529D609DD070EE17C06E4A6A69DAF5592109FE2D59EC09740EF7AA7144F35A5FE43602F5DDC22E663A60C9E02BF90F4DC0C3B3979284A246D12C9B75C0B20D68B029188710F36B2DCB6F6AA1B32ABC90B4FD5C59C993C13B01033F8EF16138FD1F6C4FF52501440807228700393C3F29EE5431DF9539B7929D1787CEF6D19BB774A5FBA12AC3E66C9A22C7EF8B979B581CF6445131BE2A28B3B7A4B2D30BC9BCC16644F11C5FAEB8C0D0253D1F511D24BF433753E51628D1785C9B27938121C5F574CE40EEA5844DCAB2A0A977A01761F8D77B1033BE9F0C1BAA46BE397B9EC6A346C29CC9D1808970F1EED9F40046C4EEC40865E561C85160FEC6782553AEAA457E0F1D7E23635BE13BEC5F8CFB3F94B263E44F1CF93381F2902155CEA0806F7EB5F1574039451017F32DF26AA451823B6C6CA40CEA84654E36F26F23761BD02CC93AB8E13087FD48AD3965926FC96C68FFBB70E182D58E1BD74BA3DBBD62CD11443951979A61142B9C57EDC50E044A5B7AFD783AE3D8BD0E5413337F169B2925E10A628A8D62109F9F57403A900ECE74FA4FFE896275DA755A0E20DF157D73F32A166B5AEA79715CA84A5135F05FB87A74B3FA22CA90472E52273C0B43BE72424991088F1E5B04C49488865C295C4C8061641928787866CB375CE74D356C71FAAAC94B44219E224E9BBB18F9133B5
+
E63BD8955E39492047C27FA03DE8CAD99BEBFC1DD0D0BE6BAC347994C4E69A44B027D8D505F1A1830D9170138751E6146EA11EE3136D03EEE5A331AE8C167B7096D6349FF20B40650EF61F9108651F62E545AE110F10C1C6894B7625F5AC09006E24184D4F78CE49B77155DBAED94D244EE497000DA9B15B8DE111A9B3DB78F7862D022C704E6F6DE0D2D016BF85FCB6E77FA8B7E8557F3FD34D1E1F97F8A2063015949AB7296D813BF8575D9FB076E17686F657A3FD26EAEB15E796C6FBDA1575857840C4B5AC
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
cleartomark end
+
%APLT1End
+
%RBIEndFontSubset
+/Helvetica cguidfix
+/F1.1/Helvetica renmfont
+[ /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.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def 
+/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def 
+end ] /Cs1 exch/ColorSpace dr pop
+[ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def 
+/DecodeA { { 1.8008  exp } bind  exec} bind 
+def 
+/MatrixA [ 0.9642 1.0000 0.8249 ] def 
+/RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def 
+/DecodeLMN [ { 0.9857  mul} bind { 1.0000  mul} bind { 1.3202  mul} bind ] def 
+end ] /Cs2 exch/ColorSpace dr pop
+%%EndPageSetup
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+q
+0 0 385 201 rc
+-87.5 244.5 m
+471.5 244.5 l
+471.5 -538.5 l
+-87.5 -538.5 l
+h
+-87.5 244.5 m
+f
+217.95581 182.09186 m
+232.01477 171.54771 232.01477 154.45229 217.95581 143.90814 c
+203.89694 133.36394 181.10306 133.36394 167.04419 143.90814 c
+152.98524 154.45229 152.98524 171.54771 167.04419 182.09186 c
+181.10306 192.63606 203.89694 192.63606 217.95581 182.09186 c
+f
+1 J
+1 j
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+304.95581 61.908142 m
+319.01477 72.452286 319.01477 89.547714 304.95581 100.09186 c
+290.89694 110.63606 268.10306 110.63606 254.04419 100.09186 c
+239.98524 89.547714 239.98524 72.452286 254.04419 61.908142 c
+268.10306 51.363937 290.89694 51.363937 304.95581 61.908142 c
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 192.5 163 cm
+/F1.1[ 12 0 0 -12 0 0]sf
+-13.010742 -3 m
+(!"#$)[ 6.000000 6.673828 6.673828 0.000000 ] xS
+-23.012695 11 m
+(%$&'$\(\))[ 6.000000 6.673828 6.673828 9.996094 6.673828 6.673828 0.000000 ] xS
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+CM
+121.45581 119.09186 m
+135.51476 108.54771 135.51476 91.452286 121.45581 80.908142 c
+107.39696 70.363937 84.603043 70.363937 70.544189 80.908142 c
+56.485245 91.452286 56.485245 108.54771 70.544189 119.09186 c
+84.603043 129.63606 107.39696 129.63606 121.45581 119.09186 c
+f
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+208.45581 124.90814 m
+222.51476 135.45229 222.51476 152.54771 208.45581 163.09186 c
+194.39696 173.63606 171.60304 173.63606 157.54419 163.09186 c
+143.48524 152.54771 143.48524 135.45229 157.54419 124.90814 c
+171.60304 114.36394 194.39696 114.36394 208.45581 124.90814 c
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 96 100 cm
+-13.010742 -3 m
+(!"#$)[ 6.000000 6.673828 6.673828 0.000000 ] xS
+-23.012695 11 m
+(%$&'$\(\))[ 6.000000 6.673828 6.673828 9.996094 6.673828 6.673828 0.000000 ] xS
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+CM
+217.95581 57.091858 m
+232.01477 46.547714 232.01477 29.452286 217.95581 18.908142 c
+203.89694 8.3639374 181.10306 8.3639374 167.04419 18.908142 c
+152.98524 29.452286 152.98524 46.547714 167.04419 57.091858 c
+181.10306 67.636063 203.89694 67.636063 217.95581 57.091858 c
+f
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+304.95581 186.90814 m
+319.01477 197.45229 319.01477 214.54771 304.95581 225.09186 c
+290.89694 235.63606 268.10306 235.63606 254.04419 225.09186 c
+239.98524 214.54771 239.98524 197.45229 254.04419 186.90814 c
+268.10306 176.36394 290.89694 176.36394 304.95581 186.90814 c
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 192.5 38 cm
+-13.010742 -3 m
+(!"#$)[ 6.000000 6.673828 6.673828 0.000000 ] xS
+-23.012695 11 m
+(%$&'$\(\))[ 6.000000 6.673828 6.673828 9.996094 6.673828 6.673828 0.000000 ] xS
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+CM
+314.45581 119.09186 m
+328.51477 108.54771 328.51477 91.452286 314.45581 80.908142 c
+300.39694 70.363937 277.60306 70.363937 263.54419 80.908142 c
+249.48523 91.452286 249.48523 108.54771 263.54419 119.09186 c
+277.60306 129.63606 300.39694 129.63606 314.45581 119.09186 c
+f
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+401.45581 124.90814 m
+415.51477 135.45229 415.51477 152.54771 401.45581 163.09186 c
+387.39694 173.63606 364.60306 173.63606 350.54419 163.09186 c
+336.48523 152.54771 336.48523 135.45229 350.54419 124.90814 c
+364.60306 114.36394 387.39694 114.36394 401.45581 124.90814 c
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 289 100 cm
+-13.010742 -3 m
+(!"#$)[ 6.000000 6.673828 6.673828 0.000000 ] xS
+-23.012695 11 m
+(%$&'$\(\))[ 6.000000 6.673828 6.673828 9.996094 6.673828 6.673828 0.000000 ] xS
+0.60000002 i
+/Cs1 SC
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+263.99042 181.10806 m
+255.66112 167.74005 239.17242 153.59843 239 141 c
+238.86552 131.1747 248.65485 122.2834 256.7583 113.23431 c
+S
+CM
+174.76678 137.00809 m
+167.42043 132.64566 l
+172.10031 128.89084 l
+h
+174.76678 137.00809 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+261.76678 106.99191 m
+254.42043 111.35434 l
+259.10031 115.10916 l
+h
+261.76678 106.99191 m
+S
+1 J
+1 j
+293.55569 106.37833 m
+300.86972 119.58424 315.33691 133.57384 315.5 146 c
+315.62512 155.53319 307.33127 164.15057 300.30731 172.90524 c
+S
+CM
+208.64276 64.600464 m
+215.74634 69.348007 l
+210.87311 72.848221 l
+h
+208.64276 64.600464 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+295.64276 179.39954 m
+302.74634 174.65199 l
+297.87311 171.15178 l
+h
+295.64276 179.39954 m
+S
+1 J
+1 j
+210.57339 125.99872 m
+243.63681 104.41327 l
+S
+CM
+163.33562 143.96004 m
+154.99681 142.09877 l
+158.27679 137.07466 l
+h
+163.33562 143.96004 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+250.33562 100.03996 m
+241.99681 101.90123 l
+245.27679 106.92534 l
+h
+250.33562 100.03996 m
+S
+1 J
+1 j
+210.76186 161.83664 m
+243.40907 182.81206 l
+S
+CM
+163.13963 56.863647 m
+158.03069 63.711899 l
+154.78746 58.663986 l
+h
+163.13963 56.863647 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+250.13963 187.13635 m
+245.03069 180.2881 l
+241.78746 185.33601 l
+h
+250.13963 187.13635 m
+S
+1 J
+1 j
+307.26184 188.16338 m
+339.90909 167.18794 l
+S
+CM
+259.63965 81.136353 m
+251.28748 79.336014 l
+254.5307 74.288101 l
+h
+259.63965 81.136353 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+346.63965 162.86365 m
+338.28748 164.66399 l
+341.5307 169.7119 l
+h
+346.63965 162.86365 m
+S
+1 J
+1 j
+307.07343 99.001297 m
+340.13684 120.58673 l
+S
+CM
+259.83563 119.03996 m
+254.77682 125.92533 l
+251.49683 120.90122 l
+h
+259.83563 119.03996 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+346.83563 124.96004 m
+341.77682 118.07467 l
+338.49683 123.09878 l
+h
+346.83563 124.96004 m
+S
+1 J
+1 j
+412.50003 144 m
+447.67145 144 l
+S
+CM
+372.10001 100 m
+360.67145 104.28572 l
+360.67145 95.714294 l
+h
+372.10001 100 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+459.10001 144 m
+447.67145 139.71428 l
+447.67145 148.28571 l
+h
+459.10001 144 m
+S
+1 J
+1 j
+98.500031 144.5 m
+133.17278 144.29485 l
+S
+CM
+57.601151 99.772781 m
+46.147415 103.99078 l
+46.198151 95.41951 l
+h
+57.601151 99.772781 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+144.60115 144.22722 m
+133.14742 140.00922 l
+133.19815 148.58049 l
+h
+144.60115 144.22722 m
+S
+ep
+end
+%%Trailer
+%%EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ebibsample.bib	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1 @@
+@book{companion,
	author =	"Michael Goossens and Frank Mittelbach and
			 Alexander Samarin",
	title =		"The LaTeX Companion",
	publisher =	"Addison Wesley",
	address =	"Reading, Massachusetts",
	year =		1993}
@book{latex,
	author =	"Leslie Lamport",
	title =		"A Document Preparation System {\LaTeX} User's Guide
			 \& Reference Manual",
	publisher = 	"Addison Wesley",
	address = 	"Reading, Massachusetts",
	year =		1986}
@article{article1,
	author =	"Ssss Itoh and Nnnn Goto",
	title =		"An Adaptive Noiseless Coding for Sources with Big
			 Alphabet Size",
	journal =	"Trans. IEICE",
	volume =	"E74",
	number =	9,
	pages =		"2495--2503",
	year =		1991,
	month =		sep}
@article{article2,
	author =	"K. Abrahamson and N. Dadoun and " #
			"D. G. Kirkpatrick and T. Przytycka",
	title =		"A Simple Parallel Tree Contraction Algorithm",
	journal =	"J. Algorithms",
	volume =	10,
	number =	2,
	pages =		"287--302",
	year =		1989}

@book{book1,
	author =	"J. D. Foley and others",
	title =		"Computer Graphics --- Principles and Practice",
	series =	"System Programming Series",
	publisher =	"Addison-Wesley",
	address =	"Reading, Massachusetts",
	edition =	"2nd",
	year =		1990}
@book{book2,
	author =	"Chang, C. L. and Lee, R. C. T.",
	title =		"Symbolic Logic and Mechanical Theorem Proving",
	publisher =	"Academic Press",
	address =	"New York",
	year =		1973}

@booklet{booklet1,
	author =	"{Institute for New Generation Computer Technology}",
	title =		"Overview of the Fifth Generation Computer Project",
	howpublished =	"distributed in {FGCS'92}",
	year =		1992,
	note =		"(in Japanese)"}

@inbook{inbook1,
	author =	"Knuth, D. E.",
	title =		"Fundamental Algorithms",
	series =	"Art of Computer Programming",
	volume =	1,
	chapter =	2,
	pages =		"371--381",
	publisher =	"Addison-Wesley",
	address =	"Reading, Massachusetts",
	edition =	"2nd",
	year =		1973}

@incollection{incollection1,
	author =	"Schwartz, Aaaa Jjjj",
	title =		"Subdividing B{\'e}zier Curves and Surfaces",
	booktitle =	"Geometric Modeling: Algorithms and New Trends",
	editor =	"Farin, G. E.",
	publisher =	"SIAM",
	address =	"Philadelphia",
	pages =		"55--66",
	year =		1987}

@inproceedings{inproceedings1,
	author =	"Baraff, D",
	title =		"Curved Surfaces and Coherence for Non-penetrating
			 Rigid Body Simulation",
	booktitle =	"SIGGRAPH '90 Proceedings",
	pages =		"19--28",
	editor =	"Beach, R. J.",
	address =	"Dallas, Texas",
	organization =	"ACM",
	publisher =	"Addison-Wesley",
	year =		1990}

@manual{manual1,
	organization =	"Adobe Systems Inc.",
	title =		"PostScript Language Reference Manual",
	publisher =	"Addison-Wesley",
	address =	"Reading, Massachusetts",
	year =		1985}

@mastersthesis{mastersthesis1,
	author =	"Kazuhiro Ohno",
	title =		"Efficient Message Communication of Concurrent Logic
			 Programming Language KL1 Based on Static Analysis",
	school =	"Dept. Information Science, Kyoto University",
	year =		1995}

@misc{misc1,
	author =	"Yasuki Saito and Hiroshi Nakashima",
	title =		"{{\tt ipsjpapers.sty}}",
	note =		"(Style file for Trans. IPSJ distributed to authors.)",
	year =		1995}

@phdthesis{phdthesis1,
	author =	"Weihl, W.",
	title =		"Specification and Implementation of
			 Atomic Data Types",
	school =	"MIT",
	address =	"Boston",
	year =		1984}

@proceedings{proceedings1,
	title =		"Proc. Intl. Conf. on Fifth Generation Computer
			 Systems",
	organization =	"Institute for New Generation Computer Technology",
	volume =	1,
	year =		1992}

@techreport{WarD:WAM-1,
	author =	"David H. D. Warren",
	title =		"An Abstract {Prolog} Instruction Set",
	type =		"Technical Report",
	number =	309,
	institution =	"Artificial Intelligence Center, SRI International",
	year =		1983,
	month =		oct}

@unpublished{unpublished,
	author =	"{Editorial Board of Trans. IPSJ}",
	title =		"How to Typeset Your Papers in {\LaTeX} (Version 1)",
	note =		"(distributed to authors)",
	year =		1995}
\ No newline at end of file
Binary file figure/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/codesegment.eps	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1021 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%HiResBoundingBox: 0.000000 0.000000 385.000000 201.000000
+%APL_DSC_Encoding: UTF8
+%APLProducer: (Version 10.7.2 (Build 11C74) Quartz PS Context)
+%%Title: (Unknown)
+%%Creator: (Unknown)
+%%CreationDate: (Unknown)
+%%For: (Unknown)
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 0 0 385 201
+%%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 385 201
+%%BeginPageSetup
+cg_md begin
+bp
+sdmtx
+%RBIBeginFontSubset: Helvetica
+%!FontType1-1.0: Helvetica 1.0000.0.0000
+
14 dict begin/FontName /Helvetica def
+
/PaintType 0 def
+
/Encoding 256 array 0 1 255{1 index exch/.notdef put}for
+
dup 33 /c put
+
dup 34 /o put
+
dup 35 /d put
+
dup 36 /e put
+
dup 37 /s put
+
dup 38 /g put
+
dup 39 /m put
+
dup 40 /n put
+
dup 41 /t put
+
readonly def
+
42/FontType resourcestatus{pop pop false}{true}ifelse
+
%APLsfntBegin
+
{currentfile 0(%APLsfntEnd\n)/SubFileDecode filter flushfile}if
+
/FontType 42 def
+
/FontMatrix matrix def
+
/FontBBox[2048 -1947 1 index div -985 2 index div 2961 3 index div 2297 5 -1 roll div]cvx def
+
/sfnts [<
+
74727565000900000000000063767420000000000000009C0000036C6670676D000000000000040800000A1D676C79660000000000000E2800000A286865616400000000000018500000003668686561000000000000188800000024686D747800000000000018AC000000286C6F636100000000000018D4000000166D61787000000000000018EC0000002070726570000000000000190C000003CF05C0001005BD00280580001A042F001F0000FFD90000FFDA0000FFD9FE55FFE605C70010FE6DFFF1033B000000B9000000B902FE3F3C00C0008D009B00AF000600A800C00028005E009800C9016A00B9015C00B400D6011E002E0080000400B8004C00CC01FFFFD1006600A400AF007400C2009500B1000C0028006D0015004C008E0125FF7A000C0040004C00620084FFA200240038008600BD0039005E008E00EDFFA9FFB300400052005500AA00AB00C200CB012302B10413FFAEFFE4000800510074008400AA00D1FF4CFFAF0012002C004200500051008400BE012503DAFF680018003B0098009C009F00A100C100EC018201B4FF68FF76FFD0FFE100020018001C00530053007D01B401E103AF0486FF9CFFEAFFFE001F0028002A00520060009300A300AA00AF00AF00C001000145016B0174019301950240028202B404850517FEFD00060029004700470048006F008800B400B900C400F200F901EF02180310037403C5FF35FFF3000B004B004C0052005500650076007600870087008E00AB00BB0106013001430150017D0194019501D3022A025502580277027802E6034E035C037903D3047304B2058C0598060BFEF5FFBBFFC7FFD50017001D005B0072007E009C00C200D000F400FA01030106011C0125013B0142015E015E0180019B02B901A101B9025001C001D002AA01DF01E301EF01FB0205020C0215022B0274029302AB02C202CE03690395039903DF03F5043E050205A105E5062507DBFE62FE89FECEFF3BFFE1FFF800030008002100390042004E005F0061006F00700034007F008E00AD00AD00AF00BD00C400C500C900C900C900E3011C00ED00F800F901000112011A0132014D014D014E014F01660169019E01BA01BA01BE01E301EF01F602000200020902110217021C02530262026D028002D50280031B032A034A035A03AF03AF03C803D603FB03FB04050413041504470449008C046D049A049A04A604A804B204CF0539053E054E055605800589058C036305D105D6067E068E06B206EF06F00728074C076F078C00B400C900C000C10000000000000000000000000004012400AF0032006E0063014401620096014301A10161008A00740064018801EF01700028FF5D037E0347023000AA00BE007B0062009A007D0089035C00A1FFD803AA00D70093006C0000008000A70442001D0597001D00820030002A
+
002A002A002A002A40292A292827262524232221201F1E1D1C1B1A191817161514131211100D0C0B0A090807060504030201002C4523466020B02660B004262348482D2C452346236120B02661B004262348482D2C45234660B0206120B04660B004262348482D2C4523462361B0206020B02661B02061B004262348482D2C45234660B0406120B06660B004262348482D2C4523462361B0406020B02661B04061B004262348482D2C0110203C003C2D2C20452320B0CD442320B8015A51582320B08D44235920B0ED51582320B04D44235920B09051582320B00D44235921212D2C20204518684420B001602045B04676688A4560442D2C01B9400000000A2D2C00B9000040000B2D2C2045B00043617D6818B0004360442D2C45B01A234445B01923442D2C2045B00325456164B050515845441B2121592D2C20B0032552582359212D2C69B04061B0008B0C6423648BB8400062600C642364615C58B0036159B002602D2C45B0112BB0172344B0177AE5182D2C45B0112BB01723442D2C45B0112BB017458CB0172344B0177AE5182D2CB002254661658A46B040608B482D2CB0022546608A46B040618C482D2C4B53205C58B002855958B00185592D2C20B0032545B019236A4445B01A23444565234520B00325606A20B009234223688A6A606120B0005258B21A401A4523614459B0005058B219401945236144592D2CB9187E3B210B2D2CB92D412D410B2D2CB93B21187E0B2D2CB93B21E7830B2D2CB92D41D2C00B2D2CB9187EC4E00B2D2C4B525845441B2121592D2C0120B003252349B04060B0206320B000525823B002253823B002256538008A63381B212121212159012D2C456920B00943B0022660B00325B005254961B0805358B21940194523616844B21A401A4523606A44B209191A45652345604259B00943608A103A2D2C01B005251023208AF500B0016023EDEC2D2C01B005251023208AF500B0016123EDEC2D2C01B0062510F500EDEC2D2C20B001600110203C003C2D2C20B001610110203C003C2D2C764520B003254523616818236860442D2C7645B00325452361682318456860442D2C7645B0032545616823452361442D2C4569B014B0324B505821B0205961442DB8002B2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8002C2C2020456944B001602DB8002D2CB8002C2A212DB8002E2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8002F2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800302C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800312C2020456944B0016020
+
20457D691844B001602DB800322CB800312A2DB800332C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800342C4B535845441B2121592DB800352C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800362C2020456944B001602DB800372CB800362A212DB800382C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800392C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8003A2C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB8003B2C2020456944B001602020457D691844B001602DB8003C2CB8003B2A2DB8003D2C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8003E2C4B535845441B2121592DB8003F2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800402C2020456944B001602DB800412CB800402A212DB800422C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800432C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800442C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800452C2020456944B001602020457D691844B001602DB800462CB800452A2DB800472C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800482C4B535845441B2121592DB800492C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8004A2C2020456944B001602DB8004B2CB8004A2A212DB8004C2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8004D2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8004E2C4B20B0032650585158
+
B080441BB04044591B21212045B0C05058B0C0441B2159592DB8004F2C2020456944B001602020457D691844B001602DB800502CB8004F2A2DB800512C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800522C4B535845441B2121592DB800532C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800542C2020456944B001602DB800552CB800542A212DB800562C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800572C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800582C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800592C2020456944B001602020457D691844B001602DB8005A2CB800592A2DB8005B2C4B20B003265358B0401BB000598A8A20B0032653582321B0808A8A1B8A235920B0032653582321B800C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8005C2C4B535845441B2121592D00000000020042000004D005BD00030007003FB800532BB800082FB800092FB8000810B80000D0B800002FB8000910B80003DCB80004DCB8000010B80007DC00BA0007000000562BBA0002000500562B3031331121112711211142048EB8FCE205BDFA43B8044DFBB300000002003BFFE103D0044E001A001B00A7402FA719019818A808AA18034A08119B14030314061D1A070D1D140B1B071B1B1710271201032702111A1D0A2717191C1DB80107B321727D182B2B4EF44DED4E10F63C4DED3939ED12392F003F3FED3FED12392F10ED313043794034001908250C150A26000E1310260112110F1007190A26000500032101010204030B160D26000F120D2600091806260104010621012B2B2B2B01103C103C2B2B103C103C2B2B2B81005D015D001617232E012322070615141633323637330E01232202351000330702D6E317AF10727EAC4A308892708319AF1EF0BBD2FA0112D41C044EB0D76383A86DA0A1DC8977D5C50133E6011A013A0500020038FFDA03ED05C2000B001D00774032370E470E570EA704A91B05250814020F1D1000081D1D07130A021D170B052E132E102911121A1F0B271A191E1F87217242182B2B4EF44DED4E10F63C4DFDE4E4003FED3F3FED3F1139113931304379401A181C090A000101180B
+
2600091C0B260000190226000A1B0826012B2B012B2B818181005D1216333236353426232206150017161711331123350E0123220035341233F692A17DA1A67A88A9018A53303DADA23FAC6FB3FEFAEFDE015FE8D7C9CBC3D0CA0237341E4B021DFA3E956358012DFAEA015700030048FFDA041A0449001C00240025010C40799708991AA71F03050E020F0514150E120F1514400C401408291A014B0BB603C701C603C71BD808D909D61FD823E817E8230BC711C712025C080521240F9A161D243906070716211D1C070A1D160B2507971CA71CB71CD71C0425160F251C05190A0C07110E270F1D27051A27242E072719192627D421A65D182B2B4EF44DFDE44E10F64DEDD4FD391239391112393912392F5D003F3FED3FED12392F3CFD3C10ED1112393130437940460023040503050205010504061F26111012101310141004060C25221B24260020001D26011E1D09170726000B150E26010D0E231A2126011E0521260108180A26000D100A2600002B2B2B2B01103C2B2B103C2B2B2B2A2B2A8101715D00715D5D00161716171615211E013332373637330E01070607062322001110003301262726232206070102B4D638361210FCEF0590978D543014B1074F3152794152C8FEEA0118E2011F0B284AAD7CA805012304476B55516C4AA2A3C55D36473B912E501C100123010601020142FE26754682B38A01DC0000000003003DFE3B03E80449001F002D002E00B7404D36144908490958085909880CA91BA81DA927A62BB91B0B4008031622290EC40A221D1F070406291D190A121D0A0F2E072E2E051C032E162E2D29051A300C0E270D3E26271C192F3087217242182B2B4EF44DEDF4ED394E10F64DFDE4F51112392F003F3FED3FED3F3FED10ED1112393931304379402C23281A1E0B1124251026231E262600281A262600110B0E21000F0E0C0D251D222601271B2926000F0C122100002B2B2B01103C103C2B2B2B2B2B818181005D00171617353311140706212226273316171633323736270E0123222411100033002623220706151416333237363501027C5E3335A63C70FEC9ADEC0EB70D273D83CF40260336987DAEFEFB0107BA0144A47FBE4625937CC24F2CFED104423E234387FC32CC76DA9BA548273C9256DD5250F7011D010D012EFEA1C0B25F9AB5BDAF6384022D00000001008400000625044700260085403B0708070E060F1708170E170F2708270E270F4819560B670B0C23250A1A1D23190A02041725211D171D0D060700061B1C2503130A2817171A112914B80101B21A291DB80101400A00012E25292600192728B8010DB3216242182B2B4EF43C4DFDE410F4EDF4FD4E456544E6003F173C3F3F3C4DEDED111217390111123912393130005D13331536373633321716173E0133321716151123113426232206151123
+
1134272623220615112384B240345971804E2C243CA265D84E2ABB6B4D6A99B71A297066A7B4042F984F243D3F244656539C548EFD3702E86B508EA6FD9102BB6D324B9ECFFDC80000020084000003ED04490019001A005E4031B706C706020406140627147606740705140C021418101D05070006180B0A1A071A1A000C29091A1C012E18291900191B1CB80106B3216242182B2B4EF43C4DFDE44E10F64DED12392F003F3F3C3F3FED1139390112393130005D015D1333153E01333217161511231134272623220706070E011511230184AB4CAA68E4502CB71D307E40294A382D1BB401A7042F985E529F57A2FD5102A3623C640D1642357169FDCF0449000003003BFFD90421044E000C0018001900904033980896109916A504A808A610A916B808C808D704E50EE9140C3A08061D18070C1D120B190719191502270F1A1B092715191A1BB80109B321725D182B2B4EF44DED4E10F64DED12392F003F3FED3FED31304379402C001704260B1309260000110226010717092600050D0226010A140C260001100C26000816062601030E0626012B2B2B2B012B2B2B2B2B81005D241235342726232206151416331200111002212200351000330702E085304CBAA59696A3D6011EFCFEF7DDFEFC0112E70674010FA6965E94FCB2ABE403DAFEECFEF4FEFDFEAE012BFC010E01400500020042FFD703B6044B002E002F012E408F38099805961299149815982A062824252736214621472447275624572766246726790C790D790E7623742474257426A61EA82C1303000B15052D042E13001A151B171C18152D142E280F0B6908262536250225220D0A042B1318C61C1D1307041D2E9A2B0B2F07090E100207002F212F1A1F18161827173E28260727281A310E1F27103E00272E193031B221A65D182B2B4EF44DEDF4FD394E10F64DFD3910F4FD3911123939392F111239113939003F3FEDED3FEDED111217397131304379404C012D022615251A26210E1F21000926072101032C002100052A0721011D121F21001B14182101200F22210021220E0D08270A21012625090A012D04210006290421001E111C210119161C2101002B2B2B2B103C103C2B103C103C2B012B2B2B2B2B2B2B2B2B81005D5D015D13161716333236353427262F01262726353436333217160723262726232206151417161F011617161514062322262701EF082544A864983D27738F894174DBB9F26B4302AA05263E99666945284E77C24269D9DEEFC70701B701505A3057575B4524161D24222A498198BC8E5A683D32474E40462A19131D2F2C45948FD0D9A002F900010017FFEF0209055A00180052B50D2E0AC00E01B8013F40250416391703060E0A111A17171A0301062900150E150F031F030203FC1619191AFC21677D182B2B4EF44DFD5D39C42F3CFD3C104E4565
+
44E6002F3F3F3C4DFD3CED10FDE431301333113315231114171633323637150E012322263511233533A8B6ABAB2615310D1E141F43277E5A9191055AFED593FD4538130B01028E0908816702C593000000010000000000006B8BED625F0F3CF500110800000000005F4D8F0000000000C9C13CF7F865FC270B9108F9000000090001000000000000000100000629FE2900000C01F865FCED0B9100010000000000000000000000000000000A051200420400003B04730038047300480473003D06AA0084047300840473003B04000042023900170000003400B6012201EC02940310036C03E404C40514000000010000000A00920009006B0007000200100010005D000007E80A1D00040001B800532BB800492BB8003F2BB800352BB8002B2B4118008001A6009001A600A001A600030069018B0079018B0089018B0099018B00040089018B0099018B00A9018B00B9018BB2040840BA0179001A014A400B041F5414191F180A0B1FD2B80106B49E1FD918E3BB0119000D00E10119B20D0009410A01A0019F0064001F01A50025017A00480028019AB3296C1F60410A01A9007001A9008001A90003008001A9000101A9B21E321FBE012C00250401001F0126001E0401B61FE7312D1FE531B80201B21FC227B80401B21FC11EB80201400F1FC01D9E1FBF1D671FBE1D671FAB27B80401B21FAA29B80401B61FA91D6C1F931EB8019AB21F921DB80101B21F911DB80101B21F751DB80201B61F6D29961F6431B8019AB21F4C96B802ABB21F391DB80156400B1F3638211F351DE41F2F27B80801400B1F2D1D4C1F2A31CD1F241DB802ABB21F201EB8012540111F1C1D931F3A1D4C1F1E1D45273A1D4527BB01AA019B002A019BB2254A1FBA019B0025017AB349293896B8017BB348283125B8017A403648289629482725294C1F252946272729482756C80784075B07410732072B072807260721071B071408120810080E080C080A08080807B801ACB23F1F06BB01AB003F001F01ABB308060805B801AEB23F1F04BB01AD003F001F01ADB70804080208000814B8FFE0B40000010014B801ABB41000000100B801ABB606100000010006B801ADB300000100B801AD401F04000001000410000001001002000001000200000001000002010802004A00B0018DB806008516763F183F123E113946443E113946443E113946443E113946443E113946443E11394660443E11394660443E11394660442B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B18011DB0964B5358B0AA1D59B0324B5358B0FF1D592B2B2B2B2B2B2B2B182B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B74752B2B2B65422B2B4B5279B376706A66456523456023456560234560B08B766818B080622020B16A704565234520B0
+
03266062636820B003266165B070236544B06A234420B176664565234520B003266062636820B003266165B066236544B0762344B10066455458B166406544B27640764523614459B36242725D456523456023456560234560B089766818B080622020B172424565234520B003266062636820B003266165B042236544B072234420B1625D4565234520B003266062636820B003266165B05D236544B0622344B1005D455458B15D406544B262406245236144592B2B2B2B456953427374B8019A2045694B20B02853B049515A58B020615944B801A6204569447500
+
00>] def
+
/CharStrings 10 dict dup begin
+
/.notdef 0 def
+/c 1 def
+/d 2 def
+/e 3 def
+/g 4 def
+/m 5 def
+/n 6 def
+/o 7 def
+/s 8 def
+/t 9 def
+ end readonly def
+
currentdict dup/FontName get exch definefont pop end
+
%APLsfntEnd
+
42/FontType resourcestatus{pop pop true}{false}ifelse
+
{currentfile 0(%APLT1End\n)/SubFileDecode filter flushfile}if
+
/FontType 1 def
+
/FontMatrix [ 0.00048828125 0 0 0.00048828125 0 0 ] def
+
/FontBBox{-1947 -985 2961 2297}def
+
/UniqueID 4257378 def
+
currentdict currentfile eexec
+
54544758EC884CF30C3CD503CEDBFF3839C47C3C3333173232E3FDBFF439491DB843E1924E63AA7726BBB0485AB56D93D8C0906F647A47162891E73FFC2A9873C4B1EAC5EEBDFFC4D06084FBD84139DF4583C6E259D10699944D1068C9C45667DCCCFB9B7EA01B606435EDCBD273ABAC093D14085CCBAC149BD7382E842CFE0D7FE4FD2EF589A2471F6074A80A8B675C2F7A50D63AC1EF90D787BADD11633CB01CF6EE3B37AAF9078A69AC4740E9B6525D78BBD839551A1CB80DB8682FA5E87591BBD6EE8B946063A2A58D9CA3685AB305495DC5FB5747EB8A9A059C4976C0FE4EEAB1D56FF47F1E9664ED9F4A7DAB763AF92B2F6CF2FA7DEC24710E0B9096E30F772BA7FEA9BDBE496C42ED2CEB58F54E80BDF57CE7B4DB6CCFE7182F43BF93CCA0767AF95D62C5D2C3DC6AE1E6D139F51A2C63432117F1714C5566572EE9967A715420ABDCD1D7BD74F8450B89965FCC81C6ACA565C5F3CCF91D430D1F953E4F1A645300A98DD8C47CD64555F08F422340A85404EAE0D3229C4F9336B9470CACBD6BBF3395104750A915CC6EAAC197668267B8C62D2764C8CD69FD937CA3C924D997A0EDE7964BEB9EA2F92EF70C5E5DA0AA5567765E71F2B911B3C5586B741EEB93F3C73016EC16BFF283758900903D203992EFC8BAFAF13579C602F38C91B4F1C51BADFF3495C2924BE71970B75EDF2A199B50F98194813A33F63946432A100A72F0700E471C6AECB1F3AE72601F4FBA141E6DAA154933D47293681E1AF19EB09BC4B0B8EA08CB9CABB31741A44CF2EAB20ADC8CCB10041E91A8450A1C3A83C0D8A7A1CF3C8FD1095E69EF1D3170AD76CEE06E02AF47C641EE1485E6DE836985BC59DA1A2E6E367BF0C80CC7A7A71DB74D1466096944FE1D70969B23CDF8E83206FFD9E6C6C2F5CC615C32582DAF0B4EB9D786352AD3A0ED2B2EDFE69EDF671793E3E8CBFF2386C6CF8E6381139B08F28A96B7105542011331FE544A26335F9EA556441C0A6343A7C05AEDC67366A1B44C3F66DEA58643F87668E0F6F4AF67861F6101AA34179298307E0BA78A614DE48C9D3D387834E4275C82BE822AA102290A310A18E877ECEA50E28A4E18AB370A7785144F325105521D9311C7199D4E6272CB15A44C3E12823E998D850F06C0EF4ECCEA9B13FDFACD40B917D8CF2C5A1C8959CDB2F32916B06F389A3A5321D087406CD07B1D243DD5E90A305C5FBB3919B2F9B53B3FD6B054B086F029DB87A9D85028BA393594DCDEAEF2D5527097773CF3530E712B2430069319D3F9156BFFDC3438286106D07550EF1F760010304EECD42BB5B990F935E6F9DF57A4B9831C35D714CAC2288EF35B874E81D55C754B287A7F7CA0FE2A348FF8A027B387587232F4945135747F6D6B11D8C05707B2B614DC4B80ADC42435A539316DF2FE9AAD1028EC566A4B53522165B890B2BA1A
+
E72CFDD777A27A65BE9F12EF578B25CB33114DC277040E5906260EE2244D7C83623CD6D997339B4FB01EACD07C39C60F25C09CF632034BE4AB6DD689232BEA3963DC297D5BB0A0FE4B5A7A9EDFCC901F0F424585F9B8001F6C978D9449F17A7E7D90B74EB195517737628818CAD157EBE17ED46833B03E6F718AD961A33227D2E8842EE0D1C3048BE0761138ED4752996864192116D81753CD533010DE30BBEEBA8CAC33C7CCDFB1B7C4AD3F0E23CA800D7B168B0AACE9DA85DD6F2372F7737EC198D11D2A2DE7FF9044272E29D393DF9F5A1F20790E21F77A90A0793C34115954E28EAB254A3F12E166659D5F78AFD67253CD15313FA19AFF777BE210A3C77667A1348BB1CDE59A880CB337959EC7C48AE96CDDF638F30FD6890A38599CEDE7BF59FB10A1F7DFB9EEC9C4007374A01F89079B94B2FBC79FE01A5DDC963416B00552DB4709D83CDFBC2B5366F55083D196BB2FE597DBCAD571CA10C11B439F5F27D9371A6645456D60FEB314D2F3D63497E568AF0CE60FF7BA5B16AE81209F2FC9EDD46FEEE531BBEA85E215D52C02123F4157C8FE1EFB1AC019482718F47971417800090554FB8F231680B85400FB8BD0E9178DAF83D33884519E63A67B22D5C0E9A8C56F69E39A3D036FD6A80A1243D9CE9445276AC2E760F51B198682FB48A2EDE13D782D2717BCDD58D86A15B58017BC475F534080ED8F1CB2BFA4176AD8B6022796DDB6D3744948229497C3C21A5529D609DD070EE17C06E4A6A69DAF5592109FE2D59EC09740EF7AA7144F35A5FE43602F5DDC22E663A60C9E02BF90F4DC0C3B3979284A246D12C9B75C0B20D68B029188710F36B2DCB6F6AA1B32ABC90B4FD5C59C993C13B01033F8EF16138FD1F6C4FF52501440807228700393C3F29EE5431DF9539B7929D1787CEF6D19BB774A5FBA12AC3E66C9A22C7EF8B979B581CF6445131BE2A28B3B7A4B2D30BC9BCC16644F11C5FAEB8C0D0253D1F511D24BF433753E51628D1785C9B27938121C5F574CE40EEA5844DCAB2A0A977A01761F8D77B1033BE9F0C1BAA46BE397B9EC6A346C29CC9D1808970F1EED9F40046C4EEC40865E561C85160FEC6782553AEAA457E0F1D7E23635BE13BEC5F8CFB3F94B263E44F1CF93381F2902155CEA0806F7EB5F1574039451017F32DF26AA451823B6C6CA40CEA84654E36F26F23761BD02CC93AB8E13087FD48AD3965926FC96C68FFBB70E182D58E1BD74BA3DBBD62CD11443951979A61142B9C57EDC50E044A5B7AFD783AE3D8BD0E5413337F169B2925E10A628A8D62109F9F57403A900ECE74FA4FFE896275DA755A0E20DF157D73F32A166B5AEA79715CA84A5135F05FB87A74B3FA22CA90472E52273C0B43BE72424991088F1E5B04C49488865C295C4C8061641928787866CB375CE74D356C71FAAAC94B44219E224E9BBB18F9133B5
+
E63BD8955E39492047C27FA03DE8CAD99BEBFC1DD0D0BE6BAC347994C4E69A44B027D8D505F1A1830D9170138751E6146EA11EE3136D03EEE5A331AE8C167B7096D6349FF20B40650EF61F9108651F62E545AE110F10C1C6894B7625F5AC09006E24184D4F78CE49B77155DBAED94D244EE497000DA9B15B8DE111A9B3DB78F7862D022C704E6F6DE0D2D016BF85FCB6E77FA8B7E8557F3FD34D1E1F97F8A2063015949AB7296D813BF8575D9FB076E17686F657A3FD26EAEB15E796C6FBDA1575857840C4B5AC
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
cleartomark end
+
%APLT1End
+
%RBIEndFontSubset
+/Helvetica cguidfix
+/F1.1/Helvetica renmfont
+[ /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.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def 
+/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def 
+end ] /Cs1 exch/ColorSpace dr pop
+[ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def 
+/DecodeA { { 1.8008  exp } bind  exec} bind 
+def 
+/MatrixA [ 0.9642 1.0000 0.8249 ] def 
+/RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def 
+/DecodeLMN [ { 0.9857  mul} bind { 1.0000  mul} bind { 1.3202  mul} bind ] def 
+end ] /Cs2 exch/ColorSpace dr pop
+%%EndPageSetup
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+q
+0 0 385 201 rc
+-87.5 244.5 m
+471.5 244.5 l
+471.5 -538.5 l
+-87.5 -538.5 l
+h
+-87.5 244.5 m
+f
+217.95581 182.09186 m
+232.01477 171.54771 232.01477 154.45229 217.95581 143.90814 c
+203.89694 133.36394 181.10306 133.36394 167.04419 143.90814 c
+152.98524 154.45229 152.98524 171.54771 167.04419 182.09186 c
+181.10306 192.63606 203.89694 192.63606 217.95581 182.09186 c
+f
+1 J
+1 j
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+304.95581 61.908142 m
+319.01477 72.452286 319.01477 89.547714 304.95581 100.09186 c
+290.89694 110.63606 268.10306 110.63606 254.04419 100.09186 c
+239.98524 89.547714 239.98524 72.452286 254.04419 61.908142 c
+268.10306 51.363937 290.89694 51.363937 304.95581 61.908142 c
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 192.5 163 cm
+/F1.1[ 12 0 0 -12 0 0]sf
+-13.010742 -3 m
+(!"#$)[ 6.000000 6.673828 6.673828 0.000000 ] xS
+-23.012695 11 m
+(%$&'$\(\))[ 6.000000 6.673828 6.673828 9.996094 6.673828 6.673828 0.000000 ] xS
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+CM
+121.45581 119.09186 m
+135.51476 108.54771 135.51476 91.452286 121.45581 80.908142 c
+107.39696 70.363937 84.603043 70.363937 70.544189 80.908142 c
+56.485245 91.452286 56.485245 108.54771 70.544189 119.09186 c
+84.603043 129.63606 107.39696 129.63606 121.45581 119.09186 c
+f
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+208.45581 124.90814 m
+222.51476 135.45229 222.51476 152.54771 208.45581 163.09186 c
+194.39696 173.63606 171.60304 173.63606 157.54419 163.09186 c
+143.48524 152.54771 143.48524 135.45229 157.54419 124.90814 c
+171.60304 114.36394 194.39696 114.36394 208.45581 124.90814 c
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 96 100 cm
+-13.010742 -3 m
+(!"#$)[ 6.000000 6.673828 6.673828 0.000000 ] xS
+-23.012695 11 m
+(%$&'$\(\))[ 6.000000 6.673828 6.673828 9.996094 6.673828 6.673828 0.000000 ] xS
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+CM
+217.95581 57.091858 m
+232.01477 46.547714 232.01477 29.452286 217.95581 18.908142 c
+203.89694 8.3639374 181.10306 8.3639374 167.04419 18.908142 c
+152.98524 29.452286 152.98524 46.547714 167.04419 57.091858 c
+181.10306 67.636063 203.89694 67.636063 217.95581 57.091858 c
+f
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+304.95581 186.90814 m
+319.01477 197.45229 319.01477 214.54771 304.95581 225.09186 c
+290.89694 235.63606 268.10306 235.63606 254.04419 225.09186 c
+239.98524 214.54771 239.98524 197.45229 254.04419 186.90814 c
+268.10306 176.36394 290.89694 176.36394 304.95581 186.90814 c
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 192.5 38 cm
+-13.010742 -3 m
+(!"#$)[ 6.000000 6.673828 6.673828 0.000000 ] xS
+-23.012695 11 m
+(%$&'$\(\))[ 6.000000 6.673828 6.673828 9.996094 6.673828 6.673828 0.000000 ] xS
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+CM
+314.45581 119.09186 m
+328.51477 108.54771 328.51477 91.452286 314.45581 80.908142 c
+300.39694 70.363937 277.60306 70.363937 263.54419 80.908142 c
+249.48523 91.452286 249.48523 108.54771 263.54419 119.09186 c
+277.60306 129.63606 300.39694 129.63606 314.45581 119.09186 c
+f
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+401.45581 124.90814 m
+415.51477 135.45229 415.51477 152.54771 401.45581 163.09186 c
+387.39694 173.63606 364.60306 173.63606 350.54419 163.09186 c
+336.48523 152.54771 336.48523 135.45229 350.54419 124.90814 c
+364.60306 114.36394 387.39694 114.36394 401.45581 124.90814 c
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 289 100 cm
+-13.010742 -3 m
+(!"#$)[ 6.000000 6.673828 6.673828 0.000000 ] xS
+-23.012695 11 m
+(%$&'$\(\))[ 6.000000 6.673828 6.673828 9.996094 6.673828 6.673828 0.000000 ] xS
+0.60000002 i
+/Cs1 SC
+0 0 0 sc
+1 0 0 -1 -87 244 cm
+263.99042 181.10806 m
+255.66112 167.74005 239.17242 153.59843 239 141 c
+238.86552 131.1747 248.65485 122.2834 256.7583 113.23431 c
+S
+CM
+174.76678 137.00809 m
+167.42043 132.64566 l
+172.10031 128.89084 l
+h
+174.76678 137.00809 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+261.76678 106.99191 m
+254.42043 111.35434 l
+259.10031 115.10916 l
+h
+261.76678 106.99191 m
+S
+1 J
+1 j
+293.55569 106.37833 m
+300.86972 119.58424 315.33691 133.57384 315.5 146 c
+315.62512 155.53319 307.33127 164.15057 300.30731 172.90524 c
+S
+CM
+208.64276 64.600464 m
+215.74634 69.348007 l
+210.87311 72.848221 l
+h
+208.64276 64.600464 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+295.64276 179.39954 m
+302.74634 174.65199 l
+297.87311 171.15178 l
+h
+295.64276 179.39954 m
+S
+1 J
+1 j
+210.57339 125.99872 m
+243.63681 104.41327 l
+S
+CM
+163.33562 143.96004 m
+154.99681 142.09877 l
+158.27679 137.07466 l
+h
+163.33562 143.96004 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+250.33562 100.03996 m
+241.99681 101.90123 l
+245.27679 106.92534 l
+h
+250.33562 100.03996 m
+S
+1 J
+1 j
+210.76186 161.83664 m
+243.40907 182.81206 l
+S
+CM
+163.13963 56.863647 m
+158.03069 63.711899 l
+154.78746 58.663986 l
+h
+163.13963 56.863647 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+250.13963 187.13635 m
+245.03069 180.2881 l
+241.78746 185.33601 l
+h
+250.13963 187.13635 m
+S
+1 J
+1 j
+307.26184 188.16338 m
+339.90909 167.18794 l
+S
+CM
+259.63965 81.136353 m
+251.28748 79.336014 l
+254.5307 74.288101 l
+h
+259.63965 81.136353 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+346.63965 162.86365 m
+338.28748 164.66399 l
+341.5307 169.7119 l
+h
+346.63965 162.86365 m
+S
+1 J
+1 j
+307.07343 99.001297 m
+340.13684 120.58673 l
+S
+CM
+259.83563 119.03996 m
+254.77682 125.92533 l
+251.49683 120.90122 l
+h
+259.83563 119.03996 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+346.83563 124.96004 m
+341.77682 118.07467 l
+338.49683 123.09878 l
+h
+346.83563 124.96004 m
+S
+1 J
+1 j
+412.50003 144 m
+447.67145 144 l
+S
+CM
+372.10001 100 m
+360.67145 104.28572 l
+360.67145 95.714294 l
+h
+372.10001 100 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+459.10001 144 m
+447.67145 139.71428 l
+447.67145 148.28571 l
+h
+459.10001 144 m
+S
+1 J
+1 j
+98.500031 144.5 m
+133.17278 144.29485 l
+S
+CM
+57.601151 99.772781 m
+46.147415 103.99078 l
+46.198151 95.41951 l
+h
+57.601151 99.772781 m
+f
+0 J
+0 j
+1 0 0 -1 -87 244 cm
+144.60115 144.22722 m
+133.14742 140.00922 l
+133.19815 148.58049 l
+h
+144.60115 144.22722 m
+S
+ep
+end
+%%Trailer
+%%EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/codesegment.graffle	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1394 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>138.14.0.129428</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2011-11-12 11:03:25 +0000</string>
+	<key>Creator</key>
+	<string>Nobuyasu Oshiro</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1.0000 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>6</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{315.5, 89.625}, {45.933594, 18.375}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>32</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 goto}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{315.5, 171}, {45.933594, 18.375}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 goto}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{190.20312, 167}, {45.933594, 18.375}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>30</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 goto}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{405.93359, 125}, {54, 18}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>29</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 goto}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>28</integer>
+			<key>Points</key>
+			<array>
+				<string>{412.93359, 143.02043}</string>
+				<string>{462.43359, 143}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{90, 126}, {54, 18}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>27</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 goto}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{252, 134.3125}, {45.933594, 18.375}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>26</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 goto}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+			<key>ID</key>
+			<integer>23</integer>
+			<key>Points</key>
+			<array>
+				<string>{97, 144.03551}</string>
+				<string>{146.49998, 144.01508}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>5</integer>
+			</dict>
+			<key>ID</key>
+			<integer>11</integer>
+			<key>Points</key>
+			<array>
+				<string>{307.13544, 98.947426}</string>
+				<string>{348.58237, 125.86452}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>5</integer>
+			</dict>
+			<key>ID</key>
+			<integer>10</integer>
+			<key>Points</key>
+			<array>
+				<string>{307.26184, 188.16338}</string>
+				<string>{348.23816, 161.83662}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>4</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>4</integer>
+			</dict>
+			<key>ID</key>
+			<integer>9</integer>
+			<key>Points</key>
+			<array>
+				<string>{210.76186, 161.83664}</string>
+				<string>{251.73814, 188.16338}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>8</integer>
+			<key>Points</key>
+			<array>
+				<string>{210.57339, 125.99872}</string>
+				<string>{251.92659, 99.001297}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>4</integer>
+			</dict>
+			<key>ID</key>
+			<integer>7</integer>
+			<key>Points</key>
+			<array>
+				<string>{293.55569, 106.37833}</string>
+				<string>{315.5, 146}</string>
+				<string>{294.53436, 180.94273}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>6</integer>
+			<key>Points</key>
+			<array>
+				<string>{263.99042, 181.10806}</string>
+				<string>{239, 141}</string>
+				<string>{262.95581, 105.50994}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>4</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{340, 117}, {72, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>5</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 code\
+segment}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{243.5, 179}, {72, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 code\
+segment}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{147, 117}, {72, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 code\
+segment}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{243.5, 54}, {72, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>1</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 code\
+segment}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{197.56641, 98.625}, {45.933594, 18.375}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>25</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 goto}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2011-11-15 22:27:15 +0000</string>
+	<key>Modifier</key>
+	<string>Nobuyasu Oshiro</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{595, 842}</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>QuickLookPreview</key>
+	<data>
+	JVBERi0xLjMKJcTl8uXrp/Og0MTGCjUgMCBvYmoKPDwgL0xlbmd0aCA2IDAgUiAvRmls
+	dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtmM1uHLcShfd8Ci6dhTss/nN7jWyy
+	CzxAFkFWShQhsBL4Ou+PfEU22T3SWHIAQbA1Q7FYxcNTp4r8bH+yn63jJ6VmSw32/7/b
+	n+1f9vsPX8TefbHSf77c2fduSzqB/x+ZXNe3T+Ob0b9/GtPGx4drm3td0+uazrLeZxZW
+	v+/Feo9BCN7mkjapJZm7R/u/i3Wbc87by50Vv8/1zJctl1KCjfbyaL+/XGRzrHW5t+/+
+	+Pufv7+zlz/tDxf2pVsw5y0EF7dG6LZ4bJo0dhKkbU4iY0IQsZRjJLewxeSDnXYmV781
+	VwHG+ua22nIjZr+FHK3PdRMX5BhIcXMxsquTVWhbq8mbtbbfRw7/ftqtKPE2Fy+B3Yd8
+	uN8HzIzx2NudvQeWH/n35zjNDx87iM5+/HBG3/VjB/G5hMnSdxmv4PGKhT/BU1vH64DH
+	iuPEFNYDHiPA2gOeO1gDc5tnqwnGWvuAZ/dvFjwryhM8STiL0NKBzxqZu7PTztzZj4Ml
+	t0lZ2J8t8G+Q8YqCAc64Eu37cHDQdA7+Yt/dwUGyxdt3v80Pv39nf7WXHwcvz8x/wYlX
+	JwAuYp7wHB9fWHH4+GN+eFxDf82hf85un6WDd5UzJR0y2byng/d+S5oOOZaRDsdIcCMd
+	ph08gc0jHaTFLbRis2s9G6TAUxeO70mX02Q42UTyi2SweV/ZyBqZ3mXZzRgRg7k2lFJq
+	Ld/79yO+w+b+JuPnTPQFZdCdPCJGOwIS0r7ffcRI4k8qEYdd5pAG42cUUsKIao9yfZ87
+	kd0G/q39rpWPkel9IbBiPBAQAfUczfI9vp/im/t6meuC7pM2MN0gu68yfajta0w3WlmW
+	xh8uVNnPLg6eH7m0PEyem3f/iedXlWtlfmq5n5Y5yX6qaZzpKgQJGl3JPvWtTJ4v2YcH
+	HfqlzPuAXfp0tpq6ttZeurb8Tzszo1QVnaKZXb6W/TnwbG9YPee61tM1U2qeXF97llb2
+	Pc9y6KHSKIezaHqfBnqHulsPS6/UfQ1MdZ9WupuJwlzbrJHlf6JgV5QnFKTkLi7rEObA
+	3Js5Wb2u7YlMflHbb+juf9b24eRpWn0T5+lnppCftd0M3X+m7Vecj0440GttjwLVz9pu
+	jpGp7YfdodOhQvXe6uzijuSouNPqzIGkvVOkrTlZhXyt7jaskanuYbc7KtCdnYubvMv5
+	4X4fOGJ8Td/nTLO089GuPS99P0amvk87O7Ua9s4wzBT0GSj1aCj+2s3Zau55KfxCYfo3
+	h92h1sfiu6RP97QDXfPtEeOyMi9xPpS8a/xTAZa36ma+7uLg+42cmhr/Fb7vfc4V30+F
+	pbevKnCeutqai0iH0IlXreUJecoinGPZCoh1DZLimZS4ybRK307dk9hb+lC3mlMyQpMt
+	JVLnIx1GohsSWgBfA7NT3kqiXAqo+RADzNhR79clvdH0642nzSxQ2GREy+2tBaIYPRFm
+	7Q1iytyXfGoEq50SIdbmGmMP7GVYM3NZ3xtHN+/o5p/uXlVsWQiloo27jYpp9yfcmQIJ
+	evJHY85di97l2t/JWrc17w83PXI9ShQ5ozahAKUWGW5FmT5QEIJU6fcCbqA8GAemF8DW
+	kQTkWZOKz9knDoiT0isg9xjEJggAIzKSXO5rMsoIN63m0oTcN2yjp1V15J9zei8NznPO
+	WfvOuoVYDQBT2iq3JDpP2Wqsfmz4hvE94H4VYLPcCT17aNwxTu5gC0TRpZc77VIlSb12
+	N41pQV7FVy+kBc4Jhbe1WpTQNMjUWwhJVY5Aaj/1pPcIaQgQqt81c5/JJa4xM5MNrlWN
+	w8e0+aJjyipwGrFd2xLZi0DA2N1Xv7jpqfu4+xKqTuPScvLV2dFg4rWvZfstKBTKCnzg
+	+EIuxKcoRKWucLOu4pXDuo5GJlQqmzjdqn2JzqVrgT4wAmpAyx4b2aXPDAluZO7uPeVu
+	GL8ORHfHkwV+6cNP7qRyA6zcKBT24Y5wey5cu5vGxHrCwtzKOM0N8pzTr7w1ZKgBBbWp
+	6ligH6yl+9N1QtSOESwyjyt7cAGB8+ybVCA7QtbgAsGljo8K2gj44bk1nhYYt2Ob/iRz
+	JgP75U9zeeC83Elu/TjI0JO7k/EJjJuCp2BQQqNtdWuxxAT6IQJ6YdPCpqPK/AEGKcBj
+	DR2DFNRW58JVgEF4YUjkA2AAELpc6D14yRAZCaJQPrVeYNyObVpo31GRhB7b7k+E20Tq
+	rJv+en3BxWDi8jetz9Qwt+VfJTfy3hSS6pJqLfqDdOiYR0QHDvpVuwAQq1EIqk/MyhJS
+	ymeE+NNurK9xgdktFMYe+kqH6ZkOzxDQYjw8dffCw+LJExmzoWrK0xEmnmhKt+CQ7cPT
+	NCVIZcJXnw4R3kaZ1daGqjLa+dfeDZ/2IE/eDU+px1kBTX2bdV8qplGobaQkUNCN0SOw
+	7xi1NdBSyZDjYMch6jvOeEXdW40IWamdejpoQWseuIct9SFz5L46T56NsY5V2orrJeHB
+	3rJ+kd1mWYzAeqe1/AnkKtK03Cx/Qr/vWy8LJ3/T+pUTjmFHJsOZtz5fj+ihRAgDPQyV
+	5BmDuDn0ju49v7/95fnEIE3x2AlK/VEPb/O2fdNDpWN6s9fzn/4F35nkDAplbmRzdHJl
+	YW0KZW5kb2JqCjYgMCBvYmoKMTk1NAplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFn
+	ZSAvUGFyZW50IDQgMCBSIC9SZXNvdXJjZXMgNyAwIFIgL0NvbnRlbnRzIDUgMCBSIC9N
+	ZWRpYUJveCBbMCAwIDU1OSA3ODNdCj4+CmVuZG9iago3IDAgb2JqCjw8IC9Qcm9jU2V0
+	IFsgL1BERiAvVGV4dCBdIC9Db2xvclNwYWNlIDw8IC9DczIgOSAwIFIgL0NzMSA4IDAg
+	UiA+PiAvRm9udCA8PAovVFQxLjAgMTAgMCBSID4+ID4+CmVuZG9iagoxMSAwIG9iago8
+	PCAvTGVuZ3RoIDEyIDAgUiAvTiAxIC9BbHRlcm5hdGUgL0RldmljZUdyYXkgL0ZpbHRl
+	ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBhVRNTBNBFH4tS70QYuJPCAcyJyUEyEL8
+	AU3UQkstkFoLxKJGs2yndGG7XWe3IIQTB70p8eDdxHg2ngzx4I3EaDQh6N3Eg/EnJhrO
+	fm+3pdTEMM10v5n3zXvfe/MyRK1rhuvaUUFUdnyVysVn87PXxaEPFKV2aiMMw/TceDY7
+	ydipOJK/zWP3I0V4Z7uPfTXbDly1FqRngvUas1LwzDJRRCdq+Wm6yidqFdgfWvZdxnng
+	o4vTuVFgjtNeOwtIx1LSkcoyRUoZKyKrKkXL3q/1IDv7OHCU7Spr5XEEs831R3L49mD+
+	KaqxmRBHulZL09eADyOXy5afngbuB847c5krwL3A9xYrE3y2A/hFQSaSwOeA33hLU4zB
+	j2qrpdEMMPxEBxeM8SzwceAR18+ynyHgvGNn+G6gIbohveQUcDfwZtEaSwMjVvSzawf3
+	dwZ1bVfVHOs8AZwwVDIV8lsWpDNTO9vyqGAkJrB/CpxNypIkRUWyyCZBo/g6tEoGcAoW
+	h77CapFJFTAV/uvMeVjq1jtUBVfQfMD1Njqr3a77+MG6um2Z7x/+ajpZ2ePNw2+44jis
+	IowTxg3XHi3W+F/IB5t5bkPH1tqrjkCpguIVEjvay5vbbVtrFEc2NvRIKmNyTpK8PWYV
+	2IfmInYd6mvS97/orMSAz6b4RWej03VvPeMs5f3MbobWe/Xn+nf9qf5J/6Hv6E+Avv1T
+	Y1ZVrxzXVVABOwI1DmvPVs7VC7Ko58C79QovwNaogoSq5lus3UPAb441G2QQ1oP9lZCT
+	Qo0M/BoeuRcsmkFEi5ahTSEe5+5wjffxuGO8oFvQGZEbnIHWpQ1oaW1IGyahxbXT2iVt
+	IsAXgS5oCVjOa5OxZCwRi5OI9cSGYwOxccbot9otxk7COoz/ZK0H672xj9N0Z3Ifj6sR
+	1qnRMXPIge+PO2wJ2MYKr4cv7+LdIRqtuCvKmi/5YlDXz4o4njkp0o7Z3ysM2xaByRNK
+	elItyUI/8RvK54h+Xw3exsjxt2ZVLYV7FIm8I/oLeZ0THQplbmRzdHJlYW0KZW5kb2Jq
+	CjEyIDAgb2JqCjc3NAplbmRvYmoKOSAwIG9iagpbIC9JQ0NCYXNlZCAxMSAwIFIgXQpl
+	bmRvYmoKMTMgMCBvYmoKPDwgL0xlbmd0aCAxNCAwIFIgL04gMyAvQWx0ZXJuYXRlIC9E
+	ZXZpY2VSR0IgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBhVTfa9NQFP7a
+	ZZ2w4Ys6ZxEJPmiRbmRTdEOctmtXus1a6ja3IUibpm1cmsYk7X6wB9mLbzrFd/EHPvkH
+	DNmDb3uSDcYUYfisiCJM9iKznps0TSdTA7n3u9/57jkn5+ReoPlxWtMULw8UVVNPxcL8
+	xOQU3/IBXhxDK/xoTYuGFkomR0AP07J577PzDh7GbHTub9+r/mPVmpUMEfAcIL6UNcQi
+	4VmgaVzUdBPg1onvnTE1ws1Mc1inBAkfZzhvY4HhjI0jlmY0NUCaCcIHxUI6S7hAOJhp
+	4PMN2M6BFOQnJqmSLos8q0VSL+VkRbIM9vAfc4PyX7ColOmbrecQjW2aGU7RfIreHzl9
+	cIzmANXBP18YvUG4nXBYNuOjNX5CzSSuESa95+50aZjtZZqXWSkSJRwkvGJUrjNsaeYL
+	A4ma5tPt9FCSsJ80vzQzWfPj7VCVBOsxxfX2S0b0ur3X25GTB+M1Pqcp1n9A/r339XKK
+	5XmS8Ou0Ho3V9FuSOlbb2+TNpiPDxHdRPwNIQoKOHGQo4JFCDGGaY8Sq+EwWGSJKpNJp
+	dFR5sjjWOyiTlu0cR3jJXw64Xhb1W7K49uD7nt0l1468FYXFt6PYUe21gem6shOaG391
+	YaWjbuE3ueWbG22rCwhR/orlsUheZcpPglHXdTbmkFOX/HULzzKU7iV2ElgMuqzwXvgq
+	bApPhRfCl7/UyM7erRHLgHEsPqueU83G7CXSTNLrZLi/ivVCxhj5kDFDWp2+JE2cijny
+	2lALJwZ3guvm4lwv1weeu8xd4fq5CK0uciOOwhf1RXwh8L4zvj5ft2+IYafbvtNk66Mx
+	Wuu705G6orF6lI/bJ/Y9jqoTGbKxvrF+VggrtKJjakqzdE8AAyVtTpfzBZPvEYQLfIiu
+	LYmPq2JXkE8rCm+ZDF6XDEmvSNkusDuP7QO2U9Zd5mlfcznzKnDpG/3D6y43VQZeGcDR
+	cy4XoDN15AmwfF4s6xXbHzyet4CRO9tjrT1tYbqLPlar23QuWx4Buw+r1Z/PqtXd5+R/
+	C3ij/AapIwrWCmVuZHN0cmVhbQplbmRvYmoKMTQgMCBvYmoKNzg1CmVuZG9iago4IDAg
+	b2JqClsgL0lDQ0Jhc2VkIDEzIDAgUiBdCmVuZG9iago0IDAgb2JqCjw8IC9UeXBlIC9Q
+	YWdlcyAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSAvQ291bnQgMSAvS2lkcyBbIDMgMCBS
+	IF0gPj4KZW5kb2JqCjE1IDAgb2JqCjw8IC9UeXBlIC9DYXRhbG9nIC9PdXRsaW5lcyAy
+	IDAgUiAvUGFnZXMgNCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0xhc3QgMTYgMCBS
+	IC9GaXJzdCAxNyAwIFIgPj4KZW5kb2JqCjE3IDAgb2JqCjw8IC9QYXJlbnQgMTggMCBS
+	IC9Db3VudCAwIC9EZXN0IFsgMyAwIFIgL1hZWiAwIDc4MyBudWxsIF0gL1RpdGxlIChD
+	YW52YXMgMSkKPj4KZW5kb2JqCjE4IDAgb2JqCjw8ID4+CmVuZG9iagoxNiAwIG9iago8
+	PCAvUGFyZW50IDE4IDAgUiAvQ291bnQgMCAvRGVzdCBbIDMgMCBSIC9YWVogMCA3ODMg
+	bnVsbCBdIC9UaXRsZSAoQ2FudmFzIDEpCj4+CmVuZG9iagoxMCAwIG9iago8PCAvVHlw
+	ZSAvRm9udCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9IS1NZR0ErSGVsdmV0
+	aWNhIC9Gb250RGVzY3JpcHRvcgoxOSAwIFIgL0VuY29kaW5nIC9NYWNSb21hbkVuY29k
+	aW5nIC9GaXJzdENoYXIgOTkgL0xhc3RDaGFyIDExNiAvV2lkdGhzIFsgNTAwCjU1NiA1
+	NTYgMCA1NTYgMCAwIDAgMCAwIDgzMyA1NTYgNTU2IDAgMCAwIDUwMCAyNzggXSA+Pgpl
+	bmRvYmoKMTkgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAv
+	SEtTWUdBK0hlbHZldGljYSAvRmxhZ3MgMzIgL0ZvbnRCQm94IFstOTUxIC00ODEgMTQ0
+	NSAxMTIyXQovSXRhbGljQW5nbGUgMCAvQXNjZW50IDc3MCAvRGVzY2VudCAtMjMwIC9D
+	YXBIZWlnaHQgNzE3IC9TdGVtViAwIC9YSGVpZ2h0CjYzNyAvTWF4V2lkdGggMTUwMCAv
+	Rm9udEZpbGUyIDIwIDAgUiA+PgplbmRvYmoKMjAgMCBvYmoKPDwgL0xlbmd0aCAyMSAw
+	IFIgL0xlbmd0aDEgNzgwOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAG9
+	WXt4U1W2X/s8ck6TNk3StHmeJmmapOn7QUtLCw0laUsLpbQIDVLog0LLQyrUKo4wRWGU
+	giiiyMNPRUeeIqEwEGBkkIuD3HFGdBSEcWZ0ROX62Y+5c0EdpMld56RUyjf68YefZ2fv
+	vdZe+7H2b6+z9tk7XYvva4MY6AEaaqc3d84B6REOYvZ268Lmzgiv+QjzktbuLmuEZ1MA
+	6AVzOucujPD80wByYe6CpYPt47KRT2lva54dkcMNzAvasSDCkxGYJ7cv7HogwmvE8VIW
+	LGodlMfpkU9Y2PzA4Pggjm+9p3lhW6S+8CTmyZ2LlnQN8g2YF3YubhusT5Cn3wGCpXJ4
+	CqJgPnBAgQpDIwB3WS4Ag1JRjs/8Nf0ts2JLroGal/hZE5+Q8jNvlHzzbdsNl2I9/28s
+	iLpZX8xl7pAbIJqgvF+xfkgitcNEHoT6tCCMx1iKMR9jWtpYPfSQ7fAkxhcx0tBB1sBS
+	jKsxbsbIDFG7kDtC1vQxvOcoWQpGUuVRMJYpWoNFL1dY3gsS2cHnLRf0nx4jBly9T4ih
+	LwaixsrJi+QFmA0W8go4yINQCSlkywH3AksTinZBJ8YejLSUErKrLzHXcpykg4Mh2MYJ
+	iQw5ZPkiJ8PyWU6QIn2Wk64gg9kbich5Yi0nhOctvxPmWo5j3BMR7XZjjUOWXcICy4bE
+	INnSZ3lKCBJssz6S3Sdg00OWhe6Nltk5knzCxiC1p89ShPKpHoWloNBmyRcuWbJcQZ4g
+	nyFMsKTm/NGSjA2xmhU7dXjUFrOwwTIKRYmCzzUK4zGym2yFVLK1z1FlOYokTvfAeHfh
+	xiD5xYHKlBxHkDzoKahM2eiudDncEywOd7nLhfTUt7iV3N3cWC6XS+NSOCdn40ycltfw
+	Kl7JR/Nynue5IHm1r9QiO0b2QCnCsucAL+PZIHkNC5ljZK9UuPcwz/AUD7w2GP4YjZeA
+	Nkj2HFSJFBKHZBIlC5K9ByJFez0WRqQYSaCiRBoTTIEiPAVVECCPB2WwKqG7VF+qGaMu
+	Kvf+UNIkSW6maT/86IkQ2Fhd3xDYLfgDuSIRFvw3q+tvEj+Yd92HoraytLTquqUHujvn
+	zfG12X1Ndl8bxqbAmu52faCnxWrdP69TFFgDtLOppbVdzJvbAp32Nm9gnt1r3d8ttbtN
+	PEcUd9u9+2GOb0rD/jmeNm9ft6fbZ2/2+g+0lC1uHDbW6qGxFpf9h7HKxM4Wi2O1SO1u
+	G6tRFLeIYzWKYzWKY7V4WqSxxMn7OurLlnShdVp9HdXWQEp9YPzk6Q0Ba7PfGyTbsdB7
+	H7AnQMW+DilsDxiZLLAAhC9gvCjmobvCn7OnQRVaGP5fuhgX9YgYqVBpCZyAx2Er7AMZ
+	7EQ6BWbCJjhD5uG7PQMOwjmSCJnoexkIwgR4m4TD78Ic+DXW74KT8Azsh2hssxDiUbqO
+	OMIPIu9BugVWhl+CZCiEX8HrUIS9roP+8K7wAZTWwV2wG/Zg+z8QO7WfiQu/Fr4EPEzG
+	Plei5N3whPA+0EA6lEEtlq6E48RBXwy3gx6KUbvn4AXYBm/AV+RhcjDcHu4Onw1/gqaq
+	BzPUY1hGDpJP6H3Mr8LPhb8MhxCJFEjFUZtgA7yM/e/DcAJdq4/MJ11kA3mG8lAPUweZ
+	VawuNIA4uKECQyUsgscQgSNwCv4F/yZXKD2torvoN8P54f8DBVTjLMWZtEE3hkcxrMM5
+	HSMykk3GkVqyjDxNniF/plKpu6gG6n7qAepzuoaeQS+l/8wsYfrYtewmmSJ0LXwsfDr8
+	AehAgLthMSzH2Z2Es3AVrhMa+zITBykmZWQmhh6ylTpCtpEjVC05Qc5Su8nfyafkCvmO
+	YqloKp5Ko7qoDdQe6iT1J7qDfobeTP+dvsaMYSl2G/uZzMH9JdQSWh36U7g4/En4W3Sx
+	PNhwZcqgBmZBM862E0bAL3EWezHsw1U7BW/CGSl8SszQD98iCkA0xEhyyUQMNWQSmUM6
+	yPPkKIbjki5fU7gQVBSlpnSUmaqnWqiFVA/1AdVDm+hUuoqeTu/D8BZ9jv6O/o5hmTgm
+	nqlgxsNaZiGzBcN2ZifTx7zDFrFj2Bp2KtvDrmbX0q3su+w52XLZOlmf7Irsn+gWJ3CL
+	uLW4OmfQZt9AW/7+YUgyap8L90Ar8ZIW2IirsY00Qy9a12zyGOLVCSnhRno5XUFlozUc
+	h1+gtW6BZbCangHbwh/Su+E8WsoC7LIHdjBlILDP4uo8DNloRYPB4051p7icjmR7ks2K
+	Lt9sMhr0uoR4bZxGrYqJVsijeE7GMjRFIN1nL2+yBpxNAcZpr6zMEHl7MxY031LQhK+y
+	NVA+vE7AKrZrRtGwmh6sOee2mp5ITc9QTaKylkBJRrrVZ7cG/ui1W4Nk+uQGpB/32v3W
+	QL9ET5ToJyU6BmmbDRtYffp2rzVAmqy+QHl3e6+vyZuRTo54EA55RrroODygEDsOwLjm
+	ZehgYZxYwxcw2r2+gMGONMpoh695dqB2coPPa7LZ/FiGRXUNOEZGekcA9YQ10bPts9cE
+	PdDSJFLNMxoCdLM/QDWJfanTAjq7N6B78DP99+xNyrf2FmGAcpQ3t/WWBzxNaxBckW0S
+	uea1yFXXW7FbapW/IUBWDSoh6jgPNRXVjewJjqZ51kCUvcze3juvCcGFuoY+o8coOd8A
+	1Db0GTwGiclIP6JfXmzD2R/JGJsxVsyLbfrlkfyLRyLl750Qc/3yUx9jXl03BAAREbCP
+	Rz0D1lZpEDsqWygmbYXQ21qIOOHjJzjNDtRnXIBCm6EdAdYxvjnQU39TjXZvRLmmed6+
+	KINR2oTK/Fi/qVc1ClcK66vs1t5ruFs32fu/Gl7SPFgic6iugSgUF3rIVgKk+SbdLW6W
+	Dpx1u97eLq5vt7SmyNv1vlsKkBehEXUOaHEDr22wBax+LMCvyfTqIETVNuwnZJ0/SMKr
+	guAVjuA3Kj1rJorTRVPr8OL4yGSkY0GqDanMdGs5jlwu2oq119o7fnavtdzajsbEOKQc
+	BW29/ixEsL4BcYIpOKLHbxoi2/z+UdhPltgPNsHqvX7sYd5gD5hLRVkDWCk7HTdT2lnb
+	MLkh0OM1BTxeP64Cmu+J2obACbRcvx9r5Qxpihov69AP6pyLOuekojwv0gt+u/RgF/7e
+	XrHP+ga7LXCit9fUK75vET5I4PYCz2BBEMQqIuRB0lOLbTGz20zSGtjsNlTLL2I6Ak36
+	pkXhN/uPI1wwpDe2HInaFkgIF/5ECBfdCcKj7gjh4iFNhyFcgjoXiwiP/vkQHjMM4dIf
+	R9gzpDcqORa19UgIl/1ECI+7E4S9d4Swb0jTYQiXo84+EeGKnw/hymEIj/9xhKuG9EYl
+	q1HbKgnhCT8RwhPvBOGaO0J40pCmwxCuRZ0niQhP/vkQrhuGcP2PIzxlSG9U8i7UdoqE
+	8NSfCOFpd4Jwwx0h7B/SdBjC01Fnv4jw3UMIe0wBuNUP99zmduEnd8wzboEcv5RYDZTh
+	YbqYWQKFGCsxjpbthpWYi7EYZWVUEX71i8drPGDjE40nj0zMW/HkIx68aaSx2tDDopwb
+	5HjcRcVnBBwiSeQr6mk8mSygLzGnWC2WUvhND8xZPAvS2KI0cs/DZ+FmjJFXBQHOYhR5
+	pOmPgsBgBKS5j+CoNMbUtKPYCwtT07Jz8tQ2tQtjGbMueOMf7OvXxwWZid/hnQHWwJME
+	fZapASOYYIcna4eBbNLv5Hfr6SpevVVL01qZYORiBK3CxJlMOpVLQ2gXpTYKcpfOYMbr
+	Fe6AbfEyPOXXXJ3YX6P6umRif1FRv6YoC0pL+0tFQtWfkz1uqWcEGHhHdLzcCco4lZNo
+	1LEqzoAcC7SNEIqhFQkxTojVYBKllzkJQ2Q2Ip6biapEVZKWFknTVkAjaYQEnT2T2JM4
+	Wbw2IS+3YGSeEjkqXwV5HHXuU90+1eLlr1ZlP/ZU5yOGfYn/PPbedaJ538zUBM63PrJz
+	4YvbPlp9/wdvkrzP8Rg0ikUMCsMX6X72JJ4IBbjfkztSWaGcptzB7DKxDl5LxQoq4AWB
+	i5NTgk7BZsZlqtxqjdGicBkNiZZHbYvLbp3+wKVLgDPHn7pIXSRN3ag3R8mBEL0C52bG
+	BAyUE+Qm3okTxN+KFTgrjTiR/BFOe5IsHnQJOnWe2p4vTgvyR2jyvn5q27Jt2x98bBfp
+	rc8evfel0lcXHQhdv/I3Muvy+TN/+K+z/02NHJFYTQnXxzzT2kAyrn9JpqHlVIYvMkY8
+	mZnxFO8g0Z6lz/KbjTssNKukYlltvFITG6/1RHu0vNtIqhWH6NPk9/Rp04f8hahzlg/t
+	l3WX7YrT6tMaagbP2pJjtyQIyUUyjkuwCWZOLiQoHNyz5h3mw+bzZsaREOswswZ5NKdW
+	umIFF2t0JWdyLoPB6Xrftr0xAtDAJTSQif3vDxRpiorUGNE6GofspGSgRNWPpRJk5WBn
+	WBqPvYRlZBanWqVRxam0KkYW7UgyJTvBCoKTJApROs4Jinilk8Qo7UYbFrGY8Hq0qxgV
+	JngdKhmQaD5IpaalriD3NsK9jaIJYYi3JZK83JGSAXEyToZoq9GIiNMlrgNHqIPnCgs0
+	qhtX2CeffXxKtnY/NymnbunYurdCXxL9P4hFkVK196GdLLEzFfPvmryg6qWX32wsqChe
+	n1lrVhE7nv0pUhZy3lf+8IFeIl4u45qMDhXTl3FNLJCBvuKwZ2KBdjw/PqqB90c9Fr3L
+	tFPY5dqedsSk8PB0QpJbeUqeJFg4RuYWDHKNII/N5DIzWTOdmZCZ4WaN2dFKV8wYp8ts
+	yMq+xRCv9heJSA9cuoZ4Dr6JaJESvBF80+0pxkSFOtmhctoTnU5IMWKiVihtEKuMjnEI
+	SU7iMrnxfYzW2CQUB99CBFGyVtFC8/PUWk5mS3K68hBKEUaXaK/JIoKA+A2+nSML8gn1
+	0My8/O0lnaEze79SHo5xjX7kHY+TLti07LXQd4Q7Sry//uXxcseGh05OSg+9y5SNsY97
+	9Ebu290Xt75S6Sp5aupf62q/IQKJIZmhbSf6Zm35zev7WldSGYgnwZslkDmYCnDCKk8x
+	x3NKWayO1yl1sS7ehaZYaZiqmKuItjvkRsFukFOMzmETdEKMjAOZyeyg4+QpOp1R7caL
+	VdJndIv3yR58VzMdOHmDKyVIYg7YWiIveAkCqrraf3Wgxtfm/RxKdSWlpeju0GZ1RQSB
+	Fk0XGuPy4gtGFuTlIkBj0LbQxtR2deS1FgnJsLBoZZ9nhP/enpr05JKX2j6sST02f+K8
+	zYeN7s45Ow4yWZsmJY8uTS6fWv/clHUDI6nL82vXbR9YTx1bmFv9/DsDb4l+G+dN96Md
+	GdBzz/TkHJadllGMTCtzabtlXRyrjaa0epXA4jT1CrmRMxoh2h1lNJNMvdsABpMZL/eH
+	zUx6NSPWgvPqVxcVkciEiDilW6YizgDfFSXBWZCVeybsbr9Um35YyF7ucVcVZpgOkh2o
+	/8y6F6a9NDCZermlZHZMQln+vR0D76CyaP/F4QuMDfebaLzrM8CTnrxN/EbV5oRXmJ38
+	dtWuhCD/Fn+e+Uz5P9roUbxM0HPRgkZh4AyGeMoVazRFueINRlOQROGuM+hVxF1n4vc7
+	juQ+0kHHOBVxUegB1JSTcDqk2Bik5NpoJxAVJnwCbjK0EhPJR4iJuLkka/IH1wh3Fg16
+	A8qGHljaWD5elT3h6CsbN76MF6o3Qt/8NXSDaL6QdZHY7RtnPn2jb88l+mLoq9DV0EDo
+	NZJ2gyiJR9xbysLn6UNMNb7rWSTT80Rh1CZ2o2azdlP8plRZSrLDVWArt1UkV7imJk9z
+	zUme61wavTRmqbLb3pXc5ehybk/cmR5Ho4tjM5jMODDGm3RmfXyGNjMlVtHBOx0FDsqR
+	FCNn0uL0vzcLcRwjZG5JU2RxUUoVxUGWLcto0SfoXboxKU7OlWLMUVpcqjHgyjRk5/QN
+	+WU06Yi/KFIhJTrmoixM0QRE54y7uGTi90rITiAZlDPeYXTalBYbROFfG4ROx0tINhUp
+	QYNlJq3eRqyxSTawJSljeJfcRpyOKDnJYGz4fxYmiWqzjRgSMJHcs7SxS4m0EjcXArf5
+	OMmt4KbocmaJLjl/hPRecfaIe47X6hIsRPTiWnTcThe5wju8O2dvGu1a8sTqsV1/OfKv
+	+eOo3axzzOY5Hb6UmvtPlnVc+NuV0xw5TGqnZ0+bdrcvGXe0pNTxKzb9dt309tG5FTWe
+	8lRDnJCV7nv6ibMXXqT+jf5FF75CRbHT0VrrfhOTKT+hJEFS6nEwCUU6WqaUq43oPvCW
+	1w3xyvhY2kJT9I0Eg8F4wzZ38KtooLHoVJa4uUXcRpboNAZK+lUDl3Ky4/LUefF2NU5E
+	/IqJF92nMx/3/bydh/bsccbnxCRqLeNcy6evX89OD32wYcBXGKcg1LoofsVc6s0N0veb
+	uKtAuA3vsP/TI8fCcukmvEq6h6+DqTBNqkikb1SRlOH/lVBZXe+vGJtW2bagu62ro7UZ
+	y4lUT0yyMZZgnIBxBkbxXvUhjGsxPofxVYy/DQ8+SMMQTfBbeDg/+zZe0vuW+nNvk0v/
+	/d4iv+c2+aLb+CW38dJ/t/8PLnUKfwplbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2JqCjQ5
+	MjEKZW5kb2JqCjIyIDAgb2JqCihNYWMgT1MgWCAxMC43LjIgUXVhcnR6IFBERkNvbnRl
+	eHQpCmVuZG9iagoyMyAwIG9iagooRDoyMDExMTExNTIyMjcyMFowMCcwMCcpCmVuZG9i
+	agoxIDAgb2JqCjw8IC9Qcm9kdWNlciAyMiAwIFIgL0NyZWF0aW9uRGF0ZSAyMyAwIFIg
+	L01vZERhdGUgMjMgMCBSID4+CmVuZG9iagp4cmVmCjAgMjQKMDAwMDAwMDAwMCA2NTUz
+	NSBmIAowMDAwMDEwMTUxIDAwMDAwIG4gCjAwMDAwMDQzMTIgMDAwMDAgbiAKMDAwMDAw
+	MjA3MCAwMDAwMCBuIAowMDAwMDA0MTYzIDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAg
+	biAKMDAwMDAwMjA1MCAwMDAwMCBuIAowMDAwMDAyMTc0IDAwMDAwIG4gCjAwMDAwMDQx
+	MjcgMDAwMDAgbiAKMDAwMDAwMzE4MyAwMDAwMCBuIAowMDAwMDA0NTc0IDAwMDAwIG4g
+	CjAwMDAwMDIyODUgMDAwMDAgbiAKMDAwMDAwMzE2MyAwMDAwMCBuIAowMDAwMDAzMjE5
+	IDAwMDAwIG4gCjAwMDAwMDQxMDcgMDAwMDAgbiAKMDAwMDAwNDI0NiAwMDAwMCBuIAow
+	MDAwMDA0NDc4IDAwMDAwIG4gCjAwMDAwMDQzNjAgMDAwMDAgbiAKMDAwMDAwNDQ1NiAw
+	MDAwMCBuIAowMDAwMDA0ODAwIDAwMDAwIG4gCjAwMDAwMDUwMjUgMDAwMDAgbiAKMDAw
+	MDAxMDAzNiAwMDAwMCBuIAowMDAwMDEwMDU3IDAwMDAwIG4gCjAwMDAwMTAxMDkgMDAw
+	MDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAyNCAvUm9vdCAxNSAwIFIgL0luZm8gMSAwIFIg
+	L0lEIFsgPDA5MDk4NDBmMTQ4NDJiYjNiZGUzZjc4MTViODlhZjY1Pgo8MDkwOTg0MGYx
+	NDg0MmJiM2JkZTNmNzgxNWI4OWFmNjU+IF0gPj4Kc3RhcnR4cmVmCjEwMjI2CiUlRU9G
+	CjEgMCBvYmoKPDwvQXV0aG9yIChOb2J1eWFzdSBPc2hpcm8pL0NyZWF0aW9uRGF0ZSAo
+	RDoyMDExMTExMjExMDMwMFopL0NyZWF0b3IgKE9tbmlHcmFmZmxlIDUuMi4yKS9Nb2RE
+	YXRlIChEOjIwMTExMTE1MjIyNzAwWikvUHJvZHVjZXIgMjIgMCBSIC9UaXRsZSAoY29k
+	ZXNlZ21lbnQpPj4KZW5kb2JqCnhyZWYKMSAxCjAwMDAwMTA4NjQgMDAwMDAgbiAKdHJh
+	aWxlcgo8PC9JRCBbPDA5MDk4NDBmMTQ4NDJiYjNiZGUzZjc4MTViODlhZjY1PiA8MDkw
+	OTg0MGYxNDg0MmJiM2JkZTNmNzgxNWI4OWFmNjU+XSAvSW5mbyAxIDAgUiAvUHJldiAx
+	MDIyNiAvUm9vdCAxNSAwIFIgL1NpemUgMjQ+PgpzdGFydHhyZWYKMTEwMzUKJSVFT0YK
+	</data>
+	<key>QuickLookThumbnail</key>
+	<data>
+	TU0AKgAAB8SAP+BP8AQWDQeEQmFQuGQ2HQ+IRB8xMAOyLAB6xkAQMAASPAB9yEAAWSAA
+	KScAA+VRGWS2XS+YQWBwSYzWbTeIOudAB2z0ABegAAHUMAAOjQiORN8gBz00AAioAAM1
+	OcVWrTaZ1etVuHu+vABzWEACmyAABWeq01zgClAAP28AAG5Vy6Vqs3W8VxuXu3XCSAWC
+	vhzABnNl2yB6veMOx3WYGAsACsfD0ABUCQlxZmTSgFZ285+Y3fQaOat3TAAR6mEvx52B
+	zPSQPt+AB+PuCSSCBYRh+nwp3b/Yvuf0HScWHaLjcmHtjmAAT8+Kt5rUx5gPKhHAPB4P
+	HaBAQ0J5OIAPABP2zAMOgAWigK67B50FAAIfPlfWD8j7fmDOH+SmVn2cZrgAaZ1AO+R9
+	m8AB3giE6xheEqeGWZiOhQEYAAUewEAADYNgaABvxAAAOxGp6ov05T8RO+ydHWAC9m41
+	DVArGa4rmlp6RwABkx2AATR9EUSH4dZsAAY5uMUAx6xalMPAUCwWPUD8PRU0KOSomx+H
+	wd8FHwAKCnmewAHwBEPAyCsPHMzQ2zWABBzcsy0H5OQAAxOoAANPCiqOtqMnqAB/UAAA
+	LUGnifLlLzLHQABeGsBIABeEQIzuAyCAICANMqBrLyul8U04lh1mcWQAF2clHAyDAGTE
+	w86BOC6TJKDlZRrLw2VsAAt1yAAUV4AB9V/P9AzwAwAHVY1BUICdlIQ37GosdgAWUCdo
+	2XT67Ss5R7W0AB427X1gTk2a/pGkoJXMAADn+fQAHkAdVS1FrtHg4dXpUB6ELCwZoX2A
+	AjX8jqPofcIAG9goABBhFJ2Ig6QuEtVv3WBuJWQCyNoEAFmrYilf3Wg9hgABOQgACOSV
+	o0dPK3QB/AAzLxH7l7NgpgDLgPmsxHwfDgoqi9pQUr6oQ1OoMT06yD2fm+c1kDiq267i
+	esOEOo5MhZs6qABAawAA9a3hT/Xu+GuoPjiMI0eWzAAEm06IvGUJxl7zOZIigVek+ZSq
+	gjTG7iAABVvqGW1MN8xjC1Dq3wWP7qiGmgBqpsgAGHIbCmGcZycHLQ3DgAYlKaruQeZw
+	mcABonLPwA5zC4HWICQWBut0NIQcvYxLDWesCABwm6cq4pHMSN80ADFAIDYUMr16D4eB
+	fkqEoiD5bkeS82vG34JgwRetteGJFEBv7RtSzgE2h5sGcJ2KX4DWnYdM/AeEXiBQD9JI
+	P6e8x6EwMx0XDpgQBct9J8D4H7hACQC03pCSZo4NgOkagvAADNHspgFYHFpgFHubAAYG
+	GligEoJAAANoPP1BMwdhLNUDO2GwYUthCEDKOO4AcFTrQPvGIM2YeS7GztKIQNqHT3QS
+	JwfAQcfA80tj3ACZcfA6zWnyQ8BUCKHlNkMdi7oBkU2vEIgQxg4AHotEIiO3obo6F5j2
+	HmUskJsx+gSBSAAHoLT2kLe2iUgo1xnPcA0CcDyFwFLEHyPU2ZPR1AAERIEAAXZCMWIF
+	DRpBLhDSLAACyRwAAdyRcG5IhZs2cEFKhE8wI8zWgEYmPeTi3FvQ4IOfwcLMQAPJMgQc
+	bAuBWAAHQBE9I/B+rrAIP0yALwegyZGQ5jLDV6RWRyvIAEpCHJZZyPwAiGgEAEksjkfa
+	lnNOvlMX03hLRyTZAAKebgAApTfkMTQrkUY8HxH4N8ZIABiDfS2PoAKGgDAMUkAls4/h
+	5GNHwBECSdAPHfBKC+Ag/R2KKI8ZdxJB4rosAA1E75BzWGtH4xOGRMJyRTVUvYhEwHLD
+	gbQBw2YrRavcHoO04QGAJoaS9J0BxBBxjvZkB4BCWwFA1CVB0DCxEXwgK220m7A43ozP
+	afMCBtB3ynj+BsAAGgIyaIY4Jp8jZHuFIXORj9QCtj3qwACchqXCI2N8cAryWy3m8YCO
+	Z3IAAJG7gKQyYA0q3Q8iqtdi5n2B1uGkACi1SQNKYXGx8trY1jR/oKbRObYG5vYIM9ON
+	9h3okxmBG9EZ6WQqOIWNGyybU3iCs0xopcOJVNdI42OK9YU6J2qE2xbByZESIbGwNca4
+	1zT7bAPds475Lj0O1MGjDYlgUbhECCShDC2iVuIAAMtx3NMTt4uth7Y7PlTfu9Op7lGd
+	MeTzZOtC5yjNFM/TxaxCBui+VGNUfCqgKANZyOMeTQwjhDBUxgsVg7IsmtIOi+xlUaNj
+	emx9h4qb/AAEPgEhFTx2jpPEAEBNQwKTNAAPOTzIwG1DAbRO75x7U4VIZUVvSG0LVLIj
+	NUNWIQACFxJdmfZbbTsfsHdRPhGr5uCsGBIfjjhWDIIIB5e5IwIzwA2DEAAN0pYYIhd7
+	IRWmj12ce5G2JNbqDVydfg9sWo7m0ZyPMe5l2JVMyKp3C+Wy6xvcTY13pXnTkdeAOkdJ
+	cQJz7RmpKJ7KnqIJQ5Ui7GXq5TizsXVxtOqpDzb0MkbJjR6jsS2PQfRBABD0IIDIKwSK
+	k5aYe0B578c8lVyJpUmtOW0w9IgllMUykSmXSyvMeY+0NRNQ1U/OFVtME40vq0l9Oaxg
+	AG6L0VwABhjgOsCcEaxDtrrAiDUHZGBfi6AAP0FEBAKAGaGDcGSmJquJs/rArGXdqE3k
+	RYGay5DAYaIKBvDuWiF05hIkA9O19XbW3QThxYz93N8b8oNipD7qTZHIQjTe6yrkBAAA
+	DwEAAAMAAAABAD0AAAEBAAMAAAABAB0AAAECAAMAAAAEAAAIfgEDAAMAAAABAAUAAAEG
+	AAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMA
+	AAABAB0AAAEXAAQAAAABAAAHuwEcAAMAAAABAAEAAAE9AAMAAAABAAIAAAFSAAMAAAAB
+	AAEAAAFTAAMAAAAEAAAIhodzAAcAABm0AAAIjgAAAAAACAAIAAgACAABAAEAAQABAAAZ
+	tGFwcGwCEAAAbW50clJHQiBYWVogB9sACgAYAAEAOgA2YWNzcEFQUEwAAAAAAAAAAAAA
+	AAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARZGVzYwAAAVAAAABiZHNjbQAAAbQAAAK2
+	Y3BydAAABGwAAAAkd3RwdAAABJAAAAAUclhZWgAABKQAAAAUZ1hZWgAABLgAAAAUYlhZ
+	WgAABMwAAAAUclRSQwAABOAAAAgMYWFyZwAADOwAAAAgdmNndAAADQwAAAYSbmRpbgAA
+	EyAAAAY+Y2hhZAAAGWAAAAAsbW1vZAAAGYwAAAAoYlRSQwAABOAAAAgMZ1RSQwAABOAA
+	AAgMYWFiZwAADOwAAAAgYWFnZwAADOwAAAAgZGVzYwAAAAAAAAAIRGlzcGxheQAAAAAA
+	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAFgAAAAxwdEJSAAAAGAAA
+	ARhpdElUAAAAFAAAATBodUhVAAAAFAAAAUR6aFRXAAAADAAAAVhuYk5PAAAAEgAAAWRj
+	c0NaAAAAFgAAAXZrb0tSAAAADAAAAYxkZURFAAAAEAAAAZhzdlNFAAAAEAAAAah6aENO
+	AAAADAAAAVhqYUpQAAAADgAAAbhhcgAAAAAAFAAAAcZwdFBUAAAAFgAAAdpubE5MAAAA
+	FgAAAfBmckZSAAAAFgAAAgZlc0VTAAAAEgAAAhx0clRSAAAAFAAAAi5maUZJAAAAEAAA
+	AkJwbFBMAAAAEgAAAlJydVJVAAAAJAAAAmRlblVTAAAAEgAAAohkYURLAAAAHAAAApoA
+	TABDAEQAIABDAG8AbABvAHIAaQBkAG8ATABDAEQAIABjAG8AbABvAHIAaQBTAHoA7QBu
+	AGUAcwAgAEwAQwBEX2mCcgAgAEwAQwBEAEYAYQByAGcAZQAtAEwAQwBEAEIAYQByAGUA
+	dgBuAP0AIABMAEMARM7st+wAIABMAEMARABGAGEAcgBiAC0ATABDAEQARgDkAHIAZwAt
+	AEwAQwBEMKsw6TD8ACAATABDAEQgDwBMAEMARAAgBkUGRAZIBkYGKQBMAEMARAAgAGEA
+	IABDAG8AcgBlAHMASwBsAGUAdQByAGUAbgAtAEwAQwBEAEwAQwBEACAAYwBvAHUAbABl
+	AHUAcgBMAEMARAAgAGMAbwBsAG8AcgBSAGUAbgBrAGwAaQAgAEwAQwBEAFYA5AByAGkA
+	LQBMAEMARABLAG8AbABvAHIAIABMAEMARAQmBDIENQRCBD0EPgQ5ACAEFgQaAC0ENAQ4
+	BEEEPwQ7BDUEOQBDAG8AbABvAHIAIABMAEMARABMAEMARAAtAGYAYQByAHYAZQBzAGsA
+	5gByAG0AAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDExAFhZWiAAAAAA
+	AADzUgABAAAAARbPWFlaIAAAAAAAAGcyAAA18QAAAidYWVogAAAAAAAAaZcAALtOAAAH
+	cVhZWiAAAAAAAAAmDAAADsEAAMmUY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo
+	AC0AMgA2ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKMA
+	qACtALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy
+	ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB
+	8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg
+	AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE
+	EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3
+	BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH
+	Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ
+	CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL
+	UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D
+	Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q
+	mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk
+	E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX
+	HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF
+	GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e
+	6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4
+	I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo
+	DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M
+	LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy
+	mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ
+	OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+
+	oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS
+	RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM
+	KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf
+	U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb
+	RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND
+	Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr
+	/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM
+	dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+
+	Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE
+	iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS
+	epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3
+	nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co
+	UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu
+	tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/
+	9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1
+	zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ
+	bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW
+	5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0
+	wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//9wYXJhAAAAAAAD
+	AAAAAmZmAADypwAADVkAABPQAAAKDnZjZ3QAAAAAAAAAAAADAQAAAgAAAFYBiQJxAzgE
+	FgTlBcgGpwePCHkJZQpbC1UMUQ1WDlIPWhBgEWgSbhOGFMUWERdbGKYZ8Rs8HIcd2R8w
+	IH4h1CMrJIMl3Sc6KJgp9itULLQuFS95MOEyTDOyNRw2hjfvOVQ6vDwiPYg+7kBSQbVD
+	GER4RdlHOEiXSfVLVEyrTeNPE1BBUW1Sl1PBVOZWClcpWEZZXlpyW4NckF2bXqFfpmCo
+	Yadip2OjZJ5lkGZ/Z25oXmlOajxrK2wbbQtt+m7pb9hwx3G3cqdzlnSFdXR2Y3dSeEF5
+	LHoXewF77HzXfcF+rH+XgIGBbYJYg0OELoUahgWG8YfciMiJtIqgi4yMjY2Pjo6PjpCO
+	kY2Si5OIlIKVfZZ0l2yYYplWmkmbO5wsnRyeC576n+agzqGzopijfKRipUimLqcUp/uo
+	4qnKqrGrmqyCrWyuVa8/sCmxE7H+suiz07S4tZy2gLdjuEW5J7oIuui7x7ylvYG+XL83
+	wBDA6cHBwpjDbsRDxRnF8cbQx7PIlsl6yl7LQswozQ7N9c7cz8TQrNGV0n7TZ9RQ1TrW
+	I9cN1/fY4dnS2sLbstyi3ZHegN9v4F3hSuI14yDkCuTy5dnmv+ek6Ifpa+pN6y7sDOzX
+	7aDua+838AXw1/Gs8oTzYPRB9SX2D/b99/D46Pni+uL74/zm/e3+9P//AAAAVgFFAkED
+	LwPuBMEFhwZTBy4IFQjnCcYKpguMDHYNXw5IDzcQHRELEf4TLxReFZQWzBgDGTcaaBuh
+	HN0eGh9RII4hzCMKJEclhSbJKAgpSiqOK9QtHy5oL7UxAzJPM5k04zYtN3c4wjoLO1M8
+	mz3hPylAbUGyQvlEPkWDRrxH2EjpSfhLBkwRTR5OJ08vUDNRNlI2UzNULVUlVhtXD1gA
+	WO9Z3lrNW7pcoV2AXltfNWAPYOlhxGKgY3tkVWUvZgpm5WfAaJtpd2pRayxsB2zibb1u
+	mW9ycExxJnIActpzs3SNdWd2QXcbd/R4znmneoJ7W3w0fQx95n6/f5iAc4FYgj6DI4QI
+	hO6F1Ia6h6CIhYlrilCLNYwZjP+N5I7Ij66QkpF2kluTP5QglQCV35a/l6CYgZlhmkKb
+	I5wEnOWdx56pn4ugbqFQojOjFaP4pNulvqaip4KoYqlCqiKrA6vjrMOtpK6Dr2SwRLEk
+	sgSy5LPFtKW1hLZkt0S4JLkGuey61bu+vKm9k75+v2vAWcFHwjfDKMQaxQ7GAsb4x+7I
+	5cndytbLz8zJzczOz8/R0NPR1tLY09rU3NXe1uDX4tjk2eba59vq3Ozd8N7z3/bg+eIB
+	4yXkTuV55qfn2ekR6k7rkezZ7irvg/Dj8kzzu/Uz9q/4M/m7+0b81/5p//8AAABWAS4B
+	6wKdA1MECAS5BXYGNgbxB7gIfglIChwK8AvEDJYNag5FDyEP/hEGEhYTKhQ5FUUWVhdq
+	GIAZlRqtG8Uc3h36HxQgMCFOIm8jjiStJc8m8ygYKT8qZyuMLLAt1y79MCExRjJoM4o0
+	rDXNNuw4DDkoOkg7ZDx/PZw+rj+rQJ5Bj0J+Q2tEWEVARiZHCUfoSMVJnkp0S0ZMFEzg
+	TapOck82T/pQvVF+UjpS9VOwVGtVJVXfVppXVFgOWMdZgVo6WvNbrFxnXR9d116QX0lg
+	AWC8YXpiOWL3Y7ZkdGUyZfFmr2dtaCpo6GmmamRrIGvdbJptVm4Tbs9vi3BIcQVxw3KB
+	cz5z/HS5dXh2NXbxd654a3kneeN6n3tbfBZ80n2Ofkh/A3/DgIyBWIIlgvGDvYSKhVaG
+	I4bvh7uIh4lSih6K6ou1jICNS44WjuGPrJB2kUKSD5Lck6mUdpVDlhGW3permHmZRpoU
+	muGbr5x9nUyeGp7on7aghKFToiWi+6PWpLCliqZkpz+oG6j2qdKqr6uMrGmtR64mrwSv
+	5LDDsaOyg7NktEq1OrYwtye4H7kYuhS7EbwRvRS+G78lwDLBRMJZw3PEj8WvxtLH+ckg
+	yl3L4c2IzzTQ5dKg1GfWPtgq2i3cTd6P4PLjfeYt6QDr8+8K8kH1j/jz/G///wAAbmRp
+	bgAAAAAAAAY2AACkEgAAVtUAAFVzAACkEgAAJT8AAA3MAABQDQAAVDkAAoUeAAIXCgAB
+	jMwAAwEAAAIAAAABAAIABgALABIAGgAkAC8APABKAFkAagB7AI8AowC5ANAA6QEDARsB
+	MgFKAWMBfQGYAbQB0QHvAg4CLQJNAm8CkQK0AtgC/QMiA0kDcAOYA8ED6wQWBEIEbgSc
+	BMoE+QUoBVgFigW8Be8GIwZYBo4Gxgb+BzcHcgetB+oIJwhmCKYI5wkpCW0JsQn3Cj4K
+	hgrPCxoLZQuxDAYMYQy9DRwNfA3fDkMOqQ8TD34P7RBeENMRSxHGEkUSxhNME9UUYRTx
+	FYMWGRaxF1IX+BigGUoZ9xqnG1kcDRzEHX4eOh75H7ogfSFDIgwi2COmJHclSiYkJwEn
+	4CjCKacqjit4LGUtUy5FLzowMTEqMiYzJTQnNSs2Mjc7ODE5KTolOyM8JD0oPi8/OkBK
+	QVxCdEOPRK5F0kb6SCZJVkqKS8JM/U5ET5JQ41I4U41U5lZBV59Y/1phW8ZdLV6WYAFh
+	b2LfZFJlx2dAaLlqQWvMbVxu8HCJciZzyXVxdx941HqOfE9+FH/fgbCDh4Vih0CJDYrX
+	jKKOb5BAkhGT5JW5l4+ZaJtDnSCe/6DhosWkrqaYqIWqdaxarkOwL7IftBK2CrgFuga8
+	Db4ZwCvCQ8RhxobIssrizRnPVdGW1BrWp9kz27veOuCz4yLlh+fi6jPseu648O7zIPVK
+	93P5mfu7/eD//wAAAAEAAwAGAAwAEwAdACgANABDAFMAZQB4AI0ApAC8ANcA8wEQASgB
+	QgFcAXgBlAGyAdEB8gITAjUCWAJ8AqICyALwAxgDQgNtA5kDxgPzBCMEUwSEBLYE6QUc
+	BVEFhgW9BfQGLQZnBqMG3wcdB1wHnAfdCCAIZAipCPAJOAmBCcwKGAplCrMLAwtUC6YM
+	AgxnDM4NOA2kDhMOgw73D20P5xBjEOMRZxHuEnkTBxOZFC8UyBVkFgMWphdVGAoYwxl/
+	Gj0a/hvCHIodVB4hHvEfxSCaIXQiUCMvJBIk9iXgJs0nvCivKaYqnyucLJstni6kL64w
+	ujHKMt4z9TUPNiw3SzheOXU6jzurPMo97D8RQDpBZUKUQ8ZE+0YyR25Iq0ntSzJMeE3F
+	TxlQcVHMUylUiFXsV1FYulomW5RdBV54X+5haGLjZGNl5GdqaPBqgWwUbatvRHDhcoF0
+	JHXMd3V5I3rUfIh+P3/5gbiDeYU/hwaIxoqEjEOOA4/HkYqTTpUTltmYn5pmnC2d9Z+9
+	oYejUqUfpuyou6qLrE6uE6/dsamzd7VItxu48brLvKa+hcBlwknEL8YWyAHJ7MvazcvP
+	vdGx03LVLdbn2KDaV9wK3bffY+EJ4qrkSOXe527o+uqC7APtgO778HDx4/NU9MD2K/eW
+	+QD6Z/vN/TX+m///AAAAAQAEAAkAEQAbACcANgBGAFkAbQCDAJsAtgDSAPABEAEsAUkB
+	ZwGHAakBzAHwAhUCPAJkAo0CuALkAxEDQANwA6ED0wQHBDwEcwSqBOMFHQVYBZQF0gYS
+	BlMGlQbZBx8HZgevB/oIRgiUCOQJNgmJCd8KNQqOCukLRQujDAsMfQzyDWoN5g5kDugP
+	bw/7EIwRIxG/EmITCxO6FG8VKxXrFrEXgRhWGTAaDhrwG9ccwh2yHqYfnyCbIZ0ioyOu
+	JLwlySbXJ+kpASocKzssXy2ILrUv5jEcMlczlzTbNiQ3cDi+OhE7aTzFPiQ/iUDzQmJD
+	1kVPRsxIT0nWS2NM805uT+VRX1LeVF9V5ldvWP5akFwnXcFfYGEEYqtkV2YGZ7tpcGsn
+	bOFuoHBhcidz8XW+d495Y3s8fRZ+9YDYgr6EqYaWiHqKVYwyjhOP+JHek8eVspegmZCb
+	gp12n2yhZaNgpV+nXqlhq1OtMa8PsO2yzLSqtoe4Yro6vA+94L+uwXjDPcUAxr/Ie8o1
+	y+3Nos9Z0Q7SidPL1QHWN9ds2KDZ0tsA3C3dVN5335bgruHB4s3j1uTV5dHmxOey6Jzp
+	fepf6zXsDOzd7afucu827/jwufF08i7y6fOc9E/1AvWw9l33Cve0+F35Bvmt+lL6+Pud
+	/D/84f2D/iP+wv9g//8AAHNmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9
+	owAAA9wAAMBsbW1vZAAAAAAAAAYQAACctwAAAADGQ4SAAAAAAAAAAAAAAAAAAAAAAA==
+	</data>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{398, 45}, {693, 938}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/continuation.eps	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,917 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%HiResBoundingBox: 0.000000 0.000000 267.000000 271.000000
+%APL_DSC_Encoding: UTF8
+%APLProducer: (Version 10.7.2 (Build 11C74) Quartz PS Context)
+%%Title: (Unknown)
+%%Creator: (Unknown)
+%%CreationDate: (Unknown)
+%%For: (Unknown)
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 0 0 267 271
+%%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 267 271
+%%BeginPageSetup
+cg_md begin
+bp
+sdmtx
+%RBIBeginFontSubset: Helvetica
+%!FontType1-1.0: Helvetica 1.0000.0.0000
+
14 dict begin/FontName /Helvetica def
+
/PaintType 0 def
+
/Encoding 256 array 0 1 255{1 index exch/.notdef put}for
+
dup 33 /f put
+
dup 34 /u put
+
dup 35 /n put
+
dup 36 /c put
+
dup 37 /A put
+
dup 38 /B put
+
dup 39 /C put
+
readonly def
+
42/FontType resourcestatus{pop pop false}{true}ifelse
+
%APLsfntBegin
+
{currentfile 0(%APLsfntEnd\n)/SubFileDecode filter flushfile}if
+
/FontType 42 def
+
/FontMatrix matrix def
+
/FontBBox[2048 -1947 1 index div -985 2 index div 2961 3 index div 2297 5 -1 roll div]cvx def
+
/sfnts [<
+
74727565000900000000000063767420000000000000009C0000036C6670676D000000000000040800000A1D676C79660000000000000E28000006B06865616400000000000014D80000003668686561000000000000151000000024686D74780000000000001534000000206C6F63610000000000001554000000126D617870000000000000156800000020707265700000000000001588000003CF05C0001005BD00280580001A042F001F0000FFD90000FFDA0000FFD9FE55FFE605C70010FE6DFFF1033B000000B9000000B902FE3F3C00C0008D009B00AF000600A800C00028005E009800C9016A00B9015C00B400D6011E002E0080000400B8004C00CC01FFFFD1006600A400AF007400C2009500B1000C0028006D0015004C008E0125FF7A000C0040004C00620084FFA200240038008600BD0039005E008E00EDFFA9FFB300400052005500AA00AB00C200CB012302B10413FFAEFFE4000800510074008400AA00D1FF4CFFAF0012002C004200500051008400BE012503DAFF680018003B0098009C009F00A100C100EC018201B4FF68FF76FFD0FFE100020018001C00530053007D01B401E103AF0486FF9CFFEAFFFE001F0028002A00520060009300A300AA00AF00AF00C001000145016B0174019301950240028202B404850517FEFD00060029004700470048006F008800B400B900C400F200F901EF02180310037403C5FF35FFF3000B004B004C0052005500650076007600870087008E00AB00BB0106013001430150017D0194019501D3022A025502580277027802E6034E035C037903D3047304B2058C0598060BFEF5FFBBFFC7FFD50017001D005B0072007E009C00C200D000F400FA01030106011C0125013B0142015E015E0180019B02B901A101B9025001C001D002AA01DF01E301EF01FB0205020C0215022B0274029302AB02C202CE03690395039903DF03F5043E050205A105E5062507DBFE62FE89FECEFF3BFFE1FFF800030008002100390042004E005F0061006F00700034007F008E00AD00AD00AF00BD00C400C500C900C900C900E3011C00ED00F800F901000112011A0132014D014D014E014F01660169019E01BA01BA01BE01E301EF01F602000200020902110217021C02530262026D028002D50280031B032A034A035A03AF03AF03C803D603FB03FB04050413041504470449008C046D049A049A04A604A804B204CF0539053E054E055605800589058C036305D105D6067E068E06B206EF06F00728074C076F078C00B400C900C000C10000000000000000000000000004012400AF0032006E0063014401620096014301A10161008A00740064018801EF01700028FF5D037E0347023000AA00BE007B0062009A007D0089035C00A1FFD803AA00D70093006C0000008000A70442001D0597001D00820030002A
+
002A002A002A002A40292A292827262524232221201F1E1D1C1B1A191817161514131211100D0C0B0A090807060504030201002C4523466020B02660B004262348482D2C452346236120B02661B004262348482D2C45234660B0206120B04660B004262348482D2C4523462361B0206020B02661B02061B004262348482D2C45234660B0406120B06660B004262348482D2C4523462361B0406020B02661B04061B004262348482D2C0110203C003C2D2C20452320B0CD442320B8015A51582320B08D44235920B0ED51582320B04D44235920B09051582320B00D44235921212D2C20204518684420B001602045B04676688A4560442D2C01B9400000000A2D2C00B9000040000B2D2C2045B00043617D6818B0004360442D2C45B01A234445B01923442D2C2045B00325456164B050515845441B2121592D2C20B0032552582359212D2C69B04061B0008B0C6423648BB8400062600C642364615C58B0036159B002602D2C45B0112BB0172344B0177AE5182D2C45B0112BB01723442D2C45B0112BB017458CB0172344B0177AE5182D2CB002254661658A46B040608B482D2CB0022546608A46B040618C482D2C4B53205C58B002855958B00185592D2C20B0032545B019236A4445B01A23444565234520B00325606A20B009234223688A6A606120B0005258B21A401A4523614459B0005058B219401945236144592D2CB9187E3B210B2D2CB92D412D410B2D2CB93B21187E0B2D2CB93B21E7830B2D2CB92D41D2C00B2D2CB9187EC4E00B2D2C4B525845441B2121592D2C0120B003252349B04060B0206320B000525823B002253823B002256538008A63381B212121212159012D2C456920B00943B0022660B00325B005254961B0805358B21940194523616844B21A401A4523606A44B209191A45652345604259B00943608A103A2D2C01B005251023208AF500B0016023EDEC2D2C01B005251023208AF500B0016123EDEC2D2C01B0062510F500EDEC2D2C20B001600110203C003C2D2C20B001610110203C003C2D2C764520B003254523616818236860442D2C7645B00325452361682318456860442D2C7645B0032545616823452361442D2C4569B014B0324B505821B0205961442DB8002B2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8002C2C2020456944B001602DB8002D2CB8002C2A212DB8002E2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8002F2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800302C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800312C2020456944B0016020
+
20457D691844B001602DB800322CB800312A2DB800332C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800342C4B535845441B2121592DB800352C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800362C2020456944B001602DB800372CB800362A212DB800382C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800392C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8003A2C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB8003B2C2020456944B001602020457D691844B001602DB8003C2CB8003B2A2DB8003D2C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8003E2C4B535845441B2121592DB8003F2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800402C2020456944B001602DB800412CB800402A212DB800422C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800432C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800442C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800452C2020456944B001602020457D691844B001602DB800462CB800452A2DB800472C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800482C4B535845441B2121592DB800492C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8004A2C2020456944B001602DB8004B2CB8004A2A212DB8004C2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8004D2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8004E2C4B20B0032650585158
+
B080441BB04044591B21212045B0C05058B0C0441B2159592DB8004F2C2020456944B001602020457D691844B001602DB800502CB8004F2A2DB800512C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800522C4B535845441B2121592DB800532C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800542C2020456944B001602DB800552CB800542A212DB800562C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800572C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800582C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800592C2020456944B001602020457D691844B001602DB8005A2CB800592A2DB8005B2C4B20B003265358B0401BB000598A8A20B0032653582321B0808A8A1B8A235920B0032653582321B800C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8005C2C4B535845441B2121592D00000000020042000004D005BD00030007003FB800532BB800082FB800092FB8000810B80000D0B800002FB8000910B80003DCB80004DCB8000010B80007DC00BA0007000000562BBA0002000500562B3031331121112711211142048EB8FCE205BDFA43B8044DFBB300000003001E0000053D05BD0002000A000B00DA40504801580168010388039704980AA90AB809B80A06280A010007060601020809090102080A000705018C01030420140A0A251209090114050525120606010B0B0503090A040605010B02010300021E0708B80159400904030206090A030508B801A840120D0D17171A059E019E0A190C0DA1218C5E182B2B194EF4184DFDFD194E456544E6464418003F173C3F3C4DFD3CFD3C11393F011112393912393911392F872E2B7D104B5158B004C01BB004C459872E182B7D104B5158B003C01BB003C4592B1112393912393987103C3C07103C3C3130015D5D005D010B01133301230321032301038EDFED85E10215DA95FDBB9FCC0290025A0289FD770363FA4301B8FE4805BD000300970000050405BD000A00150028008240385A0D5A116A026A0D6A117A02772107490D4811021D081F0F041F131E000027081E17020B1E270804311B690F31231A2A091525281619292AB8015FB3217666182B2B4EF4
+
3C4DFD3C4E10F64DEDF4ED003FFD3FED12392FFD3901111239313043794012181A0508192506260718042B01051A082B01002B012B2B2B8181015D5D013237363534272623211101323736353427262321110321201716151407060716171615140706290102C47E466E754282FE9D01ADB74E318F4C7DFE75C3027701026D404F294D7138635985FEDEFD93035023378F90321CFE39FD5A6A435FA03A1FFDFB05139A5B778B592F272B3660A98E73AC0002005AFFDA057105E5001D001E00B1403B1B0597019605031F011F0482018705891305530803861D111115063A1D030C3A15091E021E1E190331023B1031111A20093119191F20A1216A66182B2B4EF44DED4E10F64DEDF4ED12392F003F3FED3FED12392F10ED31304379403A001C172513260E251B260B160932000D1410320112110F10071C0932000500033201010204030A180C32000F120C3200081A06320104010632012B2B2B2B01103C103C2B2B103C103C2B2B2B2B2B2B815D015D080117232E0123220011101233323736373306070621202726111037362123041E013411C221C5B2D9FEF5F1EFDC733D1EC21A92AFFED7FF00AEE5ACBA01472805E5FEDABB8EA6FECFFEC5FEFEFEBFA95991E89DBD9BCD01AC0145D0E200000002003BFFE103D0044E001A001B00A7402FA719019818A808AA18034A08119B14030314061D1A070D1D140B1B071B1B1710271201032702111A1D0A2717191C1DB80107B321727D182B2B4EF44DED4E10F63C4DED3939ED12392F003F3FED3FED12392F10ED313043794034001908250C150A26000E1310260112110F1007190A26000500032101010204030B160D26000F120D2600091806260104010621012B2B2B2B01103C103C2B2B103C103C2B2B2B81005D015D001617232E012322070615141633323637330E01232202351000330702D6E317AF10727EAC4A308892708319AF1EF0BBD2FA0112D41C044EB0D76383A86DA0A1DC8977D5C50133E6011A013A050001001C0000021705D20017004D402B071D060A1D03010F1439160D06120A1917171A0E0D1129171207120F0E1F0E020EFC14191819FC21677E182B2B4EF44DFD5D39C42F3CFD3C104E456544E6003F3F3C4DFD3C3FEDD4ED313012373633321617152E012322061533152311231123353335B5233FB41124171C190B5220B2B4B295950542345C0202A4020155AE8EFC64039C8EA8000000020084000003ED04490019001A005E4031B706C706020406140627147606740705140C021418101D05070006180B0A1A071A1A000C29091A1C012E18291900191B1CB80106B3216242182B2B4EF43C4DFDE44E10F64DED12392F003F3F3C3F3FED1139390112393130005D015D1333153E01333217161511231134272623220706070E011511230184AB4CAA68E4502CB71D30
+
7E40294A382D1BB401A7042F985E529F57A2FD5102A3623C640D1642357169FDCF04490000020080FFE303DE044900170018005E403AB814C81402091308141913191428067703D707070800050E0A00060D0A051D120B180718180B160D2E0A290C0B1A1A01291619191AD2216242182B2B4EF44DED4E10F63C4DFDE41112392F003F3FED3F3F3C391112393130005D015D0111141716333237363511331123370607062322272635112501381A3083BC4425B4AA0223346793E5532D01AF042FFD39523460A85A9D020EFBD19E3D2A5499528902D81A0000010000000000006B8BED625F0F3CF500110800000000005F4D8F0000000000C9C13CF7F865FC270B9108F9000000090001000000000000000100000629FE2900000C01F865FCED0B91000100000000000000000000000000000008051200420556001E0556009705C7005A0400003B0239001C04730084047300800000003400C0014401D4025602A202FE0358000000010000000800920009006B0007000200100010005D000007E80A1D00040001B800532BB800492BB8003F2BB800352BB8002B2B4118008001A6009001A600A001A600030069018B0079018B0089018B0099018B00040089018B0099018B00A9018B00B9018BB2040840BA0179001A014A400B041F5414191F180A0B1FD2B80106B49E1FD918E3BB0119000D00E10119B20D0009410A01A0019F0064001F01A50025017A00480028019AB3296C1F60410A01A9007001A9008001A90003008001A9000101A9B21E321FBE012C00250401001F0126001E0401B61FE7312D1FE531B80201B21FC227B80401B21FC11EB80201400F1FC01D9E1FBF1D671FBE1D671FAB27B80401B21FAA29B80401B61FA91D6C1F931EB8019AB21F921DB80101B21F911DB80101B21F751DB80201B61F6D29961F6431B8019AB21F4C96B802ABB21F391DB80156400B1F3638211F351DE41F2F27B80801400B1F2D1D4C1F2A31CD1F241DB802ABB21F201EB8012540111F1C1D931F3A1D4C1F1E1D45273A1D4527BB01AA019B002A019BB2254A1FBA019B0025017AB349293896B8017BB348283125B8017A403648289629482725294C1F252946272729482756C80784075B07410732072B072807260721071B071408120810080E080C080A08080807B801ACB23F1F06BB01AB003F001F01ABB308060805B801AEB23F1F04BB01AD003F001F01ADB70804080208000814B8FFE0B40000010014B801ABB41000000100B801ABB606100000010006B801ADB300000100B801AD401F04000001000410000001001002000001000200000001000002010802004A00B0018DB806008516763F183F123E113946443E113946443E113946443E113946443E113946443E11394660443E11394660443E11394660442B2B2B2B2B2B2B2B2B2B2B2B2B2B
+
2B2B2B2B2B2B2B2B2B2B2B2B2B18011DB0964B5358B0AA1D59B0324B5358B0FF1D592B2B2B2B2B2B2B2B182B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B74752B2B2B65422B2B4B5279B376706A66456523456023456560234560B08B766818B080622020B16A704565234520B003266062636820B003266165B070236544B06A234420B176664565234520B003266062636820B003266165B066236544B0762344B10066455458B166406544B27640764523614459B36242725D456523456023456560234560B089766818B080622020B172424565234520B003266062636820B003266165B042236544B072234420B1625D4565234520B003266062636820B003266165B05D236544B0622344B1005D455458B15D406544B262406245236144592B2B2B2B456953427374B8019A2045694B20B02853B049515A58B020615944B801A6204569447500
+
00>] def
+
/CharStrings 8 dict dup begin
+
/.notdef 0 def
+/A 1 def
+/B 2 def
+/C 3 def
+/c 4 def
+/f 5 def
+/n 6 def
+/u 7 def
+ end readonly def
+
currentdict dup/FontName get exch definefont pop end
+
%APLsfntEnd
+
42/FontType resourcestatus{pop pop true}{false}ifelse
+
{currentfile 0(%APLT1End\n)/SubFileDecode filter flushfile}if
+
/FontType 1 def
+
/FontMatrix [ 0.00048828125 0 0 0.00048828125 0 0 ] def
+
/FontBBox{-1947 -985 2961 2297}def
+
/UniqueID 4257378 def
+
currentdict currentfile eexec
+
54544758EC884CF30C3CD503CEDBFF3839C47C3C3333173232E3FDBFF439491DB843E1924E63AA7726BBB0485AB56D93D8C0906F647A47162891E73FFC2A9873C4B1EAC5EEBDFFC4D06084FBD84139DF4583C6E259D10699944D1068C9C45667DCCCFB9B7EA01B606435EDCBD273ABAC093D14085CCBAC149BD7382E842CFE0D7FE4FD2EF589A2471F6074A80A8B675C2F7A50D63AC1EF90D787BADD11633CB01CF6EE3B37AAF9078A69AC4740E9B6525D78BBD839551A1CB80DB8682FA5E87591BBD6EE8B946063A2A58D9CA3685AB305495DC5FB5747EB8A9A059C4976C0FE4EEAB1D56FF47F1E9664ED9F4A7DAB763AF92B2F6CF2FA7DEC24710E0B9096E30F772BA7FEA9BDBE496C42ED2CEB58F54E80BDF57CE7B4DB6CCFE7182F43BF93CCA0767AF95D62C5D2C3DC6AE1E6D139F51A2C63432117F1714C5566572EE9967A715420ABDCD1D7BD74F8450B89965FCC81C6ACA565C5F3CCF91D430D1F953E4F1A645300A98DD8C47CD64555F08F422340A85404EAE0D3229C4F9336B9470CACBD6BBF3395104750A915CC6EAAC197668267B8C62D2764C8CD69FD937CA3C924D997A0EDE7964BEB9EA2F92EF70C5E5DA0AA5567765E71F2B911B3C5586B741EEB93F3C73016EC16BFF283758900903D203992EFC8BAFAF13579C602F38C980943B128E467A4B303542E85E0849534105E9F083E4E3373F14A64BC3AB0F9692F6BC106AE217BF94B71975CBCEAD28FD587E1BFB01FDF6931915C89E8032677890B9B723498510FBFA80C605F161F06E859104BA241B4B3BC00E8F3EE36946F0C1403A830B567D1F5E819A60C86FD5817031708D2A57012E2FFD71B6CE0F0C763F0B9CC45EC71A322008F6A6C7340600DA6ED5A555A375D6F3B96F7843FE25DB614708D58B11C5C13CAF76B14EFA716E833FC9A74C6A1167A3C3D0D9CB97A48032F29B6C72FF3B147D4741C2EC660E138617B4DEE4ABCC00FEC609E7FE78967A6CF5165B5BC3684D5DC07EB8EE55B6647E8141E8BB6BB59AD696FDAE9F63202BE9889D4569D2C7C3ACEE05A5BAC6DEA14D5FA1BE1E853A3746468D127AD43461737FCEFFE3B2ECA08188F71B6728E327D7BC252BEDC20DF7B34C2103FF234DDC2A0DBC6EDC5100D5B3BEE638F730FF4CCEB7A976D46C0A08B7E94CB59F02475FF73844012F72CB54DCDF2848FA894E8C5250F7BC6B799BE024FF4A6B678C3FA7E45F0F7F95AFA64DAA258AC8DF9CCCB36A485D852BDD0B1A4D5C1F4A4F8691657C48EF4210F2122C67074FDB5C2853642297E7C8EB01D1CCC7755F8B4ADD0C7E9E248904CFA79493D237CEFE8F18135D268F0C434D3661436758ECD055489DD5D99B2C5F74FE40CE2B693EB1B6AA4E808611308B05EA76AA899447FE868DB7A93137F40E165697C7E8C675A3D45F1D4CE045815666FEC3BB764F2C4E0D84CDE
+
5B7D6AA58C7B52DB3D0367961DCCDD9DB2425D3BD97E43985F66B5857AE371F0A788A88288CF9F41FC8688E767954D055E8729D007B14E8D0B52B5D99D157179898EF7D94440AB245F984F673C0D772AF42DF5BB1954652FB36521EB448D08DEA975E23DBCC1342EC2C02037173DD98C27D1ACD73E218E9EBC153122F4CED1EAE5A9A03F90443C6F93A5254CC65CB309ABD6A6CECA22E231722E2C73B1FF3BF65073E172A3F81C169C76C975F214BCE396B585D5D8BFC16064C7C5454AE4657DAC3B5AF22727ED69A338FC6DE62419FD0E5681A7124CD35D95CA1CC39F8F6E16BC8A1D27E96CFC7C655CAA76FB78660FC9408A7AEFE28A9A4CF2C27187BCFA33EA8B6CBF2ADC4EE46113A61C8C602E60C7B8CBD38171E34003D19CCD923864B9F74DD2F09ED764F3A9017E96B7F9946200524FE264201C3E19E06818BC5C890AC994D4DFD3562FE008F02215557192266668BF8B0FECF13CD03854CF499A429C0A4CA24FE1D23D7C11C9C6A5CDD2492DE72988A1A75F20CE0ABB9BE3063A947E5751BFD9FD51B64493C8BFCC0B3016D866DD81B44F5716740AA0FDB7C993756E78D5D66D83CA6F8D7681A6CB65A560E660BE66C09EC27F89BE43F1AF506969FF424721D16C605BAC7C9D5E7A6EEDD5920ABF43AA1ED3FB92CFCA5EABF389CEF9E94553F2EB4D42E7B637909BF9310ACDB6FEDE16A727AFFB4CAA471380AC75FF985BBFE2A738C1B07CA509FE94596002FF7D5C3EAE5402EE5C455C9F50E3D68F76AC6446C23FB99F3F7D4667DFB0C17674844341229E9516F4E9D86E3EB4A4F5115BEFCAB40289945F41F22CA547B3648F6138B7365717FD15E87E10BFE981503E1819AE1199A8696D
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
cleartomark end
+
%APLT1End
+
%RBIEndFontSubset
+/Helvetica cguidfix
+/F1.1/Helvetica renmfont
+[ /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.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def 
+/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def 
+end ] /Cs1 exch/ColorSpace dr pop
+[ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def 
+/DecodeA { { 1.8008  exp } bind  exec} bind 
+def 
+/MatrixA [ 0.9642 1.0000 0.8249 ] def 
+/RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def 
+/DecodeLMN [ { 0.9857  mul} bind { 1.0000  mul} bind { 1.3202  mul} bind ] def 
+end ] /Cs2 exch/ColorSpace dr pop
+%%EndPageSetup
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+q
+0 0 267 271 rc
+-97.5 344.5 m
+461.5 344.5 l
+461.5 -438.5 l
+-97.5 -438.5 l
+h
+-97.5 344.5 m
+f
+11 260 m
+47 260 l
+47 11 l
+11 11 l
+h
+11 260 m
+f
+1 J
+1 j
+0 0 0 sc
+1 0 0 -1 -97 344 cm
+108 84 m
+144 84 l
+144 333 l
+108 333 l
+h
+108 84 m
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 29 135.5 cm
+/F1.1[ 12 0 0 -12 0 0]sf
+-11.34082 -3 m
+(!"#$)[ 3.333984 6.673828 6.673828 0.000000 ] xS
+-4.0019531 11 m
+(%)s
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+CM
+112 201 m
+148 201 l
+148 76 l
+112 76 l
+h
+112 201 m
+f
+0 0 0 sc
+1 0 0 -1 -97 344 cm
+209 143 m
+245 143 l
+245 268 l
+209 268 l
+h
+209 143 m
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 130 138.5 cm
+-11.34082 -3 m
+(!"#$)[ 3.333984 6.673828 6.673828 0.000000 ] xS
+-4.0019531 11 m
+(&)s
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+CM
+220 197 m
+256 197 l
+256 43 l
+220 43 l
+h
+220 197 m
+f
+0 0 0 sc
+1 0 0 -1 -97 344 cm
+317 147 m
+353 147 l
+353 301 l
+317 301 l
+h
+317 147 m
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 238 120 cm
+-11.34082 -3 m
+(!"#$)[ 3.333984 6.673828 6.673828 0.000000 ] xS
+-4.3330078 11 m
+(')s
+0.60000002 i
+/Cs1 SC
+0 0 0 sc
+1 0 0 -1 -97 344 cm
+144 213 m
+156.66541 172.6707 171.16776 103.6655 182 92 c
+190.75253 82.574188 197.1132 110.57954 203.98026 130.64772 c
+S
+CM
+111.28468 202.76021 m
+110.95242 214.9614 l
+103.01166 211.73442 l
+h
+111.28468 202.76021 m
+f
+0 J
+0 j
+1 0 0 -1 -97 344 cm
+208.28468 141.23979 m
+207.95242 129.0386 l
+200.01166 132.26558 l
+h
+208.28468 141.23979 m
+S
+1 J
+1 j
+245 268 m
+257.99869 222.33791 272.00119 151.16466 284 131 c
+292.47885 116.75084 299.96075 127.96632 307.50183 137.65463 c
+S
+CM
+218.64566 198.33257 m
+213.50497 209.40292 l
+207.49341 203.29306 l
+h
+218.64566 198.33257 m
+f
+0 J
+0 j
+1 0 0 -1 -97 344 cm
+315.64566 145.66743 m
+310.50497 134.59708 l
+304.49341 140.70694 l
+h
+315.64566 145.66743 m
+S
+1 J
+1 j
+317 301 m
+287.3363 303.66641 256.83044 324.41513 228 309 c
+202.02444 295.11133 177.39485 251.85883 152.29529 218.93036 c
+S
+CM
+48.182663 134.01295 m
+51.942123 122.40063 l
+58.650635 127.73593 l
+h
+48.182663 134.01295 m
+f
+0 J
+0 j
+1 0 0 -1 -97 344 cm
+145.18266 209.98705 m
+148.94212 221.59937 l
+155.65063 216.26407 l
+h
+145.18266 209.98705 m
+S
+1 J
+1 j
+[
+1
+4
+] 0 d
+317 301 m
+257.11655 273.55341 l
+S
+CM
+149.72722 75.208344 m
+158.33087 66.550598 l
+161.90219 74.34259 l
+h
+149.72722 75.208344 m
+f
+0 J
+0 j
+[] 0 d
+1 0 0 -1 -97 344 cm
+246.72722 268.79166 m
+255.33087 277.4494 l
+258.90219 269.65741 l
+h
+246.72722 268.79166 m
+S
+ep
+end
+%%Trailer
+%%EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/continuation.graffle	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,528 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGrafflePro</string>
+		<string>138.33.0.157554</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2011-11-13 20:18:51 +0000</string>
+	<key>Creator</key>
+	<string>Nobuyasu Oshiro</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1 0/72 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>7</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>21</integer>
+			<key>Points</key>
+			<array>
+				<string>{317, 301}</string>
+				<string>{245, 268}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>Pattern</key>
+					<integer>2</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>8</integer>
+				<key>Info</key>
+				<integer>4</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>4</integer>
+			</dict>
+			<key>ID</key>
+			<integer>23</integer>
+			<key>Points</key>
+			<array>
+				<string>{317, 301}</string>
+				<string>{228, 309}</string>
+				<string>{144, 208.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>8</integer>
+				<key>Info</key>
+				<integer>4</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>8</integer>
+				<key>Info</key>
+				<integer>3</integer>
+			</dict>
+			<key>ID</key>
+			<integer>14</integer>
+			<key>Points</key>
+			<array>
+				<string>{245, 268}</string>
+				<string>{284, 131}</string>
+				<string>{317, 147}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>7</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>7</integer>
+				<key>Info</key>
+				<integer>3</integer>
+			</dict>
+			<key>ID</key>
+			<integer>12</integer>
+			<key>Points</key>
+			<array>
+				<string>{144, 213}</string>
+				<string>{182, 92}</string>
+				<string>{209, 143}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{317, 147}, {36, 154}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>8</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 func\
+C}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{209, 143}, {36, 125}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>7</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 func\
+B}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{108, 84}, {36, 249}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs24 \cf0 func\
+A}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2011-11-13 20:18:52 +0000</string>
+	<key>Modifier</key>
+	<string>Nobuyasu Oshiro</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgVMCgUoDhg==</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{108, 70}, {693, 938}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/factorial.eps	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,882 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%HiResBoundingBox: 0.000000 0.000000 265.000000 298.000000
+%APL_DSC_Encoding: UTF8
+%APLProducer: (Version 10.7.2 (Build 11C74) Quartz PS Context)
+%%Title: (Unknown)
+%%Creator: (Unknown)
+%%CreationDate: (Unknown)
+%%For: (Unknown)
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 0 0 265 298
+%%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 265 298
+%%BeginPageSetup
+cg_md begin
+bp
+sdmtx
+%RBIBeginFontSubset: Helvetica
+%!FontType1-1.0: Helvetica 1.0000.0.0000
+
14 dict begin/FontName /Helvetica def
+
/PaintType 0 def
+
/Encoding 256 array 0 1 255{1 index exch/.notdef put}for
+
dup 33 /underscore put
+
dup 34 /c put
+
dup 35 /o put
+
dup 36 /d put
+
dup 37 /e put
+
dup 38 /space put
+
dup 39 /p put
+
dup 40 /r put
+
dup 41 /i put
+
dup 42 /n put
+
dup 43 /t put
+
dup 44 /f put
+
dup 45 /a put
+
dup 46 /l put
+
dup 47 /parenleft put
+
dup 48 /parenright put
+
dup 49 /braceleft put
+
dup 50 /quotedbl put
+
dup 51 /equal put
+
dup 52 /percent put
+
dup 53 /backslash put
+
dup 54 /comma put
+
dup 55 /semicolon put
+
dup 56 /x put
+
dup 57 /zero put
+
dup 58 /braceright put
+
dup 59 /greater put
+
dup 60 /one put
+
dup 61 /g put
+
dup 62 /asterisk put
+
dup 63 /hyphen put
+
dup 64 /s put
+
readonly def
+
42/FontType resourcestatus{pop pop false}{true}ifelse
+
%APLsfntBegin
+
{currentfile 0(%APLsfntEnd\n)/SubFileDecode filter flushfile}if
+
/FontType 42 def
+
/FontMatrix matrix def
+
/FontBBox[2048 -1947 1 index div -985 2 index div 2961 3 index div 2297 5 -1 roll div]cvx def
+
/sfnts [<
+
74727565000900000000000063767420000000000000009C0000036C6670676D000000000000040800000A1D676C79660000000000000E280000175468656164000000000000257C000000366868656100000000000025B400000024686D747800000000000025D8000000846C6F6361000000000000265C000000446D61787000000000000026A0000000207072657000000000000026C0000003CF05C0001005BD00280580001A042F001F0000FFD90000FFDA0000FFD9FE55FFE605C70010FE6DFFF1033B000000B9000000B902FE3F3C00C0008D009B00AF000600A800C00028005E009800C9016A00B9015C00B400D6011E002E0080000400B8004C00CC01FFFFD1006600A400AF007400C2009500B1000C0028006D0015004C008E0125FF7A000C0040004C00620084FFA200240038008600BD0039005E008E00EDFFA9FFB300400052005500AA00AB00C200CB012302B10413FFAEFFE4000800510074008400AA00D1FF4CFFAF0012002C004200500051008400BE012503DAFF680018003B0098009C009F00A100C100EC018201B4FF68FF76FFD0FFE100020018001C00530053007D01B401E103AF0486FF9CFFEAFFFE001F0028002A00520060009300A300AA00AF00AF00C001000145016B0174019301950240028202B404850517FEFD00060029004700470048006F008800B400B900C400F200F901EF02180310037403C5FF35FFF3000B004B004C0052005500650076007600870087008E00AB00BB0106013001430150017D0194019501D3022A025502580277027802E6034E035C037903D3047304B2058C0598060BFEF5FFBBFFC7FFD50017001D005B0072007E009C00C200D000F400FA01030106011C0125013B0142015E015E0180019B02B901A101B9025001C001D002AA01DF01E301EF01FB0205020C0215022B0274029302AB02C202CE03690395039903DF03F5043E050205A105E5062507DBFE62FE89FECEFF3BFFE1FFF800030008002100390042004E005F0061006F00700034007F008E00AD00AD00AF00BD00C400C500C900C900C900E3011C00ED00F800F901000112011A0132014D014D014E014F01660169019E01BA01BA01BE01E301EF01F602000200020902110217021C02530262026D028002D50280031B032A034A035A03AF03AF03C803D603FB03FB04050413041504470449008C046D049A049A04A604A804B204CF0539053E054E055605800589058C036305D105D6067E068E06B206EF06F00728074C076F078C00B400C900C000C10000000000000000000000000004012400AF0032006E0063014401620096014301A10161008A00740064018801EF01700028FF5D037E0347023000AA00BE007B0062009A007D0089035C00A1FFD803AA00D70093006C0000008000A70442001D0597001D00820030002A
+
002A002A002A002A40292A292827262524232221201F1E1D1C1B1A191817161514131211100D0C0B0A090807060504030201002C4523466020B02660B004262348482D2C452346236120B02661B004262348482D2C45234660B0206120B04660B004262348482D2C4523462361B0206020B02661B02061B004262348482D2C45234660B0406120B06660B004262348482D2C4523462361B0406020B02661B04061B004262348482D2C0110203C003C2D2C20452320B0CD442320B8015A51582320B08D44235920B0ED51582320B04D44235920B09051582320B00D44235921212D2C20204518684420B001602045B04676688A4560442D2C01B9400000000A2D2C00B9000040000B2D2C2045B00043617D6818B0004360442D2C45B01A234445B01923442D2C2045B00325456164B050515845441B2121592D2C20B0032552582359212D2C69B04061B0008B0C6423648BB8400062600C642364615C58B0036159B002602D2C45B0112BB0172344B0177AE5182D2C45B0112BB01723442D2C45B0112BB017458CB0172344B0177AE5182D2CB002254661658A46B040608B482D2CB0022546608A46B040618C482D2C4B53205C58B002855958B00185592D2C20B0032545B019236A4445B01A23444565234520B00325606A20B009234223688A6A606120B0005258B21A401A4523614459B0005058B219401945236144592D2CB9187E3B210B2D2CB92D412D410B2D2CB93B21187E0B2D2CB93B21E7830B2D2CB92D41D2C00B2D2CB9187EC4E00B2D2C4B525845441B2121592D2C0120B003252349B04060B0206320B000525823B002253823B002256538008A63381B212121212159012D2C456920B00943B0022660B00325B005254961B0805358B21940194523616844B21A401A4523606A44B209191A45652345604259B00943608A103A2D2C01B005251023208AF500B0016023EDEC2D2C01B005251023208AF500B0016123EDEC2D2C01B0062510F500EDEC2D2C20B001600110203C003C2D2C20B001610110203C003C2D2C764520B003254523616818236860442D2C7645B00325452361682318456860442D2C7645B0032545616823452361442D2C4569B014B0324B505821B0205961442DB8002B2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8002C2C2020456944B001602DB8002D2CB8002C2A212DB8002E2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8002F2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800302C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800312C2020456944B0016020
+
20457D691844B001602DB800322CB800312A2DB800332C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800342C4B535845441B2121592DB800352C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800362C2020456944B001602DB800372CB800362A212DB800382C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800392C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8003A2C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB8003B2C2020456944B001602020457D691844B001602DB8003C2CB8003B2A2DB8003D2C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8003E2C4B535845441B2121592DB8003F2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800402C2020456944B001602DB800412CB800402A212DB800422C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800432C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800442C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800452C2020456944B001602020457D691844B001602DB800462CB800452A2DB800472C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800482C4B535845441B2121592DB800492C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8004A2C2020456944B001602DB8004B2CB8004A2A212DB8004C2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8004D2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8004E2C4B20B0032650585158
+
B080441BB04044591B21212045B0C05058B0C0441B2159592DB8004F2C2020456944B001602020457D691844B001602DB800502CB8004F2A2DB800512C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800522C4B535845441B2121592DB800532C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800542C2020456944B001602DB800552CB800542A212DB800562C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800572C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800582C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800592C2020456944B001602020457D691844B001602DB8005A2CB800592A2DB8005B2C4B20B003265358B0401BB000598A8A20B0032653582321B0808A8A1B8A235920B0032653582321B800C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8005C2C4B535845441B2121592D00000000020042000004D005BD00030007003FB800532BB800082FB800092FB8000810B80000D0B800002FB8000910B80003DCB80004DCB8000010B80007DC00BA0007000000562BBA0002000500562B3031331121112711211142048EB8FCE205BDFA43B8044DFBB30000000200520371025E05BD000300070025401402069D040300002903042907190809FE21BB48182B2B4EF44DEDD6FD003F3CFD3C31300103230323032303025E1E791FA11D791F05BDFDB4024CFDB4024C00050042FFDA06D00592000B000F001B0027003300F04052060C250C02370E580C670C960CA70CC60CD70CF60C0868080D0E0E46120F0F0C0E0F12180C0D2A301B2421F215240D272D240BF23324050A0F0E3517171A2A2402F2302408EA12241EF218242419343F52182B4E10F44DEDFCEDF6EDFCED4E456544E6002F3C4D3FEDFCFD2FC4EDF4ED011112393911123939872E2B7D10C43130184379405200322E0A301B002C002A1B011A22181B001020121B011626181B00141C121B013206301B0028042A1B012F092D1B012B012D1B0119231B1B00111F1B1B001725151B01131D151B013107331B002903331B00002B2B2B2B2B2B2B2B012B2B2B2B2B2B2B2B81015D710016151406232226353436330333012312363534262322061514
+
16331216151406232226353436330036353426232206151416330604CCCC9091CCCC91916FFCDF6F327979565579795591CCCC9190CCCC90042B7979555679795602B8CC9090CCCC9090CC02DAFA4803687955557978565579022BCD9090CCCC9090CDFB2179555579795555790000000001008EFE5E026105D50014003E4009141109131617171A09BB019C00080014019C400E400080044C10191516F7216C5218B80732852B2B4EF44DED1ADD1AEDD4ED4E456544E6003F3F3130010207061110171613232E01272627263510373613025E9D2F475132937992462938160B5D3BBB05D5FECF90DBFEE1FEDEF094FEEAE47E6C94A8574F0128E7930125000000010044FE5E021705D500130036400C081100131517171A044C0F13BB019C00000009019C400908191415F7213F7B182B2B4EF44DEDD4EDDDED4E456544E6003F3F3130131237361110272603331E01171E011510070603479F2E46513293799A412630295E3BBAFE5E01368ED701210121F0940116F673657DF471FED8E895FEDE00000001004E037102C405BD000E00B34066870697040257047704C708030D0C0C37120B0B0A0C0B0708070608371209090A0809070607080637120505040605020102030137120404030C0A0908040D0B060504020403010D0C0B0A030201070E044D070E0007061017171A0397010E0D970B190F3F48182B4E10F44DFD3CDDFD4E456544E6003F3F194D10EC11173901111217391112173904872E182B087D10C508872E182B087D10C508872E182B087D10C508872E182B047D10C53130015D005D01153717071707270727372737173501C2DA28DA876383846689DC28D805BDDF4C6F47BC47C3C347BC476F4EE10000000100AAFED0018000DA000E002D401600230E0A64080A1017171A07340A640008190F6365182B4E10F44D3CFDED4E456544E6003F4DEDD4ED3130173637363534262723353315140607AA451C0F01026DD66076D10C552D2A070B07DACA77B4150000000001005501DE024B029700030020400A002F03011A0500190405B80142B321BA48182B2B4EE410E6002F4DED3130132115215501F6FE0A0297B9000000020040FFD9041C0598000F001C00714017870501460815350F051C35070D1238036F18380B1E471D1076C418D4EDFDED003FED3FED313043794034001B0D2601251A2609250526160E18280014001228011B081828001006122801170C1528011302152801190A1C280011041C28002B2B2B2B012B2B2B2B2B2B2B2B2B81005D001716111007022120272611343712211236113402232202111417163303407C60577EFEE2FEFE7E693F7601358AA678AD9F932F48AE0598E5B1FECCFEDCBFFEEEE0BB013BF4AF0146FAE5F80152F4013BFED5FEDDDB85CB000000000100C4000002D5059200080023B108
+
01B80133400C0404070C04079605000A47091076C418C4D5FD39003F3FF4CD313013353E013733112311C4C39A268EC003F68A1359A6FA6E03F60000000200E3FED001B80421000F00130039401D00230F0A6408132A1006080A1517171A0734120A641000081914787C182B4E10F44D3C3CFD3CED4E456544E6003F3F4DED10EDD4ED31301736373635342627233533151407060711331523E3461B0E01016DD51F3482D5D5D10D502A3205070CDACA6B4876170551DA000002005C00DE046F03360003000700274015012000CD07200604001A0907021908095C213F52182B2B4EF43C10F63C002F4DEDFDFD31300115213501152135046FFBED0413FBED0336A8A8FE53ABAB000001001CFFED04AD04280006006C40425800580368038803040020120302030620120303040420120506050220120101000306040200030501050506010A03000106001A08010405030219070888215FB5182B2B4EF4173C10F63C1112393D003F3F111217392F044D8710182B10872B87102B87102B3130015D0901350901350104ADFB6F03BBFC45049101B6FE37B4016A0169B4FE36000001FFBB0000029205BD0003004040219802010302021C120101000002050400030202010A011A0503190405D021DBB7182B2B194EE410F618003F3C4D3F3C0111123939872E2B7D10C43130015D1301230157023B9CFDC505BDFA4305BD000000010000FF000473FF650003000FB50146000205003C103C002FED3130113521150473FF0065650000030052FFDC04470449000F003B003C00DD40382A30010A100B1B0C1C2733481069096A10073908120C09031B320724091D100C1D3B2B022E293BB73B023B322A2512100705081C2722171CB8018A4023171D1F07271D2E0B021D350B3C073C3C1C1407292AA8241A3E1B291C4A0F2738193D3EBC0197002100B9019600182B2B4EF44DEDF4ED4E10F64DE4FDC412392F003F3FED3FED3FEDED1239111217395D1112392EED2EED01111239111739313043794028363715220001192501360F2100181E1B21001620142101212200370221001A1D1721011521172101002B2B2B01103C2B2B2B2B818181005D015D2416333237363D010E010F0106070615013637363534262322070607233E01333217161511141633323637150E0123222726270E012322263534363713010E724E5F59962168326D62315301B43E150C837A8D3B210AA805F7A3BD767517250C1E112A2C265D2A160937CE7C95BDBA978ACF5A2C49A691151C060E0D1C2F67016C082C182D5C534C2A53C69B484898FD971C220303850C06422340486AB58895A41301E4000002003BFFE103D0044E001A001B00A7402FA719019818A808AA18034A08119B14030314061D1A070D1D140B1B071B1B1710271201032702111A1D0A2717191C1DB80107
+
B321727D182B2B4EF44DED4E10F63C4DED3939ED12392F003F3FED3FED12392F10ED313043794034001908250C150A26000E1310260112110F1007190A26000500032101010204030B160D26000F120D2600091806260104010621012B2B2B2B01103C103C2B2B103C103C2B2B2B81005D015D001617232E012322070615141633323637330E01232202351000330702D6E317AF10727EAC4A308892708319AF1EF0BBD2FA0112D41C044EB0D76383A86DA0A1DC8977D5C50133E6011A013A0500020038FFDA03ED05C2000B001D00774032370E470E570EA704A91B05250814020F1D1000081D1D07130A021D170B052E132E102911121A1F0B271A191E1F87217242182B2B4EF44DED4E10F63C4DFDE4E4003FED3F3FED3F1139113931304379401A181C090A000101180B2600091C0B260000190226000A1B0826012B2B012B2B818181005D1216333236353426232206150017161711331123350E0123220035341233F692A17DA1A67A88A9018A53303DADA23FAC6FB3FEFAEFDE015FE8D7C9CBC3D0CA0237341E4B021DFA3E956358012DFAEA015700030048FFDA041A0449001C00240025010C40799708991AA71F03050E020F0514150E120F1514400C401408291A014B0BB603C701C603C71BD808D909D61FD823E817E8230BC711C712025C080521240F9A161D243906070716211D1C070A1D160B2507971CA71CB71CD71C0425160F251C05190A0C07110E270F1D27051A27242E072719192627D421A65D182B2B4EF44DFDE44E10F64DEDD4FD391239391112393912392F5D003F3FED3FED12392F3CFD3C10ED1112393130437940460023040503050205010504061F26111012101310141004060C25221B24260020001D26011E1D09170726000B150E26010D0E231A2126011E0521260108180A26000D100A2600002B2B2B2B01103C2B2B103C2B2B2B2A2B2A8101715D00715D5D00161716171615211E013332373637330E01070607062322001110003301262726232206070102B4D638361210FCEF0590978D543014B1074F3152794152C8FEEA0118E2011F0B284AAD7CA805012304476B55516C4AA2A3C55D36473B912E501C100123010601020142FE26754682B38A01DC0000000001001C0000021705D20017004D402B071D060A1D03010F1439160D06120A1917171A0E0D1129171207120F0E1F0E020EFC14191819FC21677E182B2B4EF44DFD5D39C42F3CFD3C104E456544E6003F3F3C4DFD3C3FEDD4ED313012373633321617152E012322061533152311231123353335B5233FB41124171C190B5220B2B4B295950542345C0202A4020155AE8EFC64039C8EA800000003003DFE3B03E80449001F002D002E00B7404D36144908490958085909880CA91BA81DA927A62BB91B0B4008031622290EC40A221D1F070406291D
+
190A121D0A0F2E072E2E051C032E162E2D29051A300C0E270D3E26271C192F3087217242182B2B4EF44DEDF4ED394E10F64DFDE4F51112392F003F3FED3FED3F3FED10ED1112393931304379402C23281A1E0B1124251026231E262600281A262600110B0E21000F0E0C0D251D222601271B2926000F0C122100002B2B2B01103C103C2B2B2B2B2B818181005D00171617353311140706212226273316171633323736270E0123222411100033002623220706151416333237363501027C5E3335A63C70FEC9ADEC0EB70D273D83CF40260336987DAEFEFB0107BA0144A47FBE4625937CC24F2CFED104423E234387FC32CC76DA9BA548273C9256DD5250F7011D010D012EFEA1C0B25F9AB5BDAF6384022D0000000200840000013B05BD000300070036401C07E50400010006030A0917171A06010229070300190809AA216242182B2B4EF43C4DC4FD3CC44E456544E6003F3F3C3F4DED3130133311231133152384B7B7B7B7042AFBD605BDCC0000000100890000013D05BD0003002940150000030A0517171A0102290003190405AA216242182B2B4EF43C4DFD3C4E456544E6003F3F31301333112389B4B405BDFA43000000020084000003ED04490019001A005E4031B706C706020406140627147606740705140C021418101D05070006180B0A1A071A1A000C29091A1C012E18291900191B1CB80106B3216242182B2B4EF43C4DFDE44E10F64DED12392F003F3F3C3F3FED1139390112393130005D015D1333153E01333217161511231134272623220706070E011511230184AB4CAA68E4502CB71D307E40294A382D1BB401A7042F985E529F57A2FD5102A3623C640D1642357169FDCF0449000003003BFFD90421044E000C0018001900904033980896109916A504A808A610A916B808C808D704E50EE9140C3A08061D18070C1D120B190719191502270F1A1B092715191A1BB80109B321725D182B2B4EF44DED4E10F64DED12392F003F3FED3FED31304379402C001704260B1309260000110226010717092600050D0226010A140C260001100C26000816062601030E0626012B2B2B2B012B2B2B2B2B81005D241235342726232206151416331200111002212200351000330702E085304CBAA59696A3D6011EFCFEF7DDFEFC0112E70674010FA6965E94FCB2ABE403DAFEECFEF4FEFDFEAE012BFC010E01400500020076FE5504250449000E00220074402CA908A717022808201C110E061D15070F060E1D1C0B220E0227181A240A2E102E2129220F1923248721BD5D182B2B4EF43C4DFDE4E44E10F64DED003F3FED3F3FED1139123931304379401C161B00051A260426001B022601051602260101190E260003170626012B2B012B2B2B2B8181005D2436353427262322070615141716330133153637363332121110070623222726
+
27112302C6A72546BABB45252546BAFE2EAF36405B7BB6FEB7749A7952303BB479D3D2805CB1BB649A7C57A603B18E49283CFEE9FEFDFEA2965F351E49FDDD00000100890000029204470011004F40262703260D37034704040E0810020E0911090C270805070006110A081A13012E10291100191213B80145B321627E182B2B4EF43C4DFDE44E10E6003F3F4D3FC4FDC411123939011112393130005D1333153E0133321617152E0123220615112389AB15A46B05181D101B108892B4042FB9369B0203BE0302AF72FD980000020042FFD703B6044B002E002F012E408F38099805961299149815982A062824252736214621472447275624572766246726790C790D790E7623742474257426A61EA82C1303000B15052D042E13001A151B171C18152D142E280F0B6908262536250225220D0A042B1318C61C1D1307041D2E9A2B0B2F07090E100207002F212F1A1F18161827173E28260727281A310E1F27103E00272E193031B221A65D182B2B4EF44DEDF4FD394E10F64DFD3910F4FD3911123939392F111239113939003F3FEDED3FEDED111217397131304379404C012D022615251A26210E1F21000926072101032C002100052A0721011D121F21001B14182101200F22210021220E0D08270A21012625090A012D04210006290421001E111C210119161C2101002B2B2B2B103C103C2B103C103C2B012B2B2B2B2B2B2B2B2B81005D5D015D13161716333236353427262F01262726353436333217160723262726232206151417161F011617161514062322262701EF082544A864983D27738F894174DBB9F26B4302AA05263E99666945284E77C24269D9DEEFC70701B701505A3057575B4524161D24222A498198BC8E5A683D32474E40462A19131D2F2C45948FD0D9A002F900010017FFEF0209055A00180052B50D2E0AC00E01B8013F40250416391703060E0A111A17171A0301062900150E150F031F030203FC1619191AFC21677D182B2B4EF44DFD5D39C42F3CFD3C104E456544E6002F3F3F3C4DFD3CED10FDE431301333113315231114171633323637150E012322263511233533A8B6ABAB2615310D1E141F43277E5A9191055AFED593FD4538130B01028E0908816702C59300000001000B000003E1042F000B0035B800532B00B800002FB800032FB800062FB800092FBA000200060000111239BA000400060000111239BA000800060000111239303113331B0117090123090123011EE9F6F9DBFE970179E6FEF6FEFEE40179042FFE87017905FDFBFDDB0192FE6E02250000000001FFD5FE5E028005D700230072403E98069813A906A914A72105071317132713380A381F9614061F120C400D4D0C4D201F1F03162D15032D041315002517171A0316AE1A23910812C30C192425B80103B321DD33182B2B4EF44DF43CFD3CF4
+
3C4E456544E6003F3F4DFD10FD1239192F1AEDED181A011112393130005D015D05141617152E013D0134272627353637363D01343637150607061D01140706071617161501879C5DB2E9223EB0B13D22A3F8A1391F2543C1C04425059A830B7512ADC6CE6D3F731372156E3D72A3BCDC15720E80467C70965091121197538F000001002AFE5E02D505D70024008A404E960A960B9619A70AA60BA619A822073924011E05040302052024160F0E0D05121806020C0F041208211E191604131C40134D124D2024241C082D091C2D1B13090012C30E18910420AE1C08192526B80103B3213CA4182B2B4EF43C4DF43CFD3CF44E003F3F4DFD10FD1239192F1AEDED181A111217391112173901111217391217393130005D015D0027263D0134272627350417161D0114171617150607061D01140607353E013D0134373637018B43251F38A201025C3C223EB1B03F22E9B16B8E2544BF022E9050977084447A0E72158B59B4A3703E7113721275406BCECAA813750E8F8B97905297110000010000000000006B8BED625F0F3CF500110800000000005F4D8F0000000000C9C13CF7F865FC270B9108F9000000090001000000000000000100000629FE2900000C01F865FCED0B91000100000000000000000000000000000021051200420239000002D70052071D004202AA008E02AA0044031D004E023900AA02AA005504730040047300C4023900E304AC005C04AC001C0239FFBB04730000047300520400003B04730038047300480239001C0473003D01C7008401C70089047300840473003B0473007602AA008904000042023900170400000B02ACFFD502AC002A000000340034005C0124016C01AE02260258027602E4030A0348037003BC03EC040004CA054C05B8068206CE077607A407C60822089A090C09520A320A820ABC0B2C0BAA00010000002100920009006B0007000200100010005D000007E80A1D00040001B800532BB800492BB8003F2BB800352BB8002B2B4118008001A6009001A600A001A600030069018B0079018B0089018B0099018B00040089018B0099018B00A9018B00B9018BB2040840BA0179001A014A400B041F5414191F180A0B1FD2B80106B49E1FD918E3BB0119000D00E10119B20D0009410A01A0019F0064001F01A50025017A00480028019AB3296C1F60410A01A9007001A9008001A90003008001A9000101A9B21E321FBE012C00250401001F0126001E0401B61FE7312D1FE531B80201B21FC227B80401B21FC11EB80201400F1FC01D9E1FBF1D671FBE1D671FAB27B80401B21FAA29B80401B61FA91D6C1F931EB8019AB21F921DB80101B21F911DB80101B21F751DB80201B61F6D29961F6431B8019AB21F4C96B802ABB21F391DB80156400B1F3638211F351DE41F2F27B80801400B1F2D1D4C1F2A31CD1F
+
241DB802ABB21F201EB8012540111F1C1D931F3A1D4C1F1E1D45273A1D4527BB01AA019B002A019BB2254A1FBA019B0025017AB349293896B8017BB348283125B8017A403648289629482725294C1F252946272729482756C80784075B07410732072B072807260721071B071408120810080E080C080A08080807B801ACB23F1F06BB01AB003F001F01ABB308060805B801AEB23F1F04BB01AD003F001F01ADB70804080208000814B8FFE0B40000010014B801ABB41000000100B801ABB606100000010006B801ADB300000100B801AD401F04000001000410000001001002000001000200000001000002010802004A00B0018DB806008516763F183F123E113946443E113946443E113946443E113946443E113946443E11394660443E11394660443E11394660442B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B18011DB0964B5358B0AA1D59B0324B5358B0FF1D592B2B2B2B2B2B2B2B182B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B74752B2B2B65422B2B4B5279B376706A66456523456023456560234560B08B766818B080622020B16A704565234520B003266062636820B003266165B070236544B06A234420B176664565234520B003266062636820B003266165B066236544B0762344B10066455458B166406544B27640764523614459B36242725D456523456023456560234560B089766818B080622020B172424565234520B003266062636820B003266165B042236544B072234420B1625D4565234520B003266062636820B003266165B05D236544B0622344B1005D455458B15D406544B262406245236144592B2B2B2B456953427374B8019A2045694B20B02853B049515A58B020615944B801A6204569447500
+
00>] def
+
/CharStrings 33 dict dup begin
+
/.notdef 0 def
+/space 1 def
+/quotedbl 2 def
+/percent 3 def
+/parenleft 4 def
+/parenright 5 def
+/asterisk 6 def
+/comma 7 def
+/hyphen 8 def
+/zero 9 def
+/one 10 def
+/semicolon 11 def
+/equal 12 def
+/greater 13 def
+/backslash 14 def
+/underscore 15 def
+/a 16 def
+/c 17 def
+/d 18 def
+/e 19 def
+/f 20 def
+/g 21 def
+/i 22 def
+/l 23 def
+/n 24 def
+/o 25 def
+/p 26 def
+/r 27 def
+/s 28 def
+/t 29 def
+/x 30 def
+/braceleft 31 def
+/braceright 32 def
+ end readonly def
+
currentdict dup/FontName get exch definefont pop end
+
%APLsfntEnd
+
42/FontType resourcestatus{pop pop true}{false}ifelse
+
{currentfile 0(%APLT1End\n)/SubFileDecode filter flushfile}if
+
/FontType 1 def
+
/FontMatrix [ 0.00048828125 0 0 0.00048828125 0 0 ] def
+
/FontBBox{-1947 -985 2961 2297}def
+
/UniqueID 4257378 def
+
currentdict currentfile eexec
+
54544758EC884CF30C3CD503CEDBFF3839C47C3C3333173232E3FDBFF439491DB843E1924E63AA7726BBB0485AB56D93D8C0906F647A47162891E73FFC2A9873C4B1EAC5EEBDFFC4D06084FBD84139DF4583C6E259D10699944D1068C9C45667DCCCFB9B7EA01B606435EDCBD273ABAC093D14085CCBAC149BD7382E842CFE0D7FE4FD2EF589A2471F6074A80A8B675C2F7A50D63AC1EF90D787BADD11633CB01CF6EE3B37AAF9078A69AC4740E9B6525D78BBD839551A1CB80DB8682FA5E87591BBD6EE8B946063A2A58D9CA3685AB305495DC5FB5747EB8A9A059C4976C0FE4EEAB1D56FF47F1E9664ED9F4A7DAB763AF92B2F6CF2FA7DEC24710E0B9096E30F772BA7FEA9BDBE496C42ED2CEB58F54E80BDF57CE7B4DB6CCFE7182F43BF93CCA0767AF95D62C5D2C3DC6AE1E6D139F51A2C63432117F1714C5566572EE9967A715420ABDCD1D7BD74F8450B89965FCC81C6ACA565C5F3CCF91D430D1F953E4F1A645300A98DD8C47CD64555F08F422340A85404EAE0D3229C4F9336B9470CACBD6BBF3395104750A915CC6EAAC197668267B8C62D2764C8CD69FD937CA3C924D997A0EDE7964BEB9EA2F92EF70C5E5DA0AA5567765E71F2B911B3C5586B741EEB93F3C73016EC16BFF283758900903D203992EFC8BAFAF13579C602F38C9312448060975EE3A7373C3A15976847AEC4213ADF0F8E546DBAEAEDA667FFABF332B560A6029444720F482B95F04AFCE62F8B60522C57754C47FE1531B35A16FC989E7B84A7D284CC68A126B72B0313107EDBD399137D8F388FEF7632572F51A5AAD9909E018328706FF839561023C50291C032E70FB5ECEC8825FB80B315F3E30B3844B8C0F3135DCBD6BB3528E8245B7B669216875ECF373579395CB023B2F913F63C7E00FF0552D434A3859B93AA2A1CB834D92EC0548253550D79612CCDA7892C8B7EB2FAA5565A3BE192DCE532824E7DEED55467B08E518B255D554F2744066DD0D54B8CD183AC08390DF8CE87D831BAAE3E9E5173A837A4556E8DB999B895C77C98FFCE6C52EE204B90EEC184E1729D491B7178621193D4C4719CE16EAC4BC4FF595744A08AD2029889BDB6346F4042BEA2C3BE4EFCFD5F6D99990BD9BBE35DD9B3526CFE16ADAD98724DFE16F0C7BBD6C1CB9484C8685FD8F0D7CFB683AA7CE70A7F7E9CBE82618D0E82C3E1AF9E28E13F3B9C32B3C198E9EE3BEA3F3773D97684DE26F222741418B29B7EDE5A9CC07F192F7C1828B523511B6BD258E85F01BB61F8565FF3C4077564270A1CE8BDBF16C7660E5E6B12990E8213ACCCDDD71905AE56FBE3B2CA7E3BB413DDAA6EE37A9115AFD6BC5AA11E28BB266BB68DC9A41F38653C235D616B6056D3C815F6BA2F3D1C7CC1BA374D3EF8969A8294A95FAF99ABBDFAC7A03D521FE73CFBF4A98B2CD65756B4AF38F9C486B3E70AB2EE
+
D3A5F6B052AE7848392370003CF78B8279DE32AD6485A2AB8470CEA34F48756ED7990A7B19B769A5EF8E77C158439CA501AA60CAF6B2EF0EB84DA860AF4FD4A4AA850AE4C14F2D4621E935A47A51FC6B9AD845B51F725D2C12B718FA822D26AD5F8E61583358E933DE2AE312386A803D5B788C80037E32D6ED3D0A23153CB4D459B4B9BC419058D1A1BCFF6E5A35427BFA165E8BCD1851F52DB84EE2259D57F6B0423791E2D99E05EB72D58C7D7ED93867B3DCB5F49CE4DF929E3D9A7CB31BBC76628C7570B761903B91431EDD1F2BA82FE98A46A165FB65E2085B26A34AA69513FAD6920A70A6AA35B4D382FDA05C0B473EDE33C130B72BB36D8AAC68C8B61AF5C76486286B9CA3CC9CBAF36ACF93D80B0E466E28A66FAB08C4305DD9D8E399B6E7626DCDAAF574F5AE816C2AFD2009859B03FC85792A92AA2018714E4B624BF43BE91800B279CE871B2FC60B9059408322EB67266F4B1E3AF65BF3A0C023B8CF5127A3A9B49FA0F53276D978FC267DC8FECC07F68864AAD1368167F66107CA8B075FAA551D7D7FE8C3051AF273C762A6A4960B1C62F055DF18202298C80AC6ACCCB0AF8DA6D7AC2DC338B76E282E233A15FCD12106EC2FD70827E253D44DD2A3EC1BB917564DB6DB7333EF950EB6EC9850660DC4FC8E79B017730C1365A9E4C5BCF98FA92D2191211815C22F5868C52CD042E34D5B7ABCE04A6BE9B164B286B546B4223732582A5E727AB96FF63CBA8F4281738AE79E80BD2CE7111944D0E7D4D076A4802CAEC4B3EB0EE7EB86A4C11F33EC5B465DE2392BEEE53F3D5E32F18D6C14B985F8EC57132B1B45A11ECBA745DF25655F2F2D6F9D2DCB70DA7F09F536F6CEE1685BD3AEEF44FB1DE6714C96204A39C958D2F20B9640B264CFFED4B8C0C5D2D5849F09B57E5EF94495886D5D29CB723D3A001793E3B5B494FB087837A6F3D72FCA7FA84FD35C045BD96088D7617041F6DEF88271F5B8A83AE8271E38B6EE48F84EA3F1A3D109F7814B0E15BDE35A8B8C1D2EDD090A695416B3B53957B3D0A6AEF9085932F1CC898AF229D8C6BF739B1C70E9E1E485EFE553C24A8E5BEADA16B0829E515A4E6C2F796C84B234DBD8C11B921DB097366CE3318DB0B478439DA84EFCA1B89BD9B6D7CA6923BC843CFF0F37B7A8D01332EFBB0776BB14FBB22F8268B4EADAD6FACB235A3E955EB2D1D5E40664099456AE7BFD3C03015124FEED4F54F42240CA9533AE63883A8CAEB856795B222B407EB0EFBCF18015B0B49AEB2752449A729D0F0BFD5EDA758B64C9D82A7823F0D933EE6568C7630A5C18DFC5053AEC9EE2A73F38BA07A7A77E60DB1D360924654B29143841CBFAFE604CA968343818874F8FF08ECA3EC2FB7E985C0476BC19F4F1091AC1BD5A7DC8C3675A0F62E63DCA062975164C92CCDEF86A70875E581068F59D0B4EECAF26A4F40F
+
9C9559EA94685D7D1858677C485FF7BC39AC1716A9D21F845FC32D9616C1BFD8DB0BE80F289E8FF44129C1D69007BB50CC7EFF343DFEEE9D1C356A1CEE62D13FDEE58A0AB6D4C9CF471DD799C51EB086B1DE9DFB6019BD9433E912112A09360E6655C3C24E70BE15C6C295FDCFA1A681D718AF90DF05998C881D66907FEA28454DD043633C0F527D6D9CE059DFB492AE338A7E5F8CD2193A1AB3C9166E82AA6468A67EA2E1CDAB335CF51E5A9DF9F84B8C4CD619780AA83859FAD36269DDFEDD80FC8F8B6F4EB917AEDCDFBA429BE1DDAEB6A280C5BFE475160EE7C549B77B7EC7468B4FA4138247E5A96DDD58364C3BE48AA87B6E92FBB34F8797FA86B1D59CA7F8D8D23FC53CE0944FBCDB0F980B0D63A823BE42127D5F608538C3F7430AFA5EDCA24EA32B5877B55FD7AA058596FCE27A7ACFA1AF43876D8A1D244E03CF212051A6BF859F5A94B7FC17C2585E8691BD80F62FB541125584628A906B2DB86F27846CEFE4DA6BC9EBDFF9A87867C9AF34DDBE024AC522690696127C38E390B0235F736CD437885DB3C6088E6AEEFE8BAAF34B9116174F88220EFE1C3098C3E2115F47080D680AC0C5B38E419A0F359CCB8D448C37ACDEFC8DF17D6978413003A58B19EF3B9156C6BE1E1955FEEA91FE1F1B765AE7868D7DCAF5485088A453D2D4B1CC6C65D6AC58CA08467A82840B48D91EEAB0AD64467CCEEA5E4585C0D2030BA44A79A7A0D1C425D61CC9833FF07BFE825368256EAA2A244FAAC3C13F4F659CA7E49D3E0550DD3EA493B282473B97B6EA16A5ED1E5D1D6A68976E347445B3AF442BF49E43256EBE5AE5A4E5D069D41F1D8943C4FF9969F3A6DCB06C79F7232553FD8EEF00D547ABA02FD7FAF929229459EAEB3B6C93E1471E5D249B2D226D6FE15C1D878FB7835DA51C0200F2E1DBB86FB6D2380397EE65EDF4329DEF795722D3260A0C73CEB24C59CA2289DE3687A89F3FB11B6296C974D28B7288604E9AC0F5049F9BB36B8380577D106E58BB7973A6FC0C9BC3B1285C1B235FEE9C8D7EB0FBBBC79488E96F116069F106886C716D36BFA7937F79DE6004418D293B4D84CFFCD4706E6433B5F212C750D4D40477214EDA102689773A1DD7CDB5CBFD0DF36AC9C21992F4FE39C7A26429D070EFC3E8597C6E98FCD858BA03C170838D2B8E98941DC2810B86573325EA8094F3BB0EE779459757F75385F41F44D3193A2BEF1BD9EB3613A3A762E3C529D29AE1FC9F3282C45956949370BAAD6FC97F5F0075635B9D3BFA2026CB2F0CEE217F42225190AA34DDB4CDBC500126AE8BF24E61B4888D0FB8D83F4A4F2F153EDE378B6D1DE0E913B9124780829DE951918EE390C1CC7E08068CA59A930413ADB36EB9BA3EA0F4D4E7D10275E86EC7B0381FFC285467ED6B144B8CA3B9A5C078EDC44F86A595340BB7C6CB2714D42B98294F9B4616
+
6A20A3179D4C2BC18C66EE49EA27EA8B71E09992D62F18FF34451506BD2590AFE75959E2AB3D9F7146B410AC399A09B03386FF22164B7E8CC97C8F500C286C217AE808C7AC26B79FE133ADD05126EBB471D7005E64C05AE71C0CE2CE9450171099DB46AB9030474E43E981807D1168DCF59700D31A41C7F2D33E95B682556434C675B26E4635BEC43DE14B96F73E15FDD9C9A86604C7BAD96E46EDAA2DC9A84D43EA6D66C071DD47CBB3B911DBB456198DEE2429FC0825FF5F0DE624D9D8FCC305C4A4DBE14B12ED482675CC6718257B70AFFEC6444E0BAA2290DA163DAD461DBC2BE52D5614A141C9A0F9F032EF5D3C9386335269A65D731E0A5BCEDC245D3BD320891051887937491C6F457A2136441867946C2E0BA240710AAD3DBF2A356C987886D9541FE46B63CDB9ED658B4A20D05AB15056D3726BEEC6388261E327CB4706B42C7D351D9565F3F8F9CE7C17C24339884CF5055BDC5F9B1F0BC6D81C7EDE0425DA61A9C24990D12BE1B7E757DA83A226D4E1250BD6EC85329B506043850A3EBD4786D2881761301E7CE041376CEBD35DB1AEA4A926463843C919FC20C239FF7733980529030AD0463BA4C5E51A5D07D53AB86F7F6C4407B53524A8F5F56AD4CE412E2B6E8A4F6DB76411344E8C206ABB03B0C784B9AA8567D822235166188147CE185FD0A6EEA0C2B80D18B64ECF41A246CF187AAD42A8CB8AB951652275438414F177D3922B41B6FF44FC658212910F32783F440E4E35BBFE8F5802DD71FD4B31B8925C39431C54EB6D539D3607482749643FE06FE2E9CD128971166503F00E8357963F6AF57A04634BB3D52B98D7A9BCBD3C453FC4DCE8B0A0A9C08F37F269ABD2117AE5EF12607D36A439FB878DE713259640B75C96BFBB394547A90F1DFB2B69C0B5BECF98599C06A1A787B41EC6207FD3C5E459E3FCD915E6A70C946A3EB98EE7F52E0F1359917E45C8E7EE4E1DE5B221FDA51831EFA02867C16AF8C19FBA096DAAE319ADBA25F3E9D011C3FD73C84170E4B4F1A2C5050CD5D89AF96494845029852C2357F377DF30A7796A4CD841D41B01C3729EA6737821FA6AFAA0E8FB0E46C873456E74158D706FBA06931A8AC323AAEDD287B562A4B6BE733447BE916A7D2CA7A11E0E1B6F33909932E30A4B4601D3689A199346B2BB71C70DC46BA8FBAFC2BE06D56C8519397DCEAB1769257AB2818AAE61272CCA296B15847E8AA3259E6AE6C4F7F87F8DB65085F4BA15831AD0680CADFC3905A0461F2A75D732651F800DE13F98B6318BDBBB779495E11AF9D5930FB00B8336554B01BD1BF72876198F432A37CF2C96E02087A602E94C447E0530D042215E4DF74ED3C83DB84028F2DB11DA9434AD178610C0FCB4E1DD68210A9DEC0121B9166EDE5A5C6B35FD852CD5B6B1A2E3EA539F0C861B4EFF58BBFAB788CEFA3D728C7CB63B07
+
19CDF6F31E2C5B82B56038FC25FE147BD00F5641909A8CE3458D8521426C25584AF2D95058CC3351325AA611A8FBA52A792ADF42B8B052A93D425740B14499CB4E7E5796EC707B8E2852CF028232E91600375EF9BB2040654C4EDBF2853B3601A6AC91A311B7BFE231B7484C9956EC77517B0AA39A0FE008A832F280D9ABB3FA8F0B36BD3165752BC3E264FCA0AE555806957FDF1116592E0DA33684B27C017B0DE1D2B1695CDF0782A43B299C73247D3C513416F5DD643DDF4A04A1AEC5EADCBBBE9820097B297164DAC21F58B062230CF8F9E6B2AC1A6A6C1F5527C4AA6C74D317D41C9466DE1464F8740326CCB164DCB900468B976F7FACD11826D8F9E8441C86411310615805E0C5D477A0C56D92A36BE0F339D7A5C5879775443C71CC408C6D4CDFCE90423D7FCB7EFCFC15F8455B5A829F97A5FDAB0070607ABE44C602FA0FB49A6473C73D2D2A09326ED73C969C21340EC1C5068E8E0A4AB4B66E1F33F92562EABB7CBD3F319A4913E625C153C9C947CD897F2A1FD04D5748AF1A6E9448792CBEE6706330BC3A63A348ECACF185B138A8F6D93E755FB3EF577C028E52D892AFC9BDD7BD5DEA1D916C27C061A25D2573D9330EABEE4FE53644036244F9D9101BC9EA7B00F4422987225EC23243BBC3D7D8D30D17262AEB517F1F4131511D7803D785E02E66F08E1CE322064DD28EC76258D8A740ACC9E7957854BE68F890D100F101014FFFD6E5B1CF518A5751FDB3E4FFF07A05AE593811F7623AE058E04FC0BA11708EA2EFB26CEB86AB12AC49EEF48ABF7A4AAB49D4ECBD9358FC8BF102CAE87FB3A04AE91FF83875ED7A5AC4893F2FDC5D3EEECAF72AE1CA0EF4F0480B9CEC8F772FE74407E1CDD30DB46FDCC322B074EEF11FAE8665AEC60576D1CCE3EA85A95178759AFC810544917D75F899FEB8
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
cleartomark end
+
%APLT1End
+
%RBIEndFontSubset
+/Helvetica cguidfix
+/F1.1/Helvetica renmfont
+[ /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.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def 
+/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def 
+end ] /Cs1 exch/ColorSpace dr pop
+[ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def 
+/DecodeA { { 1.8008  exp } bind  exec} bind 
+def 
+/MatrixA [ 0.9642 1.0000 0.8249 ] def 
+/RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def 
+/DecodeLMN [ { 0.9857  mul} bind { 1.0000  mul} bind { 1.3202  mul} bind ] def 
+end ] /Cs2 exch/ColorSpace dr pop
+%%EndPageSetup
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+q
+0 0 265 298 rc
+-44.5 352.5 m
+514.5 352.5 l
+514.5 -430.5 l
+-44.5 -430.5 l
+h
+-44.5 352.5 m
+f
+21 286 m
+244 286 l
+248.97055 286 253 281.97058 253 277 c
+253 21 l
+253 16.029449 248.97055 12 244 12 c
+21 12 l
+16.029438 12 12 16.029449 12 21 c
+12 21 12 21 12 21 c
+11.999985 277 l
+11.999985 281.97058 16.029423 286 20.999985 286 c
+h
+21 286 m
+f
+4 w
+1 J
+1 j
+0 0 0 sc
+1 0 0 -1 -44 352 cm
+65 66 m
+288 66 l
+292.97055 66 297 70.029419 297 75 c
+297 331 l
+297 335.97055 292.97055 340 288 340 c
+65 340 l
+60.029438 340 56 335.97055 56 331 c
+56 331 56 331 56 331 c
+55.999985 75 l
+55.999985 70.029419 60.029423 66 64.999985 66 c
+h
+65 66 m
+S
+2 w
+1 1 1 sc
+65 66 m
+288 66 l
+292.97055 66 297 70.029419 297 75 c
+297 331 l
+297 335.97055 292.97055 340 288 340 c
+65 340 l
+60.029438 340 56 335.97055 56 331 c
+56 331 56 331 56 331 c
+55.999985 75 l
+55.999985 70.029419 60.029423 66 64.999985 66 c
+h
+65 66 m
+S
+/Cs2 SC
+0 sc
+0 i
+1 0 0 -1 132.5 149 cm
+/F1.1[ 12 0 0 -12 0 0]sf
+-115.5 -112 m
+(!!"#$%&'\(\)*+!,-"+#\(\)-./\)*+&'\(#$0)[ 6.673828 6.673828 6.000000 6.673828 6.673828 6.673828 3.333984 6.673828 3.996094 2.666016 6.673828 3.333984 6.673828 3.333984 6.673828 6.000000 3.333984 6.673828 3.996094 2.666016 6.673828 2.666016 3.996094 2.666016 6.673828 3.333984 3.333984 6.673828 3.996094 6.673828 6.673828 0.000000 ] xS
+-115.5 -98 m
+(1)s
+-115.5 -84 m
+(&&'\(\)*+,/2,-"+#\(\)-.&3&4$5*26'\(#$07)[ 3.333984 3.333984 6.673828 3.996094 2.666016 6.673828 3.333984 3.333984 3.996094 4.259766 3.333984 6.673828 6.000000 3.333984 6.673828 3.996094 2.666016 6.673828 2.666016 3.333984 7.007812 3.333984 10.669922 6.673828 3.333984 6.673828 4.259766 3.333984 6.673828 3.996094 6.673828 6.673828 3.996094 0.000000 ] xS
+-115.5 -70 m
+(&&%8\)+/907)[ 3.333984 3.333984 6.673828 6.000000 2.666016 3.333984 3.996094 6.673828 3.996094 0.000000 ] xS
+-115.5 -56 m
+(:)s
+-115.5 -42 m
+(!!"#$%&,-"+#\(\)-.9/\)*+&'\(#$6&\)*+&80)[ 6.673828 6.673828 6.000000 6.673828 6.673828 6.673828 3.333984 3.333984 6.673828 6.000000 3.333984 6.673828 3.996094 2.666016 6.673828 2.666016 6.673828 3.996094 2.666016 6.673828 3.333984 3.333984 6.673828 3.996094 6.673828 6.673828 3.333984 3.333984 2.666016 6.673828 3.333984 3.333984 6.000000 0.000000 ] xS
+-115.5 -28 m
+(1)s
+-115.5 -14 m
+(&&\),&/&8&;3&<0&1)[ 3.333984 3.333984 2.666016 3.333984 3.333984 3.996094 3.333984 6.000000 3.333984 7.007812 7.007812 3.333984 6.673828 3.996094 3.333984 0.000000 ] xS
+-115.5 0 m
+(&&&&=#+#&,-"+#\(\)-.9/'\(#$>86&8?<07)[ 3.333984 3.333984 3.333984 3.333984 6.673828 6.673828 3.333984 6.673828 3.333984 3.333984 6.673828 6.000000 3.333984 6.673828 3.996094 2.666016 6.673828 2.666016 6.673828 3.996094 6.673828 3.996094 6.673828 6.673828 4.669922 6.000000 3.333984 3.333984 6.000000 3.996094 6.673828 3.996094 0.000000 ] xS
+-115.5 14 m
+(&&:%.@%1)[ 3.333984 3.333984 4.007812 6.673828 2.666016 6.000000 6.673828 0.000000 ] xS
+-115.5 28 m
+(&&&&=#+#&'\(\)*+!,-"+#\(\)-./'\(#$07)[ 3.333984 3.333984 3.333984 3.333984 6.673828 6.673828 3.333984 6.673828 3.333984 6.673828 3.996094 2.666016 6.673828 3.333984 6.673828 3.333984 6.673828 6.000000 3.333984 6.673828 3.996094 2.666016 6.673828 2.666016 3.996094 6.673828 3.996094 6.673828 6.673828 3.996094 0.000000 ] xS
+-115.5 42 m
+(&&:)[ 3.333984 3.333984 0.000000 ] xS
+-115.5 56 m
+(:)s
+-115.5 84 m
+(!!"#$%&,-"+#\(\)-./\)*+&80)[ 6.673828 6.673828 6.000000 6.673828 6.673828 6.673828 3.333984 3.333984 6.673828 6.000000 3.333984 6.673828 3.996094 2.666016 6.673828 2.666016 3.996094 2.666016 6.673828 3.333984 3.333984 6.000000 0.000000 ] xS
+-115.5 98 m
+(1)s
+-115.5 112 m
+(&&=#+#&,-"+#\(\)-.9/<6&807)[ 3.333984 3.333984 6.673828 6.673828 3.333984 6.673828 3.333984 3.333984 6.673828 6.000000 3.333984 6.673828 3.996094 2.666016 6.673828 2.666016 6.673828 3.996094 6.673828 3.333984 3.333984 6.000000 3.996094 0.000000 ] xS
+-115.5 126 m
+(:)s
+ep
+end
+%%Trailer
+%%EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/factorial.graffle	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGrafflePro</string>
+		<string>138.33.0.157554</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2011-11-13 18:31:24 +0000</string>
+	<key>Creator</key>
+	<string>Nobuyasu Oshiro</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1 0/72 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{56, 66}, {241, 274}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>9</real>
+					<key>GapRatio</key>
+					<real>0.5</real>
+					<key>Width</key>
+					<real>4</real>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Align</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
+
+\f0\fs24 \cf0 \
+__code print_factorial(int prod)\
+\{\
+  printf("factorial = %d\\n",prod);\
+  exit(0);\
+\}\
+__code factorial0(int prod, int x)\
+\{\
+  if ( x &gt;= 1) \{\
+    goto factorial0(prod*x, x-1);\
+  \}else\{\
+    goto print_factorial(prod);\
+  \}\
+\}\
+\
+__code factorial(int x)\
+\{\
+  goto factorial0(1, x);\
+\}}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>TextPlacement</key>
+			<integer>0</integer>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2011-11-13 18:42:03 +0000</string>
+	<key>Modifier</key>
+	<string>Nobuyasu Oshiro</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgVMCgUoDhg==</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{48, 50}, {693, 938}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/fastcall.eps	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,873 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%HiResBoundingBox: 0.000000 0.000000 393.000000 111.000000
+%APL_DSC_Encoding: UTF8
+%APLProducer: (Version 10.7.2 (Build 11C74) Quartz PS Context)
+%%Title: (Unknown)
+%%Creator: (Unknown)
+%%CreationDate: (Unknown)
+%%For: (Unknown)
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 0 0 590 167
+%%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 590 167
+%%BeginPageSetup
+cg_md begin
+bp
+sdmtx
+%RBIBeginFontSubset: Helvetica
+%!FontType1-1.0: Helvetica 1.0000.0.0000
+
14 dict begin/FontName /Helvetica def
+
/PaintType 0 def
+
/Encoding 256 array 0 1 255{1 index exch/.notdef put}for
+
dup 33 /space put
+
dup 34 /i put
+
dup 35 /f put
+
dup 36 /parenleft put
+
dup 37 /exclam put
+
dup 38 /T put
+
dup 39 /A put
+
dup 40 /R put
+
dup 41 /G put
+
dup 42 /E put
+
dup 43 /underscore put
+
dup 44 /six put
+
dup 45 /four put
+
dup 46 /B put
+
dup 47 /I put
+
dup 48 /parenright put
+
dup 49 /braceleft put
+
dup 50 /a put
+
dup 51 /t put
+
dup 52 /r put
+
dup 53 /s put
+
dup 54 /equal put
+
dup 55 /b put
+
dup 56 /u put
+
dup 57 /l put
+
dup 58 /d put
+
dup 59 /e put
+
dup 60 /g put
+
dup 61 /n put
+
dup 62 /fi put
+
dup 63 /quotedbl put
+
dup 64 /c put
+
dup 65 /comma put
+
dup 66 /N put
+
dup 67 /U put
+
dup 68 /L put
+
dup 69 /semicolon put
+
dup 70 /p put
+
dup 71 /braceright put
+
readonly def
+
42/FontType resourcestatus{pop pop false}{true}ifelse
+
%APLsfntBegin
+
{currentfile 0(%APLsfntEnd\n)/SubFileDecode filter flushfile}if
+
/FontType 42 def
+
/FontMatrix matrix def
+
/FontBBox[2048 -1947 1 index div -985 2 index div 2961 3 index div 2297 5 -1 roll div]cvx def
+
/sfnts [<
+
74727565000900000000000063767420000000000000009C0000036C6670676D000000000000040800000A1D676C79660000000000000E2800001CAC686561640000000000002AD400000036686865610000000000002B0C00000024686D74780000000000002B30000000A06C6F63610000000000002BD0000000526D6178700000000000002C2400000020707265700000000000002C44000003CF05C0001005BD00280580001A042F001F0000FFD90000FFDA0000FFD9FE55FFE605C70010FE6DFFF1033B000000B9000000B902FE3F3C00C0008D009B00AF000600A800C00028005E009800C9016A00B9015C00B400D6011E002E0080000400B8004C00CC01FFFFD1006600A400AF007400C2009500B1000C0028006D0015004C008E0125FF7A000C0040004C00620084FFA200240038008600BD0039005E008E00EDFFA9FFB300400052005500AA00AB00C200CB012302B10413FFAEFFE4000800510074008400AA00D1FF4CFFAF0012002C004200500051008400BE012503DAFF680018003B0098009C009F00A100C100EC018201B4FF68FF76FFD0FFE100020018001C00530053007D01B401E103AF0486FF9CFFEAFFFE001F0028002A00520060009300A300AA00AF00AF00C001000145016B0174019301950240028202B404850517FEFD00060029004700470048006F008800B400B900C400F200F901EF02180310037403C5FF35FFF3000B004B004C0052005500650076007600870087008E00AB00BB0106013001430150017D0194019501D3022A025502580277027802E6034E035C037903D3047304B2058C0598060BFEF5FFBBFFC7FFD50017001D005B0072007E009C00C200D000F400FA01030106011C0125013B0142015E015E0180019B02B901A101B9025001C001D002AA01DF01E301EF01FB0205020C0215022B0274029302AB02C202CE03690395039903DF03F5043E050205A105E5062507DBFE62FE89FECEFF3BFFE1FFF800030008002100390042004E005F0061006F00700034007F008E00AD00AD00AF00BD00C400C500C900C900C900E3011C00ED00F800F901000112011A0132014D014D014E014F01660169019E01BA01BA01BE01E301EF01F602000200020902110217021C02530262026D028002D50280031B032A034A035A03AF03AF03C803D603FB03FB04050413041504470449008C046D049A049A04A604A804B204CF0539053E054E055605800589058C036305D105D6067E068E06B206EF06F00728074C076F078C00B400C900C000C10000000000000000000000000004012400AF0032006E0063014401620096014301A10161008A00740064018801EF01700028FF5D037E0347023000AA00BE007B0062009A007D0089035C00A1FFD803AA00D70093006C0000008000A70442001D0597001D00820030002A
+
002A002A002A002A40292A292827262524232221201F1E1D1C1B1A191817161514131211100D0C0B0A090807060504030201002C4523466020B02660B004262348482D2C452346236120B02661B004262348482D2C45234660B0206120B04660B004262348482D2C4523462361B0206020B02661B02061B004262348482D2C45234660B0406120B06660B004262348482D2C4523462361B0406020B02661B04061B004262348482D2C0110203C003C2D2C20452320B0CD442320B8015A51582320B08D44235920B0ED51582320B04D44235920B09051582320B00D44235921212D2C20204518684420B001602045B04676688A4560442D2C01B9400000000A2D2C00B9000040000B2D2C2045B00043617D6818B0004360442D2C45B01A234445B01923442D2C2045B00325456164B050515845441B2121592D2C20B0032552582359212D2C69B04061B0008B0C6423648BB8400062600C642364615C58B0036159B002602D2C45B0112BB0172344B0177AE5182D2C45B0112BB01723442D2C45B0112BB017458CB0172344B0177AE5182D2CB002254661658A46B040608B482D2CB0022546608A46B040618C482D2C4B53205C58B002855958B00185592D2C20B0032545B019236A4445B01A23444565234520B00325606A20B009234223688A6A606120B0005258B21A401A4523614459B0005058B219401945236144592D2CB9187E3B210B2D2CB92D412D410B2D2CB93B21187E0B2D2CB93B21E7830B2D2CB92D41D2C00B2D2CB9187EC4E00B2D2C4B525845441B2121592D2C0120B003252349B04060B0206320B000525823B002253823B002256538008A63381B212121212159012D2C456920B00943B0022660B00325B005254961B0805358B21940194523616844B21A401A4523606A44B209191A45652345604259B00943608A103A2D2C01B005251023208AF500B0016023EDEC2D2C01B005251023208AF500B0016123EDEC2D2C01B0062510F500EDEC2D2C20B001600110203C003C2D2C20B001610110203C003C2D2C764520B003254523616818236860442D2C7645B00325452361682318456860442D2C7645B0032545616823452361442D2C4569B014B0324B505821B0205961442DB8002B2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8002C2C2020456944B001602DB8002D2CB8002C2A212DB8002E2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8002F2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800302C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800312C2020456944B0016020
+
20457D691844B001602DB800322CB800312A2DB800332C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800342C4B535845441B2121592DB800352C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800362C2020456944B001602DB800372CB800362A212DB800382C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800392C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8003A2C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB8003B2C2020456944B001602020457D691844B001602DB8003C2CB8003B2A2DB8003D2C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8003E2C4B535845441B2121592DB8003F2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800402C2020456944B001602DB800412CB800402A212DB800422C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800432C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800442C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800452C2020456944B001602020457D691844B001602DB800462CB800452A2DB800472C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800482C4B535845441B2121592DB800492C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8004A2C2020456944B001602DB8004B2CB8004A2A212DB8004C2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8004D2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8004E2C4B20B0032650585158
+
B080441BB04044591B21212045B0C05058B0C0441B2159592DB8004F2C2020456944B001602020457D691844B001602DB800502CB8004F2A2DB800512C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800522C4B535845441B2121592DB800532C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800542C2020456944B001602DB800552CB800542A212DB800562C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800572C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800582C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800592C2020456944B001602020457D691844B001602DB8005A2CB800592A2DB8005B2C4B20B003265358B0401BB000598A8A20B0032653582321B0808A8A1B8A235920B0032653582321B800C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8005C2C4B535845441B2121592D00000000020042000004D005BD00030007003FB800532BB800082FB800092FB8000810B80000D0B800002FB8000910B80003DCB80004DCB8000010B80007DC00BA0007000000562BBA0002000500562B3031331121112711211142048EB8FCE205BDFA43B8044DFBB30000000200ED000001B805BD000500090034401B0000044F072A090A0B17171A07040301250600190A0B6421787C182B2B4EF44DC4FD3939C44E456544E6004D3FFDE63F313013331103230311331523EDCB316634C7C705BDFE1DFD84027CFCF6D0000200520371025E05BD000300070025401402069D040300002903042907190809FE21BB48182B2B4EF44DEDD6FD003F3CFD3C31300103230323032303025E1E791FA11D791F05BDFDB4024CFDB4024C0001008EFE5E026105D50014003E4009141109131617171A09BB019C00080014019C400E400080044C10191516F7216C5218B80732852B2B4EF44DED1ADD1AEDD4ED4E456544E6003F3F3130010207061110171613232E01272627263510373613025E9D2F475132937992462938160B5D3BBB05D5FECF90DBFEE1FEDEF094FEEAE47E6C94A8574F0128E7930125000000010044FE5E021705D500130036400C081100131517171A044C0F13BB019C00000009019C400908191415F7213F7B18
+
2B2B4EF44DEDD4EDDDED4E456544E6003F3F3130131237361110272603331E01171E011510070603479F2E46513293799A412630295E3BBAFE5E01368ED701210121F0940116F673657DF471FED8E895FEDE0000000100AAFED0018000DA000E002D401600230E0A64080A1017171A07340A640008190F6365182B4E10F44D3CFDED4E456544E6003F4DEDD4ED3130173637363534262723353315140607AA451C0F01026DD66076D10C552D2A070B07DACA77B415000000000200340000042F059C0002000D005C402209020A080D010202BE12060607020601050708030106070A02750B05EF030C070403B80117B501960D08AC0AB80158B3050F470E1076C418D4F5F43CFDE4003F3FF43CFD3C1139390111123911123939872E2B047D10C50F3130011109011121350133113315231102A5FE3501CEFD8C029098D3D301FB0289FD77FE05015EB0038EFC5F9DFEA20000000002004DFFDB0423059E001B002700A94039771A0117082508271958198600870188090747080A212721350E0E1403C707351B052735140D032902811E38116F170A023C0A2431172947281076C418D4FD397C4B52787A2F1810F5EDF4ED003FED3FEDED12392FED11123931304379403425261C200F1600060526200F1E280126152428001C131E2801060003280104031F1021280125162728001D1227280004010728012B2B2B2B01103C2B2B2B2B2B81818181015D005D001615232627262322020336373633320415140223220011103712211236353426232206151416330347BDB21023418497B20A3E5E566AB4010CFEEBC9FEDC417D014C818D7EA674AF9F8D059EF98455305AFEE9FEFC5B2D28E6E4C3FED301310169010BBA0164FADDBF826EC79A9B88B90000000200E3FED001B80421000F00130039401D00230F0A6408132A1006080A1517171A0734120A641000081914787C182B4E10F44D3C3CFD3CED4E456544E6003F3F4DED10EDD4ED31301736373635342627233533151407060711331523E3461B0E01016DD51F3482D5D5D10D502A3205070CDACA6B4876170551DA000002005C00DE046F03360003000700274015012000CD07200604001A0907021908095C213F52182B2B4EF43C10F63C002F4DEDFDFD31300115213501152135046FFBED0413FBED0336A8A8FE53ABAB000003001E0000053D05BD0002000A000B00DA40504801580168010388039704980AA90AB809B80A06280A010007060601020809090102080A000705018C01030420140A0A251209090114050525120606010B0B0503090A040605010B02010300021E0708B80159400904030206090A030508B801A840120D0D17171A059E019E0A190C0DA1218C5E182B2B194EF4184DFDFD194E456544E6464418003F173C3F3C4DFD3CFD3C11393F011112393912393911392F
+
872E2B7D104B5158B004C01BB004C459872E182B7D104B5158B003C01BB003C4592B1112393912393987103C3C07103C3C3130015D5D005D010B01133301230321032301038EDFED85E10215DA95FDBB9FCC0290025A0289FD770363FA4301B8FE4805BD000300970000050405BD000A00150028008240385A0D5A116A026A0D6A117A02772107490D4811021D081F0F041F131E000027081E17020B1E270804311B690F31231A2A091525281619292AB8015FB3217666182B2B4EF43C4DFD3C4E10F64DEDF4ED003FFD3FED12392FFD3901111239313043794012181A0508192506260718042B01051A082B01002B012B2B2B8181015D5D013237363534272623211101323736353427262321110321201716151407060716171615140706290102C47E466E754282FE9D01ADB74E318F4C7DFE75C3027701026D404F294D7138635985FEDEFD93035023378F90321CFE39FD5A6A435FA03A1FFDFB05139A5B778B592F272B3660A98E73AC000200AF000004ED05BD000B000C004E4024071E04040B031E01000209081E0A0B080C020C0C02000669023B091A0E03082500190D0EB8010BB3219589182B2B4EF44DFD3C4E10F64DF4E41112392F003F3F3CFD3C3F3CED12392FFD313013211521112115211121152101AF042FFC93032BFCD5037CFBC2021F05BDB4FE42AAFE0EAF05BD00000000020063FFD905A105E50022002300D1403E1B0686018502031D011F058601891CB6200540080F04151603106D167E16020F16110D04862210111E13121215073A220315080D3A1A0923022323031E12B8014B4010030431033B1025131A250A311E192425B80167B3216A70182B2B4EF44DED4E10F64DEDF4FD10ED1112392F003F3FED3F3FED12392F3CFD3C10ED111239395D0111123939123931304379402C1B21000C1C25202601250C1B0A320008210A32000600043201020305040B1D0D3200091F0732010502073201002B2B2B01103C103C2B2B2B2B2B2B81815D015D00171613232E01232200111012213224132135211123270607062320272611103736212703E697DB31C524E2ACCCFEE9E60104C7010503FE3402858030654E83CAFEFBBCCDC8BE012E2105E35073FEE0A193FECEFED1FEFAFEB7E70102A5FCEEBD6F2B4AA9D401720171DAD0020000000100C90000019205BD00030017B8002B2BBA00010000002E2B00B800002FB800022F303113331123C9C9C905BDFA430001009C0000044B05BD000500314013000203021E040508031A070102250500190607B80153B321765E182B2B4EF43C4DFD3C4E10E6003F3C4DFD3C3F31301333112115219CC702E8FC5105BDFAF2AF0002009C0000052A05BD0009000A007640143701380602070117012701470158020507010202B8019B4017120606070207080301020806080A030A0A
+
010608020302B8019BB505041A0C0708B8019B400A0900190B0CA0217670182B2B4EF43C4DFD3C4E10F63C4DFD3C11123939392F003F3F3C3F3C12393904872E2B877DC53130005D015D13330111331123011123019CEB02E6BDDFFD0FBE023A05BDFB5A04A6FA4304A5FB5B05BD0000000200B40000057805BD0009002700944012070D49014805590158056905641478050816BB01300119001B011C40422321202660127112751403121E1F141C1503211E161404261224251E0009091B071E0B02261C1B082025151F251603310F691B1A29082625270A192829D6219566182B2B4EF43C4DFD3C4E10F64DF4EDD4EDD4ED003F3C3C3FFD12392F3CFD3C3911173901111239391239395D1112392B3130015D013236353427262321110321321716151406071E011F011617161715232E012F012627262321112303478CA3723D66FE1AC702A8A86DCF6D6256570507030B122EF40A0C040C0764397AFE3BC7031C70929D391EFE0A02A1315EFD84A833237280C55429461421133C56F590311BFD8A00010021000004C905BD00070034401A01061E00070204080917171A00FB0203250504FB0619088C5E182B4E10F44DF43CFD3CF44E456544E6003F3F3C4DFD3C3130011521112311213504C9FE11CAFE1105BDAFFAF2050EAF000000000200AAFFD9052F05BD00150016003C4023170527053810030A0002053A1009160316161409250C1A18012514191718A0219570182B2B4EF44DED4E10F64DED12392F003F3FED3F3C5D3130011114171633323736351133111007022120032619012101743C59D3FD5B31CA4986FE8CFE8C8549024305BDFC74A06AA0AD5E9F038CFCC7FEF192FEF6010A92010F033900010000FF000473FF650003000FB50146000205003C103C002FED3130113521150473FF0065650000030052FFDC04470449000F003B003C00DD40382A30010A100B1B0C1C2733481069096A10073908120C09031B320724091D100C1D3B2B022E293BB73B023B322A2512100705081C2722171CB8018A4023171D1F07271D2E0B021D350B3C073C3C1C1407292AA8241A3E1B291C4A0F2738193D3EBC0197002100B9019600182B2B4EF44DEDF4ED4E10F64DE4FDC412392F003F3FED3FED3FEDED1239111217395D1112392EED2EED01111239111739313043794028363715220001192501360F2100181E1B21001620142101212200370221001A1D1721011521172101002B2B2B01103C2B2B2B2B818181005D015D2416333237363D010E010F0106070615013637363534262322070607233E01333217161511141633323637150E0123222726270E012322263534363713010E724E5F59962168326D62315301B43E150C837A8D3B210AA805F7A3BD767517250C1E112A2C265D2A160937CE7C95BDBA978ACF5A2C49A691151C
+
060E0D1C2F67016C082C182D5C534C2A53C69B484898FD971C220303850C06422340486AB58895A41301E40000020076FFDE042505C20011001E0070402EA607A71CD71C0322080F1E02050000171D0507110A1E1D0B0B1427081A201A2E102E01290011191F208721BD5D182B2B4EF43C4DFDE4E44E10F64DED003FED3F3FED3F113911393130437940181216060A1606142601120A142601150717260113091E26002B2B012B2B8181005D1333113E01333212111402232227262715232436353426232206151417163376AF3BA460C8F9F6DA7A543239A6026691918D7BB92647C205C2FDEB4D51FEEDFEF4FEFEB03B234D897DE8BEA9DEB6D1975EB100000002003BFFE103D0044E001A001B00A7402FA719019818A808AA18034A08119B14030314061D1A070D1D140B1B071B1B1710271201032702111A1D0A2717191C1DB80107B321727D182B2B4EF44DED4E10F63C4DED3939ED12392F003F3FED3FED12392F10ED313043794034001908250C150A26000E1310260112110F1007190A26000500032101010204030B160D26000F120D2600091806260104010621012B2B2B2B01103C103C2B2B103C103C2B2B2B81005D015D001617232E012322070615141633323637330E01232202351000330702D6E317AF10727EAC4A308892708319AF1EF0BBD2FA0112D41C044EB0D76383A86DA0A1DC8977D5C50133E6011A013A0500020038FFDA03ED05C2000B001D00774032370E470E570EA704A91B05250814020F1D1000081D1D07130A021D170B052E132E102911121A1F0B271A191E1F87217242182B2B4EF44DED4E10F63C4DFDE4E4003FED3F3FED3F1139113931304379401A181C090A000101180B2600091C0B260000190226000A1B0826012B2B012B2B818181005D1216333236353426232206150017161711331123350E0123220035341233F692A17DA1A67A88A9018A53303DADA23FAC6FB3FEFAEFDE015FE8D7C9CBC3D0CA0237341E4B021DFA3E956358012DFAEA015700030048FFDA041A0449001C00240025010C40799708991AA71F03050E020F0514150E120F1514400C401408291A014B0BB603C701C603C71BD808D909D61FD823E817E8230BC711C712025C080521240F9A161D243906070716211D1C070A1D160B2507971CA71CB71CD71C0425160F251C05190A0C07110E270F1D27051A27242E072719192627D421A65D182B2B4EF44DFDE44E10F64DEDD4FD391239391112393912392F5D003F3FED3FED12392F3CFD3C10ED1112393130437940460023040503050205010504061F26111012101310141004060C25221B24260020001D26011E1D09170726000B150E26010D0E231A2126011E0521260108180A26000D100A2600002B2B2B2B01103C2B2B103C2B2B2B2A2B2A8101715D00715D5D001617161716
+
15211E013332373637330E01070607062322001110003301262726232206070102B4D638361210FCEF0590978D543014B1074F3152794152C8FEEA0118E2011F0B284AAD7CA805012304476B55516C4AA2A3C55D36473B912E501C100123010601020142FE26754682B38A01DC0000000001001C0000021705D20017004D402B071D060A1D03010F1439160D06120A1917171A0E0D1129171207120F0E1F0E020EFC14191819FC21677E182B2B4EF44DFD5D39C42F3CFD3C104E456544E6003F3F3C4DFD3C3FEDD4ED313012373633321617152E012322061533152311231123353335B5233FB41124171C190B5220B2B4B295950542345C0202A4020155AE8EFC64039C8EA800000003003DFE3B03E80449001F002D002E00B7404D36144908490958085909880CA91BA81DA927A62BB91B0B4008031622290EC40A221D1F070406291D190A121D0A0F2E072E2E051C032E162E2D29051A300C0E270D3E26271C192F3087217242182B2B4EF44DEDF4ED394E10F64DFDE4F51112392F003F3FED3FED3F3FED10ED1112393931304379402C23281A1E0B1124251026231E262600281A262600110B0E21000F0E0C0D251D222601271B2926000F0C122100002B2B2B01103C103C2B2B2B2B2B818181005D00171617353311140706212226273316171633323736270E0123222411100033002623220706151416333237363501027C5E3335A63C70FEC9ADEC0EB70D273D83CF40260336987DAEFEFB0107BA0144A47FBE4625937CC24F2CFED104423E234387FC32CC76DA9BA548273C9256DD5250F7011D010D012EFEA1C0B25F9AB5BDAF6384022D0000000200840000013B05BD000300070036401C07E50400010006030A0917171A06010229070300190809AA216242182B2B4EF43C4DC4FD3CC44E456544E6003F3F3C3F4DED3130133311231133152384B7B7B7B7042AFBD605BDCC0000000100890000013D05BD0003002940150000030A0517171A0102290003190405AA216242182B2B4EF43C4DFD3C4E456544E6003F3F31301333112389B4B405BDFA43000000020084000003ED04490019001A005E4031B706C706020406140627147606740705140C021418101D05070006180B0A1A071A1A000C29091A1C012E18291900191B1CB80106B3216242182B2B4EF43C4DFDE44E10F64DED12392F003F3F3C3F3FED1139390112393130005D015D1333153E01333217161511231134272623220706070E011511230184AB4CAA68E4502CB71D307E40294A382D1BB401A7042F985E529F57A2FD5102A3623C640D1642357169FDCF04490000020076FE5504250449000E00220074402CA908A717022808201C110E061D15070F060E1D1C0B220E0227181A240A2E102E2129220F1923248721BD5D182B2B4EF43C4DFDE4E44E10F64DED003F3FED
+
3F3FED1139123931304379401C161B00051A260426001B022601051602260101190E260003170626012B2B012B2B2B2B8181005D243635342726232207061514171633013315363736333212111007062322272627112302C6A72546BABB45252546BAFE2EAF36405B7BB6FEB7749A7952303BB479D3D2805CB1BB649A7C57A603B18E49283CFEE9FEFDFEA2965F351E49FDDD00000100890000029204470011004F40262703260D37034704040E0810020E0911090C270805070006110A081A13012E10291100191213B80145B321627E182B2B4EF43C4DFDE44E10E6003F3F4D3FC4FDC411123939011112393130005D1333153E0133321617152E0123220615112389AB15A46B05181D101B108892B4042FB9369B0203BE0302AF72FD980000020042FFD703B6044B002E002F012E408F38099805961299149815982A062824252736214621472447275624572766246726790C790D790E7623742474257426A61EA82C1303000B15052D042E13001A151B171C18152D142E280F0B6908262536250225220D0A042B1318C61C1D1307041D2E9A2B0B2F07090E100207002F212F1A1F18161827173E28260727281A310E1F27103E00272E193031B221A65D182B2B4EF44DEDF4FD394E10F64DFD3910F4FD3911123939392F111239113939003F3FEDED3FEDED111217397131304379404C012D022615251A26210E1F21000926072101032C002100052A0721011D121F21001B14182101200F22210021220E0D08270A21012625090A012D04210006290421001E111C210119161C2101002B2B2B2B103C103C2B103C103C2B012B2B2B2B2B2B2B2B2B81005D5D015D13161716333236353427262F01262726353436333217160723262726232206151417161F011617161514062322262701EF082544A864983D27738F894174DBB9F26B4302AA05263E99666945284E77C24269D9DEEFC70701B701505A3057575B4524161D24222A498198BC8E5A683D32474E40462A19131D2F2C45948FD0D9A002F900010017FFEF0209055A00180052B50D2E0AC00E01B8013F40250416391703060E0A111A17171A0301062900150E150F031F030203FC1619191AFC21677D182B2B4EF44DFD5D39C42F3CFD3C104E456544E6002F3F3F3C4DFD3CED10FDE431301333113315231114171633323637150E012322263511233533A8B6ABAB2615310D1E141F43277E5A9191055AFED593FD4538130B01028E0908816702C593000000020080FFE303DE044900170018005E403AB814C81402091308141913191428067703D707070800050E0A00060D0A051D120B180718180B160D2E0A290C0B1A1A01291619191AD2216242182B2B4EF44DED4E10F63C4DFDE41112392F003F3FED3F3F3C391112393130005D015D011114171633323736351133112337060706
+
2322272635112501381A3083BC4425B4AA0223346793E5532D01AF042FFD39523460A85A9D020EFBD19E3D2A5499528902D81A000001FFD5FE5E028005D700230072403E98069813A906A914A72105071317132713380A381F9614061F120C400D4D0C4D201F1F03162D15032D041315002517171A0316AE1A23910812C30C192425B80103B321DD33182B2B4EF44DF43CFD3CF43C4E456544E6003F3F4DFD10FD1239192F1AEDED181A011112393130005D015D05141617152E013D0134272627353637363D01343637150607061D01140706071617161501879C5DB2E9223EB0B13D22A3F8A1391F2543C1C04425059A830B7512ADC6CE6D3F731372156E3D72A3BCDC15720E80467C70965091121197538F000001002AFE5E02D505D70024008A404E960A960B9619A70AA60BA619A822073924011E05040302052024160F0E0D05121806020C0F041208211E191604131C40134D124D2024241C082D091C2D1B13090012C30E18910420AE1C08192526B80103B3213CA4182B2B4EF43C4DF43CFD3CF44E003F3F4DFD10FD1239192F1AEDED181A111217391112173901111217391217393130005D015D0027263D0134272627350417161D0114171617150607061D01140607353E013D0134373637018B43251F38A201025C3C223EB1B03F22E9B16B8E2544BF022E9050977084447A0E72158B59B4A3703E7113721275406BCECAA813750E8F8B9790529711000003001C0000037805D20017001B001F006140361BE51900071D060A1D03010F14391D160D061F110A2117171A1B1E29181F0E0D1129171207120F0E1F0E020EFC14192021D2216742182B2B4EF44DFD5D39C42F3CFD3C10D63CFD3C4E456544E6003F3C3F3C3C4DFD3C3FEDD4ED3FED01313012373633321617152E0123220615331523112311233533352535331507331123B5233FB41124171C190B5220B2B4B295950213B4B4B4B40542345C0202A4020155AE8EFC64039C8EA81FCCCCC7FBD6000000010000000000006B8BED625F0F3CF500110800000000005F4D8F0000000000C9C13CF7F865FC270B9108F9000000090001000000000000000100000629FE2900000C01F865FCED0B910001000000000000000000000000000000280512004202390000023900ED02D7005202AA008E02AA0044023900AA047300340473004D023900E304AC005C0556001E05560097055600AF06390063023900C90473009C05C7009C05C700B404E3002105C700AA0473000004730052047300760400003B04730038047300480239001C0473003D01C7008401C70089047300840473007602AA008904000042023900170473008002ACFFD502AC002A0400001C0000003400340064008C00D4011601480196022C026A0292031E03A203E6048E04A604CE052405AE05DC062406380702
+
076C07EE085A092409700A180A460A680AC40B360B7C0C5C0CAC0D060D760DF40E56000000010000002800920009006B0007000200100010005D000007E80A1D00040001B800532BB800492BB8003F2BB800352BB8002B2B4118008001A6009001A600A001A600030069018B0079018B0089018B0099018B00040089018B0099018B00A9018B00B9018BB2040840BA0179001A014A400B041F5414191F180A0B1FD2B80106B49E1FD918E3BB0119000D00E10119B20D0009410A01A0019F0064001F01A50025017A00480028019AB3296C1F60410A01A9007001A9008001A90003008001A9000101A9B21E321FBE012C00250401001F0126001E0401B61FE7312D1FE531B80201B21FC227B80401B21FC11EB80201400F1FC01D9E1FBF1D671FBE1D671FAB27B80401B21FAA29B80401B61FA91D6C1F931EB8019AB21F921DB80101B21F911DB80101B21F751DB80201B61F6D29961F6431B8019AB21F4C96B802ABB21F391DB80156400B1F3638211F351DE41F2F27B80801400B1F2D1D4C1F2A31CD1F241DB802ABB21F201EB8012540111F1C1D931F3A1D4C1F1E1D45273A1D4527BB01AA019B002A019BB2254A1FBA019B0025017AB349293896B8017BB348283125B8017A403648289629482725294C1F252946272729482756C80784075B07410732072B072807260721071B071408120810080E080C080A08080807B801ACB23F1F06BB01AB003F001F01ABB308060805B801AEB23F1F04BB01AD003F001F01ADB70804080208000814B8FFE0B40000010014B801ABB41000000100B801ABB606100000010006B801ADB300000100B801AD401F04000001000410000001001002000001000200000001000002010802004A00B0018DB806008516763F183F123E113946443E113946443E113946443E113946443E113946443E11394660443E11394660443E11394660442B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B18011DB0964B5358B0AA1D59B0324B5358B0FF1D592B2B2B2B2B2B2B2B182B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B74752B2B2B65422B2B4B5279B376706A66456523456023456560234560B08B766818B080622020B16A704565234520B003266062636820B003266165B070236544B06A234420B176664565234520B003266062636820B003266165B066236544B0762344B10066455458B166406544B27640764523614459B36242725D456523456023456560234560B089766818B080622020B172424565234520B003266062636820B003266165B042236544B072234420B1625D4565234520B003266062636820B003266165B05D236544B0622344B1005D455458B15D406544B262406245236144592B2B2B2B456953427374B8019A2045694B20B028
+
53B049515A58B020615944B801A6204569447500
+
00>] def
+
/CharStrings 40 dict dup begin
+
/.notdef 0 def
+/space 1 def
+/exclam 2 def
+/quotedbl 3 def
+/parenleft 4 def
+/parenright 5 def
+/comma 6 def
+/four 7 def
+/six 8 def
+/semicolon 9 def
+/equal 10 def
+/A 11 def
+/B 12 def
+/E 13 def
+/G 14 def
+/I 15 def
+/L 16 def
+/N 17 def
+/R 18 def
+/T 19 def
+/U 20 def
+/underscore 21 def
+/a 22 def
+/b 23 def
+/c 24 def
+/d 25 def
+/e 26 def
+/f 27 def
+/g 28 def
+/i 29 def
+/l 30 def
+/n 31 def
+/p 32 def
+/r 33 def
+/s 34 def
+/t 35 def
+/u 36 def
+/braceleft 37 def
+/braceright 38 def
+/fi 39 def
+ end readonly def
+
currentdict dup/FontName get exch definefont pop end
+
%APLsfntEnd
+
42/FontType resourcestatus{pop pop true}{false}ifelse
+
{currentfile 0(%APLT1End\n)/SubFileDecode filter flushfile}if
+
/FontType 1 def
+
/FontMatrix [ 0.00048828125 0 0 0.00048828125 0 0 ] def
+
/FontBBox{-1947 -985 2961 2297}def
+
/UniqueID 4257378 def
+
currentdict currentfile eexec
+
54544758EC884CF30C3CD503CEDBFF3839C47C3C3333173232E3FDBFF439491DB843E1924E63AA7726BBB0485AB56D93D8C0906F647A47162891E73FFC2A9873C4B1EAC5EEBDFFC4D06084FBD84139DF4583C6E259D10699944D1068C9C45667DCCCFB9B7EA01B606435EDCBD273ABAC093D14085CCBAC149BD7382E842CFE0D7FE4FD2EF589A2471F6074A80A8B675C2F7A50D63AC1EF90D787BADD11633CB01CF6EE3B37AAF9078A69AC4740E9B6525D78BBD839551A1CB80DB8682FA5E87591BBD6EE8B946063A2A58D9CA3685AB305495DC5FB5747EB8A9A059C4976C0FE4EEAB1D56FF47F1E9664ED9F4A7DAB763AF92B2F6CF2FA7DEC24710E0B9096E30F772BA7FEA9BDBE496C42ED2CEB58F54E80BDF57CE7B4DB6CCFE7182F43BF93CCA0767AF95D62C5D2C3DC6AE1E6D139F51A2C63432117F1714C5566572EE9967A715420ABDCD1D7BD74F8450B89965FCC81C6ACA565C5F3CCF91D430D1F953E4F1A645300A98DD8C47CD64555F08F422340A85404EAE0D3229C4F9336B9470CACBD6BBF3395104750A915CC6EAAC197668267B8C62D2764C8CD69FD937CA3C924D997A0EDE7964BEB9EA2F92EF70C5E5DA0AA5567765E71F2B911B3C5586B741EEB93F3C73016EC16BFF283758900903D203992EFC8BAFAF13579C602F38C94DF6C6C4CAA4D4724D5FBE8DE875B8787096CC4B940CDD1EB776B48720974CA44D863B501A56E0010915099D9EE0B5A694E8162ADBF9836250BACCB77DB13E16980885486883919330A746641657E0563FFF3F5162B06A9D7D5DB5CE0D50CF57E919C0EA9398C970605E91134D93151321BF9CFB68DE8766809269894A72D90DBFE87FEFC2B45ED50B5D408BD4B15D3FDA52F0167B666CE94E91D604AE8652355F64306877A5D5EE1B91329C0D2DB96B0C6FC3DF64A04E084461F40596B245F36746F2281E028B8A78FE588E1472C14ED42C6E7821FDB6B606E426C51490BE244F6CCEE762D20C2E8AD7EE856FC1AF4F83E8E69168192600B1384271BFEED8AF06A848F8C4424603C32538ADA3F6DEAEA868F70F770CC3FF1A87196DE0E428F217672D4884179319FF149F736D87E5495C86E7ED2E2F72F246A953CB442B8C28E32F333C97F36AD7403333396E8F9BCBE246AFCF5E689C076A487569EEE4AFC14A3F33EE89EBA74C8DFC16430BB7071EC6144E5192FC48C1D175CED20B5EAB73423E80227606F369B7F131B71830DEC6A7216663E985CB8E551897D6A8AEC1D85EE687CEE1E20E50D5221504CC0077EA2D2A0A28B9180D00EFDDD6A4828A587D201E9810C3D8B4484D453A1B5F3A121A1B674CC9DF496A721A200238F1DF91A7F7E4056E7F7486577091CE99C27C84C9AD98A6A3CAC8196F596FAB288D6C186077C748F4402E4D543A647614F4CA446063F6B91BDBDF7F8F4865B2CBE583DD18F
+
319B7CE1823A66185008528D8A483B5BFCCFB8778DB667D5F2843FB90755266DEBB4E1B25D44559AB2875D2E2918FEB1A61F321CA5360B0D4816A3A65B4C24C4950778462EA16B1DF3C3788983AF5E5685B53E9B76182AC10A4073270E3016E844C8BBC7EDF8F2328BDBA779E628008DADD903779DF6972E0B3D66C45E9DB7A8B09463857419117C10CAB638FD6712E90FA2C3F902F610BFFF547806E9E3CE8D920D53FF320251D1D36842CD9C6997E4F13A79C8F35F4C1C6A6DBB274CEA975F7A50EBFE5D940585DA77B851B0AF12A76F408FBD5664FC9647B871EC26ECC5528AD93FFA9C91600DE777EE54D877D4D2E217807CECB8EAC78DBCD1A48F87255022ADFB3D76BCAD5D8D6A7501B78B2821AB30D01D78B0A28C85E3F385CC2F0DBE74980C9B9F697DEBE1DF3988ED2E4222E6F4382B74E60984C8BAEB9C7888B01D9C8A1114E8AE754947BBE33C36C2BC437155C3724887326FA1C7E519C8F3A4F50ED4F025414D82AB201D8B6160E71B865CFFFDCE8A0043B5D135D1EE330A93B2E5BB4C877399728E97BC122480FEA39A3CD471B9601F5F36B8B59F4BDCE7D5A55EE81C8E1AAC55D228B6A23DB25FA9E6D977AD28EB5B46B4C8DB026A5E995916A05F87E0DB5EE19F3FA38963ECFF71538CB5DF192D8390AD92B5C181CB22FBBB5B86078B95316C07F0D8A0E20FA817FB09C6BD85BB7FB381F447B40832B7E8C41431F4E66FC71350CD4AB6CBD060152047F6B7782232F27DE282B5DE1436D25D19DBF1172EFA1D2DB2F383FBC94B25CD5389DBB2B42358A6264C85CFC4066D102A400A05C058CB2112155D4C7D76FD0BFE3AB4C40CA07F6F2DDC2908229A98150D61F8EA69B9A51C15027A1F83E30E424945788F4DEEA06F1BC50EA58083540FD52F582BE81CF0A023206B8BA06544D99C2E8A931E609F10E28F55050D62914538293A6AD3AE5EF9331509DBF3619BD72C4B725AA54D0BCDB826BBA0422DCECC5C5FD1C22B46952DE547DF170504EF9A7CCBA157D646D9D7FC28F635F0B1F0EB4D6B3254AD4B008D3DBB1589760215BB18D555EB4584A32D99F1D26C8C85E25BBAF9390077CB061B8759BEFBB72596A7AABC6E96AD94CE606A9301AB0EF3B88CB15D3FB0AB3AB85AB1490A0FFCC8A2804E042F7777024461AF5EE53B41E0BD29836B1E518B24B6213CEFC495EC0154F6CEC6CCE8C4D9BBCB22F88EBD757902C2DBCA434E46C65FC3BF3710A5C64A442049D2B5756DD0C671084A4C9B1F46F64ECBA7E0FA5D8E99E8FD125FE51DC4F20ED9A8BD014F1B3423A74D7F733F5033CDFBA3EB8162C0DE5E65D84C6F323B5EA9E98D9A54551D49ACBAC37CE65FCE3C70FFA4A710CF82EF0F6C363762E967F0CB77DD58C29970DC86D6A3FC093AB982F4175E525DC9FF96CAE511250068159DF064E738477DF718E640AE141743E29AFF
+
3029BFE1BE6BD58876C7B86B3A7FF07D5EF242681F478DB65D5C1339FBC8165D9CF6184D05351B169E6DD2CCDCBDC6E3D3F833D5FE4A2698BEE2ECBDA131583292BDC9E267ED00C780F8DF5354E724367F3776F11DA3633B5E0CAC28702D7595C762FC9A61F0976876F99645DAFD38FC5EBA939C4DC602E1AF6977B614E1D62BFDB5064F864A30B8322A2986D8C5C0CF67B246F67663C671653E0F7AD47F857902CBDBEC1818D1D7FAB6304069B368F6FFB5831781D91BEC1AC5FC86DE53141B2FFECE5DE4B97FC65224FF9EFDCB0D05E611E50FC0F007FEF064A407C37620560FDFB1A8ED9E44A4440842A7A690711D68E10BC2C8661EE8E9C2F5484E44C8F5D0E0069A52EB444C0341849B9684236D5654A59DD84F959C1988EFFD77AE175ABA17D423CDA2F2556E99BE676F10CEC14E4DD9DADD847297B58C7E079F193C2177FD66A85B9B04CB3156777F98A9074778B6E84720AF0A7892F169183CFA63E383812E452C3C1967FFDA5485CB44D326B2180DD88C5D715EAAE8509A3B3285F4148CBD7B3E1961A21D7422E307D89AD385102B6AB479AD4AFD289BCFB0AF8452D63A5FAB93198ABA4CF8057041472B5B410EB60A09A4BEBC7C8AB3B675BC2654C93912470B17EFF49A119B986FE4388DA57AA4B16FBC55D0D82C510075AFE7CC7CC9693BA757CB1E51232D5BAA1893DD200644D65FC9BCF7920C9F76237663AF49EE816E37BA5C0F4A8B227DF022D7276E2392EE83562C475F88545C3A29A717A620E5EC71A42D77BABC09E8C54CFF4AA77E0C3D4F57252C72FBE08977DF0784881371863874DA9B46C892BF87D6A8A08DED74A25D52B929F48B392735DECB820954B4313BE34112437C803CC0FCE006FDA6298DB550D7201DF03368EDB6B541B97C707147DEBDEAF3D561FA41264C52B6E005F4B7A4EAA726C3039954C858945FB2533BA84F602D1281935AA9AA18012417EA18B584C5C275FDA5058F3C1A30A0480BFE06C6D6DC4EC18368A3BEF016370C3598DDEE36DCEC0FC3E598F7182C23FADB6CEB4B2D204507BA3F79D64F2FD7C15BF56FD6E61B3994034ECF2A594D522D058682C3F08F13E459825A961DDC86FD48B21D2D8AFA007F9407B699128C3FDCB28DF4D506B723F15E187BEB5B733C5F0421E4DEC7BEAC8991EFBE430608CC36C1CFA80AB615F78B82C198F3107A4B812042136CFEE94BE61D85EF67557FD7C2A90B7DE7CD15BE5B222039E0CA88070EC214F384DDE70C0F42B89A420A6ECBFE86B6797C6A1B47F508589FB81268F3C8A74C603A553F7E971C8B6D21D22A152C6EE8E63E2B49508DB9DE6CAA879EA1430CAF23B8055A42205F0A31B2E0B0FC118A0B7FFACBC38905210A3B824B7CD650B2FC8A48745AD5EFC422C6E8A3BAA7FA20927218CF93BD367B244EC4467A6253919202D470B8ED49F88AE0477805
+
581D474559B94F0FC169B8C78E283B31A9B6DA2DE9C04623CDC23A70CCB9C7CF0F6CC8AFC55F1C1B6B563F0A0CFF6EF0B9338C92E887C9CBE3C1F4524AC738FE91CF21D7C629C2ACD11B46C70D9E490FFC41C96D861842D0CDB6E9F4BDB1E9A85F7FD9EDCAC214BB13243D75E571BBDC2B9B1C8C1B0EC214919CA36B68351355E53BF7A83BDA8ACD2B0D5AF970AF92F84AA63D926F15E4DBFDA2FDD2F7FDD333C4E4BB1A38BE4CE018BFB06DD815B1F5C56C566438E488A41C05B2413D9E60285FF56ED78595DF046C0D287A4CF4E56CFF65BE805C321108EEB9220329429AB826D732F6642C8E868359CE4FB8FDEE4590A17541B53A077658C05D1AF8D382946C921374A910DAFEDBFBF351A26FA38E1D51AD521DF919CD621479C9C34908B1EF5D0E59D8085DB272D7BFF761BA49B833B768456F26027263BFAFC44723FAE39B90054C5704F1F14DFB125A2318BC530DFC3F31EC47C77BC3E6F906650A3B0210ED2434010839893D52C7586B6DF2FDE7C0FCE86365E2573EDD24C5DFF8195373D297CA11E8EB998E10B24FE9A8C464F814B77B438C0A63E1228A3DA7B7F3F6473613E87A48554279DAA891064D40166430D8EF39AB8227CFFDFD20CB46AA7666CA96D8353AA19E0566EE6D072473E039B734E332A7016C35A0A63E49B9277EC1ACD242857F075AC715F356E7FDD0B861CB5AB7BB1BF5DAB83C701FCCB4762FCEAE7EC4D16B246EC4150FA7629F5D7AC93FEF59398ED503C4BF4875A623E90F0E87B5A894CB72363FB2633800D5D7A04519F49DBCFA6B05C6748FF181A49750150D834E447ECBFF5CC9AFE822DF3632D356E0EE7D37233CCF5D09E756E718B9D6A13D94B4B3ADC93192A938A4505568433A58E783C929D7CE3A20A104439B282FA75FD82E4DBD3F64098AF4599EE99C691BF4D772B888993B53697060D120575A51D3FEC4018DECA2018A50737325D3A74EA26DD4BA8A6C9259E31043383BAE2E58CF6E607C7441D64FC8F4A1B85788157245E43F11416503FE105B66E440D5D616714D32BF651117817BF46E1B4302F7D31DB5B06311C1FF874BD81D7482128279802280431F6086AFF303C6A02D468F3682D7E68039C03D361E48BA960167174034A3065ADF04A88FECE4D219BDBA757EB15B0E51BF3BF6BAA32E08B3FC29BB6B9FB74C5C543AD5106278BD76608456652ED95AD10A76542C255908981709C57853C6AB71E3DEB985813E025774F07E8C441A52CDDFBC063B13D42BF69128158EA1A59FB3D186172CD08655954E3826D0BC22826E029ABE066935CB2260A34A0C3684ABC32DFB459BA85C542A1624CB0A93A2D62A76D1B2D826BD9EBF5E334D9D37220C594FE3EE45E74607DFA7322EA1B4CD10BE9521070D86F2F3AE5610BCA83A01DC8CD6C1BFA05D27136CB89B6CCE4ACCEA7D606CFA2356E10153905C
+
ADA73C437D1BA20C9FF516C9E9C98FF701E9DD20786E827DDDF800A4BCB0A83411FF84E941BBA88833268484F96B5AF1E22537B4323B2D57D7816CBBC2E70ED0B33528D2E481CA60A799182899B59AB07D36128720721D8D24AF46FC0D15B255BB8592908B1E7E3A168AAA330A11CDC09041EA1F73DBCE37E158BEA3922B44B2768D41437ECDC3560571A17C6FEA46E269C7D068D56FF1D87B4758BAD57DFF68A94FF449D558D0EA99FDFE5DF5A44947D6F0A25663ECD4AAC6143D262E1497B3E46402A4F47775F6ECD4DF1EF34396777AC5721342C8B478C018CD98DE339FB3505470B11B80ADB0DE98F3DB72C2CBE88E3C4664DF54B570E8DF125E6903E5763B91CB71F347A34CC3687A1621BDF46E64C2CEF3B41F14365BE1333AE13AE1C0DDE73E3BFA33DC4D250D8731B5B0200667ED3EC76C40CF34847E3F5A26EB039FBBC6D67B63E5432C0381B63305BB244821210204EB68698697EABC7F82A3E57EFFCF4C02FBFD8DFFD877657A9FB94372D8961D059C1CA3C8AE320AB58005C4039EAC32D6BEDB55F7DE5609FA3AE5F33C3C8ADDD66163F44CCC4106A1036F828B8FF2C7046A965C802BFE9D0D6F1CA02BD5FAC6C4098BB54BEB3F8519CD6D7EF150C5982BDD8C03E1ACB749A2E0D6B487227115317173DF0A39250C70BC4A8AB3BE04CA9F02A1A1CA9C18C60478D3539B101E9C1A4F55052A284A9800E4DC91B3556EC367F23C90B65335A00E19B0294F0D7074F63B215ACA63B2C1C4F3C5BC18BC25EA3AF9A06FC21218AB74CC8934F926179DCCF4847820499D1A388872FED96C396B4A996CB785AB08049B9CC2BE1F68F3EBF9270A00D4A450E56F5237726598464040DE8A130486FC2DFBF95B47D2E75A6E110F79D7185FF11C96421C505E457C7C82F0150905D871D2045CD48F993FB8DFBC3C1A2410F085A1CFB8960D7248AB572C9236D8DBECAE289490467717D5F62CC3295E30EA900FA7BC7038E6F4B660B1D4DF3F262414EC6476F17C48BBC565DD00DCBEB0C518E6C51780D6ED8206E6F376898835D40BA98CD5234C440E84238D85E3498EDF52159D4414807D6CA6A58EBA69D6B85743834B124C1214FBCA7ECB481A7166DA093B35084AE6475AF779A654C9541631F73F21B209EB966735AF8F0619171BE25FDE25B7D9058D84CC50739277532AD0303768494F7922A37A2DEB2A0A73F49E7B735FED86E73DB54ADE0A88022E3BDB37464D0AB99AEEE45411167BF02E4AFBA537F86A630F015CEF4A9D15DF8985BC02A2C2302837F186EF7186D86D54CB509D79C6C6F2B5B8DF7A1C80E99744E38786DEBA328CF4D1B057F6EE4F1A8F9AAF0D8FD974D8D120539983BA1DE958352D37AF9062199375AD2CD847554D9E38FC2E89E6A8B9B971CA23C598735349E6539D4AFBE4DA8B65E32F27793412DD260DB0237DA19CFF42AB
+
2E380FF13E997252F94D1C96CCC7B162EFB2A01D717C3315C5433BCBF65BD8BDE7E89A6BEA9D2D4E68996857560468DD400AE07C6ADD782658F964BE4F8D344A5378CBDF3A73ACB01F2F19960EF4A3C3BF306A8167CDDEB7050CD84A9A0762254AAF75DC3B86ED6646F331A3EFCBA321F4CEA4EADD5389C7F9902E4E441ED60A894DC2B71905659C860E694F0D8705DE54442B4F9B8475424D36ACEACEFEE0D346286B16FF8D34DF4E766606F4B00B065F447A790AF44C8D707355D788747762ACBD708CD79D2CD32D6A8414FD5CF18DDD5517AC9B583C44C367DCB3886D8BFCFA173C1B711150A97C9E87EA760C167F1AEF284D4E2DAAAC2BA4191EDC7D463D35419D7796EBA5A77513E4A4DC7F8C0C47EB99EA322C908BCF8BCD20ABFCF919A81BF2693E847BBD1125CF6CB06A43D046DC80EC06EFE1B1028373AB4D27A5FAC17C4775C3404D77ED1C193E5D1BFDB2F1E044B701E8D4D981A128D1F7975C487C14E23E74C6DC830F99E0ACD8A08ABDF711150A035CB3F645BB126C244A46B510E5C889E90180A79B67EA5D309C45458F1CBD6E14CA2A7A2D0AE70D7AC29386F9A0DEF6B6F231E977C7BD59C7708E69C38DDDC6B9555BDE276BAEA3E9A9
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
0000000000000000000000000000000000000000000000000000000000000000
+
cleartomark end
+
%APLT1End
+
%RBIEndFontSubset
+/Helvetica cguidfix
+/F1.1/Helvetica renmfont
+[ /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.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def 
+/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def 
+end ] /Cs1 exch/ColorSpace dr pop
+[ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def 
+/DecodeA { { 1.8008  exp } bind  exec} bind 
+def 
+/MatrixA [ 0.9642 1.0000 0.8249 ] def 
+/RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def 
+/DecodeLMN [ { 0.9857  mul} bind { 1.0000  mul} bind { 1.3202  mul} bind ] def 
+end ] /Cs2 exch/ColorSpace dr pop
+%%EndPageSetup
+0.60000002 i
+/Cs1 SC
+1 1 1 sc
+q
+0 0 589.5 166.5 rc
+-93.499825 403.50616 m
+745.00018 403.50616 l
+745.00018 -770.99384 l
+-93.499825 -770.99384 l
+h
+-93.499825 403.50616 m
+f
+31.5 148.5 m
+558 148.5 l
+565.45581 148.5 571.5 142.45584 571.5 135 c
+571.5 31.5 l
+571.5 24.044151 565.45581 18 558 18 c
+31.5 18 l
+24.044151 18 18 24.044151 18 31.5 c
+18 31.5 18 31.5 18 31.5 c
+18 135 l
+18 142.45584 24.044151 148.5 31.5 148.5 c
+h
+31.5 148.5 m
+f
+4 w
+1 J
+1 j
+0 0 0 sc
+1.5 0 0 -1.5 -93 403.5 cm
+83 170 m
+434 170 l
+438.97055 170 443 174.02943 443 179 c
+443 248 l
+443 252.97057 438.97055 257 434 257 c
+83 257 l
+78.029434 257 74 252.97057 74 248 c
+74 248 74 248 74 248 c
+74 179 l
+74 174.02943 78.029434 170 83 170 c
+h
+83 170 m
+S
+2 w
+1 1 1 sc
+83 170 m
+434 170 l
+438.97055 170 443 174.02943 443 179 c
+443 248 l
+443 252.97057 438.97055 257 434 257 c
+83 257 l
+78.029434 257 74 252.97057 74 248 c
+74 248 74 248 74 248 c
+74 179 l
+74 174.02943 78.029434 170 83 170 c
+h
+83 170 m
+S
+/Cs2 SC
+0 sc
+0 i
+1.5 0 0 -1.5 294.75 83.25 cm
+/F1.1[ 12 0 0 -12 0 0]sf
+-179.5 -18.5 m
+(!!!!!!"#$%&'\(\)*&+,-./&0!1)[ 3.333984 3.333984 3.333984 3.333984 3.333984 3.333984 2.666016 3.333984 3.996094 3.333984 6.445312 8.003906 8.666016 9.333984 8.003906 7.330078 6.673828 6.673828 6.673828 8.003906 3.333984 7.330078 3.996094 3.333984 0.000000 ] xS
+-179.5 -4.5 m
+(!!!!!!!!23345!6!78"9:+34;;+9"53!$<;3+":;=3">;4$?#253@299?0A!BCDD+&\(**0E)[ 3.333984 3.333984 3.333984 3.333984 3.333984 3.333984 3.333984 3.333984 6.673828 3.333984 3.333984 3.996094 6.000000 3.333984 7.007812 3.333984 6.673828 6.673828 2.666016 2.666016 6.673828 6.673828 3.333984 3.996094 6.673828 6.673828 6.673828 2.666016 2.666016 6.000000 3.333984 3.333984 3.996094 6.673828 6.673828 3.333984 6.673828 2.666016 6.673828 6.673828 6.673828 3.333984 2.666016 6.000000 6.673828 3.996094 3.996094 4.259766 3.333984 6.673828 6.000000 3.333984 6.000000 6.673828 2.666016 2.666016 4.259766 3.996094 3.333984 3.333984 8.666016 8.666016 6.673828 6.673828 6.673828 7.330078 8.666016 8.003906 8.003906 3.996094 0.000000 ] xS
+-179.5 9.5 m
+(!!!!!!!!:;@95F;@5+2::+23345$5F;@5A!233450E)[ 3.333984 3.333984 3.333984 3.333984 3.333984 3.333984 3.333984 3.333984 6.673828 6.673828 6.000000 2.666016 6.000000 6.673828 6.673828 6.000000 6.000000 6.673828 6.673828 6.673828 6.673828 6.673828 6.673828 3.333984 3.333984 3.996094 6.000000 3.996094 6.000000 6.673828 6.673828 6.000000 6.000000 3.333984 3.333984 6.673828 3.333984 3.333984 3.996094 6.000000 3.996094 0.000000 ] xS
+-179.5 23.5 m
+(!!!!!!G)[ 3.333984 3.333984 3.333984 3.333984 3.333984 3.333984 0.000000 ] xS
+ep
+end
+%%Trailer
+%%EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/fastcall.graffle	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>138.33.0.157554</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2011-11-16 23:22:53 +0000</string>
+	<key>Creator</key>
+	<string>Nobuyasu Oshiro</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1 0/72 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{74, 170}, {369, 87}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{-0.5, -0.233518}</string>
+				<string>{-0.49144199, 0.26006299}</string>
+				<string>{0.50711799, -0.224086}</string>
+				<string>{0.50711799, 0.26717901}</string>
+				<string>{-0.27430999, -0.47402799}</string>
+				<string>{0.27978, -0.47847801}</string>
+				<string>{0.29393801, 0.54304397}</string>
+				<string>{-0.28623199, 0.55380398}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>9</real>
+					<key>GapRatio</key>
+					<real>0.5</real>
+					<key>Width</key>
+					<real>4</real>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Align</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
+
+\f0\fs24 \cf0 \
+      if(!TARGET_64BIT) \{\
+        attrs = build_tree_list (get_identifier("fastcall"), NULL_TREE);\
+        declspecs_add_attrs(specs, attrs);\
+      \}}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>TextPlacement</key>
+			<integer>0</integer>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2011-11-16 23:24:01 +0000</string>
+	<key>Modifier</key>
+	<string>Nobuyasu Oshiro</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgVMCgUoDhg==</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{610, 90}, {693, 938}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsjcommon.sty	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,859 @@
+% Copyright (C) 1995,1996,1997,1998,1999,2000,2001
+%			by Hiroshi Nakashima, Yasuki Saito and
+%                          The Editorial Board of the IPSJ Journal
+%
+% ipsjcommon.sty 30-Jan-02 by Hiroshi Nakashima (ver 2.09)
+% (revision history deleted)
+% ipsjcommon.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+
+%%%%%% Sectioning Commands %%%%%%
+
+% \section:	2行取り
+% others:	1行取り
+%
+% Note that \paragraph and \subparagraph act as \subsubsubsection and
+% \subsubsubsubsection resp.
+%
+% The form of sectioning header is;
+%	<1 Kanji sp> \the<sect-command> [`.' if \section] <1 Kanji sp> <title>
+% Nothe that <1 Kanji sp> is that of \normalsize.
+
+\def\section{\@startsection
+	{section}{1}{\@mojihaba}{\sec@aboveskip}{\sec@belowskip}{\fs@sec\bf}}
+\let\ipsj@section\section					% 2.04(1)
+\def\subsection{\@startsection
+	{subsection}{2}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\subsubsection{\@startsection
+	{subsubsection}{3}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\paragraph{\@startsection
+	{paragraph}{4}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\subparagraph{\@startsection
+	{subparagraph}{5}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+
+\newcounter{section}
+\newcounter{subsection}[section]
+\newcounter{subsubsection}[subsection]
+\newcounter{paragraph}[subsubsection]
+\newcounter{subparagraph}[paragraph]
+
+\def\thesection{\arabic{section}}
+\def\sec@section@postfix{.}
+\def\thesubsection{\thesection.\arabic{subsection}}
+\def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
+\def\theparagraph{\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph{\theparagraph.\arabic{subparagraph}}
+
+\setcounter{secnumdepth}{5}
+
+\def\appendix{\let\sec@sec\section
+	\def\section{\@startsection
+		{section}{1}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}%
+	\def\thesection{\appendixprefix\arabic{section}}%
+	\def\sec@section@postfix{\appendixpostfix}%
+	\stepcounter{section}\setcounter{section}{0}%
+	\@ifnextchar[%]
+		     {\sec@oappendix}{\sec@xappendix}}
+\def\sec@xappendix{\@ifstar{\let\section\sec@sec}%
+	{\sec@sec*{\ifDS@english Appendix\else 付録\fi}}}
+\def\sec@oappendix[#1]{\sec@sec*{\ifDS@english Appendix: \else
+	付録\hskip\jspaceskip\fi #1}}
+\def\appendixprefix{A.}
+\def\appendixpostfix{}
+
+\def\acknowledgment{\par
+	{\bf \ifDS@english Acknowledgments\else 謝辞\fi}\hskip\@mojihaba
+	\ignorespaces}
+\let\endacknowledgment\par
+
+\newif\ifipsj@recommendation \ipsj@recommendationfalse		% 2.04(1) >>
+\def\recommendation#1{\global\ipsj@recommendationtrue
+	\ifDS@draft\else \ra@putrcvacc\fi
+	\ipsj@section*{#1}
+}
+\def\endrecommendation{\par\vskip\baselineskip\penalty\opt@magicpenalty}
+								% 2.04(1) <<
+
+% Modified \@startsection has a trick for 2行取り of \section, which must
+% work even if \section appears the top of a page.  The BEFORESKIP must be
+% inserted with respect to the previous baseline.  So, we must go back to
+% the imaginary previous baseline at the top of a page.  That is, we do;
+%	\vskip\baselineskip \vspace*{-\baselineskip}
+% which resuls;
+% 	<a> do nothing at midpage
+%	<b> go to the first baseline by \topskip, then go back to 0th
+%	    baseline by \vspace*.
+% The trick "\vskip-\prevdepth \prevdepth\z@" will assure exact vertical
+% space even when the last line has much depth.
+%
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
+	\par \@tempskipa #4\relax
+	\@afterindenttrue
+	\ifdim\@tempskipa<\z@ \@tempskipa-\@tempskipa \@afterindentfalse\fi
+	\if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\fi
+	\ifdim\@tempskipa>\z@
+% Here is the trick for \section.
+		\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
+		\vspace*{-\baselineskip}\vskip\@tempskipa\fi
+	\@ifstar
+	{\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+% \@sect is modified to cope with `.' for \section and 文字取り
+%
+% \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[TITLE]{TITLE}
+\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth
+	\def\@svsec{}\else 
+	\refstepcounter{#1}
+								% 2.00(1)>>
+	\let\@@protect\protect \def\protect{\noexpand\protect\noexpand}
+	\edef\@svsec{\csname the#1\endcsname \csname sec@#1@postfix\endcsname
+		\hskip\@mojihaba} \let\protect\@@protect\fi	% 2.00(1)<<
+	\@tempskipa #5\relax
+	\ifdim \@tempskipa<\z@ 
+        	\def\@svsechd{#6\hskip #3\relax\@svsec #8}	% 2.00(1)
+	\else
+        	\begingroup #6\relax
+		\@hangfrom{\hskip #3\relax\@svsec}%
+			{\interlinepenalty\@M \sec@mojidori{#8}\par}%
+		\endgroup
+	\fi \@xsect{#5}}
+
+% \@ssect is modified to cope with 文字取り
+%
+% \@sect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{TITLE}
+\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
+	\ifdim \@tempskipa<\z@ \def\@svsechd{#4\hskip #1\relax #5}%
+	\else \begingroup #4%
+		\@hangfrom{\hskip #1}{\interlinepenalty\@M
+			\sec@mojidori{#5}\par}\endgroup
+	\fi \@xsect{#3}}
+
+%% Modify \@xsect to avoid (buggy) \clubpenalty=10000. (H.N.)
+\def\@xsect#1{\@tempskipa #1\relax
+	\ifdim \@tempskipa<\z@
+		\glboal\@nobreakfalse \global\@noskipsectrue
+		\everypar{\global\@noskipsecfalse \hskip-\parindent
+			\begingroup \@svsechd \endgroup \unskip
+			\hskip -#1\everypar{}}%
+	\else
+		\par \nobreak
+		\vskip \@tempskipa \global\@nobreaktrue
+		\everypar{\global\@nobreakfalse
+			\if@afterindent\else {\setbox0\lastbox}\fi \everypar{}}
+	\fi\ignorespaces}
+
+% Here is a trick for 文字取り of sectioning tilte.  The rule is;
+%	2 - 4 Kanji char -> 5 Kanji char
+%	otherwise    -> natural width
+%
+\def\sec@mojidori#1{\setbox0\hbox{#1}\settowidth\@tempdimb{あ}%
+	\ifdim\wd0>4.5\@tempdimb #1\else
+	\ifdim\wd0<1.5\@tempdimb #1\else
+	\jintercharskip\fill \jasciikanjiskip\fill \jmathkanjiskip\fill
+	\leavevmode\hbox to5\@tempdimb{#1\hfil}\fi\fi}
+
+%%%%%% List-like Environments %%%%%%
+%
+%		LM	RM	LW	LS	LPI	II
+% default	2K	0	0.75K	0.25K	0	0
+% \enumerate	3K	0	3K	0	0	0
+% \Enumerate	0	0	3K	0	0	3K
+% \ENUMERATE	0	0	3K	0	0	4K
+% \enumerate*	1K	0	3K	0	0	2K
+% \itemize	2K	0	2K	0	0	0
+% \Itemize	0	0	2K	0	0	2K
+% \ITEMIZE	0	0	2K	0	0	3K
+% \itemize*	1K	0	2K	0	0	1K
+% \description	2K	0	0	1K	0	-1K
+% \Description	0	0	0	1K	0	1K
+% \DESCRIPTION	0	0	0	1K	0	2K
+% \description*	1K	0	0	1K	0	0
+% \verse	3K	2K	0.75K	0.25K	-1K	-1K
+% \quotation	2K	2K	0.75K	0.25K	1K	1K
+% \quote	2K	2K	0.75K	0.25K	0	0
+%
+% where LM is \leftmargin, RM is \rightmargin, LW is \labelwidth, LS is
+% \labelsep, \LPI is \listparindent, II is \itemindent, and K is Kanji char
+% width (\@mojihaba).
+%
+% All vertical space parameters, \topsep, \partopsep, \itemsep and \parsep,
+% are 0pt.
+
+\leftmargini2\@mojihaba
+\leftmarginii2\@mojihaba
+\leftmarginiii2\@mojihaba
+\leftmarginiv2\@mojihaba
+\leftmarginv2\@mojihaba
+\leftmarginvi2\@mojihaba
+
+\def\lst@listi{\labelsep.75\@mojihaba \labelwidth.25\@mojihaba
+	\rightmargin\z@ \listparindent\z@ \itemindent\z@
+	\partopsep\z@ \parsep\z@ \topsep\z@ \itemsep\z@}
+\def\@listi{\leftmargin\leftmargini \lst@listi}
+\def\@listii{\leftmargin\leftmarginii \lst@listi}
+\def\@listiii{\leftmargin\leftmarginiii \lst@listi}
+\def\@listiv{\leftmargin\leftmarginiv \lst@listi}
+\def\@listv{\leftmargin\leftmarginv \lst@listi}
+\def\@listvi{\leftmargin\leftmarginvi \lst@listi}
+
+\@listi
+
+\def\labelenumi{(\,\theenumi\,)} 
+\def\theenumi{\arabic{enumi}} 
+\def\labelenumii{(\,\theenumii\,)}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+\def\labelenumiii{(\,\theenumiii\,)}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\labelenumiv{(\,\theenumiv\,)}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
+	\advance\@enumdepth \@ne 
+	\edef\@enumctr{enum\romannumeral\the\@enumdepth}
+	\list{\csname label\@enumctr\endcsname}{\usecounter
+		{\@enumctr}\def\makelabel##1{##1\hss}%
+		\leftmargin3\@mojihaba \labelwidth3\@mojihaba \labelsep\z@}\fi}
+\let\endenumerate\endlist
+
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+\def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne
+	\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+	\list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss##1\hss}%
+		\labelwidth2\@mojihaba \labelsep\z@}\fi}
+\let\enditemize\endlist
+
+\def\description{\list{}{\labelwidth\z@ \labelsep\@mojihaba
+	\itemindent\labelsep \advance\itemindent-\leftmargin
+	\def\makelabel##1{\bf ##1}}}
+\let\enddescription\endlist
+
+\let\latex@trivlist\@trivlist
+\def\lst@trivlist#1#2{\leftmargin#1\relax
+	\itemindent\labelwidth \advance\itemindent\labelsep
+	\advance\itemindent#2\relax
+	\let\@trivlist\latex@trivlist \@trivlist}
+
+\def\lst@Trivlist{\def\@trivlist{\lst@trivlist\z@\z@}}
+\def\Enumerate{\lst@Trivlist \enumerate}
+\let\endEnumerate\endlist
+\def\Itemize{\lst@Trivlist \itemize}
+\let\endItemize\endlist
+\def\Description{\lst@Trivlist \description}
+\let\endDescription\endlist
+
+\def\lst@TRIVLIST{\def\@trivlist{\lst@trivlist\z@\@mojihaba}}
+\def\ENUMERATE{\lst@TRIVLIST \enumerate}
+\let\endENUMERATE\endlist
+\def\ITEMIZE{\lst@TRIVLIST \itemize}
+\let\endITEMIZE\endlist
+\def\DESCRIPTION{\lst@TRIVLIST \description}
+\let\endDESCRIPTION\endlist
+
+\def\lst@strivlist{\def\@trivlist{\lst@trivlist\@mojihaba{-\@mojihaba}}}
+\@namedef{enumerate*}{\lst@strivlist \enumerate}
+\@namedef{endenumerate*}{\endlist}
+\@namedef{itemize*}{\lst@strivlist \itemize}
+\@namedef{enditemize*}{\endlist}
+\@namedef{description*}{\lst@strivlist \description}
+\@namedef{enddescription*}{\endlist}
+
+\def\verse{\let\\=\@centercr 
+	\list{}{\itemindent-\@mojihaba \listparindent\itemindent 
+	\rightmargin\leftmargin \advance\leftmargin\@mojihaba}\item[]}
+\let\endverse\endlist
+\def\quotation{\list{}{\listparindent\@mojihaba	\itemindent\listparindent
+	\rightmargin\leftmargin}\item[]}
+\let\endquotation\endlist
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote\endlist
+
+\def\newtheorem{\@ifstar
+	{\theo@newtheorem{\theo@it}{\ }}{\theo@newtheorem{}{\theo@sp}}}
+\def\theo@newtheorem#1#2#3{\@namedef{theo@it@#3}{#1}\@namedef{theo@sp@#3}{#2}%
+	\@ifnextchar[%]
+		     {\@othm{#3}}{\@nthm{#3}}}
+\def\@begintheorem#1#2{\DESCRIPTION \csname theo@it@\@currenvir\endcsname
+	\item[#1\csname theo@sp@\@currenvir\endcsname #2]}
+\def\@opargbegintheorem#1#2#3{\DESCRIPTION
+	\csname theo@style@\@currenvir\endcsname
+	\item[#1\csname theo@sp@\@currenvir\endcsname #2\ (#3)]}
+\let\@endtheorem\endlist					% 1.02(2)
+\ifDS@english
+\let\theo@it\it \let\theo@sp\ %
+\else
+\let\theo@it\relax \let\theo@sp\relax
+\fi
+
+%%%%%% Bibliography %%%%%%
+%
+% 1. Label format is "<nn>)".
+% 2. \leftmargin 24Q (or 2K)
+% 3. \labelsep is 6Q (or 0.5K)
+% 4. \baselineskip is 16Q(j)/15Q(e)/normal(d)
+% 5. ~ and \ is null but stretchable and (hardly) breakable.	% 2.09(1)
+
+\def\thebibliography#1{%
+	\section*{\hskip-\@mojihaba\hfill\hbox{\bib@refname}\hfill\hskip\z@}
+	\ifDS@draft \@tempdima\@mojihaba \else\@tempdima12\@Q\fi
+	\list{\arabic{enumi}\rlap{%(
+			   	  )}}%
+	     {\fs@bibliography \leftmargin2\@tempdima \labelwidth\z@
+		\labelsep\@tempdima \itemindent.5\@tempdima
+		\usecounter{enumi}\def\makelabel##1{\hss\llap{##1}}}
+	\def\newblock{\hskip .11em plus .33em minus .07em}
+	\sloppy \frenchspacing
+	\def\ {\hskip\z@ plus\fontdimen\thr@@\font \penalty5000\relax}}
+								% 2.09(1)
+\ifDS@english
+\def\bib@refname{References}
+\else
+{\fs@sec \@tempdima7\jspaceskip
+\xdef\bib@refname{\hbox to\the\@tempdima{\jintercharskip\fill 参考文献}}}
+\fi
+\newdimen\bib@adjustheight \bib@adjustheight-\maxdimen
+\def\endthebibliography{\endlist \par \@normalsize
+	\@tempdima\@colht \advance\@tempdima-\@colroom
+	\advance\@tempdima\pagetotal \advance\@tempdima-\prevdepth
+	\advance\@tempdima-\topskip
+	\@tempdimb\@tempdima \divide\@tempdima\baselineskip
+	\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
+	\advance\@tempdima-\@tempdimb
+	\ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
+	\vskip-\prevdepth \vskip\@tempdima \prevdepth\z@
+	\bib@adjustheight\@tempdimb \advance\bib@adjustheight\@tempdima
+	\global\advance\bib@adjustheight\topskip
+	\if@firstcolumn\else\global\advance\bib@adjustheight\@M pt\fi}
+
+
+%%%%%% Floats %%%%%%
+
+% You may need to change following parameters
+\setcounter{topnumber}{4}
+\setcounter{bottomnumber}{4}
+\setcounter{totalnumber}{8}
+\setcounter{dbltopnumber}{4}
+\def\topfraction{.9}
+\def\bottomfraction{.9}
+\def\textfraction{.1}
+\def\dbltopfraction{.9}
+\def\floatpagefraction{.9}
+\def\dblfloatpagefraction{.9}
+
+\newcounter{figure}
+\newcounter{table}
+\def\thefigure{\@arabic\c@figure}
+\def\thetable{\@arabic\c@table}
+\def\fps@figure{tbp}
+\def\fps@table{tbp}
+\def\ftype@figure{1}
+\def\ftype@table{2}
+\def\fnum@figure{\fname@figure\thefigure}
+\def\fnum@table{\fname@table\thetable}
+\ifDS@english
+\def\fname@figure{Fig.\,}					% 2.06(1)
+\def\fname@Figure{Figure~}
+\def\fname@table{Table~}
+\else
+\def\fname@figure{図\fref@nobreak}				% 1.06(1)
+\let\fname@Figure\fname@figure
+\def\fname@table{表\fref@nobreak}				% 1.06(1)
+\fi
+\def\fnum@efigure{Fig.\,\thefigure}				% 2.06(1)
+\def\fnum@etable{Table~\thetable}
+
+% 1.06(3) >>
+\def\figure{\let\cap@afterskip\relax \let\flt@fontsize\relax \@float{figure}}
+\def\endfigure{\end@float}
+\@namedef{figure*}{\let\cap@afterskip\relax \let\flt@fontsize\relax
+	\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+
+%% Default font for table env. is \footnotesize (H.N.)
+\def\table{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
+	\@float{table}}
+\def\endtable{\end@float}
+\@namedef{table*}{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
+	\@dblfloat{table}}					% 2.01(2)
+\@namedef{endtable*}{\end@dblfloat}
+% 1.06(3) <<
+
+\let\latex@float\@float
+\let\latex@dbflt\@dbflt
+\def\@float{\cap@linewidth\hsize \cap@hsize\hsize \latex@float}
+\def\@dbflt{\cap@linewidth.8\textwidth \cap@hsize.667\textwidth \latex@dbflt}
+\let\latex@xfloat\@xfloat					% 1.06(3)
+\def\@xfloat#1[#2]{\latex@xfloat#1[#2]\flt@fontsize}
+								% 1.06(3)
+\def\end@float{\flt@endfloat
+	\ifdim\bib@adjustheight=-\maxdimen\else
+		\advance\bib@adjustheight\@tempdima
+		\global\advance\bib@adjustheight\baselineskip \fi
+	\ifnum\@floatpenalty <\z@
+		\@nameuse{@largefloatcheck}%			% 2.00(2)
+		\@cons\@currlist\@currbox
+	\ifdim \ht\@currbox >\textheight 
+		\ht\@currbox\textheight \fi
+	\ifnum\@floatpenalty < -\@Mii 
+        	\penalty -\@Miv 
+		\@tempdima\prevdepth \vbox{} \prevdepth\@tempdima
+		\penalty\@floatpenalty
+	\else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@esphack
+	\fi\fi}
+\def\end@dblfloat{\if@twocolumn \flt@endfloat
+	\ifnum\@floatpenalty <\z@ \@cons\@dbldeferlist\@currbox\fi
+	\ifnum \@floatpenalty =-\@Mii \@esphack\fi\else\end@float\fi}
+\def\flt@endfloat{\par \vskip\z@
+	\global\@minipagefalse \@nameuse{outer@nobreak}\egroup	% 2.00(2)
+	\@nameuse{color@endbox}\@normalsize			% 2.00(2)
+	\@tempdima\ht\@currbox \advance\@tempdima\dp\@currbox
+	\divide\@tempdima\baselineskip \@tempcnta\@tempdima
+	\advance\@tempcnta\@ne \@tempdima\@tempcnta\baselineskip
+	\global\setbox\@currbox\vbox to\@tempdima{\box\@currbox\vfil}}
+								% 2.10(1)
+
+\def\cap@beforeskip{\nointerlineskip\vskip5pt}
+\def\cap@afterskip{\nointerlineskip\vskip5pt}
+\long\def\@caption#1[#2]#3{\par\begingroup
+	\fs@caption \cap@beforeskip
+	\@makecaption{{\bf \csname fnum@#1\endcsname}}{\ignorespaces#3}\par
+	\ifDS@english \cap@afterskip \fi
+	\endgroup}
+\def\ecaption{\@dblarg{\@ecaption\@captype}}
+\long\def\@ecaption#1[#2]#3{\par
+	\begingroup \fs@caption
+	\@makecaption{\csname fnum@e#1\endcsname}{\ignorespaces #3}\par
+	\cap@afterskip
+	\endgroup}
+
+\newif\ifcap@sw
+\newdimen\cap@linewidth
+\newdimen\cap@hsize
+\newcount\cap@prevgraf
+\newbox\cap@box
+\let\latex@label\label
+\long\def\@makecaption#1#2{\begingroup \gdef\cap@label{}\let\label\@gobble
+	\setbox0\hbox{#1\hskip\jspaceskip}
+	\advance\cap@linewidth-\wd0 \advance\cap@hsize-\wd0
+	\cap@makepar\cap@linewidth{#2}{\def\label##1{{%		    %1.03(1)
+		\def\protect{\noexpand\protect\noexpand}	    %1.03(1)
+		\xdef\cap@label{\cap@label\protect\label{##1}}}}}   %1.03(1)
+	\cap@swtrue
+	\ifnum\cap@prevgraf=\@ne
+		\setbox1\vbox{\unvcopy1\cap@getbox1
+			\ifhbox1 \global\setbox\cap@box\hbox{\unhbox1}
+			\ifdim\wd\cap@box>\cap@linewidth\else
+				\global\cap@swfalse \fi\fi}
+		\ifcap@sw\else
+			\cap@put{\vtop{\box\cap@box\hbox{}}}
+		\fi\fi
+	\ifcap@sw \cap@makepar\cap@hsize{#2}\relax
+	\ifnum\cap@prevgraf=\tw@
+		\setbox1\vbox{\unvcopy1\cap@getbox2\cap@getbox3
+			\ifhbox2\ifhbox3
+				\setbox2\hbox{\unhbox2}\setbox3\hbox{\unhbox3}
+				\ifdim\wd2>\cap@hsize\else
+				\ifdim\wd3>\cap@hsize\else
+				\global\cap@swfalse
+				\global\setbox\cap@box\vtop{\box3\box2\hbox{}}
+				\fi\fi\fi\fi}\fi
+	\ifcap@sw \setbox1\vtop{\hsize\cap@hsize
+		\@parboxrestore #2\par\hbox{}}\cap@put{\box1}
+	\else\cap@put{\box\cap@box}\fi
+	\fi
+	\endgroup \cap@label}
+\long\def\cap@makepar#1#2#3{\setbox1\vbox{\hsize#1\@parboxrestore
+	\rightskip\@flushglue \hfuzz\maxdimen
+	\exhyphenpenalty\z@ \finalhyphendemerits\z@
+	\let\@@par\cap@par \let\par\cap@par \global\cap@prevgraf\z@
+	#3#2\cap@par}}
+\let\cap@@par\@@par
+\def\cap@par{\cap@@par\global\advance\cap@prevgraf\prevgraf \prevgraf\z@}
+\def\cap@put#1{\hbox to\hsize{\hss\box0#1\hss}
+	\vskip-\baselineskip\prevdepth\z@}
+\def\cap@getbox#1{\@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
+	\unskip\unkern\unpenalty\advance\@tempcnta\m@ne}\setbox#1\lastbox}
+
+\def\figref{\fref@ref\fname@figure}
+\def\Figref{\fref@ref\fname@Figure}
+\def\tabref{\fref@ref\fname@table}
+\let\Tabref\tabref
+\def\fref@ref#1{\@ifstar{\fref@sref{#1}}{\fref@iref\bf{#1}}}
+\def\fref@iref#1#2#3{{\@ifundefined{fref@r@#3}%
+	{#1#2\fref@doref{#3}\global\@namedef{fref@r@#3}{}}{#2\fref@doref{#3}}}}
+\def\fref@sref#1#2{#1\fref@doref{#2}}
+\def\fref@doref#1{{\let\null\relax\ref{#1}}}			% 1.06(2)
+\def\fref@nobreak{\nobreak\ifASCII\else\hskip\@@jasciikanjiskip\fi}
+								% 1.06(1)
+
+\def\fig@extraspace{3mm}					%1.04(4)
+\def\figspace#1{\vskip#1\vskip\fig@extraspace}			%1.04(4)
+
+%%%%%% Footnote %%%%%%
+
+%% The following codes are from pfnote.sty, by H. Nakashima of Kyoto Univ.,
+%% to reset footnote counter at the begining of every page. (H.N.)
+
+% 1.04(2c)>>
+\def\footnote{\@ifnextchar[%]
+	{\@xfootnote}{{\PF@adjustfnote \stepcounter{\@mpfn}%
+		\xdef\@thefnmark{\thempfn}}\@footnotemark\@footnotetext}}
+\def\footnotemark{\@ifnextchar[%]
+	{\@xfootnotemark}{{\PF@adjustfnote \stepcounter{footnote}%
+		\xdef\@thefnmark{\thefootnote}}\@footnotemark}}
+% 1.04(2c)<<
+
+\newcount\PF@fnotectr\global\PF@fnotectr=\z@
+\newcount\PF@page\global\PF@page=-\@M
+\def\PF@thepage{\number\c@page}
+\def\PF@adjustfnote{\global\advance\PF@fnotectr\@ne
+	\expandafter\ifx\csname PF@fn\number\PF@fnotectr\endcsname\relax
+		\global\c@footnote\z@\else
+	\expandafter\@tempcnta\csname PF@fn\number\PF@fnotectr\endcsname\relax
+	\ifnum\@tempcnta=\PF@page\else
+		\global\PF@page\@tempcnta \global\c@footnote\z@ \fi\fi
+% 1.04(2a)>>
+	\expandafter\ifx\csname PF@fnpage\number\PF@page\endcsname\relax \else
+	\expandafter\@tempcnta\csname PF@fnpage\number\PF@page\endcsname\relax
+								% 2.00(4)>>
+	\ifnum\@tempcnta>\tw@ \global\let\thefootnote\thefootnotemany
+	\else \global\let\thefootnote\thefootnoteord \fi\fi	% 2.00(4)<<
+	\@tempcnta\c@footnote \multiply\@tempcnta\@M
+	\advance\@tempcnta\PF@fnotectr
+	\if@filesw{\let\PF@thepage\relax
+		\xdef\@gtempa{\write\@auxout{\string\PF@fnpage
+		{\number\@tempcnta}{\PF@thepage}}}}%
+		\@gtempa\fi}
+% 1.04(2a)<<
+
+% 1.04(2a)>>
+\def\PF@fnpage#1#2{\@tempcnta#1\relax \@tempcntb\@tempcnta \divide\@tempcnta\@M
+	\expandafter\xdef\csname PF@fnpage#2\endcsname{\number\@tempcnta}
+	\multiply\@tempcnta\@M \advance\@tempcntb-\@tempcnta	
+	\global\@namedef{PF@fn\number\@tempcntb}{#2}}
+% 1.04(2a)<<
+%% End of quote from pfnote.sty. (H.N.)
+
+\long\def\@makefntext#1{\leftskip20\@Q
+	\noindent\llap{\@makefnmarkforfn\hskip-\scriptspace\hskip5\@Q}#1}
+								% 1.04(2e)
+\def\@makefnmarkstar{$^{\hbox{\tiny\fn@fontv\@thefnmark}}$}	% 1.04(2d)
+\def\@makefnmarkdagger{$\@thefnmark$}
+\let\@makefnmarkforfn\@makefnmarkstar
+
+\def\@makefnmark{\smash{\hbox{\scriptsize\fn@fontvi$^{\@thefnmark}$}}}
+								% 1.04(2d)
+						% smashed to make it
+						% zero height
+
+%% Awful definition of \thefootnote to put subsequent ☆'s. (H.N.)
+\def\thefootnote{\leavevmode\hbox{%
+	\ifcase\c@footnote\or ☆\or ☆☆\or ☆☆☆\else \thefootnotemany\fi}}
+								% 1.04(2b)
+\def\thefootnotemany{\hbox{☆\hskip\z@\number\c@footnote}}	% 1.04(2b)
+								% 2.05(3)
+\let\thefootnoteord\thefootnote
+
+
+%%%%%% Citation %%%%%%
+
+%% The following codes for \cite are from overcite.sty by D. Arseneau, but
+%% modified for Trans. IPSJ (H.N.)
+%     O V E R C I T E . S T Y
+%
+%     version 3.2  (Mar 1993)
+%
+%     Compressed, sorted lists of superscript numerical citations.
+%     see also CITE.STY and DRFTCITE.STY
+%
+%     Copyright (C) 1989-1993 by Donald Arseneau
+%     These macros may be freely transmitted, reproduced, or modified for
+%     non-commercial purposes provided that this notice is left intact.
+%
+\def\cite{\protect\@p@cite}
+\def\@p@cite{\let\@citeY\@citey \@p@@cite}
+\def\Cite{\protect\@p@Cite}
+\def\@p@Cite{\let\@citeY\@Citey \@p@@cite}
+\def\@p@@cite{\@ifnextchar[%]
+		          {\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+\def\@citex[#1]#2{\@citeY{\@p@citen{#2}}\if@tempswa\space[#1]\fi}
+\def\@citey#1{\leavevmode\unskip\kern\z@$\let\@cite@tiestyle\scriptstyle
+%     								% 2.06(2)
+	\def\@cite@punct{,}\m@th^{\hbox{\scriptsize#1}}$\spacefactor\@m}
+\def\@Citey#1{\let\@cite@tiestyle\textstyle
+	\ifDS@english \def\@cite@punct{,\space\penalty\@highpenalty}%1.04(1)
+	\else\def\@cite@punct{,}\fi#1\spacefactor\@m}		    %1.04(1)
+
+\def\@p@citen#1{%
+	\edef\@tempa{\@ignspaftercomma,#1, \@end, }%
+	\edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}%
+	\if@filesw \immediate\write\@auxout{\string\citation{\@tempa}}\fi
+	\@tempcntb\m@ne \let\@h@ld\relax \let\@citea\@empty
+	\let\@celt\relax \def\@cite@list{}%			% 2.06(3)
+	\@for\@citeb:=\@tempa\do{\@make@cite@list}%
+	\@tempcnta\m@ne \let\@celt\@compress@cite \@cite@list
+	\@h@ld}
+\def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else
+	#1,\expandafter\@ignspaftercomma\fi}
+\def\@ignendcommas,#1,\@end{#1}
+
+%(
+\let\@cite@rp)
+\chardef\@cite@escape`\\
+\def\@make@cite@list{%
+    \expandafter\let\expandafter\@B@citeB\csname b@\@citeb\endcsname
+    \ifx\@B@citeB\relax
+	\@citea {\bf ?}\@cite@rp \let\@citea\@cite@punct
+	\@latex@warning{Citation `\@citeb' on page \thepage\space undefined}%
+								% 2.00(3)
+	\global\@namedef{b@\@citeb}{{\bf ?}}%
+    \else
+	\ifcat \@cite@escape\ifnum\z@<0\@B@citeB \@cite@escape\else A\fi
+	    \@tempcnta\@B@citeB \relax
+	    \ifnum \@tempcnta>\@tempcntb
+		\edef\@cite@list{\@cite@list \@celt{\@B@citeB}}%
+		\@tempcntb\@tempcnta
+	     \else
+		\edef\@cite@list{\expandafter\@sort@celt\@cite@list\@gobble @}%
+		\fi
+	\else \@citea \@B@citeB \@cite@rp \let\@citea\@cite@punct
+    \fi\fi}
+
+\def\@sort@celt#1#2{\ifx \@celt #1% parameters are \@celt {num}
+	\ifnum #2<\@tempcnta % number goes later in list
+	    \@celt{#2}\expandafter\expandafter\expandafter\@sort@celt
+	\else \@celt{\number\@tempcnta}\@celt{#2}\fi\fi}
+
+\def\@compress@cite#1{\advance\@tempcnta\@ne
+	\ifnum #1=\@tempcnta
+		\ifx\@h@ld\relax \edef\@h@ld{\@citea #1\@cite@rp}%
+		\else \edef\@h@ld{\hbox{$\@cite@tiestyle\sim$}%
+			\penalty\@highpenalty #1\@cite@rp}\fi
+	\else \@h@ld \@citea #1\@cite@rp
+		\let\@h@ld\relax
+	\fi \@tempcnta#1\relax \let\@citea\@cite@punct}
+
+%% End of quote from overcite.sty. (H.N.)
+
+\def\multicite{\protect\@p@multicite}
+\def\@p@multicite#1#2{\@citey{\@p@citen{#1}$\scriptstyle\sim$\@p@citen{#2}}}
+\def\multiCite{\protect\@p@multiCite}
+\def\@p@multiCite#1#2{\@Citey{\@p@citen{#1}$\sim$\penalty\@highpenalty
+	\@p@citen{#2}}}
+
+
+%%%%%% Box Height Adjustment and Displayed Math %%%%%%
+
+\newbox\adj@boxa \newbox\adj@boxb
+\newdimen\adj@height
+\@tempdima\baselineskip \advance\@tempdima-\topskip
+\edef\adj@minaboveclearance{\the\@tempdima}
+\@tempdima\baselineskip \advance\@tempdima-1ex
+\edef\adj@maxaboveclearance{\the\@tempdima}
+\ifDS@english
+\setbox0\hbox{A}
+\else
+\setbox0\hbox{あ}
+\fi
+\@tempdima\baselineskip \advance\@tempdima-\ht0 \advance\@tempdima\dp0
+\edef\adj@bhd{\the\@tempdima}
+
+% 2.01(1) >>
+\def\adjustvboxheight{\ifinner \let\@tempa\relax
+	\let\endadjustvboxheight\relax \let\@endadjustvboxheight\relax
+	\else \let\@tempa\@adjustvboxheight \fi \@tempa}
+\def\@adjustvboxheight{\par\penalty\z@
+	\global\setbox\adj@boxa\vbox\bgroup\relax		% 1.01(3)
+	\let\@footnotetext\@mpfootnotetext			% 2.02(1)
+%								% 2.05(1)
+	\hsize\columnwidth}
+% 2.01(1) <<
+\def\endadjustvboxheight{\adj@closebox \adj@putbox
+	\ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
+%								% 2.02(1)
+	\global\@ignoretrue\@endparenv}
+\def\adj@closebox{\egroup \normalsize \boxmaxdepth\@maxdepth	% 1.01(1,3)
+	\setbox\adj@boxa\vbox{\unvbox\adj@boxa}			% 1.01(3)
+	\adj@height\ht\adj@boxa
+	\advance\adj@height\adj@minaboveclearance\relax
+	\@tempdima\adj@height \divide\adj@height\baselineskip
+	\@tempcnta\adj@height \adj@height\@tempcnta\baselineskip
+	\ifdim\adj@height<\@tempdima \advance\adj@height\baselineskip\fi}
+\def\adj@putbox{\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
+	\vspace*{-\baselineskip}\advance\@tempdima-\adj@height
+	\@tempdima-\@tempdima \advance\@tempdima\adj@minaboveclearance\relax
+	\@tempdimb\dp\adj@boxa
+	\ifdim\@tempdima>\adj@maxaboveclearance\relax
+		\advance\@tempdima-\@tempdimb \advance\@tempdima\adj@bhd\relax
+		\divide\@tempdima\tw@
+		\vbox to\adj@height{\vskip\@tempdima \box\adj@boxa \vss}
+	\else	\vbox to\adj@height{\vfil\box\adj@boxa\vskip-\@tempdimb}\fi}
+
+\newcount\adj@deadcycle
+\@namedef{adjustvboxheight*}{\adjustvboxheight}
+\@namedef{endadjustvboxheight*}{\@endadjustvboxheight}
+\def\@endadjustvboxheight{\global\adj@deadcycle10\relax
+	\@iendadjustvboxheight
+	\ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
+%								% 2.05(2)
+	\global\@ignoretrue\@endparenv}
+\def\@iendadjustvboxheight{\adj@closebox
+	\ifnum\adj@deadcycle<\@ne
+	\ipsj@error{I cannot adjust too tall/deep box}{\@ehd}\fi    % 2.00(3)
+	\global\advance\adj@deadcycle\m@ne
+	\ifdim\pagegoal=\maxdimen
+		\@tempdimb\@colht \advance\@tempdimb-\topskip
+		\advance\@tempdimb\baselineskip
+	\else \@tempdimb\pagegoal
+		\advance\@tempdimb-\pagetotal \advance\@tempdimb-\pagedepth
+		\advance\@tempdimb\prevdepth \fi		% 1.01(4a)
+	\let\next\relax
+	\ifdim\adj@height<\@tempdimb \adj@putbox \else
+	\ifdim\adj@height=\@tempdimb \adj@putbox \else
+	\divide\@tempdimb\baselineskip \@tempcnta\@tempdimb	% 1.01(4b)>>
+	\@tempdimb\@tempcnta\baselineskip
+	\advance\@tempdimb-\adj@minaboveclearance\relax		% 1.01(4b)<<
+	\setbox\adj@boxa\vbox{\allowbreak\unvbox\adj@boxa}
+	\vbadness\@M \splittopskip\z@ \splitmaxdepth\@maxdepth	%1.01(1)
+	\setbox\@tempboxa\vsplit\adj@boxa to\@tempdimb
+	\setbox\adj@boxb\copy\adj@boxa
+	\setbox\@tempboxa\vbox{\unvbox\@tempboxa}
+	\@tempdimb\ht\@tempboxa \advance\@tempdimb\dp\@tempboxa
+	\ifdim\@tempdimb>\z@
+		\setbox\adj@boxa\vbox\bgroup\unvbox\@tempboxa
+		\adj@closebox \adj@putbox \newpage
+	\else \newpage \fi
+	\setbox\adj@boxa\vbox\bgroup\unvbox\adj@boxb
+	\let\next\@iendadjustvboxheight \fi\fi \next}
+
+\def\adj@eqindent{2\@mojihaba}
+\def\[{\adjustvboxheight\advance\@totalleftmargin\adj@eqindent\relax
+	\hbox to\hsize\bgroup\hskip\@totalleftmargin$\displaystyle}
+\def\]{$\hfill\egroup\endadjustvboxheight\@doendpe\ignorespaces} % 2.03(1)
+\def\equation{\refstepcounter{equation}\[}
+\def\endequation{\hfill\@eqnnum$\egroup\endadjustvboxheight}
+\def\theequation{\arabic{equation}}
+\def\@eqnnum{{\rm (\theequation)\hskip\@mojihaba}} 
+
+\def\adj@eqnlineskip{3pt}
+\def\adj@eqnlineskiplimit{2pt}
+\def\eqnarray{\futurelet\@tempa\adj@eqnarray}
+\def\adj@eqnarray{\ifx\@tempa[%]
+	\let\next\adj@ieqnarray\else\let\next\adj@xeqnarray\fi\next}
+\def\adj@ieqnarray[#1]{\@ifundefined{adj@xeqnarray#1}%
+	{\ipsj@warning{Unknown eqnarray option `#1'}\adj@xeqnarray}% 2.00(3)
+	{\@nameuse{adj@xeqnarray#1}}}
+\def\adj@xeqnarray{\adjustvboxheight
+	\advance\@totalleftmargin\adj@eqindent\relax
+	\stepcounter{equation}\let\@currentlabel=\theequation
+	\global\@eqnswtrue
+	\global\@eqcnt\z@\tabskip\z@\let\\=\@eqncr
+	\lineskip\adj@eqnlineskip \lineskiplimit\adj@eqnlineskiplimit \jot\z@
+	\halign to \hsize\bgroup\@eqnsel\hskip\@totalleftmargin
+		\hfil$\displaystyle{##}$&\global\@eqcnt\@ne	% 1.01(2)
+		\hfil$\displaystyle{}\mathrel{##}{}$\hfil
+		&\global\@eqcnt\tw@ $\displaystyle{##}$\hfil
+		\tabskip\@centering&\llap{##}\tabskip\z@\cr}
+\def\adj@xeqnarrays{\let\endadjustvboxheight\@endadjustvboxheight
+	\adj@xeqnarray}
+\@namedef{adj@xeqnarrays!}{\par\let\adjustvboxheight\relax
+	\let\endadjustvboxheight\relax \adj@xeqnarray}
+\def\endeqnarray{\@@eqncr \egroup \global\advance\c@equation\m@ne
+	\endadjustvboxheight}
+
+
+%%%%%% Kinsoku Parameters %%%%%%
+
+% 1.04(3)>>
+\ifASCII
+\postbreakpenalty`\`=\@M
+\prebreakpenalty`'=\@M
+\prebreakpenalty`)=\@M
+\postbreakpenalty`(=\@M
+\prebreakpenalty`]=\@M
+\postbreakpenalty`[=\@M
+\prebreakpenalty`\}=\@M
+\postbreakpenalty`\{=\@M
+
+\prebreakpenalty`・=\@M
+\prebreakpenalty`:=\@M
+\prebreakpenalty`;=\@M
+\prebreakpenalty`?=\@M
+\prebreakpenalty`!=\@M
+
+\prebreakpenalty\jis"212D=\@M		% ´
+\postbreakpenalty\jis"212E=\@M		% `
+\postbreakpenalty\jis"2146=\@M		% ‘
+\prebreakpenalty\jis"2147=\@M		% ’
+\postbreakpenalty\jis"2148=\@M		% “
+\prebreakpenalty\jis"2149=\@M		% ”
+
+\prebreakpenalty`)=\@M
+\postbreakpenalty`(=\@M
+\prebreakpenalty`}=\@M
+\postbreakpenalty`{=\@M
+\prebreakpenalty`]=\@M
+\postbreakpenalty`[=\@M
+\postbreakpenalty`‘=\@M
+\prebreakpenalty`’=\@M
+
+\postbreakpenalty\jis"214C=\@M		%〔
+\prebreakpenalty\jis"214D=\@M		% 〕
+\postbreakpenalty\jis"2152=\@M		% 〈
+\prebreakpenalty\jis"2153=\@M		% 〉
+\postbreakpenalty\jis"2154=\@M		% 《
+\prebreakpenalty\jis"2155=\@M		% 》
+\postbreakpenalty\jis"2156=\@M		% 「
+\prebreakpenalty\jis"2157=\@M		% 」
+\postbreakpenalty\jis"2158=\@M		% 『
+\prebreakpenalty\jis"2159=\@M		% 』
+\postbreakpenalty\jis"215A=\@M		% 【
+\prebreakpenalty\jis"215B=\@M		% 】
+
+\prebreakpenalty`ぁ=\@M
+\prebreakpenalty`ぃ=\@M
+\prebreakpenalty`ぅ=\@M
+\prebreakpenalty`ぇ=\@M
+\prebreakpenalty`ぉ=\@M
+\prebreakpenalty`っ=\@M
+\prebreakpenalty`ゃ=\@M
+\prebreakpenalty`ゅ=\@M
+\prebreakpenalty`ょ=\@M
+\prebreakpenalty\jis"246E=\@M		% ゎ
+\prebreakpenalty`ァ=\@M
+\prebreakpenalty`ィ=\@M
+\prebreakpenalty`ゥ=\@M
+\prebreakpenalty`ェ=\@M
+\prebreakpenalty`ォ=\@M
+\prebreakpenalty`ッ=\@M
+\prebreakpenalty`ャ=\@M
+\prebreakpenalty`ュ=\@M
+\prebreakpenalty`ョ=\@M
+\prebreakpenalty\jis"256E=\@M		% ヮ
+\prebreakpenalty\jis"2575=\@M		% ヵ
+\prebreakpenalty\jis"2576=\@M		% ヶ
+
+\fi
+% 1.04(3)<<
+
+
+%%%%%% Miscellaneous %%%%%%
+
+%% \doublerulesep is 1pt (H.N.)
+\arraycolsep5pt \tabcolsep6pt \arrayrulewidth.4pt \doublerulesep1pt 
+\tabbingsep.5\@mojihaba
+
+\skip\@mpfootins\skip\footins
+\fboxsep3pt \fboxrule.4pt 
+
+%% We simply allow (not encourage) club and widow lines. (H.N.)
+\clubpenalty\z@ \widowpenalty\z@ \displaywidowpenalty\z@
+
+% The following redefinition influences \linebreak etc.
+\def\sloppy{\tolerance9999\hbadness9999\hfuzz.5\p@ \vfuzz.5\p@}
+
+\endinput
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsjdrafts.sty	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,364 @@
+% Copyright (C) 1995,1996,1997,1998,1999,2000,2001
+%			by Hiroshi Nakashima, Yasuki Saito and
+%                          The Editorial Board of the IPSJ Journal
+%
+% ipsjdrafts.sty  5-Jun-00 by Hiroshi Nakashima (ver 2.07)
+% (revision history deleted)
+% ipsjdrafts.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+
+%%%%%% Fonts %%%%%%
+% All font loading are removed.
+
+\ifASCII
+
+\let\latex@setsize\@setsize
+\def\@setsize#1#2#3#4{\latex@setsize{#1}{#2}{#3}{#4}\jspaceskip1zw}
+
+\newcount\jfsize
+\let\setjglues\relax
+\let\jintercharskip\kanjiskip
+\let\jasciikanjiskip\xkanjiskip
+\let\jmathkanjiskip\xkanjiskip
+\newdimen\jspaceskip
+
+\def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
+\def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
+\def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
+\def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}
+
+\def\@asciiwarning#1{\ipsj@warning{\string#1\space		% 2.00(1)
+	is not supported in ASCII version}}
+
+\if@LaTeX@eN							% 2.00(2)>>
+\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
+\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
+\fi								% 2.00(2)<<
+
+\def\dg{\gt}							% 1.06(1)
+\def\dm{\mc}							% 1.06(1)
+
+\else	% This is necessary even in 2e.
+\ifx\sixdm\undefined \jfont\sixdm=dm6 \fi			% 1.01(1)
+								% 1.06(2)
+\fi
+
+\if@LaTeX@eN							% 2.00(2)>>
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\fi								% 2.00(2)<<
+
+%%%%%% Basic Font Size Macros %%%%%%
+% Nothing at all.
+
+
+%%%%%% Font Size Macros %%%%%%
+
+\def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
+	\@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
+		{\@setsize{#1}{#2}{#3}{#4}}}
+
+% \baselineskip's are almost 1.25 times those defined in NTT jart12.
+
+\def\@normalsize{\@setsize\normalsize{20pt}\xiipt\@xiipt}
+\def\small{\fs@setsize\small{17pt}\xipt\@xipt}
+\def\footnotesize{\fs@setsize\footnotesize{14pt}\xpt\@xpt}
+\def\scriptsize{\@setsize\scriptsize{11.875pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{8.75pt}\vipt\@vipt}
+\def\large{\@setsize\large{20pt}\xivpt\@xivpt}			% 1.06(3)
+\def\Large{\@setsize\Large{25pt}\xviipt\@xviipt}
+\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
+\let\huge\LARGE
+\let\Huge\LARGE
+
+\if@LaTeX@e							% 2.00(3)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(3)<<
+
+\let\fs@sec\large
+\let\fs@subsec\normalsize
+\let\fs@bibliography\normalsize
+\let\fs@caption\normalsize
+\let\fs@table\normalsize
+\let\fs@footnote\footnotesize
+{\tiny \xdef\fn@fontv{\ifASCII \the\jfont \else \sixdm \fi}}
+\let\fn@fontvi\fn@fontv
+
+\@normalsize 
+
+\ifASCII\else							% 1.06(2) >>
+\ifx\setjglue\undefined\else					% 2.04(1)
+\def\@tempc{\edef\@tempa{\the\ja}
+	\edef\@tempa{\expandafter\string\@tempa}
+	\expandafter\@tempb\@tempa\@nil
+	\expandafter\defjintercharskip\csname\@tempa\endcsname}
+\let\@tempd\@namedef
+{\catcode`j=12\catcode`a=12\gdef\@tempb#1#2ja\@nil{\@tempd{@tempa}{#2}}}
+\dg\@tempc{0pt}{1.4pt}{0.14pt}
+\dm\@tempc{0pt}{1.4pt}{0.14pt}
+\setjglues
+\fi\fi								% 1.06(2) <<
+
+\@tempdima.55\baselineskip
+\edef\sec@aboveskip{\the\@tempdima}
+\@tempdima.45\baselineskip
+\edef\sec@belowskip{\the\@tempdima}
+
+\if@LaTeX@e\else						% 2.04(2)
+\let\latex@bf\bf						% 1.06(1)
+\def\bf{\dg\latex@bf}						% 1.06(1)
+\fi								% 2.04(2)
+
+
+%%%%%% Page Layout Parameters %%%%%%
+
+\newdimen\@mojihaba
+\@mojihaba\jspaceskip
+
+% No heads
+\headheight\z@
+\headsep\z@
+
+\setbox0\hbox{$\displaystyle X^X$}
+\topskip\ht0
+
+% 1 page = 32 lines
+\textheight31\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+% \topmargin is (A4height-\textheight)/2 - 1in
+\topmargin296mm \advance\topmargin-\textheight \divide\topmargin\tw@
+\advance\topmargin-1in
+\ifASCII\if@LaTeX@e\@@topmargin\topmargin\fi\fi			% 2.00(4)
+
+\footskip 1.5\baselineskip
+
+% 1 page = 35 Kanji chars
+\ifDS@english							% 1.06(4) >>
+\textwidth404.13048pt
+\else
+\textwidth35\@mojihaba
+\fi								% 1.06(4) <<
+
+% \oddsidemargin is (A4width-\textwidth)/2 - 1in
+\oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
+\advance\oddsidemargin-1in
+
+% As jart12
+\footnotesep10pt
+\skip\footins 10.8pt plus 4pt minus 2pt 
+\def\footnoterule{\kern-3\p@ \hrule width.4\columnwidth \kern2.6\p@}
+
+\floatsep \baselineskip \textfloatsep \baselineskip 
+\intextsep \baselineskip \@maxsep \baselineskip
+\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
+\@dblmaxsep \baselineskip
+\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil 
+\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil
+
+\parskip\z@ \parindent \@mojihaba
+\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 
+\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty 
+
+
+%%%%%% Title and Authors %%%%%%
+%
+% Format of title, author names and abstract.
+%
+%	\leftline{\LARGE 論文}
+%	\vfill
+%	\beign{center}\LARGE\bf <Japanese title>\end{center}
+%	\vfill
+%	\begin{center}\LARGE\bf <Engilish title>\end{center}
+%	\vfill\vfill
+%	\newpage
+%	\large <Japanese author names>
+%	\vfill
+%	連絡先
+%	\begin{itemize}\item[]\large <Contact address>\end{itemize}
+%	\vfill\vfill
+%	\newpage
+%	\normalsize <Japanese abstract>
+%	\normalsize <English abstract>
+
+\def\maketitle{\@maketitle}
+
+% default title header
+
+\def\title{\@dblarg{\@xtitle}}
+\def\@xtitle[#1]#2{\gdef\@title{#2}}
+\def\@title{\leavevmode\mkt@warning\title}
+\long\def\author#1{\long\gdef\@author{#1}}
+\def\@author{\mkt@warning\author}
+
+\newbox\@abstractbox
+
+\def\abstract{\global\let\@abstract\relax
+	\global\setbox\@abstractbox\vtop\bgroup}
+\def\endabstract{\par\hbox{}\egroup}
+\def\@abstract{\mkt@warning{abstract env}}
+
+%% We need English title, author name(s) and abstract. (H.N.)
+%% English author names are simply ignored.
+\def\etitle#1{\gdef\@etitle{#1}}
+\def\@etitle{\leavevmode\mkt@warning\etitle}
+\long\def\eauthor#1{}
+
+\newbox\@eabstractbox
+\def\eabstract{\global\let\@eabstract\relax
+	\global\setbox\@eabstractbox\vtop\bgroup}
+\let\endeabstract\endabstract
+\def\@eabstract{\mkt@warning{eabstract env}}
+
+\ifDS@english \let\abstract\eabstract \let\@eabstract\@abstract \fi
+
+% Contact address is required in draft.
+\def\contact{\long\def\mkt@contact}
+\def\mkt@contact{\leavevmode\mkt@warning\contact}
+
+\def\mkt@warning#1{\ipsj@warning{Missing \string#1}}		% 2.00(1)
+
+\def\@maketitle{\newpage\thispagestyle{empty}
+	\leftline{\LARGE
+		\ifDS@english \ifDS@technote Technical Note\else
+			Regular Paper\fi
+		\else \ifDS@technote テクニカルノート\else 論文\fi\fi}
+	\vfill
+	\begin{center}\LARGE\bf\@title\end{center}
+	\ifDS@english\else 
+		\vfill
+		\begin{center}\LARGE\bf\@etitle\end{center}\fi
+	\@thanks
+	\vfill\vfill
+	\newpage\thispagestyle{empty}
+	\begingroup\large\vspace*{\fill}\rightskip0pt plus1fil
+	\parindent\z@\parskip.5\baselineskip\hangindent2em\hangafter\@ne
+	\def\par{{\@@par}}
+	\mkt@makeauthor
+	\par\vfill
+	\noindent
+	\ifDS@english Contact To:\else 連絡先\fi
+	\endgroup
+	\begin{itemize}\large\item[]\mkt@contact\end{itemize}
+	\vfill\vfill\newpage \setcounter{page}{1}\def\thepage{\roman{page}}
+	\ifDS@english\else \@abstract \centerline{\bf 概要}
+		\vskip-\prevdepth\vskip\baselineskip\vskip-\ht\@abstractbox
+		\unvbox\@abstractbox\prevdepth\z@ \fi
+	\centerline{\bf Abstract}
+	\vskip-\prevdepth \vskip\baselineskip\vskip-\ht\@eabstractbox
+	\@eabstract \unvbox\@eabstractbox
+	\newpage \def\thepage{\arabic{page}}\setcounter{page}{1}}
+
+\def\mkt@makeauthor{\let\member\mkt@member \let\nomember\mkt@nomember
+	\let\stmember\mkt@stmember
+	\expandafter\mkt@imakeauthor\@author\and\@nil\and}
+\def\mkt@imakeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
+	\else #1\par\let\next\mkt@imakeauthor\fi\next}
+
+% Macros to specify author's affiliation easily.
+\ifDS@english
+\def\paffilabel#1#2{\affilabel{#1}{Presently with #2}}
+\else
+\def\paffilabel#1#2{\affilabel{#1}{現在 #2}}
+\fi
+% Ignore English affiliation even if given.
+\def\affilabel#1#2{\@ifundefined{affi@r@#1}%
+		{\expandafter\xdef\csname affi@r@#1\endcsname
+			{\affi@cuteng#2\\\@nil}}
+		{\ipsj@warning{Affiliation label `#1' multiply defined}}}
+								% 2.00(1)
+\def\affiref#1{\@ifundefined{affi@r@#1}%
+		{\ipsj@warning{%				% 2.00(1)
+			Affiliation reference `#1' undefined}\hbox{(???)}}
+		{\setbox\@tempboxa\hbox{(\csname affi@r@#1\endcsname)}%
+			\@tempdima\wd\@tempboxa \advance\@tempdima2em\relax
+			\ifdim\@tempdima>\hsize
+				\newline\unhbox\@tempboxa
+			\else\ \box\@tempboxa\fi}}
+\def\affi@cuteng#1\\#2\@nil{#1}
+
+% Membership of aurthor is required in draft.
+\ifDS@english
+\def\mkt@member#1{\ \hbox{[Regular Member\##1]}}
+\def\mkt@nomember{\ \hbox{[Non Member]}}
+\def\mkt@stmember#1{\ \hbox{[Student Member\##1]}}
+\else
+\def\mkt@member#1{\ \hbox{[正会員\##1]}}
+\def\mkt@nomember{\ \hbox{[非会員]}}
+\def\mkt@stmember#1{\ \hbox{[学生会員\##1]}}
+\fi
+
+%%%%%% Page Header and Footer %%%%%% 
+
+\mark{{}{}} 
+
+% The following counters are not used, but may appear.
+\let\c@volpage\c@page						% 2.00(5)
+\def\thevolpage{\thepage}					% 2.00(5)
+\newcounter{volpageoffset} % You must set this to appropriate value
+\newcounter{volume}\expandafter\let\csname c@巻数\endcsname\c@volume
+\newcounter{number}\expandafter\let\csname c@号数\endcsname\c@number
+\newcounter{year}\expandafter\let\csname c@年数\endcsname\c@year
+
+\def\ps@plain{\let\@mkboth\@gobbletwo
+	\def\@oddhead{\@checklines}\let\@evenhead\@oddhead
+	\def\@oddfoot{\rm \hfil\thepage\hfil}\let\@evenfoot\@oddfoot}
+
+% \checklines enables to draw a horizontal rule onto each baselines.
+
+\newif\if@checklines \@checklinesfalse
+\def\checklines{\@checklinestrue}
+\def\@checklines{\if@checklines \rlap{\smash{\vtop{
+	\hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip
+	\hrule\vskip-.4pt
+	\@tempcnta31\relax\@@checklines}}}\hfil\fi}
+\def\@@checklines{\ifnum\@tempcnta>\z@
+	\vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne
+	\let\next\@@checklines\else\let\next\relax\fi\next}
+
+\pagestyle{plain}
+\pagenumbering{arabic}
+
+\ifDS@english\else
+\def\today{\the\year 年 \the\month 月 \the\day 日}
+\fi
+
+
+%%%%%% Output Routine %%%%%%
+% Nothing at all.
+
+
+%%%%%% Biography %%%%%%
+% Almost nothing.
+
+\def\受付#1#2#3{}\let\received\受付
+\def\採録#1#2#3{}\let\accepted\採録
+
+\def\biography{\let\member\@gobble \let\nomember\@gobble \let\stmember\@gobble
+	\let\adjust\@gobble \setbox0\vbox\bgroup
+	\tolerance\@M \hbadness\@M \hfuzz\maxdimen}
+\def\endbiography{\egroup\setbox0\hbox{}}
+
+
+%%%%%% Miscellaneous %%%%%%
+
+\raggedbottom
+
+\input{ipsjcommon.sty}
+
+% Redefine \acknowledgment to put it separately.
+\newbox\ack@box
+\let\@acknowledgment\acknowledgment
+\def\acknowledgment{\global\setbox\ack@box\vtop\bgroup\@acknowledgment}
+\def\endacknowledgment{\par\egroup}
+
+\let\id@enddocument\enddocument
+\def\enddocument{\clearpage \unvbox\ack@box \id@enddocument}
+
+\endinput
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsjpapers.cls	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1 @@
+% Copyright (C) 1995,1996,1997,1998,1999,2000,2001
%			by Hiroshi Nakashima, Yasuki Saito and
%                          The Editorial Board of the IPSJ Journal
%
% ipsjpapers.cls 15-May-01 by Hiroshi Nakashima (ver 2.08)
% (revision history deleted)
% ipsjpapers.cls  1-Apr-96 by Hiroshi Nakashima (ver 2.00)

\ifx\pfmtname\undefined
\NeedsTeXFormat{LaTeX2e}
\else
\NeedsTeXFormat{pLaTeX2e}
\fi

\ProvidesClass{ipsjpapers}[2001/05/01 ver 2.08]
\input{ipsjpapers.sty}
\endinput
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsjpapers.sty	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1790 @@
+% Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
+%			by Hiroshi Nakashima, Yasuki Saito and
+%                          The Editorial Board of the IPSJ Journal
+%
+% ipsjpapers.sty 30-Jan-02 by Hiroshi Nakashima (ver 2.09)
+% (revision history deleted)
+% ipsjpapers.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+% ipsjpapers.sty 30-Nov-93 by Hiroshi Nakashima
+% ipsjpapers.sty 3-Feb-93 by Yaski Saito
+% compsoft.sty 22-April-92 by Yaski Saito
+% compsoft.sty 18-July-90 by Hideki Isozaki 
+% j-article.sty 10-Feb-89 from report.sty 16-Mar-88
+
+%%%%%% LaTeX Version %%%%%%
+
+% 2.00(1) >>
+%% \ifASCII is true if ASCII version Japanese TeX, which doesn't have
+%% \jintercharskip (H.N.)
+\newif\ifASCII \ASCIIfalse
+\ifx\jintercharskip\undefined\ASCIItrue\fi
+\newif\if@LaTeX@e \@LaTeX@efalse				% 1.06(1)
+\newif\if@LaTeX@eN \@LaTeX@eNfalse				% 2.00(1)
+\def\@tempa{LaTeX2e}						% 1.06(1)
+\ifx\fmtname\@tempa \@LaTeX@etrue				% 1.06(1)
+\ifx\xpt\undefined \@LaTeX@eNtrue \fi\fi			% 2.00(1)
+% 2.00(1) <<
+
+
+%%%%%% Document Styles %%%%%%
+
+% 2.00(2) >>
+\newif\ifDS@printer \DS@printerfalse
+\newif\ifDS@english \DS@englishfalse
+\newif\ifDS@technote \DS@technotefalse
+\newif\ifDS@preface \DS@prefacefalse
+\newif\ifDS@draft \DS@draftfalse
+\newif\ifDS@techrep \DS@techrepfalse				% 1.05(2)
+\newif\ifDS@sigrecommended \DS@sigrecommendedfalse		% 2.04(1)
+\newif\ifDS@invited \DS@invitedfalse				% 2.06(1)
+\newif\ifDS@abstract \DS@abstractfalse				% 2.07(7)
+\newif\ifDS@private \DS@privatefalse				% 2.07(8)
+
+\if@LaTeX@eN
+\DeclareOption{printer}{\relax}					% 2.09(1)
+\DeclareOption{english}{\DS@englishtrue}
+\DeclareOption{technote}{\DS@technotetrue}
+\DeclareOption{preface}{\DS@prefacetrue}
+\DeclareOption{draft}{\DS@drafttrue}
+\DeclareOption{techrep}{\DS@techreptrue}
+\DeclareOption{sigrecommended}{\DS@sigrecommendedtrue}		% 2.04(1)
+\DeclareOption{invited}{\DS@invitedtrue}			% 2.06(1)
+\DeclareOption{abstract}{\DS@abstracttrue}			% 2.07(7)
+\DeclareOption{private}{\DS@privatetrue}			% 2.07(8)
+\DeclareOption{10pt}{\def\@ptsize{0}}
+\DeclareOption{11pt}{\def\@ptsize{1}}
+\DeclareOption{12pt}{\def\@ptsize{2}}
+\ExecuteOptions{10pt}
+\ProcessOptions
+\def\ipsj@warning{\ClassWarning{ipsjpapers}}			% 2.00(3)
+\def\ipsj@error{\ClassError{ipsjpapers}}			% 2.00(3)
+\newskip \old@latex@skip					% 2.00(14)
+\let\@maxsep\old@latex@skip					% 2.00(14)
+\let\@dblmaxsep\old@latex@skip					% 2.00(14)
+
+\else
+\expandafter\ifx\csname ver@ipsjpapers.cls\endcsname\relax
+\typeout{Document Style `ipsjpapers' (ver 2.09) <30 Jan 2002>.}	% 2.05(1)
+\fi
+
+\def\ds@printer{\relax}						% 2.09(1)
+\def\ds@english{\DS@englishtrue}
+\def\ds@technote{\DS@technotetrue}
+\def\ds@preface{\DS@prefacetrue}
+\def\ds@draft{\DS@drafttrue}
+\def\ds@techrep{\DS@techreptrue}				% 1.05(2)
+\def\ds@sigrecommended{\DS@sigrecommendedtrue}			% 2.04(1)
+\def\ds@invited{\DS@invitedtrue}				% 2.06(1)
+\def\ds@abstract{\DS@abstracttrue}				% 2.07(7)
+\def\ds@private{\DS@privatetrue}				% 2.07(8)
+
+% 1.04(3)>>
+\def\@ptsize{0}
+\@namedef{ds@11pt}{\def\@ptsize{1}}
+\@namedef{ds@12pt}{\def\@ptsize{2}} 
+% 1.04(3)<<
+
+\@options
+\let\ipsj@warning\@warning					% 2.00(3)
+\let\@latex@warning\@warning					% 2.00(3)
+\def\ipsj@error#1#2{\errhlp{#2}\errmessge{#1}}			% 2.00(3)
+\fi
+% 2.00(2) <<
+
+\ifx\@classoptionslist\undefined\else				% 2.03(1) >>
+\def\ipsj@draft@option{draft}
+\def\ipsj@remove@draft@option{\def\@tempb{}%
+	\@for\@tempa:=\@classoptionslist\do{%
+		\ifx\@tempa\ipsj@draft@option\else
+		\edef\@tempb{\@tempb,\@tempa}\fi}%
+	\ifx\@tempb\@empty \def\@classoptionslist{}\else
+	\expandafter\ipsj@remove@draft@ption\@tempb\@nil\fi}
+\def\ipsj@remove@draft@ption,#1\@nil{%
+	\def\@classoptionslist{#1}}
+\ipsj@remove@draft@option
+\fi								% 2.03(1) <<
+
+%%%%%% Basics %%%%%%
+
+\newdimen\@Q \@Q=0.25mm
+
+\lineskip\z@ \normallineskip\z@ 
+\lineskiplimit\z@ \normallineskiplimit\z@
+\abovedisplayskip\z@ \belowdisplayskip\z@
+\abovedisplayshortskip\z@ \belowdisplayshortskip\z@
+
+\def\baselinestretch{1}
+\jot\z@ 
+
+\ifDS@draft\def\next{\input{ipsjdrafts.sty}\endinput}\else\let\next\relax\fi
+\next
+
+\@twosidetrue
+
+%%%%%% Fonts %%%%%%
+% \finvedm(dg)		dm5		\vpt	\tiny		fn-mark
+% \sixdm(dg)		dm6		\vipt	\scriptsize
+% \sevendm(dg)		dm7		\vipt	\footnotesize	f-note, capt
+%	10Q = 7.11304pt -> w(min7) = 6.73550pt
+% \eightdm(dg)		dm8		\viiipt	\small		abst, header
+%	11Q = 7.82434pt -> w(min8) = 7.69772pt
+% \eightdm(dg)half	dm9		\ixpt	\normalsize	main text
+%	12Q = 8.53564pt -> w(min9) = 8.65994
+% \tendm(dg)		dm10		\xpt	\large		sec title
+%	13Q = 9.24695pt -> w(min10) = 9.62216pt
+% \tendm(dg)half	dm10*1095	\xipt	\Large		author names
+%	15Q =10.66956pt -> w(min10*1095) = 10.53625pt
+% (\twlvdm)		(dm12)		\xiipt	\LARGE		e-title
+% \twelvedm(dg)half	dm12*1095	\xivpt	\huge		title
+%			min10*1440
+%	18Q =12.80347pt -> w(min10*1440) = 13.8559pt
+%
+% Note that cm fonts follows LaTeX standard. (e.g. \viiipt -> cmr8, etc.)
+
+% 2.00(4)>>
+\if@LaTeX@e
+\ifASCII
+\def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont	    % 2.00(5)>>
+	\edef\@tempa{\the\jfont}
+	\expandafter\global\expandafter\let\expandafter#1\@tempa}}  % 2.00(5)<<
+
+\ifDS@printer	% ASCII LaTeX2e printer
+\DeclareFontShape{JY1}{mc}{m}{n}{%
+	<5>	sfixed*	[5.175]	min5	% 7Q/w5 = 4.97922/4.81108=1.035
+	<6>	sfixed*	[5.916]	min6	% 8Q/w6 = 5.69055/5.77328=0.986
+	<7>	sfixed*	[7.392]	min7	%10Q/w7 = 7.11304/6.73550=1.056
+	<8>	sfixed*	[8.128]	min8	%11Q/w8 = 7.82434/7.69772=1.016
+	<9>	sfixed*	[8.872]	min8	%12Q/w8 = 8.53564/7.69772=1.109
+	<10>	sfixed*	[9.610]	min10	%13Q/w10= 9.24695/9.62216=0.961
+	<10.95>	sfixed*	[11.09]	min10	%15Q/w10=10.66956/9.62216=1.109
+	<12>	sfixed*	[11.83]	min10	%16Q/w10=11.38110/9.62216=1.183
+	<14.4>	sfixed*	[13.31]	min10	%18Q/w10=12.80347/9.62216=1.331
+}{}
+\DeclareFontShape{JY1}{gt}{m}{n}{%
+	<5>	sfixed*	[5.175]	goth5	% 7Q/w5 = 4.97922/4.81108=1.035
+	<6>	sfixed*	[5.916]	goth6	% 8Q/w6 = 5.69055/5.77328=0.986
+	<7>	sfixed*	[7.392]	goth7	%10Q/w7 = 7.11304/6.73550=1.056
+	<8>	sfixed*	[8.128]	goth8	%11Q/w8 = 7.82434/7.69772=1.016
+	<9>	sfixed*	[8.872]	goth8	%12Q/w8 = 8.53564/7.69772=1.109
+	<10>	sfixed*	[9.610]	goth10	%13Q/w10= 9.24695/9.62216=0.961
+	<10.95>	sfixed*	[11.09]	goth10	%15Q/w10=10.66956/9.62216=1.109
+	<12>	sfixed*	[11.83]	goth10	%16Q/w10=11.38110/9.62216=1.183
+	<14.4>	sfixed*	[13.31]	goth10	%18Q/w10=12.80347/9.62216=1.331
+}{}
+
+\ipsj@declare@font\fn@fontvii\mcfamily\@vpt
+
+%% The following fonts are out of NFSS scheme
+\font\fn@fontv		min5	scaled739	% 5Q/w5 = 3.55658/4.81108=0.739
+\font\fn@fontvi		min5	scaled887	% 6Q/w5 = 4.26790/4.81108=0.887
+\font\fn@fontxv		goth10  scaled1035	%14Q/w10= 9.95846/9.62216=1.035
+
+\else		% ASCII LaTeX2e non-printer
+\ipsj@declare@font\fn@fontv\mcfamily\@vpt
+\ipsj@declare@font\fn@fontvi\mcfamily\@vpt
+\ipsj@declare@font\fn@fontvii\mcfamily\@vpt
+\ipsj@declare@font\fn@fontxv\gtfamily\@xipt
+\fi
+
+\else		% NTT LaTeX2e
+\def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont	    % 2.00(5)
+	\xdef#1{\expandafter\noexpand\csname\jf@ntn@me\endcsname}}} % 2.00(5)
+\ipsj@declare@font\fn@fontv\dm\@vpt
+\ipsj@declare@font\fn@fontvi\dm\@vpt
+\ipsj@declare@font\fn@fontvii\dm\@vpt
+\ipsj@declare@font\fn@fontxv\dg\@xipt
+\fi
+% 2.00(4) <<
+
+\else		% LaTeX 2.09					% 2.00(4)
+%% Fonts for ASCII TeX. (H.N.)
+\ifASCII
+\ifDS@printer
+\font\fn@fontv		min5	scaled739	% 5Q/w5 = 3.55658/4.81108=0.739
+\font\fn@fontvi		min5	scaled887	% 6Q/w5 = 4.26790/4.81108=0.887
+\font\fivedm		min5	scaled1035	% 7Q/w5 = 4.97922/4.81108=1.035
+\font\fivedg		goth5	scaled1035
+\font\sixdm		min6	scaled986	% 8Q/w6 = 5.69055/5.77328=0.986
+\font\sixdg		goth6	scaled986
+\font\sevendm		min7	scaled1056	%10Q/w7 = 7.11304/6.73550=1.056
+\font\sevendg		goth7	scaled1056
+\font\eightdm		min8	scaled1016	%11Q/w8 = 7.82434/7.69772=1.016
+\font\eightdg		goth8	scaled1016
+\font\eightdmhalf	min8	scaled1109	%12Q/w8 = 8.53564/7.69772=1.109
+\font\eightdghalf	goth8	scaled1109
+\font\tendm		min10	scaled961	%13Q/w10= 9.24695/9.62216=0.961
+\font\tendg		goth10  scaled961
+\font\fn@fontxv		goth10  scaled1035	%14Q/w10= 9.95846/9.62216=1.035
+\font\tendmhalf		min10	scaled1109	%15Q/w10=10.66956/9.62216=1.109
+\font\tendghalf		goth10	scaled1109
+\font\twelvedm		min10	scaled1183	%16Q/w10=11.38110/9.62216=1.183
+\font\twelvedg		goth10	scaled1183
+\font\twelvedmhalf	min10	scaled1331	%18Q/w10=12.80347/9.62216=1.331
+\font\twelvedghalf	goth10	scaled1331
+\let\fn@fontvii\fivedm
+
+\else
+\font\fivedm		min5
+\font\fivedg		goth5
+\font\sixdm		min6
+\font\sixdg		goth6
+\font\sevendm		min7
+\font\sevendg		goth7
+\font\eightdm		min8
+\font\eightdg		goth8
+\font\eightdmhalf	min9
+\font\eightdghalf	goth9
+\font\tendm		min10
+\font\tendg		goth10
+\font\tendmhalf		min10 scaled\magstephalf
+\font\tendghalf		goth10 scaled\magstephalf
+\font\twelvedm		min10 scaled\magstep1
+\font\twelvedg		goth10 scaled\magstep1
+\font\twelvedmhalf	min10 scaled\magstep2
+\font\twelvedghalf	goth10 scaled\magstep2
+\let\fn@fontv\fivedm
+\let\fn@fontvi\fivedm
+\let\fn@fontvii\fivedm
+\let\fn@fontxv\tendghalf
+
+\fi
+
+%% ASCII doesn't have \old@Npt. (H.N.)
+\let\old@@vpt\vpt
+\let\old@@vipt\vipt
+\let\old@@viipt\viipt
+\let\old@@viiipt\viiipt
+\let\old@@ixpt\ixpt
+\let\old@@xpt\xpt
+\let\old@@xipt\xipt
+\let\old@@xiipt\xiipt
+\let\old@@xivpt\xivpt
+
+\def\old@vpt{\old@@vpt\jspaceskip1zw\relax}
+\def\old@vipt{\old@@vipt\jspaceskip1zw\relax}
+\def\old@viipt{\old@@viipt\jspaceskip1zw\relax}
+\def\old@viiipt{\old@@viiipt\jspaceskip1zw\relax}
+\def\old@ixpt{\old@@ixpt\jspaceskip1zw\relax}
+\def\old@xpt{\old@@xpt\jspaceskip1zw\relax}
+\def\old@xipt{\old@@xipt\jspaceskip1zw\relax}
+\def\old@xiipt{\old@@xiipt\jspaceskip1zw\relax}
+\def\old@xivpt{\old@@xivpt\jspaceskip1zw\relax}
+
+								% 2.00(6)
+								% 1.06(2)
+
+%% ASCII doesn't have \dg nor \dm. (H.N.)
+\def\dg{\protect\pdg}
+\def\dm{\protect\pdm}
+%% Redefine \gt and \mc
+\def\gt{\protect\pdg}
+\def\mc{\protect\pdm}
+\let\pdm\relax
+
+\else
+%% Fonts for NTT jTeX
+%% \magstephalf and \magstep1 may cause trouble in older versions.
+
+\jfont\fivedm=dm5
+\jfont\fivedg=dg5
+\jfont\sixdm=dm6
+\jfont\sixdg=dg6
+\jfont\sevendm=dm7
+\jfont\sevendg=dg7
+\jfont\eightdm=dm8
+\jfont\eightdg=dg8
+\jfont\eightdmhalf=dm9
+\jfont\eightdghalf=dg9
+\jfont\tendm=dm10
+\jfont\tendg=dg10
+\jfont\tendmhalf=dm10 scaled 1095
+\jfont\tendghalf=dg10 scaled 1095
+\jfont\twelvedm=dm12
+\jfont\twelvedg=dg12
+\jfont\twelvedmhalf=dm12 scaled 1095
+\jfont\twelvedghalf=dg12 scaled 1095
+\let\fn@fontv\fivedm
+\let\fn@fontvi\fivedm
+\let\fn@fontvii\fivedm
+\let\fn@fontxv\tendghalf
+								% 1.06(3)
+\fi
+\fi
+
+\ifx\jfsize\undefined \newcount\jfsize \fi			% 1.06(2)
+
+\ifASCII						% 1.06(3),2.00(6)>>
+\let\setjglues\relax
+\let\jintercharskip\kanjiskip
+\let\jasciikanjiskip\xkanjiskip
+\let\jmathkanjiskip\xkanjiskip
+\newdimen\jspaceskip
+
+\def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
+\def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
+\def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
+\def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}
+							
+\def\@asciiwarning#1{\ipsj@warning{\string#1\space		% 2.00(3)
+	is not supported in ASCII version}}
+							% 1.06(3),2.00(6)<<
+\else								% 2.00(7)>>
+\if@LaTeX@e
+\ipsj@declare@font\fn@eightdmhalf\dm\@ixpt
+\ipsj@declare@font\fn@eightdghalf\dg\@ixpt
+\else
+\def\fn@eightdmhalf{\eightdmhalf}
+\def\fn@eightdghalf{\eightdghalf}
+\fi
+\ifx\setjglues\undefined\else
+\expandafter\defjintercharskip\fn@eightdmhalf{0pt}{1.4pt}{0.5pt}
+\expandafter\defjintercharskip\fn@eightdghalf{0pt}{1.4pt}{0.5pt}
+\expandafter\defjasciikanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
+\expandafter\defjasciikanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
+\expandafter\defjmathkanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
+\expandafter\defjmathkanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
+\fi								% 2.00(7)<<
+\fi								% 2.00(4)
+
+\if@LaTeX@e							% 2.00(8)>>
+\if@LaTeX@eN
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\ifASCII
+\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
+\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
+\fi\fi
+\ifASCII
+\def\dm{\mc}
+\def\dg{\gt}
+\fi\fi								% 2.00(8)<<
+
+%%%%%% Basic Font Size Macros %%%%%%
+
+\if@LaTeX@e					% 1.06(4),2.00(9),2.04(3)>>
+\def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}\ipsj@setjspaceskip}
+\ifASCII
+\def\ipsj@setjspaceskip{\jspaceskip1zw\relax}
+\else
+\let\ipsj@setjspaceskip\relax
+\fi						% 1.06(4),2.00(9),2.04(3)<<
+
+%% \vipt etc. are redefined to use appropriate Japanese fonts.
+\else								% 2.00(9)
+\def\vpt{\old@vpt\fivedm\let\pdg\fivedg\let\pdm\fivedm\jfsize=5\relax}
+\def\vipt{\old@vipt\sixdm\let\pdg\sixdg\let\pdm\sixdm\jfsize=6\relax}
+\def\viipt{\old@viipt\sevendm\let\pdg\sevendg\let\pdm\sevendm\jfsize=7\relax}
+\def\viiipt{\old@viiipt\eightdm\let\pdg\eightdg\let\pdm\eightdm\jfsize=8\relax}
+\def\ixpt{\old@ixpt\eightdmhalf\let\pdg\eightdghalf\let\pdm\eightdmhalf
+	\jfsize=9\relax \@ixptboldmath}				% 1.02(2)
+\def\xpt{\old@xpt\tendm\let\pdg\tendg\let\pdm\tendm\jfsize=10\relax}
+\def\xipt{\old@xipt\tendmhalf\let\pdg\tendghalf\let\pdm\tendmhalf\jfsize=11
+	\relax}
+\def\xiipt{\old@xiipt\twelvedm\let\pdg\twelvedg\let\pdm\twelvedm
+	\jfsize=12\relax}
+\def\xivpt{\old@xivpt\twelvedmhalf\let\pdg\twelvedghalf\let\pdm\twelvedmhalf
+	\jfsize=14\relax}
+\fi								% 2.00(9)
+
+\if@LaTeX@e							% 1.06(5)
+\let\@ixptboldmath\relax					% 1.06(5)
+\else								% 1.06(5)
+% 1.02(2) >>
+\ifDS@printer
+\def\@ixptboldmath{%
+	\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+		\textfont\@ne\ninmi 
+		\textfont\tw@\ninsy \textfont\lyfam\ninly
+		\@boldfalse}\@boldfalse
+	\def\boldmath{\@ifundefined{ninmib}{%
+		\global\font\ninmib\@mbi\@ptscale9\relax
+		\global\font\ninsyb\@mbsy\@ptscale9\relax
+		\global\font\ninlyb\@lasyb\@ptscale9\relax
+		\@addfontinfo\@ixpt
+			{\def\boldmath{\everymath{\mit}\everydisplay{\mit}%
+				\@prtct\@nomathbold
+				\textfont\@ne\ninmib \textfont\tw@\ninsyb 
+				\textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}%
+	\@ixpt\boldmath}}
+\else
+\def\@ixptboldmath{%
+	\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+		\textfont\@ne\ninmi 
+		\textfont\tw@\ninsy \textfont\lyfam\ninly
+		\@boldfalse}\@boldfalse
+% 1.03(1) >>
+	\def\boldmath{\@ifundefined{ninmib}{\global\font\ninmib\@mbi 
+		\global\font\ninsyb\@mbsy\relax
+		\global\font\ninlyb\@lasyb\relax
+		\@addfontinfo\@ixpt
+			{\def\boldmath{\everymath{\mit}\everydisplay{\mit}%
+				\@prtct\@nomathbold
+				\textfont\@ne\ninmib \textfont\tw@\ninsyb 
+				\textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}%
+	\@ixpt\boldmath}}
+% 1.03(1) <<
+\fi
+% 1.02(2) <<
+\fi								% 1.06(5)
+
+
+%%%%%% Font Size Macros %%%%%%
+
+\def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
+	\@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
+		{\@setsize{#1}{#2}{#3}{#4}}}
+
+% s = (3*b - (h' + d') - (h + d))/2
+% s_a = s + h' + d - b
+% s_b = s + h + d' - b
+\def\sec@setskips#1{\setbox0\hbox{\fs@sec\bf#1}\setbox1\hbox{#1}
+	\@tempdima3\baselineskip
+	\advance\@tempdima-\ht0 \advance\@tempdima-\dp0
+	\advance\@tempdima-\ht1 \advance\@tempdima-\dp1
+	\divide\@tempdima\tw@ \advance\@tempdima-\baselineskip
+	\@tempdimb\@tempdima
+	\advance\@tempdima\ht0 \advance\@tempdima\dp1
+	\advance\@tempdimb\ht1 \advance\@tempdimb\dp0
+	\edef\sec@aboveskip{\the\@tempdima}
+	\edef\sec@belowskip{\the\@tempdimb}}
+
+\ifDS@english
+% size		pt	\baselineskip	  size		\?pt	\baselineskip
+% \normalsize	10	16Q		  \large	11	18Q (*)
+% \small	 9	15Q		  \Large	12	22Q
+% \footnotesize	 8	13Q		  \LARGE	14	26Q (*)
+% \scriptsize	 6	8pt (*)		  \huge		18	30Q (*)
+% \tiny		 5	6pt (*)		  \Huge		18	30Q (*)
+% * : not measured
+
+\def\@normalsize{\@setsize\normalsize{16\@Q}\xpt\@xpt}
+\def\small{\fs@setsize\small{15\@Q}\ixpt\@ixpt}
+\def\footnotesize{\fs@setsize\footnotesize{13\@Q}\viiipt\@viiipt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\Large{18\@Q}\xipt\@xipt}
+\def\Large{\@setsize\LARGE{22\@Q}\xiipt\@xiipt}
+\def\LARGE{\@setsize\LARGE{26\@Q}\xivpt\@xivpt}
+\def\huge{\@setsize\Huge{30\@Q}\xviipt\@xviipt}
+\let\Huge\huge
+
+\ifDS@techrep							% 1.05(2)>>
+\def\@normalsize{\@setsize\normalsize{17\@Q}\xpt\@xpt}
+\fi								% 1.05(2)<<
+
+\if@LaTeX@e							% 2.00(10)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(10)<<
+
+\let\fs@footnote\footnotesize
+\let\fs@caption\footnotesize
+\let\fs@table\footnotesize
+\let\fs@eabst\footnotesize
+\let\fs@header\footnotesize
+\let\fs@footer\footnotesize
+\let\fs@bibliography\small
+\let\fs@subsec\normalsize
+\let\fs@sec\normalsize
+\let\fs@type\large
+\let\fs@eauthor\large
+\let\fs@title\Large
+
+\@normalsize
+
+\sec@setskips{A}
+
+\else
+% size		pt	\baselineskip	  size		\?pt	\baselineskip
+% \normalsize	 9	19Q		  \large	10	19Q
+% \small	 8	14Q		  \Large	11	22Q
+% \footnotesize	 7	14Q		  \LARGE	12	18Q
+% \scriptsize	 6	8pt (*)		  \huge		14	26Q
+% \tiny		 5	6pt (*)		  \Huge		14	26Q
+% * : not measured
+
+\def\@normalsize{\@setsize\normalsize{19\@Q}\ixpt\@ixpt}
+\def\small{\fs@setsize\small{14\@Q}\viiipt\@viiipt}
+\def\footnotesize{\fs@setsize\footnotesize{14\@Q}\viipt\@viipt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\large{19\@Q}\xpt\@xpt}
+\def\Large{\@setsize\Large{22\@Q}\xipt\@xipt}
+\def\LARGE{\@setsize\LARGE{18\@Q}\xiipt\@xiipt}
+\def\huge{\@setsize\Huge{26\@Q}\xivpt\@xivpt}
+\let\Huge\huge
+
+\ifDS@techrep							% 1.05(2)>>
+\def\@normalsize{\@setsize\normalsize{17\@Q}\ixpt\@ixpt}
+\fi								% 1.05(2)<<
+
+\if@LaTeX@e							% 2.00(10)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(10)<<
+
+\let\fs@footnote\footnotesize
+\let\fs@caption\footnotesize
+\let\fs@table\footnotesize
+\let\fs@abst\small
+\def\fs@eabst{\small\baselineskip13\@Q}
+\let\fs@header\small
+\let\fs@footer\small
+\let\fs@subsec\normalsize
+\def\fs@bibliography{\normalsize\baselineskip16\@Q}
+\let\fs@sec\large
+\let\fs@type\fn@fontxv
+\let\fs@author\Large
+\def\fs@eauthor{\Large\baselineskip15\@Q}
+\let\fs@etitle\LARGE
+\let\fs@title\huge
+
+\@normalsize 
+								% 2.00(7)
+\ifx\setjglues\undefined\else
+\setjglues
+\fi
+
+\sec@setskips{あ}
+
+\fi
+
+\if@LaTeX@e\else						% 2.00(11)
+\let\latex@bf\bf						% 1.06(6)
+\def\bf{\latex@bf \dg}						% 1.06(6)
+\fi								% 2.00(11)
+
+
+%%%%%% Page Layout Parameters %%%%%%
+
+\newdimen\@mojihaba
+
+\headheight 12\@Q
+
+% We want to allow a line containing $\displaystyle X^X$ to be a first line.
+\setbox0\hbox{$\displaystyle X^X$}
+\topskip\ht0
+
+\ifdim\maxdepth<\dp\strutbox \maxdepth\dp\strutbox \@maxdepth\maxdepth\fi
+
+\@tempswafalse							% 1.05(2)>>
+\ifDS@english \ifDS@techrep \else \@tempswatrue \fi\fi
+\if@tempswa							% 1.05(2)<<
+\topmargin 138\@Q \advance\topmargin-1in
+
+% \textheight = 53\baselineskip + \topskip + epsilon(100sp)
+\textheight53\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+% \headsep = 24Q - \topskip
+\headsep28\@Q \advance\headsep-\topskip				% 2.02(2)
+
+% Only first page has page number (footer) at the bottom
+\footskip 27\@Q
+
+\@mojihaba13\@Q
+
+\else
+\topmargin 131\@Q \advance\topmargin-1in
+
+% \textheight = 45\baselineskip + \topskip + epsilon(100sp)
+\textheight45\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+\ifDS@techrep							% 1.05(2)>>
+\textheight50\baselineskip \advance\textheight\topskip \advance\textheight100sp
+\fi								% 1.05(2)<<
+
+% \headsep = 28Q - \topskip
+\headsep28\@Q \advance\headsep-\topskip
+
+% Only first page has page number (footer) at the bottom
+\footskip24\@Q
+
+\@mojihaba12\@Q
+\fi
+
+\columnsep30\@Q
+
+% \textwidth - \columnwidth = 24 * 12Q * 2 + \columnsep = 606Q
+\textwidth606\@Q
+\columnseprule0pt
+
+\oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
+\advance\oddsidemargin-1in \evensidemargin\oddsidemargin
+
+\skip\footins\baselineskip \advance\skip\footins-.5\@mojihaba
+% \footnotesep = \baselineskip - depth(\strutbox)
+{\fs@footnote
+	\footnotesep\baselineskip
+	\global\advance\footnotesep-\dp\strutbox}
+
+\def\footnoterule{{\fs@footnote\kern-\dp\strutbox \hrule \kern-.4\p@
+	\kern\dp\strutbox}}
+
+\floatsep \baselineskip \textfloatsep \baselineskip 
+\intextsep \baselineskip \@maxsep \baselineskip
+\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
+\@dblmaxsep \baselineskip
+\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil 
+\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil
+
+\parskip\z@ \parindent\@mojihaba
+\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 
+\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty 
+
+
+%%%%%% Title and Authors %%%%%%
+%
+% Format of title, author names and abstract.
+%
+%	\huge\bf <Japanese title>
+%	\vskip 32Q
+%	\Large <Japanese author names>
+%	\vskip 32Q
+%	\small <Japanese abstract>
+%	\vskip 34Q
+%	\LARGE\bf <English title>
+%	\vskip 28Q
+%	\Large\sc <English author names>
+%	\vskip 28Q
+%	\small <English abstract>
+%	\vskip 25Q
+
+% 2.07(3)>>
+\def\ipsj@ohcheck#1#2#3{\fs@header\hskip12\@Q#1\qquad#2\qquad#3\hskip12\@Q}
+\def\ipsj@ohcvolno{Vol.~00\hskip12\@Q No.~SIG\ 00(\ipsj@sig@code\ 00)}
+
+\def\maketitle{\let\ipsj@oddhead@t\ipsj@oddhead@a
+	\ifipsj@trans
+	    \settowidth\@tempdima{%
+		\ipsj@ohcheck\ipsj@ohcvolno\@titlestring\ipsj@ohcvolno}%
+	    \ifdim\@tempdima>\textwidth
+		\let\ipsj@oddhead@t\ipsj@oddhead@b
+		\settowidth\@tempdima{%
+		    \ipsj@ohcheck\ipsj@ohcvolno\@titlestring{000}}%
+		\ifdim\@tempdima>\textwidth
+			\ipsj@warning{%				% 2.00(3)
+			\string\title\space for headding is too wide}%
+	    \fi \fi
+	\else
+	    \settowidth\@tempdima{\fs@header
+		\hskip12\@Q Vol.~00\hskip12\@Q No.~00\qquad\@titlestring\qquad
+		Vol.~00\hskip12\@Q No.~00\hskip12\@Q}
+	    \ifdim\@tempdima>\textwidth
+		\ipsj@warning{%					% 2.00(3)
+		\string\title\space for headding is too wide}%
+	\fi \fi
+	\par\twocolumn[\@maketitle]\thispagestyle{myheadings}\@thanks}
+% 2.07(3)<<
+
+% default title header
+
+\def\title{\@dblarg{\@xtitle}}
+\def\@xtitle[#1]#2{\gdef\@title{#2}%
+	{\def\protect{\noexpand\protect\noexpand}%
+		\ifDS@english\def\\{\unskip\ \ignorespaces}%
+		\else\def\\{\unskip\ignorespaces}\fi
+		\xdef\@titlestring{#1}}}			% 2.07(3)
+
+\def\@title{\mkt@warning\title}\def\@titlestring{}
+\long\def\author#1{\long\gdef\@author{#1}}
+\def\@author{\mkt@warning\author}
+
+\newbox\@abstractbox
+%% Introduce \@titlewidth because we now use this dimen repeatedly. (H.N.)
+%% \@titlewidth = 44 * 11Q = 484Q
+\newdimen\@titlewidth \@titlewidth 484\@Q
+
+\def\abstract{\global\let\@abstract\relax
+	\global\setbox\@abstractbox\hbox\bgroup
+		\begin{minipage}[b]{\@titlewidth}\fs@abst\parindent11\@Q}
+\def\endabstract{\end{minipage}\egroup}
+\def\@abstract{\mkt@warning{abstract env}}
+
+%% We need English title, author name(s) and abstract. (H.N.)
+\def\etitle#1{\gdef\@etitle{#1}}
+\def\@etitle{\mkt@warning\etitle}
+\long\def\eauthor#1{\long\gdef\@eauthor{#1}}
+\def\@eauthor{\mkt@warning\eauthor}
+
+\newbox\@eabstractbox
+\def\eabstract{\global\let\@eabstract\relax
+	\global\setbox\@eabstractbox\hbox\bgroup
+		\begin{minipage}[b]{\@titlewidth}\fs@eabst\parindent11\@Q}
+\let\endeabstract\endabstract
+\def\@eabstract{\mkt@warning{eabstract env}}
+
+\ifDS@english
+\let\author\eauthor \let\abstract\eabstract
+\let\@eauthor\@author \let\@eabstract\@abstract
+\fi
+
+\def\mkt@warning#1{\ipsj@warning{Missing \string#1}}		% 2.00(3)
+
+\newdimen\mkt@prevdepth
+\newbox\mkt@titlebox
+\def\@maketitle{\setbox\mkt@titlebox\vbox{
+	\ifDS@english \ifDS@preface
+		\hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
+	\else
+		\hbox{}\vskip26\@Q \vskip-\headsep \vskip-\baselineskip
+		\leftline{\fs@type\it
+			\ifDS@technote Technical Note
+                        \else\ifDS@invited Invited Paper        % 2.06(1)
+			\else\ifDS@sigrecommended		% 2.04(1)
+				Recommended Paper		% 2.04(1)
+			\else\ifDS@abstract			% 2.07(7)
+				Abstract			% 2.07(7)
+			\else\ifDS@techrep\else			% 2.02(1)
+				Regular Paper\fi\fi\fi\fi\fi}	% 2.06(1)
+%								% 2.04(1)
+		\vskip32\@Q \vskip-\baselineskip \fi
+	\else							% 2.04(1) >>
+	\@tempswafalse	\ifDS@technote\@tempswatrue\fi
+			\ifDS@sigrecommended\@tempswatrue\fi
+                        \ifDS@invited\@tempswatrue\fi           % 2.06(1)
+			\ifDS@abstract\@tempswatrue\fi		% 2.07(7)
+	\if@tempswa
+		\vskip18\@Q \vskip-\headsep
+		\leftline{\vbox to28\@Q{\hrule height.8pt\vss
+			\hbox{\hskip7\@Q \fs@type
+				\ifDS@technote	テクニカルノート%
+                                \else\ifDS@invited 招待論文%    % 2.06(1)
+				\else\ifDS@sigrecommended
+					研究会推薦論文		% 2.06(1)
+				\else 発表概要\fi\fi\fi		% 2.07(7)
+				\hskip7\@Q}\vss\hrule height.8pt}}
+%								% 2.04(1) <<
+		\vskip40\@Q \vskip-\baselineskip
+	\else
+		\hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
+	\fi\fi
+	\@tempswafalse \ifDS@english\else\ifDS@preface\@tempswatrue\fi\fi
+	\mkt@maketitle{\fs@title\bf}\@title\title
+% 1.04(1a) >>
+	\ifnum\c@affi@footnote>\thr@@
+		\let\theaffi@footnote\theaffi@footnotemany \fi
+	\c@affi@footnote\z@
+% 1.04(1a) <<
+	\affi@labels
+	\ifDS@english\else
+	\vskip-\mkt@prevdepth \nointerlineskip\vskip32\@Q
+	\centerline{\vbox{\centering\hsize\@titlewidth\fs@author
+		\mkt@makeauthor}}
+	\ifDS@preface\else
+	\vskip-\prevdepth \nointerlineskip\vskip32\@Q
+	\centerline{\@abstract\box\@abstractbox}
+	\vskip-\prevdepth \nointerlineskip\vskip34\@Q
+	\mkt@maketitle{\fs@etitle\bf}\@etitle\etitle
+	\fi\fi
+	\if@tempswa\else
+	\vskip-\mkt@prevdepth \nointerlineskip\vskip28\@Q
+	\centerline{\vbox{\centering\hsize\@titlewidth\fs@eauthor\sc
+		\mkt@makeeauthor}}
+	\fi
+	\ifDS@preface\else
+	\vskip-\prevdepth \nointerlineskip\vskip28\@Q
+	\centerline{\@eabstract\box\@eabstractbox}
+	\fi
+	\vskip-\prevdepth \nointerlineskip\vskip25\@Q}
+	\@tempdimb\ht\mkt@titlebox \advance\@tempdimb\dp\mkt@titlebox
+	\@tempcnta\@tempdimb \@tempcntb\baselineskip
+	\divide\@tempcnta\@tempcntb \@tempdima\@tempcnta\baselineskip
+	\advance\@tempdima-\@tempdimb
+	\box\mkt@titlebox
+	\ifdim\@tempdima=\z@\else\advance\@tempdima\baselineskip
+		\vskip\@tempdima\fi}
+
+%% \mkt@maketitle puts Japanese/English title, whose lines should be
+%% properly broken with \\ by the user.  The result is flushed to left, then
+%% centered with respect to the longest line. (H.N.)
+\def\mkt@maketitle#1#2#3{\setbox\@tempboxa\vtop{
+	\def\\{\unskip\egroup\hbox\bgroup\ignorespaces}
+		#1\hbox\bgroup#2\unskip\egroup
+		\global\mkt@prevdepth\prevdepth}
+	\@tempdima\textwidth\advance\@tempdima-4\@mojihaba
+	\ifdim\wd\@tempboxa>\@tempdima
+		\ipsj@warning{%					% 2.00(3)
+			\string#3 is too wide. Break line(s) by \string\\}\fi
+	\centerline{\box\@tempboxa}}
+
+% Assignment of Japanese author names to lines:
+% 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 2+2, 5 -> 3+2, 6 -> 3+3, 7 -> 3+2+2, 8 -> 3+3+2,
+% ...
+% Rule for N authors (N > 2, q := N div 3)
+%	N mod 3 = 0 -> 3 * q
+%	N mod 3 = 1 -> 3 * (q - 2) + 2 + 2
+%	N mod 3 = 2 -> 3 * (q - 1) + 2
+
+\newcount\mkt@cnta\newcount\mkt@cntb
+\newcount\mkt@sname\newcount\mkt@gname
+\newbox\mkt@boxa
+\newdimen\mkt@namewidth
+\def\mkt@makeauthor{\let\member\@gobble \let\nomember\relax
+	\let\stmember\@gobble	% Those are not necessary in final manuscript.
+	\def\@makefnmark{\smash{\rlap{\fn@fontvii$^{\affi@thefnmark}$}}}%
+	\gdef\affi@thefnmark{}\leavevmode\let\+\ignorespaces
+	\settowidth\@tempdima{あ}\mkt@namewidth7\@tempdima\@tempcnta\z@
+	\expandafter\mkt@countauthor\@author\and\@nil\and
+	\ifnum\@tempcnta=\@ne\let\mkt@anhbox\mkt@anhboxc\mkt@makesingleauthor
+	\else
+		\@tempcntb\@tempcnta \divide\@tempcntb\thr@@
+		\multiply\@tempcntb\thr@@ \advance\@tempcntb-\@tempcnta
+		\ifnum\@tempcntb=\m@ne\relax\@tempcntb\tw@\else\@tempcntb\z@\fi
+		\mkt@cnta\thr@@
+		\let\mkt@anhbox\mkt@anhboxl
+		\expandafter\mkt@makemultiauthor\@author\and\and\fi}
+\def\mkt@countauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
+	\else\advance\@tempcnta\@ne \let\next\mkt@countauthor\fi\next}
+
+% If single author, author name has 9 KC width instead of 7.
+\def\mkt@makesingleauthor{\divide\mkt@namewidth7\multiply\mkt@namewidth9\relax
+	\expandafter\mkt@putauthor\@author\+ \@nil}
+
+\def\mkt@makemultiauthor#1\and{\ifnum\@tempcnta=\z@\unskip\let\next\relax\else
+	\leavevmode
+	\advance\mkt@cnta\m@ne \advance\@tempcnta\m@ne
+	\ifnum\mkt@cnta=\z@\mkt@maleft{#1}\mkt@cnta\thr@@\else
+	\ifnum\@tempcnta=\@tempcntb\mkt@maleft{#1}\mkt@cnta\tw@\else
+	\mkt@putauthor#1\+ \@nil\let\mkt@anhbox\mkt@anhboxc\fi\fi
+	\let\next\mkt@makemultiauthor\fi\next}
+\def\mkt@maleft#1{\let\mkt@anhbox\mkt@anhboxr\mkt@putauthor#1\+ \@nil
+	\par\let\mkt@anhbox\mkt@anhboxl}
+
+% Japanese author name format:
+%	Non Japanese : As is.
+%	Japanese w/o s/g delimitor : As is with warning.
+%	Japanese (s+g>6) : As is.
+%	Japanese (s+g<7) : Give 1-KC space to s/g delimitor, then insert
+%		infinit stretch between each character pair, assuming the
+%		s/g delimitor as a charcter, to make the name have 7-KC
+%		width.   An exception is 2s + 2g case, in which s/g
+%		delimitor has 0 width in order to have the result
+%		"S_S_G_G".
+
+\def\mkt@putauthor#1 #2\@nil{%
+	\setbox\@tempboxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
+		\jintercharskip\z@#1#2}%
+	\setbox\mkt@boxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
+		\jintercharskip1cm#1#2}%
+	\ifdim\wd\@tempboxa=\wd\mkt@boxa \mkt@anhbox{#1 #2}\else
+						% probably no Kanjis
+	\def\@tempa{#2}\ifx\@tempa\empty	% without space btwn s/g-name
+		{\let\affiref\@gobble \def\+{}%
+			\ipsj@warning{Author name #1 doesn't have a space}}%
+								% 2.00(3)
+		\mkt@anhbox{#1}\else
+	\mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
+	\mkt@cntb\mkt@sname \advance\mkt@cntb\mkt@gname
+	\ifnum\mkt@cntb>6\relax\mkt@anhbox{#1\ #2}\else
+	\jintercharskip\fill%
+	\@tempskipa\@tempdima plus2fill\relax
+	\ifnum\mkt@sname=\tw@ \ifnum\mkt@gname=\tw@ \@tempskipa\fill\fi\fi
+	\hbox to\mkt@namewidth{#1\hskip\@tempskipa#2\@makefnmark}\fi\fi\fi
+	\gdef\affi@thefnmark{}\hskip\columnsep}
+
+% When an author name is formatted "as is", the following macros are used
+% according to their position (left, right, or center).
+\def\mkt@anhboxl#1{\hbox to\mkt@namewidth{\hss#1\@makefnmark}}
+\def\mkt@anhboxr#1{\hbox to\mkt@namewidth{#1\@makefnmark\hss}}
+\def\mkt@anhboxc#1{\setbox\@tempboxa\hbox{#1\@makefnmark}%
+	\ifdim\wd\@tempboxa>\mkt@namewidth\box\@tempboxa
+	\else\hbox to\mkt@namewidth{\hss\box\@tempboxa\hss}\fi}	% 2.08(1)
+
+\def\mkt@getnamewidth#1#2{\setbox\@tempboxa\hbox{\let\affiref\@gobble#2}%
+	\@tempdimb\wd\@tempboxa
+	\advance\@tempdimb.5\@tempdima #1\@tempdimb \mkt@cntb\@tempdima
+	\divide#1\mkt@cntb}
+
+% English author name format
+%	1 -> <name-1>^*
+%	2 -> <name-1>^* and~<name-2>^*
+%	3 or more -> <name-1>,^* <name-2>,^* ... <name-n-1>^* and~<name-n>^*
+% (be careful the position of comma).
+%
+% No special tricks for assignment names to line.  Names are simply put in a
+% \centering paragraph.
+
+\def\mkt@makeeauthor{\let\member\@gobble \let\nomember\relax
+	\let\stmember\@gobble	% Those are not necessary in final manuscript.
+	\leavevmode\let\mkt@and\relax\gdef\affi@thefnmark{}%
+	\def\@thefnmark{\affi@thefnmark}%
+	\expandafter\mkt@imakeeauthor\@eauthor\and\@nil\and}
+\def\mkt@imakeeauthor#1\and#2\and{\def\@tempa{#2}\ifx\@tempa\@nnil
+		#1\@makefnmark\let\next\relax
+	\else
+		\def\@tempb{#1}\def\next{\mkt@iimakeeauthor#2\and}%
+	\fi\next}
+\def\mkt@iimakeeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil
+		\@makefnmark\ {\rm{and}~}\gdef\affi@thefnmark{}\hbox{\@tempb}%
+		\@makefnmark\let\next\relax
+	\else
+		\mkt@and\hbox{\@tempb}\let\mkt@and\mkt@andmid
+		\let\next\mkt@iimakeeauthor
+	\fi\def\@tempb{#1}\next}
+\def\mkt@andmid{,\@makefnmark\ \gdef\affi@thefnmark{}}
+
+% Macros to specify author's affiliation easily.
+\newcounter{affi@footnote} \c@affi@footnote\z@
+\def\affilabel{\stepcounter{affi@footnote}\affi@deflabels\affi@affilabel}
+								% 1.04(1a)
+\def\paffilabel{\affi@deflabels\affi@paffilabel}
+\def\affi@deflabels#1#2#3{{\def\protect{\noexpand\protect\noexpand}%
+	\let\affi@affilabel\relax \let\affi@paffilabel\relax \let\\\relax
+	\xdef\affi@labels{\affi@labels#1{#2}{#3}}}}
+\def\affi@labels{}
+\def\affi@affilabel{\begingroup
+	\def\@mpfn{affi@footnote}\def\thempfn{\theaffi@footnote}%
+	\def\affi@fnmark{\protect\@makefnmarkdagger}%
+	\affi@label}
+\def\affi@paffilabel#1#2{\begingroup\PF@adjustfnote
+	\def\affi@fnmark{\protect\@makefnmarkstar}%
+	\def\protect{\noexpand\protect\noexpand}%
+	\def\\{\noexpand\\Presently with \ignorespaces}%
+	\edef\@tempa{\ifDS@english Presently with \else 現在,\fi#2}% 1.04(1d)
+	\affi@label{#1}{\@tempa}}
+\def\affi@label#1#2{\stepcounter{\@mpfn}%
+	\@ifundefined{affi@r@#1}%
+		{\expandafter\xdef\csname affi@r@#1\endcsname{\thempfn}}
+		{\ipsj@warning{Affiliation label `#1' multiply defined}}%
+								% 2.00(3)
+	\let\affi@footnotetext\relax\let\\\relax
+	\def\protect{\noexpand\protect\noexpand}%
+	\xdef\@thanks{\@thanks
+		\affi@footnotetext{\thempfn}{\affi@fnmark}{#2}}\endgroup}
+
+\def\affiref#1{\@ifundefined{affi@r@#1}%
+		{\ipsj@warning{Affiliation reference `#1' undefined}% 2.00(3)
+			\def\@tempa{?}}%
+		{\def\@tempa{\csname affi@r@#1\endcsname}}%
+	\ifx\affi@thefnmark\empty\xdef\affi@thefnmark{\@tempa}\else
+	\xdef\affi@thefnmark{\affi@thefnmark,\hskip\z@\@tempa}\fi}
+\def\affi@footnotetext#1#2#3{{\def\@thefnmark{#1}\def\@makefnmarkforfn{#2}
+	\@footnotetext{#3}}}
+
+% 1.04(1b)>>
+\def\theaffi@footnote{\ifcase\c@affi@footnote\or
+	{\dagger}\or {\dagger}{\dagger}\or {\dagger}{\dagger}{\dagger}\fi}
+								% 1.04(1c)
+\def\theaffi@footnotemany{{\dagger}\number\c@affi@footnote}
+% 1.04(1b)<<
+
+\def\thanks#1{\begingroup
+	\def\@makefnmark{\smash{\hbox{\fn@fontvii$^{\@thefnmark}$}}}%
+	\footnotemark
+	\let\affi@footnotetext\relax\let\\\relax
+	\def\protect{\noexpand\protect\noexpand}%
+	\xdef\@thanks{\@thanks
+		\affi@footnotetext{\thempfn}{\protect\@makefnmarkstar}{#1}}%
+	\endgroup}
+
+% \contact is necessary only for drafts.
+\long\def\contact#1{}
+
+
+%%%%%% Page Header and Footer %%%%%% 
+
+\mark{{}{}} 
+
+\newcounter{volpageoffset} % You must set this to appropriate value
+\setcounter{volpageoffset}{1} % for each issue!
+
+% 2.00(16)>>
+\let\latex@document\document
+\def\document{\latex@document
+	\ifDS@private\else \global\c@page\c@volpageoffset \fi}	% 2.07(8)
+\let\c@volpage\c@page		% for backward compatibility
+\def\thevolpage{\thepage}	% for backward compatibility
+% 2.00(16)<<
+
+\newcounter{volume}\expandafter\let\csname c@巻数\endcsname\c@volume
+\newcounter{number}\expandafter\let\csname c@号数\endcsname\c@number
+\let\c@month\c@number \expandafter\let\csname c@月数\endcsname\c@number
+								% 2.07(4)
+\newcounter{year}\expandafter\let\csname c@年数\endcsname\c@year
+
+% 2.07(4)>>
+\def\@thevolno{Vol.~\arabic{巻数}\hskip\@mojihaba No.~%
+	\ifipsj@trans SIG\ \ipsj@sig@numa(\ipsj@sig@code\ \ipsj@sig@numb)%
+	\else \arabic{号数}\fi}
+% 2.07(4)<<
+% 2.00(15)>>
+\def\@monthyear{\ifcase\value{号数}\or Jan.\or Feb.\or Mar.\or Apr.\or May\or
+		June\or July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\else\fi
+	\hskip.5\@mojihaba \setcounter{年数}{1959}%
+	\addtocounter{年数}{\value{巻数}}\arabic{年数}}
+% 2.00(15)<<
+
+% 2.07(2)>>
+\newif\ifipsj@trans \ipsj@transfalse
+\def\transaction#1#2#3{\ipsj@transtrue
+	\def\ipsj@sig@code{#1}\def\ipsj@sig@numa{#2}\def\ipsj@sig@numb{#3}%
+	\expandafter\let\expandafter\ipsj@sig@title
+		\csname ipsj@sig@#1@\ifDS@english e\else j\fi\endcsname
+	\ifx\ipsj@sig@title\relax
+		\ipsj@warning{Transaction code #1 is unknown}\fi
+	\let\ipsj@oddhead@s\ipsj@oddhead@a
+	\settowidth\@tempdima{%
+	    \ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\ipsj@ohcvolno}%
+	\ifdim\@tempdima>\textwidth
+	    \let\ipsj@oddhead@s\ipsj@oddhead@b
+	    \settowidth\@tempdima{\c@month3\relax	% "Mar." is longest
+		\ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\@monthyear}%
+	    \ifdim\@tempdima>\textwidth
+		\let\ipsj@oddhead@s\ipsj@oddhead@c
+	\fi \fi}
+
+\def\ipsj@sig@PRO@j{プログラミング}
+\def\ipsj@sig@PRO@e{Programming}
+\def\ipsj@sig@TOM@j{数理モデル化と応用}
+\def\ipsj@sig@TOM@e{Mathematical Modeling and Its Applications}
+\def\ipsj@sig@TOD@j{データベース}
+\def\ipsj@sig@TOD@e{Databases}
+%\def\ipsj@sig@HPS@j{ハイパフォーマンスコンピューティングシステム}
+%\def\ipsj@sig@HPS@e{High Performance Computing Systems}
+\def\ipsj@sig@CVIM@j{コンピュータビジョンとイメージメディア}
+\def\ipsj@sig@CVIM@e{Computer Vision and Image Media}
+\def\ipsj@sig@ACS@j{コンピューティングシステム}		% 2.09(2)
+\def\ipsj@sig@ACS@e{Advanced Computing Systems}		% 2.09(2)
+% 2.07(2)<<
+
+\def\copyrightnotice{\long\def\ipsj@cnotice}
+
+% 1.05(2)>>
+\ifDS@techrep
+\def\ps@headings{\let\@mkboth\markboth
+	\def\@oddhead{\@checklines\hss}\let\@evenhead\@oddhead
+	\def\@oddfoot{}\def\@evenfoot{}}
+\let\ps@myheadings\ps@headings
+
+\else\ifDS@private						% 2.07(8)>>
+\def\ps@headings{\let\@mkboth\markboth
+	\def\@oddhead{\@checklines\hfil\thepage\hskip12\@Q}%
+	\def\@evenhead{\@checklines\hskip12\@Q\thepage\hfil}
+	\def\@oddfoot{}\def\@evenfoot{}}
+\def\ps@myheadings{\ps@headings
+	\def\@oddhead{\@checklines
+		\smash{\parbox[b]{.75\textwidth}{\@nameuse{ipsj@cnotice}}}%
+		\hfil\thepage\hskip12\@Q}%
+	\let\@evenhead\@oddhead}
+								% 2.07(8)<<
+\else
+% 1.05(2)<<
+\def\ps@headings{\let\@mkboth\markboth
+	\def\@oddfoot{}
+	\def\@evenfoot{}
+	\def\@evenhead{\fs@header \@checklines
+		\hskip12\@Q\rlap{\thepage}\hss			% 2.07(3)
+		\hdr@tipsj\hss\llap{\@monthyear}\hskip12\@Q}
+	\def\@oddhead{\fs@header \@checklines
+		\ipsj@oddhead@t\@titlestring\thepage}		% 2.07(3)
+	\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+	\def\@oddhead{\fs@header \@checklines
+		\ipsj@oddhead@s\hdr@tipsj\@monthyear}		% 2.07(3)
+	\def\@oddfoot{\fs@footer\hfil\thepage\hfil}
+	\let\@evenhead\@oddhead
+	\let\@evenfoot\@oddfoot
+	\def\sectionmark##1{}\def\subsectionmark##1{}}
+\fi\fi								% 1.05(2)
+								% 2.07(8)
+% 2.07(3)>>
+\def\ipsj@oddhead@a#1#2{\hskip12\@Q \rlap{\@thevolno}\hss#1\hss
+	\llap{#2}\hskip12\@Q}
+\def\ipsj@oddhead@b#1#2{\hskip12\@Q \@thevolno\qquad#1\hss
+	\llap{#2}\hskip12\@Q}
+\def\ipsj@oddhead@c#1#2{\hskip12\@Q \@thevolno\hss#1\hss#2\hskip12\@Q}
+\let\ipsj@oddhead@t\ipsj@oddhead@a
+\let\ipsj@oddhead@s\ipsj@oddhead@a
+% 2.07(3)<<
+
+% 2.02(2),2.07(4)>>
+\ifDS@english
+\def\hdr@tipsj{\smash{%
+	\ifipsj@trans
+		IPSJ Transactions on \ipsj@sig@title
+	\else
+		IPSJ Journal\fi}}
+\else
+\def\hdr@tipsj{\smash{情報処理学会論文誌%
+	\ifipsj@trans :\ipsj@sig@title\fi}}
+\fi
+% 2.02(2),2.07(4)<<
+
+% \checklines enables to draw a horizontal rule onto each baselines.
+
+\newif\if@checklines \@checklinesfalse
+\def\checklines{\@checklinestrue}
+\def\@checklines{\if@checklines \rlap{\smash{\vtop{\normalsize
+	\hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip
+	\hrule\vskip-.4pt
+	\ifDS@techrep\@tempcnta50\else				% 1.05(2)
+	\ifDS@english\@tempcnta53\else\@tempcnta45\fi\fi	% 1.05(2)
+	\relax\@@checklines}}}\fi
+	\ifDS@english\@tempcnta-7\else\@tempcnta\z@\fi\relax
+% 1.05(2)>>
+	\@tempswafalse
+	\ifDS@printer \@tempswatrue \fi \ifDS@techrep \@tempswatrue \fi
+	\if@tempswa \unitlength\@Q \begin{picture}(0,0)(0,\@tempcnta)
+		\put(-61,63){\begin{picture}(0,0)
+			\put(-10,0){\line(-1,0){30}}
+			\put(0,10){\line(0,1){30}}\end{picture}}
+		\put(667,63){\begin{picture}(0,0)
+			\put(10,0){\line(1,0){30}}
+			\put(0,10){\line(0,1){30}}\end{picture}}
+		\put(-61,-965){\begin{picture}(0,0)
+			\put(-10,0){\line(-1,0){30}}
+			\put(0,-10){\line(0,-1){30}}
+			\ifDS@techrep
+			\put(0,-10){\makebox(728,0)[t]{\thepage}}\fi
+			\end{picture}}
+% 1.05(2)<<
+		\put(667,-965){\begin{picture}(0,0)
+			\put(10,0){\line(1,0){30}}
+			\put(0,-10){\line(0,-1){30}}\end{picture}}
+		\end{picture}\fi}
+\def\@@checklines{\ifnum\@tempcnta>\z@
+	\vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne
+	\let\next\@@checklines\else\let\next\relax\fi\next}
+
+\pagestyle{headings}
+\pagenumbering{arabic}
+
+\ifDS@english\else
+\def\today{\the\year 年 \the\month 月 \the\day 日}
+\fi
+
+
+%%%%%% Output Routine %%%%%%
+
+% To balance the final page,
+% following code is borrowed from nicetwocolumn style
+
+% you can refrain from balancing by falsifying following switch!
+%% Initial value of \if@lastpagebalancing is false.  It may be turned true by
+%% biography processing macros. (H.N.)
+
+\newif\if@lastpagebalancing \@lastpagebalancingfalse
+\newif\if@finalpageoutput \@finalpageoutputfalse
+% incorporate balanced output to \enddocument
+\let\latex@enddocument\enddocument
+\def\enddocument{\@finalpageoutputtrue
+	\if@lastpagebalancing
+		\global\let\@outputdblcol\opt@balanceoutputdblcol\fi
+	\ifDS@preface
+		\global\let\@outputdblcol\opt@balanceoutputdblcol\fi
+	\ifDS@abstract						% 2.07(7)>>
+		\hbox{}\newpage
+		\ifDS@english	\rightline{(Presented \ra@presented)}
+		\else		\expandafter\ra@putpresented\ra@presented \fi
+		\fi						% 2.07(7)<<
+	\latex@enddocument}
+
+\newbox\@leftcolumnfootnote \newbox\@rightcolumnfootnote
+\newif\if@leftfootnoteexist \@leftfootnoteexistfalse 
+\newif\if@rightfootnoteexist \@rightfootnoteexistfalse
+\newif\ifopt@floatexist \opt@floatexistfalse
+
+% 2.00(12) \color@{begin/end}group ignored
+\def\enlargethispage{\ipsj@warning{\string\enlargepage is ignored}}
+								% 2.00(3,12)
+\def\@makecol{\vbadness10000 \lineskiplimit\normallineskiplimit	% 1.05(1)
+	\setbox\@outputbox\box\@cclv
+	\if@firstcolumn
+		\ifvoid\footins \global\@leftfootnoteexistfalse
+		\else
+			\global\@leftfootnoteexisttrue
+			\@tempdima\dp\footins
+			\global\setbox\@leftcolumnfootnote\vbox{
+				\unvbox\footins\vskip-\@tempdima}
+		\fi
+		\ifx\@botlist\@empty\else\global\opt@floatexisttrue\fi
+	\else
+		\ifvoid\footins \global\@rightfootnoteexistfalse
+		\else
+			\global\@rightfootnoteexisttrue
+			\@tempdima\dp\footins
+			\global\setbox\@rightcolumnfootnote\vbox{
+				\unvbox\footins	\vskip-\@tempdima}
+		\ifx\@toplist\@empty\else\global\opt@floatexisttrue\fi
+		\fi
+	\fi
+	\xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
+	\global\maxdepth\@maxdepth}
+
+% 2.01(1) >>
+\let\latex@vtryfc\@vtryfc
+\def\@vtryfc{\if@firstcolumn \global\@leftfootnoteexistfalse
+	\else \global\@rightfootnoteexistfalse \fi \latex@vtryfc}
+% 2.01(1) <<
+
+% 1.01(1,2) >>
+\let\latex@addtobot\@addtobot
+\def\@addtobot{\latex@addtobot\global\maxdepth\@maxdepth}
+\let\latex@combinefloats\@combinefloats
+\def\@combinefloats{\ifx\@botlist\@empty\else \dimen@\dp\@outputbox
+	\setbox\@outputbox\vbox{\unvbox\@outputbox \vskip-\dimen@}\fi
+	\latex@combinefloats}
+% 1.01(1,2) <<
+
+\newskip\opt@baselineskip
+\def\@outputdblcol{
+	\if@firstcolumn \global\@firstcolumnfalse
+		\global\setbox\@leftcolumn\box\@outputbox
+		\global\opt@baselineskip\baselineskip
+	\else \global\@firstcolumntrue \global\opt@floatexistfalse
+	\global\bib@adjustheight-\maxdimen
+	\setbox\@leftcolumn\vbox to\@colht{\boxmaxdepth\@maxdepth   % 1.01(3)
+		\unvbox\@leftcolumn
+		\if@leftfootnoteexist\vfil
+			\footnoterule\box\@leftcolumnfootnote\fi}
+	\setbox\@outputbox\vbox to\@colht{\boxmaxdepth\@maxdepth    % 1.01(3)
+		\unvbox\@outputbox
+		\if@rightfootnoteexist\vfil
+			\footnoterule\box\@rightcolumnfootnote\fi}
+	\global\maxdepth\@maxdepth
+	\if@finalpageoutput
+	\if@leftfootnoteexist\else\if@rightfootnoteexist\else
+		\setbox\@leftcolumn\vbox{\unvbox\@leftcolumn}%
+		\setbox\@outputbox\vbox{\unvbox\@outputbox}
+		\ifdim\ht\@leftcolumn<\ht\@outputbox
+			\setbox\@leftcolumn\vbox to\ht\@outputbox{
+				\unvbox\@leftcolumn}%
+		\else
+			\setbox\@outputbox\vbox to\ht\@leftcolumn{
+				\unvbox\@outputbox}%
+		\fi
+	\fi\fi\fi
+	\setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth
+		{\box\@leftcolumn \hss}\hfil \vrule width\columnseprule\hfil
+		\hbox to\columnwidth{\box\@outputbox \hss}}}
+	\@combinedblfloats
+	\@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
+	\@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}%
+	\endgroup
+	\fi}
+
+\let\opt@outputdblcol\@outputdblcol
+\chardef\opt@boxa\z@
+\chardef\opt@boxb\@ne
+\chardef\opt@boxc\tw@
+\def\opt@magicpenalty{1234}
+\def\opt@balanceoutputdblcol{\let\next\opt@ibalanceoutputdblcol
+	\if@firstcolumn \let\next\opt@outputdblcol
+	\else	\ifopt@floatexist \opt@warning \let\next\opt@outputdblcol
+		\else\ifx\@deferlist\@empty\else
+			\opt@warning \let\next\opt@outputdblcol\fi\fi\fi
+	\next}
+\def\opt@ibalanceoutputdblcol{%
+	\setbox\@leftcolumn\vbox{\unvbox\@leftcolumn
+		\ifnum\lastpenalty=\opt@magicpenalty\relax\else
+		\@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
+			\unskip\unskip\unkern\unpenalty
+			\advance\@tempcnta\m@ne}\fi}
+	\advance\opt@baselineskip-\dp\@leftcolumn
+	\ifdim\dp\@leftcolumn=\z@ \ifdim\opt@baselineskip=\baselineskip
+		\@tempdima\ht\@leftcolumn \advance\@tempdima-\topskip
+		\divide\@tempdima\baselineskip
+		\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
+		\advance\@tempdima\topskip
+		\advance\@tempdima-\ht\@leftcolumn
+		\advance\opt@baselineskip\@tempdima \fi\fi
+	\advance\opt@baselineskip-\topskip
+	\setbox\@outputbox\vbox{\unvbox\@outputbox}
+	\ifdim\ht\@outputbox=\topskip \ifdim\dp\@outputbox=\z@
+	\setbox\opt@boxa\vbox{\unvcopy\@outputbox\unskip
+		\global\setbox\opt@boxb\lastbox
+		\global\dimen@\lastskip}
+	\ifvoid\opt@boxb\else\ifdim\ht\opt@boxb=\z@
+		\ifdim\dp\opt@boxb=\z@\ifdim\dimen@=\topskip
+		\@firstcolumntrue\fi\fi\fi\fi\fi\fi
+	\setbox\opt@boxa\copy\@outputbox
+	\setbox\@outputbox\vbox{\unvcopy\@leftcolumn
+		\if@firstcolumn\else
+		\vskip\opt@baselineskip
+		\penalty\interlinepenalty\unvbox\@outputbox\fi}
+	\@tempdima\ht\@outputbox \advance\@tempdima\topskip
+	\divide\@tempdima\tw@ \advance\@tempdima100sp
+	\splittopskip\topskip \splitmaxdepth\@maxdepth
+	\ifdim\bib@adjustheight<\@M pt
+		\opt@split\@outputbox\opt@boxb\@tempdima
+		\ifdim\ht\opt@boxb<\bib@adjustheight
+			\opt@split\@leftcolumn\opt@boxc\bib@adjustheight
+			\opt@split\opt@boxc\opt@boxb\@tempdima
+			\if@firstcolumn
+				\opt@adjust\opt@boxc{\unvbox\@leftcolumn}
+			\else\opt@adjust\opt@boxc{\ifvoid\@leftcolumn\else
+				\unvbox\@leftcolumn\vskip\opt@baselineskip\fi
+				\unvbox\opt@boxa}\fi\fi
+	\else
+		\advance\bib@adjustheight-\@M pt
+		\opt@split\opt@boxa\opt@boxc\bib@adjustheight
+		\setbox\@outputbox\vbox{\unvbox\@leftcolumn
+			\vskip\opt@baselineskip\unvbox\opt@boxc}
+		\opt@split\@outputbox\opt@boxb\@tempdima
+		\opt@adjust\@outputbox{\unvbox\opt@boxa}
+	\fi
+	\if@leftfootnoteexist
+		\setbox\opt@boxb\vbox to\@colht{\box\opt@boxb\vfill
+			\footnoterule\box\@leftcolumnfootnote}\fi
+	\if@rightfootnoteexist
+		\setbox\@outputbox\vbox to\@colht{\box\@outputbox\vfill
+			\footnoterule\box\@rightcolumnfootnote}\fi
+	\ifdim\ht\@outputbox>\ht\opt@boxb
+		\setbox\opt@boxb\vbox to\ht\@outputbox{\unvbox\opt@boxb}
+	\else
+		\setbox\@outputbox\vbox to\ht\opt@boxb{\unvbox\@outputbox}
+	\fi
+	\setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth
+		{\box\opt@boxb \hss}\hfil \vrule width\columnseprule\hfil
+		\hbox to\columnwidth{\box\@outputbox \hss}}}
+	\global\@firstcolumntrue \@combinedblfloats
+	\@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
+	\@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup}
+
+\if@LaTeX@eN							% 2.00(3)>>
+\def\opt@warning{\ClassWarning{ipsjpapers}{%
+	Single column floats still remain on biography\MessageBreak
+	processing.\MessageBreak
+	Do \string\verbbiography\space for manual balcing}}
+\else
+\def\opt@warning{\@warning{Single column floats still remain on biography
+	processing.^^J\space\space\space\space\space
+	\space\space\space\space\space\space\space\space\space\space
+	Do \string\verbbiography\space for manual balancing}}
+\fi								% 2.00(3)<<
+\def\opt@split#1#2#3{\setbox#2\vsplit#1to#3\setbox#2\vbox{\unvbox#2}}
+\def\opt@adjust#1#2{\@tempdima\ht#1 \advance\@tempdima-\topskip
+	\@tempdimb\@tempdima \divide\@tempdima\baselineskip
+	\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
+	\advance\@tempdima-\@tempdimb
+	\ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
+	\advance\@tempdima\baselineskip \advance\@tempdima-\dp#1 
+	\advance\@tempdima-\topskip
+	\setbox\@outputbox\vbox{\ifvoid#1\else\unvbox#1\vskip\@tempdima\fi#2}}
+
+\let\latex@outputpage\@outputpage
+% \opt@finalgap:	vertical space above the \hrule at the end of paper.
+% \opt@finallinewidth:	width of the \hrule at the end of paper.
+\@tempdima2\baselineskip		% This might be changed
+\edef\opt@finalgap{\the\@tempdima}
+\def\opt@finallinewidth{220\@Q}		% This might be changed
+\ifDS@techrep \let\opt@finallinewidth\z@ \fi			% 1.05(2)
+
+\def\@outputpage{\if@finalpageoutput
+	\setbox\@outputbox\vbox{\unvbox\@outputbox}
+	\@tempdima\dp\@outputbox
+	\@tempdimb\ht\@outputbox \advance\@tempdimb\opt@finalgap\relax
+	\ifdim\@tempdimb>\textheight\else
+	\setbox\@outputbox\vbox{\unvbox\@outputbox\vskip-\@tempdima
+		\nointerlineskip\vbox to\z@{\vskip\opt@finalgap
+			\hbox to\textwidth{\hss
+			\vrule height0.4pt width\opt@finallinewidth\hss}
+		\vss}}\fi\fi
+	\ifASCII\if@LaTeX@e \@@topmargin\topmargin \fi\fi	    % 2.00(13)
+	\latex@outputpage}
+
+%%%%%% Biography %%%%%%
+
+% If you want to control the allocation of biographies manually, do
+% \verbbiography and insert \adjust{<vertical materials>} just before
+% \member (or its relatives).  For example;
+% 	\verbbiography
+%	\begin{biography}
+%	\member{...} ...
+%	\adjust{\protect\newpage}
+%	\member{...} ...
+%	\adjust{\protect\vspace{1.3cm}}
+%	\member{...} ...
+%	\end{biography}
+% will make page break just after the biography of the 1st author, and will
+% insert a vertical space of 1.3cm just after that of the 2nd.  It is
+% strongly recommended to \protect any control sequence in the argument of
+% \adjust.
+
+% \受付 and \採録 define the dates of receipt/acceptance.  They are put at
+% the end of manuscript (just before biographies) by ra@putrcvacc.
+\def\ra@nengo{平成}	%% Change here when ...
+\ifDS@english
+\def\受付#1#2#3{\def\ra@received{\ra@date{#1}{#2}{#3}}\ignorespaces}
+\def\採録#1#2#3{\def\ra@accepted{\ra@date{#1}{#2}{#3}}\ignorespaces}
+\def\再受付#1#2#3{\def\ra@rereceived{\ra@date{#1}{#2}{#3}}\ignorespaces}
+								% 2.07(5)
+\def\発表#1#2#3{\def\ra@presented{\ra@date{#1}{#2}{#3}}\ignorespaces}
+								% 2.07(7)
+\def\ra@received{??? ??, ????}
+\def\ra@accepted{??? ??, ????}
+\def\ra@presented{??? ??, ????}					% 2.07(7)
+\def\ipsj@TOD@editor{(Editor in Charge: {\it\ipsj@TOD@ename})}	% 2.07(6)
+\else
+\def\受付#1#2#3{\def\ra@received{#1&#2&#3&}\ignorespaces}
+\def\採録#1#2#3{\def\ra@accepted{#1&#2&#3&}\ignorespaces}
+\def\再受付#1#2#3{\def\ra@rereceived{#1&#2&#3&}\ignorespaces}	% 2.07(5)
+\def\発表#1#2#3{\def\ra@presented{#1&#2&#3&}\ignorespaces}	% 2.07(7)
+\def\ra@received{?&?&?&}
+\def\ra@accepted{?&?&?&}
+\def\ra@presented{?&?&?&}					% 2.07(7)
+\def\ipsj@TOD@editor{(担当編集委員\ \ipsj@TOD@ename )}	% 2.07(6)
+								% 2.08(2)
+\fi
+\let\received\受付
+\let\accepted\採録
+\let\rereceived\再受付						% 2.07(5)
+\let\presented\発表						% 2.07(7)
+
+\def\edInCharge#1{\def\ipsj@TOD@ename{#1}\ignorespaces}		% 2.07(6)
+
+\def\ra@putrcvacc{\rightline{\vtop{\normalsize\tabskip\z@
+	\ifDS@english
+	    \llap{(Received \ra@received)}
+	    \ifx\ra@rereceived\undefined\else
+		\llap{(Revised \ra@rereceived)}\fi
+	    \llap{(Accepted \ra@accepted)}\hbox{}
+	\else
+	    \halign{(\ra@nengo\hskip\jasciikanjiskip
+		\hfil##\hfil\hskip\jasciikanjiskip 年\hskip\jasciikanjiskip&
+		\hfil##\hfil\hskip\jasciikanjiskip 月\hskip\jasciikanjiskip&
+		\hfil##\hfil\hskip\jasciikanjiskip 日&##\hfil\cr% 2.07(5)>>
+		\ra@received 受付)\cr
+		\ifx\ra@rereceived\undefined\else \ra@rereceived 再受付)\cr\fi
+		\ra@accepted 採録)\cr\multispan3\cr}\fi}%
+								% 2.07(5)<<
+	\hskip\@mojihaba}
+	\nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{}
+	\ifipsj@recommendation\else				% 2.04(2)
+		\ifx\ipsj@TOD@ename\undefined\else		% 2.07(6)>>
+			\nobreak\vskip\baselineskip
+			\hbox{\ipsj@TOD@editor}\fi		% 2.07(6)<<
+		\vskip\baselineskip\penalty\opt@magicpenalty\fi}% 2.04(2)
+\def\ra@date#1#2#3{\ifcase#2\or
+	January\or February\or March\or April\or May\or June\or
+	July\or August\or September\or October\or November\or December\fi
+	\space#3, #1}
+\def\ra@putpresented#1&#2&#3&{\rightline{%
+	(\ra@nengo\hskip\jasciikanjiskip			% 2.07(7)>>
+	#1\hskip\jasciikanjiskip 年\hskip\jasciikanjiskip
+	#2\hskip\jasciikanjiskip 月\hskip\jasciikanjiskip
+	#3\hskip\jasciikanjiskip 日発表)}}			% 2.07(7)<<
+
+\newbox\bio@picbox
+% The following define the height and width of a picture for biography, and
+% the indentation of the first 6 lines.  They might be changed.
+\def\bio@picheight{100\@Q}
+\def\bio@picwidth{80\@Q}
+
+\newif\ifbio@showpicbox
+\bio@showpicboxtrue
+% Do \bio@showpicboxfalse if you don't want to put a frame box at the
+% position for picture.
+\ifDS@english
+\def\bio@lineheight{9\@Q}
+\def\bio@piclines{7}
+\def\bio@indent{91\@Q}
+\def\bio@hangafter{7}
+\else
+\def\bio@lineheight{8\@Q}
+\def\bio@piclines{6}
+\def\bio@indent{96\@Q}
+\def\bio@hangafter{5}
+\fi
+
+% \verbbiography forces verbatim output of biography (i.e. not ballanced).
+\newif\ifbio@verb \bio@verbfalse
+\def\verbbiography{\global\bio@verbtrue}
+% The environment biography saves texts for biographies into the list of
+% \inserts (for floats).
+\def\biography{\ifipsj@recommendation\else\par\ra@putrcvacc\fi	% 2.04(2)
+	\def\member{\bio@member{(正会員)}}\def\nomember{\bio@member{}}
+	\def\stmember{\bio@member{(学生会員)}}\let\adjust\bio@adjust
+	\ifbio@showpicbox
+	\setbox\bio@picbox\hbox{\hbox to\z@{\vrule\hskip-0.4pt%
+		\vtop to\bio@picheight{\vskip\z@\hrule width\bio@picwidth
+			\vfil\hrule}\hskip-0.4pt\vrule\hss}}
+	\else
+	\setbox\bio@picbox\hbox{}
+	\fi
+	\@tempdima\bio@piclines\baselineskip \advance\@tempdima\bio@lineheight
+	\dp\bio@picbox\@tempdima
+	\let\bio@egroup\relax\let\+\ignorespaces\let\@elt\relax
+	\def\bio@list{}\global\bio@th\z@}
+
+\def\bio@member#1#2{\bio@egroup\let\bio@egroup\bio@@egroup
+	\@next\@currbox\@freelist\relax
+		{\@latexerr{Too many unprocessed floats and biographies}\@ehb}%
+	\def\@tempa{#2}%
+	\global\setbox\@currbox\hbox\bgroup
+	    \raise\bio@lineheight\copy\bio@picbox
+	    \vtop\bgroup
+		\let\par\\
+		\hangindent\bio@indent\hangafter-\bio@hangafter
+		\ifDS@english {\bf #2\ }%
+		\else {\bf\bio@putauthor#2\+ \@nil}#1{\@@par}\fi\ignorespaces}
+
+% Author name format:
+%	S + G < 5 -> fill space between S/G (like SS__G)
+%	otherwise -> 1 KC space between S/G (like SS_GG)
+\def\bio@putauthor#1 #2\@nil{%
+	\setbox\@tempboxa\hbox{\jintercharskip\z@#1#2}%
+	\setbox\mkt@boxa\hbox{\jintercharskip1cm#1#2}%
+	\ifdim\wd\@tempboxa=\wd\mkt@boxa #1 #2\else
+	\def\@tempa{#2}\ifx\@tempa\empty
+		{\def\+{}\ipsj@warning{Author name #1 doesn't have a space}}%
+								% 2.00(3)
+		#1\else
+	\@tempdima\@mojihaba
+	\mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
+	\advance\mkt@sname\mkt@gname
+	\ifnum\mkt@sname<5\leavevmode\hbox to5\@mojihaba{#1\hfil#2}\else
+		#1#2\fi\fi\fi}
+\def\bio@@egroup{\@@par\hbox{}\egroup\egroup\@tempdima\dp\@currbox
+	\ifdim\@tempdima>\textheight
+		\ipsj@warning{Biography of \@tempa\space is too long}% 2.00(3)
+		\bio@verbtrue \fi
+	\advance\@tempdima\baselineskip\global\advance\bio@th\@tempdima
+	\global\dimen\@currbox\@tempdima \global\count\@currbox\z@
+	{\let\protect\bio@protect\xdef\bio@list{\bio@list\@elt\@currbox}}}
+\def\bio@adjust#1{\bio@egroup\let\bio@egroup\relax
+	\ifbio@verb {\let\protect\bio@protect\xdef\bio@list{\bio@list#1}\fi}}
+\def\bio@protect{\noexpand\protect\noexpand}
+
+\def\endbiography{\bio@egroup \@tempswatrue
+	\ifx\@botlist\@empty\ifx\@deferlist\@empty \@tempswafalse \fi\fi
+	\ifbio@verb\else\if@tempswa \bio@verbtrue \opt@warning\fi\fi
+	\ifbio@verb{\let\@elt\bio@putelt \let\protect\relax \bio@list}%
+	\else\bio@putbio\fi}
+
+\newdimen\bio@colht \newdimen\bio@splitheight
+\newdimen\bio@maxgap \newdimen\bio@lastgap
+\newdimen\bio@th \newdimen\bio@lhA \newdimen\bio@hA \newdimen\bio@hB
+\newdimen\bio@lh \newdimen\bio@rh
+\newdimen\bio@tempdim
+\newif\ifbio@awful
+\newinsert\bio@pbox \count\bio@pbox\@ne
+
+\def\bio@putbio{\let\@elt\relax \let\bio@vskip\relax \allowbreak
+	\bio@colht\@colht \advance\bio@colht-\topskip
+	\advance\bio@colht\baselineskip
+	\@tempdima\bio@colht \advance\@tempdima-\@colroom
+	\advance\@tempdima\pagetotal
+	\if@firstcolumn
+	    \ifdim\@tempdima>\bio@th
+		\global\@lastpagebalancingtrue
+		{\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip
+	    \else
+		\ifdim\pagetotal=\z@\else
+			\dimen\bio@pbox\@tempdima \advance\bio@th\@tempdima
+			\edef\bio@list{\@elt\bio@pbox\bio@list}\fi
+		\bio@splitheight\bio@colht \bio@splitpage
+		\bio@splitheight.5\bio@th
+		\let\bio@awfulput\bio@specialawfulput
+		\bio@trybalance\fi
+	\else \advance\@tempdima\bio@th
+	    \ifdim\@tempdima<\bio@colht
+		\global\@lastpagebalancingtrue
+		\ifdim\pagetotal=\z@ \global\opt@baselineskip2\baselineskip\fi
+		{\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip
+	    \else
+		\let\bio@awfulput\bio@normalawfulput
+		\bio@splitheight\z@ \advance\@tempdima-\bio@th
+		\advance\bio@colht-\@tempdima \bio@splitpage
+		{\let\@elt\bio@putelt\bio@list}\bio@nextpage
+		\bio@trybalance\fi
+	\fi}
+
+\def\bio@trybalance{\bio@split 
+	\let\bio@right\bio@rightA \let\bio@left\bio@leftA
+		\def\bio@rightx{}\def\bio@leftx{}%
+		\let\bio@hX\bio@hA \bio@balance
+		\let\bio@rightxA\bio@rightx \let\bio@leftxA\bio@leftx
+	\ifbio@awful\@tempcnta\tw@\else\@tempcnta\z@\fi
+	\let\bio@right\bio@rightB \let\bio@left\bio@leftB
+		\def\bio@rightx{}\def\bio@leftx{}%
+		\let\bio@hX\bio@hB \bio@balance
+		\let\bio@rightxB\bio@rightx \let\bio@leftxB\bio@leftx
+	\ifbio@awful\advance\@tempcnta\@ne\fi
+	\ifcase\@tempcnta
+		\ifdim\bio@hA<\bio@hB \bio@balanceput\bio@leftxA\bio@rightxA
+		\else \bio@balanceput\bio@leftxB\bio@rightxB\fi
+	\or \bio@balanceput\bio@leftxA\bio@rightxA
+	\or \bio@balanceput\bio@leftxB\bio@rightxB
+	\else \bio@awfulput\fi
+	\ifx\bio@deferred\empty\vskip-\baselineskip\let\next\relax
+	\else\bio@nextpage\let\next\bio@trybalance\fi\next}
+
+\def\bio@split{\def\bio@leftA{}\def\bio@leftB{}%
+	\def\bio@rightA{}\def\bio@rightB{}%
+	\bio@lhA\z@\@tempdimb\z@ \bio@isplit}
+\def\bio@isplit{\ifx\bio@list\empty\let\next\relax\else
+	\bio@car\@tempdima\@currbox\bio@list
+	\bio@lhA\@tempdimb\advance\@tempdimb\@tempdima
+	\edef\bio@leftB{\bio@leftB\@elt\@currbox}%
+	\ifdim\@tempdimb>\bio@splitheight
+		\edef\bio@rightA{\@elt\@currbox\bio@list}%
+		\let\bio@rightB\bio@list \let\next\relax
+	\else\edef\bio@leftA{\bio@leftA\@elt\@currbox}\let\next\bio@isplit
+	\fi\fi\next}
+
+\def\bio@balanceput#1#2{{\let\@elt\bio@putelt\let\bio@vskip\bio@xvskip
+	#1\bio@newpage#2}}
+\def\bio@normalawfulput{{\let\bio@vskip\@gobble \@tempcnta\z@ 
+	\@tempdima\z@ \bio@addheight\@tempdima\bio@leftxB
+	\ifdim\@tempdima<\bio@colht
+		\@tempdima\z@ \bio@addheight\@tempdima\bio@rightxB
+		\ifdim\@tempdima<\bio@colht \@tempcnta\@ne
+			\let\@elt\bio@putelt
+			\bio@leftxB\bio@newpage\bio@rightxB\fi\fi
+	\ifnum\@tempcnta=\z@
+		\@tempdima\z@ \bio@addheight\@tempdima\bio@leftxA
+		\ifdim\@tempdima<\bio@colht
+			\@tempdima\z@\bio@addheight\@tempdima\bio@rightxA
+			\ifdim\@tempdima<\bio@colht \@tempcnta\@ne
+				\let\@elt\bio@putelt
+				\bio@leftxA\bio@newpage\bio@rightxA\fi\fi\fi
+% The following may be redundant.
+	\ifnum\@tempcnta=\z@
+		\let\@elt\bio@putelt\bio@listsave\fi}}
+\def\bio@specialawfulput{{\advance\bio@th-\dimen\bio@pbox
+	\ifdim\bio@th<\bio@colht\bio@newpage
+	\let\bio@newpage\relax\fi\bio@normalawfulput}}
+
+\def\bio@putelt#1{\ifnum\count#1>\z@\else\box#1
+	\nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{}
+	\vskip\baselineskip\fi}
+\def\bio@xvskip#1{\vskip#1\prevdepth\z@}
+\def\bio@newpage{\vskip-\baselineskip\newpage}
+
+\def\bio@nextpage{\bio@newpage \let\bio@list\bio@deferred
+	\bio@th\z@ \bio@addheight\bio@th\bio@list
+	\bio@colht\@colht \advance\bio@colht-\topskip
+	\advance\bio@colht\baselineskip
+	\bio@splitheight\bio@colht \bio@splitpage
+	\bio@splitheight.5\bio@th
+	\let\bio@awfulput\bio@normalawfulput}
+\def\bio@splitpage{\let\bio@listsave\bio@list \bio@split
+	\@tempdima\bio@th \advance\@tempdima-\bio@lhA
+	\ifdim\@tempdima>\bio@colht
+		\let\bio@leftAsave\bio@leftA \bio@th\bio@lhA
+		\let\bio@list\bio@rightA \bio@splitheight\bio@colht
+		\bio@split \edef\bio@list{\bio@leftAsave\bio@leftA}%
+		\advance\bio@th\bio@lhA
+		\let\bio@deferred\bio@rightA
+	\else\def\bio@deferred{}\let\bio@list\bio@listsave\fi}
+
+% \bio@tolerablegap:	maximum tolerable gap between adjacent bio's.
+% \bio@tolerablestretch:maximum stretch of a column.
+
+\@tempdima10\baselineskip		% This might be changed
+\edef\bio@tolerablegap{\the\@tempdima}
+\@tempdima15\baselineskip
+\edef\bio@tolerablelastgap{\the\@tempdima}
+\def\bio@tolerablestretch{2}		% This might be changed
+
+\def\bio@balance{\let\@elt\relax \edef\bio@bstack{%
+		\@elt{{\bio@left}{\bio@right}{}{}{0pt}}}
+	\bio@xbalance}
+\def\bio@xbalance{%
+	\expandafter\bio@popstack\bio@bstack\@nil
+	\let\bio@nextA\bio@xbalance \@tempdima\z@
+	\ifx\bio@left\empty \ifx\bio@right\empty
+		\let\bio@nextA\bio@balanceend
+	\else
+		\bio@addheight\@tempdima\bio@right
+		\edef\bio@leftx{\bio@leftx\bio@vskip{\the\@tempdima}}%
+		\advance\bio@hX\@tempdima
+		\edef\bio@rightx{\bio@rightx\bio@right}\def\bio@right{}%
+		\bio@pushstack \fi\else
+	\ifx\bio@right\empty
+		\bio@addheight\@tempdima\bio@left
+		\edef\bio@rightx{\bio@rightx\bio@vskip{\the\@tempdima}}%
+		\advance\bio@hX\@tempdima
+		\edef\bio@leftx{\bio@leftx\bio@left}\def\bio@left{}%
+		\bio@pushstack \else
+	\bio@car\@tempdima\bio@leftbox\bio@left
+	\bio@car\@tempdimb\bio@rightbox\bio@right
+	\edef\bio@leftx{\bio@leftx\@elt\bio@leftbox}%
+	\edef\bio@rightx{\bio@rightx\@elt\bio@rightbox}%
+	\ifdim\@tempdima>\@tempdimb
+		\advance\bio@hX\@tempdima
+		\let\bio@da\@tempdima\let\bio@db\@tempdimb
+		\bio@ibalance\bio@left\bio@right\bio@leftx\bio@rightx
+	\else	\advance\bio@hX\@tempdimb
+		\let\bio@da\@tempdimb\let\bio@db\@tempdima
+		\bio@ibalance\bio@right\bio@left\bio@rightx\bio@leftx\fi
+	\fi\fi\bio@nextA}
+\def\bio@ibalance#1#2#3#4{\let\bio@nextB\relax
+	\ifx#2\empty 
+		\advance\bio@da-\bio@db
+		\edef#4{#4\bio@vskip{\the\bio@da}}\bio@pushstack\else
+	\bio@car\bio@tempdim\@currbox#2 \advance\bio@db\bio@tempdim
+	\ifdim\bio@da<\bio@db
+		\advance\bio@db-\bio@da
+		\let\@tempa#3\edef#3{#3\bio@vskip{\the\bio@db}}%
+		\let\@tempb#4\edef#4{#4\@elt\@currbox}%
+		\advance\bio@hX\bio@db \bio@pushstack
+		\advance\bio@hX-\bio@db
+		\edef#2{\@elt\@currbox#2}%
+		\advance\bio@tempdim-\bio@db
+		\let#3\@tempa \edef#4{\@tempb\bio@vskip{\the\bio@tempdim}}%
+		\bio@pushstack
+	\else \edef#4{#4\@elt\@currbox}\def\bio@nextB{\bio@ibalance#1#2#3#4}%
+	\fi\fi\bio@nextB}
+\def\bio@balanceend{\bio@awfulfalse \def\bio@bstack{}%
+	\bio@maxgap\z@ \bio@lastgap\z@
+	\bio@checkgap\bio@leftx \bio@checkgap\bio@rightx
+	\ifdim\bio@maxgap>\bio@tolerablegap\relax\bio@awfultrue\fi
+	\ifdim\bio@lastgap>\bio@tolerablelastgap\relax\bio@awfultrue\fi
+	\ifdim\bio@hX>\bio@tolerablestretch\bio@splitheight\bio@awfultrue\fi
+	\ifdim\bio@hX>\bio@colht\bio@awfultrue\fi}
+\def\bio@checkgap#1{{\@tempdima\z@ \@tempdimb\z@ \bio@tempdim\z@
+	\let\@elt\bio@cgelt \let\bio@vskip\bio@cgvskip #1\relax
+	\ifdim\@tempdima>\bio@maxgap \global\bio@maxgap\@tempdima \fi
+	\ifdim\bio@tempdim>\bio@lastgap \global\bio@lastgap\bio@tempdim \fi}}
+\def\bio@cgvskip#1{\advance\bio@tempdim#1\relax
+	\ifdim\bio@tempdim>\@tempdimb \@tempdimb\bio@tempdim\fi}
+\def\bio@cgelt#1{\@tempdima\@tempdimb \bio@tempdim\z@}
+\def\bio@popstack\@elt#1#2\@nil{\edef\bio@bstack{#2}\bio@ipopstack#1}
+\def\bio@ipopstack#1#2#3#4#5{\def\bio@left{#1}\def\bio@right{#2}%
+	\def\bio@leftx{#3}\def\bio@rightx{#4}\bio@hX#5\relax}
+\def\bio@pushstack{\def\bio@bstackx{}%
+	\expandafter\bio@ipushstack\bio@bstack\@elt\@nil}
+\def\bio@ipushstack\@elt#1{\def\@tempc{#1}%
+	\ifx\@tempc\@nnil \edef\bio@bstack{\bio@bstackx\bio@stackelt}%
+		\let\bio@nextC\relax \else
+	\bio@iipushstack#1\fi\bio@nextC}
+\def\bio@iipushstack#1#2#3#4#5{\ifdim#5>\bio@hX
+	\edef\bio@bstackx{\bio@bstackx\bio@stackelt
+		\@elt{{#1}{#2}{#3}{#4}{#5}}}%
+		\let\bio@nextC\bio@pushstackend\else
+	\edef\bio@bstackx{\bio@bstackx
+		\@elt{{#1}{#2}{#3}{#4}{#5}}}%
+		\let\bio@nextC\bio@ipushstack\fi}
+\def\bio@pushstackend#1\@elt\@nil{\edef\bio@bstack{\bio@bstackx#1}}
+\def\bio@stackelt{\@elt{{\bio@left}{\bio@right}{\bio@leftx}{\bio@rightx}%
+	{\the\bio@hX}}}
+\def\bio@addheight#1#2{\def\@elt##1{\advance#1\dimen##1}#2\let\@elt\relax}
+\def\bio@car#1#2#3{\expandafter\bio@icar#3\@nil#1#2#3}
+\def\bio@icar\@elt#1#2\@nil#3#4#5{#3=\dimen#1\relax\def#4{#1}\def#5{#2}}
+
+
+%%%%%% Miscellaneous %%%%%%
+
+\flushbottom
+
+\ifDS@english
+\hbadness9999 \tolerance9999
+\else
+\hbadness5000 \tolerance5000
+\pretolerance\m@ne
+\fi
+
+\input{ipsjcommon.sty}
+
+\twocolumn
+
+\endinput
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsjsort.bst	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1 @@
+% ipsjsort.bst nakasima@kuis.kyoto-u.ac.jp (Hiroshi Nakashima)
% jssst.bst tomura@etl.go.jp (Satoru Tomura)
% BibTeX standard bibliography style `jplain'
	% version 0.10 for JBibTeX versions 0.10 or later, JLaTeX version 2.09.
	% by Shouichi Matsui, matsui@denken.junet

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
    yomi
  }
  {}
  { label }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }

INTEGERS { before.year }

FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
  #4 'before.year :=	% year doesn't follows "," nor ".". (H.N.)
}

STRINGS { s t }

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
	{ add.period$ write$
	  newline$
	  "\newblock " write$
	}
	{ output.state before.all =
	    'write$
	    { output.state before.year =
% year doesn't follows "," nor ".". (H.N.)
		{ " " * write$ }
		{ add.period$ " " * write$ }
	      if$
	    }
	  if$
	}
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

FUNCTION {required.argument}
{ 't :=
  empty$
    {"Missing required argument " t * " in " * cite$ * warning$}
    'skip$
  if$
}

FUNCTION {required.exclusive.or.argument}
{ 't :=
  empty$
    { 's := 
      empty$
        { t " or " * s * " is missing in " * cite$ * warning$}
        'skip$
      if$
    }
    { 's :=
      empty$
        'skip$
        { "You can use only one of " t * " and " * s * " in " * cite$ * warning$}
      if$
    }
  if$
}

FUNCTION {required.and.or.argument}
{ 't := empty$
     { 's := empty$
         { "there's no " t * " and/or " * s * cite$ * warning$ }
         'skip$
       if$
     }
     { pop$ pop$ }
  if$
}

FUNCTION {optional.series.volume.number.argument}
{ series empty$
    { volume empty$
        { number empty$
            'skip$
            { "there's a number but no series in " cite$ * warning$ }
          if$
        }
        { number empty$
            { "there's a volume but no series in " cite$ * warning$ }
            { "you can use only one of volume and number in " cite$ * warning$}
          if$
        }
     if$
    }
    { volume empty$
        { number empty$
            { "there's a series but neither volume nor number in " cite$ * warning$ }
            'skip$
          if$
        }
        { number empty$
            'skip$
            { "you can use only one of volume and number in " cite$ * warning$ }
          if$
        }
     if$
   }
   if$
}            

FUNCTION {output.bibitem}
{ newline$
  "\bibitem{" write$
  cite$ write$
  "}" write$
  newline$
  before.all 'output.state :=
}

FUNCTION {fin.entry}
{ add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
	'skip$
	{ after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {new.block.checka}
{ empty$
    'skip$
    'new.block
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {new.sentence.checka}
{ empty$
    'skip$
    'new.sentence
  if$
}

FUNCTION {new.sentence.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.sentence
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {is.kanji}
%%%{ #1 text.prefix$ chr.to.int$ #127 > }
%%%{ #1 #1 substring$ chr.to.int$ #127 > }
%%%{ purify$ #1 text.prefix$ chr.to.int$ #127 >}
{ is.kanji.str$ }

FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { duplicate$ is.kanji
        'skip$
        { "{\em " swap$ * "\/}" * }
      if$
    }
  if$
}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
        s nameptr "{ll}" format.name$ is.kanji
           { "{ff}{vv}{ll}" }
           { "{vv }{ll}{, jj}{, f.}" }
        if$
      format.name$ 't :=
      nameptr #1 >
	{ namesleft #1 >
	    { ", " * t * }
	    {
%	      numnames #2 >
%		{ "," * }
%		'skip$
%	      if$
% Don't put "," before "and" (H.N.)
%
%	      numnames #3 <
%		{ t is.kanji
%		    {"," * "" *} 'skip$ if$
%		}
%		'skip$
%    	      if$
% Don't put "," before "ق" (H.N.)
%
	      t "others" =
		{ s is.kanji
			{"ق" * }
			{" et al." * }
		      if$
                }
		{ s is.kanji
%			{" " * t * }
			{", " * t * }	% put "," here for Kanji (H.N.)
			{" and " * t * }
	     	      if$
		}
	      if$
	    }
	  if$
	}
	't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    { editor format.names
      editor num.names$ #1 >
	{ editor is.kanji
		{"()" * } %%{", editors" * } if$
                            {"(eds.)" *} if$
	}
	{ editor is.kanji
		{"()" *}  %%{", editor" * } if$
                            {"(ed.)" *} if$
	}
      if$
    }
  if$
}

FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
	{ t #1 #2 substring$ "--" = not
	    { "--" *
	      t #2 global.max$ substring$ 't :=
	    }
	    {   { t #1 #1 substring$ "-" = }
		{ "-" *
		  t #2 global.max$ substring$ 't :=
		}
	      while$
	    }
	  if$
	}
	{ t #1 #1 substring$ *
	  t #2 global.max$ substring$ 't :=
	}
      if$
    }
  while$
}

FUNCTION {format.date}
{ before.year 'output.state :=	% year doesn't follows "," nor ".". (H.N.)
  year empty$
    { month empty$
	{ "" }
	{ "there's a month but no year in " cite$ * warning$
%	  month			% no worth to put month only. (H.N.)
          ""
	}
      if$
    }
%   { month empty$
%	'year
%	{ month " " * year * }
%     if$
%   }
% month is not printed even if it is given. (H.N.)
%
    { "(" year ")" * * }	% year is surrounded by parens. (H.N.)
  if$
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { "\ " }
  if$
  swap$ * *
}

FUNCTION {output.volume}
{ 
  volume empty$
    'skip$
    { "Vol.~" volume * output}
  if$

}

FUNCTION {output.number}
{
  number empty$
    'skip$
    { "No.~" number * output}
  if$
}

FUNCTION {output.series.volume.number}
{ series empty$
    { output.volume
      output.number }
    { series is.kanji
      volume empty$
      number empty$
      or
      and
        { series " " * volume * number * output}
        { series output
          output.volume
          output.number}
      if$
   }
 if$
}

FUNCTION {format.edition}
{ edition empty$
    { "" }
    { output.state mid.sentence =
	{ edition "l" change.case$ " edition" * }
	{ edition "t" change.case$ " edition" * }
      if$
    }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
	{ #1 'multiresult := }
	{ t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
%	{ "pp.~" pages n.dashify tie.or.space.connect }
%	{ "pp.~" pages tie.or.space.connect }
% '~' might be add by tie.or.space.connect. (H.N.)
% "p." is probably better for single page reference (H.N.)
	{ "pp." pages n.dashify tie.or.space.connect }
	{ "p." pages tie.or.space.connect }
      if$
    }
  if$
}

% This function is replaced by format.vol.num.pages (H.N.)
%FUNCTION {format.volume.number.year.pages}
%{ volume empty$
%    { number empty$
%        { year empty$
%             { "" }
%             { "(" year * ")" * }
%          if$}
%        { year empty$
%             { "No.~" number * }
%             { "No.~" number * "(" * year * ")" * }
%         if$}
%      if$}
%    { number empty$
%        { year empty$
%             { "Vol.~" volume * }
%             { "Vol.~" volume * "(" * year * ")" * }
%          if$}
%        { year empty$
%             {"Vol.~" volume * "," * "No.~" * number * }
%             {"Vol.~" volume * "," * "No.~" * number * "(" * year * ")" * }
%         if$}
%      if$}
%   if$
%  pages empty$
%    'skip$
%    { duplicate$ empty$
%	{ pop$ format.pages }
%	{ "," * " pp.~" * pages n.dashify * }
%      if$
%    }
%  if$
%}

FUNCTION {format.vol.num.pages}
{ volume empty$
  { ""}
  { " Vol.~" volume * }
  if$ 
  number empty$
    'skip$
    { volume empty$
	{ "there's a number but no volume in " cite$ * warning$ }
	{ "," *}
      if$
      " No.~" number * *
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
	{ pop$ format.pages }
	{ ", " * format.pages * }
% tieing "pp." and the first page will be too hard for a narrow column. (H.N.)
      if$
    }
  if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    'format.pages
    { type empty$
	{ "chapter" chapter tie.or.space.connect }
        { type is.kanji 
             { chapter type tie.or.space.connect }
             { type "l" change.case$ chapter tie.or.space.connect }
          if$
        }
      if$
      pages empty$
	'skip$
	{ ", " * format.pages * }
      if$
    }
  if$
}

FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
    { "" }
    { editor empty$
	{ booktitle is.kanji
	    { " " booktitle emphasize * }
	    { " " booktitle emphasize * }
	  if$
	}
	{ booktitle is.kanji
%	    { booktitle emphasize "(" * format.editors * ")" *}
%	    { booktitle emphasize "(" * format.editors * ")" *}
% awful without leading space (H.N.)
	    { booktitle emphasize " (" * format.editors * ")" *}
	    { booktitle emphasize " (" * format.editors * ")" *}
	  if$
	}
      if$
    }
  if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  month empty$ year empty$ note empty$
  and and and and and
  key empty$ not and
    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type "t" change.case$
    }
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { title empty$
        { "Technical Report" }
        { title is.kanji
            { "Zp" }
            { "Technical Report" }
          if$
        }
      if$
    }
    {type}
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}

FUNCTION {format.article.crossref}
{ key empty$
    { journal empty$
	{ "need key or journal for " cite$ * " to crossref " * crossref *
	  warning$
	  ""
	}
	{ "In " journal emphasize * }
      if$
    }
    { "In " key * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.crossref.editor}
{ editor #1 "{vv }{ll}" format.name$
  editor num.names$ duplicate$
  #2 >
    { editor is.kanji
	  {pop$ " ق" *} {pop$ " et al." * } if$
    }
    { #2 <
	'skip$
	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
	    { editor is.kanji
		{" ق" *} {"et al." * } if$
	    }
	    { editor is.kanji
		{" " * editor #2 "{vv }{ll}" format.name$ * }
		{" and " * editor #2 "{vv }{ll}" format.name$ * }
	      if$
	    }
	  if$
	}
      if$
    }
  if$
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      title is.kanji
	{"  "} {"In "} if$
    }
    { "Volume" volume tie.or.space.connect
      " of " *
    }
  if$
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
	{ series empty$
	    { "need editor, key, or series for " cite$ * " to crossref " *
	      crossref * warning$
	      "" *
	    }
	    { series emphasize }
	  if$
	}
	{ key * }
      if$
    }
    { format.crossref.editor * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
	{ booktitle empty$
	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
	      crossref * warning$
	      ""
	    }
	    { booktitle is.kanji
		booktitle
		{"In " booktitle emphasize * }
	       if$
	    }
	  if$
	}
	{ "In " key * }
      if$
    }
    { title is.kanji
	{" " format.crossref.editor * }
	{"In " format.crossref.editor * }
      if$
    }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {article}
{ 
%%%%
  author  "author"  required.argument
  title   "title"   required.argument
  journal "journal" required.argument
  year    "year"    required.argument
%%%% jssst
  volume  "volume"  
  number  "number"  
     required.and.or.argument
  pages   "pages"   required.argument
%%%%
  output.bibitem 
  format.authors ": " *
  title output
  crossref missing$
    { journal emphasize output
%     format.volume.number.year.pages output
% date is always at the end. (H.N.)
      format.vol.num.pages output
      format.date output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {book}
{ 
%%%%
  author  "author"
  editor  "editor"
    required.exclusive.or.argument
  title   "title"  required.argument
  publisher "publisher" required.argument
  year    "year" required.argument
  optional.series.volume.number.argument
%%%%
  output.bibitem
  author empty$
    { format.editors}
    { format.authors}
  if$
  ": " *
  title emphasize output
  crossref missing$
    { output.series.volume.number
      publisher output
      address output
    }
    { new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {booklet}
{
%%%%
  title   "title"   required.argument
%%%% jssst
  author  "author"  required.argument
%%%%
  output.bibitem
  format.authors  ": " *
  title output
  howpublished output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {inbook}
{ 
%%%%
  author  "author"
  editor  "editor"
     required.exclusive.or.argument
  title   "title"  required.argument
  chapter "chapter"
  pages   "pages"
     required.and.or.argument
  publisher  "publisher" required.argument
  year       "year"      required.argument

  optional.series.volume.number.argument
%%%%
  output.bibitem 
  author empty$
    { format.editors}
    { format.authors}
  if$
  ": " *
  title emphasize output
  crossref missing$
    { output.series.volume.number
      publisher output
    }
    { format.chapter.pages output
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
% format.date output
  format.chapter.pages output
  format.date output		% date is always at the end. (H.N.)
  new.block
  note output
  fin.entry
}

FUNCTION {incollection}
{
%%%%
  author    "author"    required.argument
  title     "title"     required.argument
  booktitle "booktitle" required.argument
  publisher "publisher" required.argument
  year      "year"      required.argument

  optional.series.volume.number.argument
%%%%
  output.bibitem
  format.authors ": " *
  title output
  crossref missing$
    { format.in.ed.booktitle output
      output.series.volume.number
      publisher output
      address output
      format.edition output
      format.chapter.pages output	% date is always at the end. (H.N.)
      format.date output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
% format.chapter.pages output
  new.block
  note output
  fin.entry
}

FUNCTION {inproceedings}
{
%%%%
  author    "author"    required.argument
  title     "title"     required.argument
  booktitle "booktitle" required.argument
  year      "year"      required.argument

  optional.series.volume.number.argument
%%%%
  output.bibitem 
  format.authors ": " *
  title output
  crossref missing$
    { format.in.ed.booktitle output
      output.series.volume.number
      address output
      organization output
      publisher output
%     format.date output
      format.pages output
      format.date output	% date is always at the end. (H.N.)
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{	
%%%%
  title   "title"    required.argument
%%%% jssst
  author   "author"
  organization "organazaion"
     required.exclusive.or.argument
%%%%
  output.bibitem
  author empty$
    { organization}
    { format.authors}
  if$
  ": " *
  title emphasize output
  author empty$
    'skip$
    { organization output }
  if$
  address output
  format.edition output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {mastersthesis}
{
%%%%
  author   "author"  required.argument
  title    "title"   required.argument
  school   "school"  required.argument
  year     "year"    required.argument
%%%%
  output.bibitem
  format.authors ": " *
  title output
  author empty$
    { "Master's thesis" }
    { author is.kanji
        { "Cm_" }  
        { "Master's thesis" }
      if$
    }
  if$
  format.thesis.type output.nonnull
  school output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {misc}
{
%%%%
%%%% jssst
  author "author" required.argument
  title  "title"  required.argument
%%%%
  output.bibitem
  format.authors 
  ": " *
  title output
  howpublished output
  format.date output
  new.block
  note output
  fin.entry
  empty.misc.check
}

FUNCTION {phdthesis}
{
%%%%
  author   "author"  required.argument
  title    "title"   required.argument
  school   "school"  required.argument
  year     "year"    required.argument
%%%%
  output.bibitem 
  format.authors ": " *
  title emphasize output
  author empty$
    { "PhD Thesis" }
    { author is.kanji
        { "m_" }
        { "PhD Thesis" }
      if$
    }
  if$
  format.thesis.type output.nonnull
  school output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {proceedings}
{
%%%%
  title  "title"  required.argument
  year   "year"   required.argument

  optional.series.volume.number.argument
%%%% jssst
  editor  "editor"
  organization "organization"
      required.exclusive.or.argument 
%%%%
  output.bibitem 
  editor empty$
    { organization }
    { format.editors }
  if$
  ": " *
  title emphasize output
  output.series.volume.number
  address output
  editor empty$
    'skip$
    { organization output }
  if$
  publisher output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {techreport}
{
%%%%
  author   "author"   required.argument
  title    "title"    required.argument
  institution "institution" required.argument
  year     "year"     required.argument
%%%%
  output.bibitem
  format.authors  ": " *
  title output
  format.tr.number output.nonnull
  institution output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {unpublished}
{
%%%%
  author   "author"   required.argument
  title    "title"    required.argument
  note     "note"     required.argument
%%%%
  output.bibitem
  format.authors ": " *
  title output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {default.type} { misc }

MACRO {jan} {"January"}

MACRO {feb} {"February"}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"August"}

MACRO {sep} {"September"}

MACRO {oct} {"October"}

MACRO {nov} {"November"}

MACRO {dec} {"December"}

MACRO {acmcs} {"ACM Computing Surveys"}

MACRO {acta} {"Acta Informatica"}

MACRO {cacm} {"Communications of the ACM"}

MACRO {ibmjrd} {"IBM Journal of Research and Development"}

MACRO {ibmsj} {"IBM Systems Journal"}

MACRO {ieeese} {"IEEE Transactions on Software Engineering"}

MACRO {ieeetc} {"IEEE Transactions on Computers"}

MACRO {ieeetcad}
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}

MACRO {ipl} {"Information Processing Letters"}

MACRO {jacm} {"Journal of the ACM"}

MACRO {jcss} {"Journal of Computer and System Sciences"}

MACRO {scp} {"Science of Computer Programming"}

MACRO {sicomp} {"SIAM Journal on Computing"}

MACRO {tocs} {"ACM Transactions on Computer Systems"}

MACRO {tods} {"ACM Transactions on Database Systems"}

MACRO {tog} {"ACM Transactions on Graphics"}

MACRO {toms} {"ACM Transactions on Mathematical Software"}

MACRO {toois} {"ACM Transactions on Office Information Systems"}

MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}

MACRO {tcs} {"Theoretical Computer Science"}

READ

FUNCTION {sortify}
{ purify$
  "l" change.case$
}

INTEGERS { len }

FUNCTION {chop.word}
{ 's :=
  'len :=
  s #1 len substring$ =
    { s len #1 + global.max$ substring$ }
    's
  if$
}

FUNCTION {sort.format.names}
{ 's :=
  yomi empty$
     'skip$
     { yomi 's := }
  if$

  #1 'nameptr :=
  ""
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { nameptr #1 >
	{ "   " * }
	'skip$
      if$
      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
      nameptr numnames = t "others" = and
	{ "et al" * }
	{ t sortify * }
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {sort.format.title}
{ 't :=
  "A " #2
    "An " #3
      "The " #4 t chop.word
    chop.word
  chop.word
  sortify
  #1 global.max$ substring$
}

FUNCTION {author.sort}
{ author empty$
    { key empty$
	{ "to sort, need author or key in " cite$ * warning$
	  ""
	}
	{ key sortify }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {author.editor.sort}
{ author empty$
    { editor empty$
	{ key empty$
	    { "to sort, need author, editor, or key in " cite$ * warning$
	      ""
	    }
	    { key sortify }
	  if$
	}
	{ editor sort.format.names }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {author.organization.sort}
{ author empty$
    { organization empty$
	{ key empty$
	    { "to sort, need author, organization, or key in " cite$ * warning$
	      ""
	    }
	    { key sortify }
	  if$
	}
	{ "The " #4 organization chop.word sortify }
      if$
    }
    { author sort.format.names }
  if$
}

FUNCTION {editor.organization.sort}
{ editor empty$
    { organization empty$
	{ key empty$
	    { "to sort, need editor, organization, or key in " cite$ * warning$
	      ""
	    }
	    { key sortify }
	  if$
	}
	{ "The " #4 organization chop.word sortify }
      if$
    }
    { editor sort.format.names }
  if$
}

FUNCTION {presort}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.sort
    { type$ "proceedings" =
	'editor.organization.sort
	{ type$ "manual" =
	    'author.organization.sort
	    'author.sort
	  if$
	}
      if$
    }
  if$
  "    "
  *
  year field.or.null sortify
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}

ITERATE {presort}

SORT

STRINGS { longest.label }

INTEGERS { number.label longest.label.width }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #1 'number.label :=
  #0 'longest.label.width :=
}

FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
  number.label #1 + 'number.label :=
  label width$ longest.label.width >
    { label 'longest.label :=
      label width$ 'longest.label.width :=
    }
    'skip$
  if$
}

EXECUTE {initialize.longest.label}

ITERATE {longest.label.pass}

FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsjunsrt.bst	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1 @@
+% ipsjsort.bst nakasima@kuis.kyoto-u.ac.jp (Hiroshi Nakashima)
% jssst.bst tomura@etl.go.jp (Satoru Tomura)
% BibTeX standard bibliography style `jplain'
	% version 0.10 for JBibTeX versions 0.10 or later, JLaTeX version 2.09.
	% by Shouichi Matsui, matsui@denken.junet

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
    yomi
  }
  {}
  { label }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }

INTEGERS { before.year }

FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
  #4 'before.year :=	% year doesn't follows "," nor ".". (H.N.)
}

STRINGS { s t }

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
	{ add.period$ write$
	  newline$
	  "\newblock " write$
	}
	{ output.state before.all =
	    'write$
	    { output.state before.year =
% year doesn't follows "," nor ".". (H.N.)
		{ " " * write$ }
		{ add.period$ " " * write$ }
	      if$
	    }
	  if$
	}
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

FUNCTION {required.argument}
{ 't :=
  empty$
    {"Missing required argument " t * " in " * cite$ * warning$}
    'skip$
  if$
}

FUNCTION {required.exclusive.or.argument}
{ 't :=
  empty$
    { 's := 
      empty$
        { t " or " * s * " is missing in " * cite$ * warning$}
        'skip$
      if$
    }
    { 's :=
      empty$
        'skip$
        { "You can use only one of " t * " and " * s * " in " * cite$ * warning$}
      if$
    }
  if$
}

FUNCTION {required.and.or.argument}
{ 't := empty$
     { 's := empty$
         { "there's no " t * " and/or " * s * cite$ * warning$ }
         'skip$
       if$
     }
     { pop$ pop$ }
  if$
}

FUNCTION {optional.series.volume.number.argument}
{ series empty$
    { volume empty$
        { number empty$
            'skip$
            { "there's a number but no series in " cite$ * warning$ }
          if$
        }
        { number empty$
            { "there's a volume but no series in " cite$ * warning$ }
            { "you can use only one of volume and number in " cite$ * warning$}
          if$
        }
     if$
    }
    { volume empty$
        { number empty$
            { "there's a series but neither volume nor number in " cite$ * warning$ }
            'skip$
          if$
        }
        { number empty$
            'skip$
            { "you can use only one of volume and number in " cite$ * warning$ }
          if$
        }
     if$
   }
   if$
}            

FUNCTION {output.bibitem}
{ newline$
  "\bibitem{" write$
  cite$ write$
  "}" write$
  newline$
  before.all 'output.state :=
}

FUNCTION {fin.entry}
{ add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
	'skip$
	{ after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {new.block.checka}
{ empty$
    'skip$
    'new.block
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {new.sentence.checka}
{ empty$
    'skip$
    'new.sentence
  if$
}

FUNCTION {new.sentence.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.sentence
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {is.kanji}
%%%{ #1 text.prefix$ chr.to.int$ #127 > }
%%%{ #1 #1 substring$ chr.to.int$ #127 > }
%%%{ purify$ #1 text.prefix$ chr.to.int$ #127 >}
{ is.kanji.str$ }

FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { duplicate$ is.kanji
        'skip$
        { "{\em " swap$ * "\/}" * }
      if$
    }
  if$
}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
        s nameptr "{ll}" format.name$ is.kanji
           { "{ff}{vv}{ll}" }
           { "{vv }{ll}{, jj}{, f.}" }
        if$
      format.name$ 't :=
      nameptr #1 >
	{ namesleft #1 >
	    { ", " * t * }
	    {
%	      numnames #2 >
%		{ "," * }
%		'skip$
%	      if$
% Don't put "," before "and" (H.N.)
%
%	      numnames #3 <
%		{ t is.kanji
%		    {"," * "" *} 'skip$ if$
%		}
%		'skip$
%    	      if$
% Don't put "," before "ق" (H.N.)
%
	      t "others" =
		{ s is.kanji
			{"ق" * }
			{" et al." * }
		      if$
                }
		{ s is.kanji
%			{" " * t * }
			{", " * t * }	% put "," here for Kanji (H.N.)
			{" and " * t * }
	     	      if$
		}
	      if$
	    }
	  if$
	}
	't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    { editor format.names
      editor num.names$ #1 >
	{ editor is.kanji
		{"()" * } %%{", editors" * } if$
                            {"(eds.)" *} if$
	}
	{ editor is.kanji
		{"()" *}  %%{", editor" * } if$
                            {"(ed.)" *} if$
	}
      if$
    }
  if$
}

FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
	{ t #1 #2 substring$ "--" = not
	    { "--" *
	      t #2 global.max$ substring$ 't :=
	    }
	    {   { t #1 #1 substring$ "-" = }
		{ "-" *
		  t #2 global.max$ substring$ 't :=
		}
	      while$
	    }
	  if$
	}
	{ t #1 #1 substring$ *
	  t #2 global.max$ substring$ 't :=
	}
      if$
    }
  while$
}

FUNCTION {format.date}
{ before.year 'output.state :=	% year doesn't follows "," nor ".". (H.N.)
  year empty$
    { month empty$
	{ "" }
	{ "there's a month but no year in " cite$ * warning$
%	  month			% no worth to put month only. (H.N.)
          ""
	}
      if$
    }
%   { month empty$
%	'year
%	{ month " " * year * }
%     if$
%   }
% month is not printed even if it is given. (H.N.)
%
    { "(" year ")" * * }	% year is surrounded by parens. (H.N.)
  if$
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { "\ " }
  if$
  swap$ * *
}

FUNCTION {output.volume}
{ 
  volume empty$
    'skip$
    { "Vol.~" volume * output}
  if$

}

FUNCTION {output.number}
{
  number empty$
    'skip$
    { "No.~" number * output}
  if$
}

FUNCTION {output.series.volume.number}
{ series empty$
    { output.volume
      output.number }
    { series is.kanji
      volume empty$
      number empty$
      or
      and
        { series " " * volume * number * output}
        { series output
          output.volume
          output.number}
      if$
   }
 if$
}

FUNCTION {format.edition}
{ edition empty$
    { "" }
    { output.state mid.sentence =
	{ edition "l" change.case$ " edition" * }
	{ edition "t" change.case$ " edition" * }
      if$
    }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
	{ #1 'multiresult := }
	{ t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
%	{ "pp.~" pages n.dashify tie.or.space.connect }
%	{ "pp.~" pages tie.or.space.connect }
% '~' might be add by tie.or.space.connect. (H.N.)
% "p." is probably better for single page reference (H.N.)
	{ "pp." pages n.dashify tie.or.space.connect }
	{ "p." pages tie.or.space.connect }
      if$
    }
  if$
}

% This function is replaced by format.vol.num.pages (H.N.)
%FUNCTION {format.volume.number.year.pages}
%{ volume empty$
%    { number empty$
%        { year empty$
%             { "" }
%             { "(" year * ")" * }
%          if$}
%        { year empty$
%             { "No.~" number * }
%             { "No.~" number * "(" * year * ")" * }
%         if$}
%      if$}
%    { number empty$
%        { year empty$
%             { "Vol.~" volume * }
%             { "Vol.~" volume * "(" * year * ")" * }
%          if$}
%        { year empty$
%             {"Vol.~" volume * "," * "No.~" * number * }
%             {"Vol.~" volume * "," * "No.~" * number * "(" * year * ")" * }
%         if$}
%      if$}
%   if$
%  pages empty$
%    'skip$
%    { duplicate$ empty$
%	{ pop$ format.pages }
%	{ "," * " pp.~" * pages n.dashify * }
%      if$
%    }
%  if$
%}

FUNCTION {format.vol.num.pages}
{ volume empty$
  { ""}
  { " Vol.~" volume * }
  if$ 
  number empty$
    'skip$
    { volume empty$
	{ "there's a number but no volume in " cite$ * warning$ }
	{ "," *}
      if$
      " No.~" number * *
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
	{ pop$ format.pages }
	{ ", " * format.pages * }
% tieing "pp." and the first page will be too hard for a narrow column. (H.N.)
      if$
    }
  if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    'format.pages
    { type empty$
	{ "chapter" chapter tie.or.space.connect }
        { type is.kanji 
             { chapter type tie.or.space.connect }
             { type "l" change.case$ chapter tie.or.space.connect }
          if$
        }
      if$
      pages empty$
	'skip$
	{ ", " * format.pages * }
      if$
    }
  if$
}

FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
    { "" }
    { editor empty$
	{ booktitle is.kanji
	    { " " booktitle emphasize * }
	    { " " booktitle emphasize * }
	  if$
	}
	{ booktitle is.kanji
%	    { booktitle emphasize "(" * format.editors * ")" *}
%	    { booktitle emphasize "(" * format.editors * ")" *}
% awful without leading space (H.N.)
	    { booktitle emphasize " (" * format.editors * ")" *}
	    { booktitle emphasize " (" * format.editors * ")" *}
	  if$
	}
      if$
    }
  if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  month empty$ year empty$ note empty$
  and and and and and
  key empty$ not and
    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type "t" change.case$
    }
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { title empty$
        { "Technical Report" }
        { title is.kanji
            { "Zp" }
            { "Technical Report" }
          if$
        }
      if$
    }
    {type}
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}

FUNCTION {format.article.crossref}
{ key empty$
    { journal empty$
	{ "need key or journal for " cite$ * " to crossref " * crossref *
	  warning$
	  ""
	}
	{ "In " journal emphasize * }
      if$
    }
    { "In " key * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.crossref.editor}
{ editor #1 "{vv }{ll}" format.name$
  editor num.names$ duplicate$
  #2 >
    { editor is.kanji
	  {pop$ " ق" *} {pop$ " et al." * } if$
    }
    { #2 <
	'skip$
	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
	    { editor is.kanji
		{" ق" *} {"et al." * } if$
	    }
	    { editor is.kanji
		{" " * editor #2 "{vv }{ll}" format.name$ * }
		{" and " * editor #2 "{vv }{ll}" format.name$ * }
	      if$
	    }
	  if$
	}
      if$
    }
  if$
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      title is.kanji
	{"  "} {"In "} if$
    }
    { "Volume" volume tie.or.space.connect
      " of " *
    }
  if$
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
	{ series empty$
	    { "need editor, key, or series for " cite$ * " to crossref " *
	      crossref * warning$
	      "" *
	    }
	    { series emphasize }
	  if$
	}
	{ key * }
      if$
    }
    { format.crossref.editor * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
	{ booktitle empty$
	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
	      crossref * warning$
	      ""
	    }
	    { booktitle is.kanji
		booktitle
		{"In " booktitle emphasize * }
	       if$
	    }
	  if$
	}
	{ "In " key * }
      if$
    }
    { title is.kanji
	{" " format.crossref.editor * }
	{"In " format.crossref.editor * }
      if$
    }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {article}
{ 
%%%%
  author  "author"  required.argument
  title   "title"   required.argument
  journal "journal" required.argument
  year    "year"    required.argument
%%%% jssst
  volume  "volume"  
  number  "number"  
     required.and.or.argument
  pages   "pages"   required.argument
%%%%
  output.bibitem 
  format.authors ": " *
  title output
  crossref missing$
    { journal emphasize output
%     format.volume.number.year.pages output
% date is always at the end. (H.N.)
      format.vol.num.pages output
      format.date output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {book}
{ 
%%%%
  author  "author"
  editor  "editor"
    required.exclusive.or.argument
  title   "title"  required.argument
  publisher "publisher" required.argument
  year    "year" required.argument
  optional.series.volume.number.argument
%%%%
  output.bibitem
  author empty$
    { format.editors}
    { format.authors}
  if$
  ": " *
  title emphasize output
  crossref missing$
    { output.series.volume.number
      publisher output
      address output
    }
    { new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {booklet}
{
%%%%
  title   "title"   required.argument
%%%% jssst
  author  "author"  required.argument
%%%%
  output.bibitem
  format.authors  ": " *
  title output
  howpublished output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {inbook}
{ 
%%%%
  author  "author"
  editor  "editor"
     required.exclusive.or.argument
  title   "title"  required.argument
  chapter "chapter"
  pages   "pages"
     required.and.or.argument
  publisher  "publisher" required.argument
  year       "year"      required.argument

  optional.series.volume.number.argument
%%%%
  output.bibitem 
  author empty$
    { format.editors}
    { format.authors}
  if$
  ": " *
  title emphasize output
  crossref missing$
    { output.series.volume.number
      publisher output
    }
    { format.chapter.pages output
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
% format.date output
  format.chapter.pages output
  format.date output		% date is always at the end. (H.N.)
  new.block
  note output
  fin.entry
}

FUNCTION {incollection}
{
%%%%
  author    "author"    required.argument
  title     "title"     required.argument
  booktitle "booktitle" required.argument
  publisher "publisher" required.argument
  year      "year"      required.argument

  optional.series.volume.number.argument
%%%%
  output.bibitem
  format.authors ": " *
  title output
  crossref missing$
    { format.in.ed.booktitle output
      output.series.volume.number
      publisher output
      address output
      format.edition output
      format.chapter.pages output	% date is always at the end. (H.N.)
      format.date output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
% format.chapter.pages output
  new.block
  note output
  fin.entry
}

FUNCTION {inproceedings}
{
%%%%
  author    "author"    required.argument
  title     "title"     required.argument
  booktitle "booktitle" required.argument
  year      "year"      required.argument

  optional.series.volume.number.argument
%%%%
  output.bibitem 
  format.authors ": " *
  title output
  crossref missing$
    { format.in.ed.booktitle output
      output.series.volume.number
      address output
      organization output
      publisher output
%     format.date output
      format.pages output
      format.date output	% date is always at the end. (H.N.)
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  note output
  fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{	
%%%%
  title   "title"    required.argument
%%%% jssst
  author   "author"
  organization "organazaion"
     required.exclusive.or.argument
%%%%
  output.bibitem
  author empty$
    { organization}
    { format.authors}
  if$
  ": " *
  title emphasize output
  author empty$
    'skip$
    { organization output }
  if$
  address output
  format.edition output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {mastersthesis}
{
%%%%
  author   "author"  required.argument
  title    "title"   required.argument
  school   "school"  required.argument
  year     "year"    required.argument
%%%%
  output.bibitem
  format.authors ": " *
  title output
  author empty$
    { "Master's thesis" }
    { author is.kanji
        { "Cm_" }  
        { "Master's thesis" }
      if$
    }
  if$
  format.thesis.type output.nonnull
  school output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {misc}
{
%%%%
%%%% jssst
  author "author" required.argument
  title  "title"  required.argument
%%%%
  output.bibitem
  format.authors 
  ": " *
  title output
  howpublished output
  format.date output
  new.block
  note output
  fin.entry
  empty.misc.check
}

FUNCTION {phdthesis}
{
%%%%
  author   "author"  required.argument
  title    "title"   required.argument
  school   "school"  required.argument
  year     "year"    required.argument
%%%%
  output.bibitem 
  format.authors ": " *
  title emphasize output
  author empty$
    { "PhD Thesis" }
    { author is.kanji
        { "m_" }
        { "PhD Thesis" }
      if$
    }
  if$
  format.thesis.type output.nonnull
  school output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {proceedings}
{
%%%%
  title  "title"  required.argument
  year   "year"   required.argument

  optional.series.volume.number.argument
%%%% jssst
  editor  "editor"
  organization "organization"
      required.exclusive.or.argument 
%%%%
  output.bibitem 
  editor empty$
    { organization }
    { format.editors }
  if$
  ": " *
  title emphasize output
  output.series.volume.number
  address output
  editor empty$
    'skip$
    { organization output }
  if$
  publisher output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {techreport}
{
%%%%
  author   "author"   required.argument
  title    "title"    required.argument
  institution "institution" required.argument
  year     "year"     required.argument
%%%%
  output.bibitem
  format.authors  ": " *
  title output
  format.tr.number output.nonnull
  institution output
  address output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {unpublished}
{
%%%%
  author   "author"   required.argument
  title    "title"    required.argument
  note     "note"     required.argument
%%%%
  output.bibitem
  format.authors ": " *
  title output
  format.date output
  new.block
  note output
  fin.entry
}

FUNCTION {default.type} { misc }

MACRO {jan} {"January"}

MACRO {feb} {"February"}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"August"}

MACRO {sep} {"September"}

MACRO {oct} {"October"}

MACRO {nov} {"November"}

MACRO {dec} {"December"}

MACRO {acmcs} {"ACM Computing Surveys"}

MACRO {acta} {"Acta Informatica"}

MACRO {cacm} {"Communications of the ACM"}

MACRO {ibmjrd} {"IBM Journal of Research and Development"}

MACRO {ibmsj} {"IBM Systems Journal"}

MACRO {ieeese} {"IEEE Transactions on Software Engineering"}

MACRO {ieeetc} {"IEEE Transactions on Computers"}

MACRO {ieeetcad}
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}

MACRO {ipl} {"Information Processing Letters"}

MACRO {jacm} {"Journal of the ACM"}

MACRO {jcss} {"Journal of Computer and System Sciences"}

MACRO {scp} {"Science of Computer Programming"}

MACRO {sicomp} {"SIAM Journal on Computing"}

MACRO {tocs} {"ACM Transactions on Computer Systems"}

MACRO {tods} {"ACM Transactions on Database Systems"}

MACRO {tog} {"ACM Transactions on Graphics"}

MACRO {toms} {"ACM Transactions on Mathematical Software"}

MACRO {toois} {"ACM Transactions on Office Information Systems"}

MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}

MACRO {tcs} {"Theoretical Computer Science"}

READ

STRINGS { longest.label }

INTEGERS { number.label longest.label.width }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #1 'number.label :=
  #0 'longest.label.width :=
}

FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
  number.label #1 + 'number.label :=
  label width$ longest.label.width >
    { label 'longest.label :=
      label width$ 'longest.label.width :=
    }
    'skip$
  if$
}

EXECUTE {initialize.longest.label}

ITERATE {longest.label.pass}

FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nobu-prosym.aux	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,12 @@
+\relax 
+\newlabel{fig:cs}{{1}{1}}
+\bibcite{1}{1}
+\bibcite{2}{2}
+\newlabel{fig:factorial}{{2}{2}}
+\newlabel{fig:continue}{{3}{2}}
+\newlabel{fig:fastcall}{{4}{2}}
+\bibcite{3}{3}
+\bibcite{4}{4}
+\bibcite{5}{5}
+\bibcite{6}{6}
+\bibcite{7}{7}
Binary file nobu-prosym.dvi has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nobu-prosym.log	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,202 @@
+This is e-pTeX, Version 3.1415926-p3.2-110415-2.3 (utf8.euc) (TeX Live 2011) (format=platex 2011.11.10)  17 NOV 2011 08:38
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**nobu-prosym.tex
+(./nobu-prosym.tex
+pLaTeX2e <2006/11/10> (based on LaTeX2e <2009/09/24> patch level 0)
+Babel <v3.8l> and hyphenation patterns for english, dumylang, nohyphenation, af
+rikaans, arabic, basque, bulgarian, catalan, pinyin, croatian, czech, danish, d
+utch, ukenglish, usenglishmax, esperanto, estonian, farsi, finnish, french, gal
+ician, german, ngerman, swissgerman, hungarian, icelandic, indonesian, interlin
+gua, irish, italian, kurmanji, latin, latvian, lithuanian, mongolian, mongolian
+lmc, bokmal, nynorsk, polish, portuguese, romanian, russian, serbian, serbianc,
+ slovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian
+, welsh, ancientgreek, ibycus, monogreek, greek, coptic, loaded.
+(./ipsjpapers.cls
+Document Class: ipsjpapers 2001/05/01 ver 2.08
+(./ipsjpapers.sty
+\old@latex@skip=\skip41
+\@Q=\dimen118
+\jfsize=\count81
+\jspaceskip=\dimen119
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <10> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 553.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <10> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 553.
+\@mojihaba=\dimen120
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <9> on input line 570.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <6> on input line 570.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <5> on input line 570.
+\@abstractbox=\box41
+\@titlewidth=\dimen121
+\@eabstractbox=\box42
+\mkt@prevdepth=\dimen122
+\mkt@titlebox=\box43
+\mkt@cnta=\count82
+\mkt@cntb=\count83
+\mkt@sname=\count84
+\mkt@gname=\count85
+\mkt@boxa=\box44
+\mkt@namewidth=\dimen123
+\c@affi@footnote=\count86
+\c@volpageoffset=\count87
+\c@volume=\count88
+\c@number=\count89
+\c@year=\count90
+\@leftcolumnfootnote=\box45
+\@rightcolumnfootnote=\box46
+\opt@baselineskip=\skip42
+\bio@picbox=\box47
+\bio@colht=\dimen124
+\bio@splitheight=\dimen125
+\bio@maxgap=\dimen126
+\bio@lastgap=\dimen127
+\bio@th=\dimen128
+\bio@lhA=\dimen129
+\bio@hA=\dimen130
+\bio@hB=\dimen131
+\bio@lh=\dimen132
+\bio@rh=\dimen133
+\bio@tempdim=\dimen134
+\bio@pbox=\insert233
+ (./ipsjcommon.sty
+\c@section=\count91
+\c@subsection=\count92
+\c@subsubsection=\count93
+\c@paragraph=\count94
+\c@subparagraph=\count95
+\bib@adjustheight=\dimen135
+\c@figure=\count96
+\c@table=\count97
+\cap@linewidth=\dimen136
+\cap@hsize=\dimen137
+\cap@prevgraf=\count98
+\cap@box=\box48
+\PF@fnotectr=\count99
+\PF@page=\count100
+\adj@boxa=\box49
+\adj@boxb=\box50
+\adj@height=\dimen138
+\adj@deadcycle=\count101
+)))
+(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks15
+)
+(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: dvipdfmx.def on input line 91.
+
+(/usr/local/texlive/2011/texmf-dist/tex/latex/dvipdfmx-def/dvipdfmx.def
+File: dvipdfmx.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
+))
+\Gin@req@height=\dimen139
+\Gin@req@width=\dimen140
+)
+(/usr/local/texlive/2011/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2006/04/12  ver 3.3  Verb mode for urls, etc.
+) (./nobu-prosym.aux)
+\openout1 = `nobu-prosym.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 36.
+LaTeX Font Info:    ... okay on input line 36.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 36.
+LaTeX Font Info:    ... okay on input line 36.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 36.
+LaTeX Font Info:    ... okay on input line 36.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 36.
+LaTeX Font Info:    ... okay on input line 36.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 36.
+LaTeX Font Info:    ... okay on input line 36.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 36.
+LaTeX Font Info:    ... okay on input line 36.
+LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 36.
+LaTeX Font Info:    ... okay on input line 36.
+LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 36.
+LaTeX Font Info:    ... okay on input line 36.
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <14.4> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 91.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <14.4> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 91.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <10.95> on input line 91.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <8> on input line 91.
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <12> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 91.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <12> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 91.
+
+
+Class ipsjpapers Warning: \etitle is too wide. Break line(s) by \\ on input lin
+e 91.
+
+
+LaTeX Font Warning: Font shape `JT1/mc/m/sc' undefined
+(Font)              using `JT1/mc/m/n' instead on input line 91.
+
+
+LaTeX Font Warning: Font shape `JY1/mc/m/sc' undefined
+(Font)              using `JY1/mc/m/n' instead on input line 91.
+
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <7> on input line 91.
+File: figure/codesegment.eps Graphic file (type eps)
+<figure/codesegment.eps>
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <7> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 121.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <7> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 121.
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <9> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 126.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <9> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 126.
+File: figure/factorial.eps Graphic file (type eps)
+ <figure/factorial.eps> [1
+
+
+]
+
+LaTeX Warning: Reference `continue' on page 2 undefined on input line 186.
+
+File: figure/continuation.eps Graphic file (type eps)
+<figure/continuation.eps>
+File: figure/fastcall.eps Graphic file (type eps)
+ <figure/fastcall.eps>
+Overfull \hbox (2.42252pt too wide) in paragraph at lines 217--218
+ [] 
+ []
+
+[2] [3] (./nobu-prosym.aux)
+
+LaTeX Font Warning: Some font shapes were not available, defaults substituted.
+
+
+LaTeX Warning: There were undefined references.
+
+ ) 
+Here is how much of TeX's memory you used:
+ 1175 strings out of 494163
+ 14001 string characters out of 3160585
+ 70551 words of memory out of 3000000
+ 4597 multiletter control sequences out of 15000+200000
+ 17620 words of font info for 68 fonts, out of 3000000 for 9000
+ 745 hyphenation exceptions out of 8191
+ 30i,10n,22p,207b,303s stack positions out of 5000i,500n,10000p,200000b,50000s
+
+Output written on nobu-prosym.dvi (3 pages, 13852 bytes).
Binary file nobu-prosym.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nobu-prosym.tex	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1 @@
+\documentclass[private]{ipsjpapers}
%\documentstyle{ipsjpapers}
\usepackage[dvipdfmx]{graphicx}
\usepackage{url}

% 巻数,号数などの設定
\setcounter{巻数}{41}
\setcounter{号数}{6}
\setcounter{volpageoffset}{1234}
\受付{12}{2}{4}
\採録{12}{5}{11}

% ユーザが定義したマクロなど.
\makeatletter
\let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY}
\def\<{\(\langle\)}
\def\>{\(\rangle\)}
\def\|{\verb|}
\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
\def\LATEX{\iLATEX\Large}
\def\LATEx{\iLATEX\normalsize}
\def\LATex{\iLATEX\small}
\def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
\def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi}
\def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi}
\def\Quote{\list{}{}\item[]}
\let\endQuote\endlist
\def\TT{\if@LaTeX@e\tt\fi}
\def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else
	$\backslash$#1\fi}

%\checklines	% 行送りを確認する時に使用

\begin{document}%{
% 和文表題
\title[Continuation based C の GCC 4.6 上の実装について]%
	{Continuation based C の GCC 4.6 上の実装について}
% 英文表題
\etitle{The implementation of Continuation based C Compiler on GCC 4.6}

% 所属ラベルの定義
\affilabel{URYUKYU}{琉球大学\\University of the Ryukyu}

% 和文著者名
\author{大城 信康\affiref{URYUKYU}\nomember\and
	河野 真治\affiref{URYUKYU}\member{19841765}}
	

% 英文著者名
\eauthor{Nobuyasu Oshiro\affiref{URYUKYU}\and
	Shinji Kono\affiref{URYUKYU}}

% 連絡先(投稿時に必要.製版用では無視される.)
\contact{大城 信康\\
	〒903-0213 沖縄県中頭郡西原町字千原1番地\\
	琉球大学 情報工学科\\
        TEL: (098)895-8723\qquad FAX: (098)895-8727\\
	email: dimolto@cr.ie.u-ryukyu.ac.jp}

% 和文概要
\begin{abstract}
GCC-4.6 をベースとした CbC コンパイラの実装を行った.
CbC のコンパイラは GCC-4.2 ベースのコンパイラが2008年に開発されており,
以来 GCC のアップデートにあわせて CbC のコンパイラもアップデートが行われてきた.
今回は GCC-4.6 への実装を行った.
本論文では GCC-4.6 への CbC の具体的な実装について述べる。


%当研究室では継続を基本としたプログラミング言語 Continuation basede C (以下CbC) を開発している.
%また,CbC 自体の開発と共に CbC のコンパイラの開発も行っている.
%お陰で GCC の最適化やデバッグの機能を CbC のプログラミングで扱うことができるようになった.


\end{abstract}


% 英文概要
\begin{eabstract}
We implemented Continuation based C Compiler on GCC-4.6.
CbC Compiler on GCC-4.2 was developed on 2008.
Since then we kept to update it.
In this paper, we introduce implemented Continuation based C Compiler on GCC-4.6.

%Continuation based C is programming language. It is developing our laboratory.

\end{eabstract}

% 表題などの出力
\maketitle

%}{

% 本文はここから始まる
\section{歴史的経緯}
当研究室では,継続により処理を行うプログラミング言語 Continuation based C (以下CbC) を開発している.
CbC の構文は C と同じであるが,継続によりループ制御や関数コールを取り除かれる.

2008年の研究において GCC-4.2 ベースの CbC コンパイラが開発された.
以来,GCC のアップデートに合わせて GCC ベースの CbC コンパイラのアップデートを行って来ている.
お陰で,GCC の最適化やデバッガの機能を使うことができより実用的な CbC プログラミングが行えるようになった.

しかし,未だに GCC ベースのコンパイラには幾つかのバグがある.
今回,GCC-4.6 への実装も兼ねながら問題の部分の改善を行った.
本論文では, CbC,GCC の簡単な説明と,GCC-4.6 への実装を具体的に述べる.


%}{

\section{Continuation based C (CbC)}
Continuation based C (以下CbC) は当研究室で開発しているプログラミング言語である.
構文は C と同じであるが,ループ制御や関数コールを取り除き継続(goto)を用いている.
また,コードセグメント単位で処理を記述するという特徴がある.
図\ref{fig:cs}は CbC におけるプログラムの処理の流れを表している.

\begin{figure}[htpb]
  \begin{center}
\scalebox{0.50}{\includegraphics{figure/codesegment.eps}}
  \end{center}
  \caption{コードセグメント間の継続(goto)}
  \label{fig:cs}
\end{figure}


\subsection{継続(goto)}
コードセグメントへと移った処理は C の関数と違って呼び出し元の関数に戻ることはない.
コードセグメントは自身の処理が終われば goto により次のコードセグメントでの処理に移る.
goto によるコードセグメント間の移動を継続と言う.


\subsection{コードセグメント(code segment)}
CbC におけるプログラムの基本単位としてコードセグメントという概念がある.
コードセグメントの記述の仕方は C の関数と同じだが, 型に“\_\_code”を使って宣言を行うところだけが違う.
関数と同じように引数を持たせて継続させることもできる.
しかし,関数とは違ってリターンを行わない為返り値を取得することはできない.
図\ref{fig:factorial}は CbC で書いたプログラムの例である.
与えられた数 x の階上を計算して出力するプログラムとなっている.

\begin{figure}[htpb]
  \begin{center}
\scalebox{0.50}{\includegraphics{figure/factorial.eps}}
  \end{center}
  \caption{CbC のプログラム例}
  \label{fig:factorial}
\end{figure}


%コードセグメントは関数よりも小さな単位で記述される為,最適化がされやすくなる.
%コードセグメントの記述の仕方は C の関数と同じで,引数を持たせて継続を行うことができる.



\section{Gnu Compiler Collection}
GCC-4.6 への実装の前に,GCC によるコンパイルの一連の流れについて触れておく.

\subsection{3つの中間言語}
GCC は内部で Generic Tree, GIMPLE, RTL の3つの中間言語を扱われる.

\subsubsection{Generic Tree}
まず,GCC で読み込まれたソースコードは Generic Tree 呼ばれる構文木のデータ構造で表される.
図...に Generic Tree で表現された例を示す.

\subsubsection{GIMPLE}
Generic Tree により表現されたデータは次に GIMPLE という構文木へと変換される.
GIMPLE は Generic Tree より制約がかかった状態で作成される.
制約は「1つの枝に4つ以上の子を持たせない」といったもので,
GIMPLE へと変換されたデータは Generic Tree より簡単な命令で表されることになる.


\subsubsection{RTL}



Gneric Tree から GIMPLE, そして RTL へとデータは変換され最後にアセンブリ言語で出力される.



\section{GCC-4.6 への実装}


\subsection{Tail Call Elimination}
CbC の継続の実装には GCC の最適化の1つである Tail Call Elimination (末尾除去) が使われる.
Tail Call Elimination とは関数の最後の処理で別の関数呼び出しを行った際に,
call ではなく jmp を用いて大元の関数へ戻るようにする最適化のことである.
図\ref{continue}は Tail Call Elimination が行われた際のプログラムの処理を表している.


\begin{figure}[htpb]
  \begin{center}
\scalebox{0.50}{\includegraphics{figure/continuation.eps}}
  \end{center}
  \caption{Tail Call Elimination}
  \label{fig:continue}
\end{figure}



\subsubsection{expand\_call}



\subsection{引数渡し}
通常コードセグメントの継続において,引数は C の関数と同じスタックを用いて渡される.
GCC には引数渡しをスタックではなくレジスタを用いて行う機能として fastcall がある.
fastcall を用いてコードセグメントを宣言することで,レジスタを用いた速度の向上を図る.

\subsubsection{fastcall}
コードセグメントの引数渡しを fastcall によりできるだけレジスタを用いて行うようにする.
C において fastcall を用いる場合は関数にキーワード “\_\_attribute\_\_ ((fastcall))” をつけて行う.
だが,コードセグメントを全てこのキーワードをつけて宣言することは実用できではない.
そこで,コードセグメントで宣言された場合,fastcall が自動で付くように実装を行う.
図\ref{fig:fastcall}はコードセグメントに fastcall 属性を付与しているソースである.

\begin{figure}[htpb]
  \begin{center}
\scalebox{0.35}{\includegraphics{figure/fastcall.eps}}
  \end{center}
  \caption{fastcall属性付与}
  \label{fig:fastcall}
\end{figure}

if 文で条件を決めているのは,64 bit の場合 fastcall が標準で行われ為である.


\begin{thebibliography}{10}

\bibitem{1}{河野真治}:
“継続を基本とした言語 CbC の gcc 上の実装”. 日本ソフトウェア科学会第 19 回大会論文集, Sep, 2002

\bibitem{2}{河野真治}:
“継続を持つ C の回言語によるシステム記述”. 日本ソフトウェア科学会第 17 回大会論文集, Sep, 2000

\bibitem{3}{与儀健人,河野真治}:
“Continuation based CコンパイラのGCC-4.2による実装”. 琉球大学 情報工学科 学位論文, 2008

\bibitem{4}{与儀健人,河野真治}:
“組み込み向け言語Continuation based C のGCC上の実装”. 琉球大学大学院 理工学研究科 学位論文(修士), 2010

\bibitem{5}{下地篤樹,河野真治}:
“線形時相論理を用いたContinuation based C プログラムの検証”. 琉球大学大学院 理工学研究科 情報工学専攻 学位論文(修士), 2008

\bibitem{6}{楊挺,河野真治}:
“Continuation based C の実装”. 琉球大学大学院 理工学研究科 情報工学専攻 学位論文(修士), 2002

\bibitem{7}{GNU Compiler Collection (GCC) Internals}:
“http://gcc.gnu.org/onlinedocs/gccint/”


\end{thebibliography}


\begin{biography}
\nomember{大城 信康}
1989年生.
2008年琉球大学工学部情報工学科入学
%
\member{河野 真治}
1959年生.
1989年東京大学大学院情報工学課程修了 (工学博士)
同年Sony Computer Science Laboratory, Inc.   入社.
1996年より琉球大学工学部准教授
工学博士. ACM会員.
\end{biography}
\end{document}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nobu-prosym.tex~	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1 @@
+\documentclass[private]{ipsjpapers}
%\documentstyle{ipsjpapers}
\usepackage[dvipdfmx]{graphicx}
\usepackage{url}

% 巻数,号数などの設定
\setcounter{巻数}{41}
\setcounter{号数}{6}
\setcounter{volpageoffset}{1234}
\受付{12}{2}{4}
\採録{12}{5}{11}

% ユーザが定義したマクロなど.
\makeatletter
\let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY}
\def\<{\(\langle\)}
\def\>{\(\rangle\)}
\def\|{\verb|}
\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
\def\LATEX{\iLATEX\Large}
\def\LATEx{\iLATEX\normalsize}
\def\LATex{\iLATEX\small}
\def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
\def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi}
\def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi}
\def\Quote{\list{}{}\item[]}
\let\endQuote\endlist
\def\TT{\if@LaTeX@e\tt\fi}
\def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else
	$\backslash$#1\fi}

%\checklines	% 行送りを確認する時に使用

\begin{document}%{
% 和文表題
\title[Continuation based C の GCC 4.6 上の実装について]%
	{Continuation based C の GCC 4.6 上の実装について}
% 英文表題
\etitle{The implementation of Continuation based C Compiler on GCC 4.6}

% 所属ラベルの定義
\affilabel{URYUKYU}{琉球大学\\University of the Ryukyu}

% 和文著者名
\author{大城 信康\affiref{URYUKYU}\nomember\and
	河野 真治\affiref{URYUKYU}\member{19841765}}
	

% 英文著者名
\eauthor{Nobuyasu Oshiro\affiref{URYUKYU}\and
	Shinji Kono\affiref{URYUKYU}}

% 連絡先(投稿時に必要.製版用では無視される.)
\contact{大城 信康\\
	〒903-0213 沖縄県中頭郡西原町字千原1番地\\
	琉球大学 情報工学科\\
        TEL: (098)895-8723\qquad FAX: (098)895-8727\\
	email: dimolto@cr.ie.u-ryukyu.ac.jp}

% 和文概要
\begin{abstract}
GCC-4.6 をベースとした CbC コンパイラの実装を行った.
CbC のコンパイラは GCC-4.2 ベースのコンパイラが2008年に開発されており,
以来 GCC のアップデートにあわせて CbC のコンパイラもアップデートが行われてきた.
今回は GCC-4.6 への実装を行った.
本論文では GCC-4.6 への CbC の具体的な実装について述べる。


%当研究室では継続を基本としたプログラミング言語 Continuation basede C (以下CbC) を開発している.
%また,CbC 自体の開発と共に CbC のコンパイラの開発も行っている.
%お陰で GCC の最適化やデバッグの機能を CbC のプログラミングで扱うことができるようになった.


\end{abstract}


% 英文概要
\begin{eabstract}
We implemented Continuation based C Compiler on GCC-4.6.
CbC Compiler on GCC-4.2 was developed on 2008.
Since then we kept to update it.
In this paper, we introduce implemented Continuation based C Compiler on GCC-4.6.

%Continuation based C is programming language. It is developing our laboratory.

\end{eabstract}

% 表題などの出力
\maketitle

%}{

% 本文はここから始まる
\section{歴史的経緯}
当研究室では,継続により処理を行うプログラミング言語 Continuation based C (以下CbC) を開発している.
CbC の構文は C と同じであるが,継続によりループ制御や関数コールを取り除かれる.

2008年の研究において GCC-4.2 ベースの CbC コンパイラが開発された.
以来,GCC のアップデートに合わせて GCC ベースの CbC コンパイラのアップデートを行って来ている.
お陰で,GCC の最適化やデバッガの機能を使うことができより実用的な CbC プログラミングが行えるようになった.

しかし,未だに GCC ベースのコンパイラには幾つかのバグがある.
今回,GCC-4.6 への実装も兼ねながら問題の部分の改善を行った.
本論文では, CbC,GCC の簡単な説明と,GCC-4.6 への実装を具体的に述べる.


%}{

\section{Continuation based C (CbC)}
Continuation based C (以下CbC) は当研究室で開発しているプログラミング言語である.
構文は C と同じであるが,ループ制御や関数コールを取り除き継続(goto)を用いている.
また,コードセグメント単位で処理を記述するという特徴がある.
図\ref{fig:cs}は CbC におけるプログラムの処理の流れを表している.

\begin{figure}[htpb]
  \begin{center}
\scalebox{0.50}{\includegraphics{figure/codesegment.eps}}
  \end{center}
  \caption{コードセグメント間の継続(goto)}
  \label{fig:cs}
\end{figure}


\subsection{継続(goto)}
コードセグメントへと移った処理は C の関数と違って呼び出し元の関数に戻ることはない.
コードセグメントは自身の処理が終われば goto により次のコードセグメントでの処理に移る.
goto によるコードセグメント間の移動を継続と言う.


\subsection{コードセグメント(code segment)}
CbC におけるプログラムの基本単位としてコードセグメントという概念がある.
コードセグメントの記述の仕方は C の関数と同じだが, 型に“\_\_code”を使って宣言を行うところだけが違う.
関数と同じように引数を持たせて継続させることもできる.
しかし,関数とは違ってリターンを行わない為返り値を取得することはできない.
図\ref{fig:factorial}は CbC で書いたプログラムの例である.
与えられた数 x の階上を計算して出力するプログラムとなっている.

\begin{figure}[htpb]
  \begin{center}
\scalebox{0.50}{\includegraphics{figure/factorial.eps}}
  \end{center}
  \caption{CbC のプログラム例}
  \label{fig:factorial}
\end{figure}


%コードセグメントは関数よりも小さな単位で記述される為,最適化がされやすくなる.
%コードセグメントの記述の仕方は C の関数と同じで,引数を持たせて継続を行うことができる.



\section{Gnu Compiler Collection}
GCC-4.6 への実装の前に,GCC によるコンパイルの一連の流れについて触れておく.

\subsection{3つの中間言語}
GCC は内部で Generic Tree, GIMPLE, RTL の3つの中間言語を扱われる.

\subsubsection{Generic Tree}
まず,GCC で読み込まれたソースコードは Generic Tree 呼ばれる構文木のデータ構造で表される.
図...に Generic Tree で表現された例を示す.

\subsubsection{GIMPLE}
Generic Tree により表現されたデータは次に GIMPLE という構文木へと変換される.
GIMPLE は Generic Tree より制約がかかった状態で作成される.
制約は「1つの枝に4つ以上の子を持たせない」といったもので,
GIMPLE へと変換されたデータは Generic Tree より簡単な命令で表されることになる.


\subsubsection{RTL}



Gneric Tree から GIMPLE, そして RTL へとデータは変換され最後にアセンブリ言語で出力される.



\section{GCC-4.6 への実装}


\subsection{Tail Call Elimination}
CbC の継続の実装には GCC の最適化の1つである Tail Call Elimination (末尾除去) が使われる.
Tail Call Elimination とは関数の最後の処理で別の関数呼び出しを行った際に,
call ではなく jmp を用いて大元の関数へ戻るようにする最適化のことである.
図\ref{continue}は Tail Call Elimination が行われた際のプログラムの処理を表している.


\begin{figure}[htpb]
  \begin{center}
\scalebox{0.50}{\includegraphics{figure/continuation.eps}}
  \end{center}
  \caption{Tail Call Elimination}
  \label{fig:continue}
\end{figure}



\subsubsection{expand\_call}



\subsection{引数渡し}
通常コードセグメントの継続において,引数は C の関数と同じスタックを用いて渡される.
GCC には引数渡しをスタックではなくレジスタを用いて行う機能として fastcall がある.
fastcall を用いてコードセグメントを宣言することで,レジスタを用いた速度の向上を図る.

\subsubsection{fastcall}
コードセグメントの引数渡しを fastcall によりできるだけレジスタを用いて行うようにする.
C において fastcall を用いる場合は関数にキーワード “\_\_attribute\_\_ ((fastcall))” をつけて行う.
だが,コードセグメントを全てこのキーワードをつけて宣言することは実用できではない.
そこで,コードセグメントで宣言された場合,fastcall が自動で付くように実装を行う.
図\ref{fig:fastcall}はコードセグメントに fastcall 属性を付与しているソースである.

\begin{figure}[htpb]
  \begin{center}
\scalebox{0.35}{\includegraphics{figure/fastcall.eps}}
  \end{center}
  \caption{fastcall属性付与}
  \label{fig:fastcall}
\end{figure}

if 文で条件を決めているのは,64 bit の場合 fastcall が標準で行われ為である.


\begin{thebibliography}{10}

\bibitem{1}{河野真治}:
“継続を基本とした言語 CbC の gcc 上の実装”. 日本ソフトウェア科学会第 19 回大会論文集, Sep, 2002

\bibitem{2}{河野真治}:
“継続を持つ C の回言語によるシステム記述”. 日本ソフトウェア科学会第 17 回大会論文集, Sep, 2000

\bibitem{3}{与儀健人,河野真治}:
“Continuation based CコンパイラのGCC-4.2による実装”. 琉球大学 情報工学科 学位論文, 2008

\bibitem{4}{与儀健人,河野真治}:
“組み込み向け言語Continuation based C のGCC上の実装”. 琉球大学大学院 理工学研究科 学位論文(修士), 2010

\bibitem{5}{下地篤樹,河野真治}:
“線形時相論理を用いたContinuation based C プログラムの検証”. 琉球大学大学院 理工学研究科 情報工学専攻 学位論文(修士), 2008

\bibitem{6}{楊挺,河野真治}:
“Continuation based C の実装”. 琉球大学大学院 理工学研究科 情報工学専攻 学位論文(修士), 2002

\bibitem{7}{GNU Compiler Collection (GCC) Internals}:
“http://gcc.gnu.org/onlinedocs/gccint/”


\end{thebibliography}


\begin{biography}
\nomember{大城 信康}
1989年生.
2008年琉球大学工学部情報工学科入学
%
\member{河野 真治}
1959年生.
1989年東京大学大学院情報工学課程修了 (工学博士)
同年Sony Computer Science Laboratory, Inc.   入社.
1996年より琉球大学工学部准教授
工学博士. ACM会員.
\end{biography}
\end{document}
\ No newline at end of file
Binary file sample.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sample.tex	Thu Nov 17 08:38:35 2011 +0900
@@ -0,0 +1,1 @@
+\documentstyle{ipsjpapers}

% 巻数,号数などの設定
\setcounter{巻数}{41}
\setcounter{号数}{6}
\setcounter{volpageoffset}{1234}
\受付{12}{2}{4}
\採録{12}{5}{11}

% ユーザが定義したマクロなど.
\makeatletter
\let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY}
\def\<{\(\langle\)}
\def\>{\(\rangle\)}
\def\|{\verb|}
\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
\def\LATEX{\iLATEX\Large}
\def\LATEx{\iLATEX\normalsize}
\def\LATex{\iLATEX\small}
\def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
\def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi}
\def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi}
\def\Quote{\list{}{}\item[]}
\let\endQuote\endlist
\def\TT{\if@LaTeX@e\tt\fi}
\def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else
	$\backslash$#1\fi}

%\checklines	% 行送りを確認する時に使用
\begin{document}%{
% 和文表題
\title[{\protect\LaTeX} による論文作成のガイド]%
	{{\protect\LATEX} による論文作成のガイド(第3版)}
% 英文表題
\etitle{How to Typeset Your Papers in {\LATEx} (Version 3)}
% 所属ラベルの定義
\affilabel{TUT}{豊橋技術科学大学\\Toyohashi University of Technology}
\paffilabel{Princeton}{プリンストン高等研究所(嘘です)\\
	Institute for Advanced Study, Princeton (just joke)}
\affilabel{NTT}{NTT基礎研究所\\NTT Basic Research Laboratories}
% 和文著者名
\author{中島 浩\affiref{TUT}\affiref{Princeton}\member{8104129}\and
	斉藤 康己\affiref{NTT}\member{8003547}}
	
% 英文著者名
\eauthor{Hiroshi Nakashima\affiref{TUT}\affiref{Princeton}\and
	Yasuki Saito\affiref{NTT}}

% 連絡先(投稿時に必要.製版用では無視される.)
\contact{中島 浩\\
	〒441-8580 豊橋市天伯町雲雀ヶ丘1-1\\
	豊橋技術科学大学 情報工学系\\
	TEL: (0532)44-6753\qquad FAX: (0532)44-6757\\
	email: nakasima@tutics.tut.ac.jp}

% 和文概要
\begin{abstract}
このパンフレットは,情報処理学会論文誌(以後,論文誌と呼ぶ)に投稿する論文,
並びに掲載が決定した論文の最終版を,日本語 {\LaTeX} を用いて作成し提出するた
めのガイドである.このパンフレットでは,論文作成のためのスタイルファイルにつ
いて解説している.また,このパンフレット自体も論文と同じ方法で作成されている
ので,必要に応じてスタイルファイルとともに配布するソース・ファイルを参照され
たい.
\end{abstract}
% 英文概要
\begin{eabstract}
This pamphlet is a guide to produce a draft to be submitted to IPSJ Journal
and Transactions and the final camera-ready manuscript of a paper to appear
in the Journal\slash Transactions, using Japanese {\LaTeX} and special style
files.  Since the pamphlet itself is produced with the style files, it will
help you to refer its source file which is distributed with the style files.
\end{eabstract}

% 表題などの出力
\maketitle

%}{

% 本文はここから始まる
\section{はじめに}
\stepcounter{footnote}
\footnotetext{実際の著者は情報処理学会 論文誌編集委員会である.}

情報処理学会では,論文誌を迅速かつ低コストで出版するために {\LaTeX} による製版
を採用している.この製版方式では,著者が作成した {\LaTeX} ソースが基本的にはそ
のまま最終的な製版プロセスに使用される.したがって,多数の読者に親しまれてき
た体裁を継承し,読み易い論文誌を出版するためには,著者の方々の協力が不可欠で
ある.

一方,著者にとってのメリットとしては,活字製版では避け難い製版時の誤りがなく
なり,校正の手間が大幅に削減されることがあげられる.また専用のスタイルファイ
ルと通常使われる {\LaTeX} のコマンドを使えば,簡単に論文誌の体裁に則った出力
が得られるので,日頃 {\LaTeX} で文書を作成している多くの著者には無理なく受け
入れられるものと期待している.さらに,投稿用のスタイルファイルも用意されてお
り,最終版作成のための修正は最小限となるだけでなく,以前に比べて格段に読み易
い草稿を得ることができる.これは自分の原稿をチェックする著者だけではなく,査
読者にとっても大きなメリットである.

なお,論文誌スタイルには通常の {\LaTeX} に追加されたコマンドがあり,その多く
は論文製版に不可欠なものである.またスタイルファイルだけでは対処しきれない体
裁上の注意事項もいくつかある.したがって,著者も含めて論文誌作成に関わる全て
の人々の労力を軽減するためにも,原稿を作成する前にこのガイドを{\bf 良く読ん
で規定を厳密に守っていただきたい}.

%}{

\section{投稿から出版まで}\label{sec:Enum}\label{sec:item}

投稿する論文の作成から,論文が掲載された論文誌が出版されるまでの流れは,以下
の通りである.
%
\begin{Enumerate}%{
\item {\bf スタイルファイルの取得}\\
任意の電子メールを \|guide@ipsj.or.jp| に送ると,スタイルファイルなどからなる
論文作成キットをWWW, anonymous-FTP, 電子メールなどによって取得する方法を説明
した返信が届く.なお,インターネットにアクセスできない方は,学会事務局に相談
していただきたい.

このキットには以下のファイルが含まれている.
%
\begin{itemize}%{
\item\|ipsjpapers.sty| : 製版用スタイル
\item\|ipsjpapers.cls| : {\LATEXe} 用製版用スタイル
\item\|ipsjdrafts.sty| : 投稿用スタイル
\item\|ipsjcommon.sty| : 製版/投稿用補助スタイル
\item\|ipsjsort.bst  | : jBib{\TeX}スタイル(著者名順)
\item\|ipsjunsrt.bst | : jBib{\TeX}スタイル(出現順)
\item\|sample.tex    | : このガイドのソース(製版用)
\item\|dsample.tex   | : このガイドのソース(投稿用)
\item\|esample.tex   | : 英文ガイドのソース(製版用)
\item\|desample.tex  | : 英文ガイドのソース(投稿用)
\item\|bibsample.bib | : 文献リストのサンプル
\item\|ebibsample.bib| : 英文文献リストのサンプル
\end{itemize}%}
%
キットは Unix 用,DOS 用,Macintosh 用などが用意されており,著者の作業環境
に応じたものを選択できるようになっている.

\item {\bf 投稿用原稿の作成と投稿}\\
このガイドにしたがって {\LaTeX} ソースを作成してハードコピーを作る.学会へは
{\bf このハードコピーを「論文誌執筆案内」に定められた部数だけ送付する}
\footnote {電子的な投稿を可能にすることも検討されている.}.なお著者名など,
別々のページとすべきものは自動的に別ページに出力される.

\item {\bf 製版用原稿の作成}\\
採録が決定したら,査読者からのコメントなどにしたがって原稿を修正し,著者紹介
など投稿時になかった項目があれば追加する.また図表などのレイアウトも最終的な
ものとする.なお後の校正の手間を最小にするために,{\bf この段階で記述の誤り
などを完全に除去するように綿密なチェックをお願いしたい}.

\item {\bf 製版用原稿とファイルの送付}\\
学会へは {\bf {\LaTeX} ファイル(をまとめたもの)とハードコピーの双方を}送付
する.送付するファイル群の標準的な構成は \|.tex| と \|.bbl| であり,この他に 
 PostScript ファイルや特別なスタイルファイルがあれば付加する.なお \|.tex| は
印刷業者が修正することがあるので,{\bf 必ず一つのファイルにしていただきたい}.
また必要なファイルが全てそろっていること,特に特別なスタイルファイルに洩れが
ないことを,注意深く確認して頂きたい.

ファイルの送付方法などについては,採録通知とともに学会事務局から送られる指示
にしたがっていただきたい.

\item {\bf 著者校正}\\
学会では用語や用字を一定の基準にしたがって修正することがあり,また {\LaTeX}
の実行環境の差異などによって著者が作成したハードコピーと実際の製版結果が微妙
に異なることがある.これらの修正や差異が問題ないかを最終的に確認するために,
著者にゲラ刷りが送られるので,もし問題があれば朱書によって指摘して返送する.
なお{\bf この段階での記述誤りの修正は原則として認められない}ので,原稿送付時
に細心の注意を払っていただきたい.

\item {\bf 印刷・出版}\\
著者の校正に基づき最終的な製版を行ない,印刷,出版する.
\end{Enumerate}%}

%}{

\section{{\protect\LATex}の実行環境}\label{sec:ITEM}

スタイルファイルはNTTの斉藤康己氏による j{\TeX}(いわゆるNTT版)と,アスキー
社による日本語 {\TeX}(いわゆるアスキー版)のどちらにも対応しているので,著者
の {\LaTeX} 環境に関わらず同じスタイルファイルを使用できる.

NTT版およびアスキー版の各々について,以下のバージョンでの動作確認を行なって
いる.
%
\begin{ITEMIZE}%{
\item
NTT版${}={}${j\TeX} 1.52${}+{}${\LaTeX} 2.09
\item 
アスキー版${}={}${\TeX} 2.99-j1.7${}+{}${\LaTeX} 2.09
\end{ITEMIZE}%}
%
これ以前の版についても動作すると期待できるが,できれば新しい版を使って頂きた
い.また {\LATEXe} に関しては,以下のバージョンでの動作確認を行なっている.
%
\begin{ITEMIZE}%{
\item
NTT版${}={}${j\TeX} 1.6${}+{}$%
\ifDS@draft\else\\\mbox{}\hskip5em\fi
	{\LATEXe} 1994/12/01 patch level 3
\item 
アスキー版${}={}${p\TeX} 3.1415 p2.1.4${}+{}$%
\ifDS@draft\else\\\mbox{}\hskip5em\fi
	{p\LATEXe} 1995/09/01
\end{ITEMIZE}%}
%
いずれについても,ネイティブ・モードと{\LaTeX} 2.09 互換モードのどちらでも使
用することができる.

%}{

\section{スタイルファイルの使い方}
\subsection{一般的な注意事項}

会議の予稿集などとは違い,論文誌の体裁には伝統的かつ「堅い」約束事が数多くあ
る.そのためスタイルファイルも「堅い」ものとなっており,{\LaTeX} の特徴の一
つであるカスタマイズ機能は大幅に制限される.例えば \|\textheight| などのいわ
ゆる style parameter を変更するのは当然やめていただきたい.どのようなカスタ
マイズが許されるのかを示すのは難しいが,一つの基準として「スタイルファイルを
読んでみて大丈夫だと確信が持てる」こと以外はしないことを強く勧める.

なお,これらの変更やこのガイドで述べている「やめて欲しいこと」を行なっても,
{\bf エラーになったりせず単に結果が変になる}ことに注意していただきたい.

%}{

\subsection{論文の構成}\label{sec:config}

ファイルは次の形式で作る.なお下線部は投稿時にはなくてもよい.また研究会論文
誌特有のコマンドなどについては,付録\ref{sec:app-sig}を参照されたい.
%
\begin{Quote}\small*
\|\documentstyle{ipsjpapers}|\footnote{%
	{\LATExe} を native mode で使う場合には \CS{documentclass} を使
用し,必要に応じて \CS{usepackage} を加える.} または\\
\|\documentstyle[draft]{ipsjpapers}|\footnotemark[1]\\
必要ならばオプションのスタイルを指定する.\\
\Underline{\|\setcounter{|{\bf 巻数}\|}{|\<巻数\>\|}|}\\
\Underline{\|\setcounter{|{\bf 号数}\|}{|\<号数\>\|}|}\\
\Underline{\|\setcounter{volpageoffset}{|\<先頭ページ\>\|}|}\\
\Underline{\|\|{\bf 受付}\|{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|}\\
\Underline{\|\|{\bf 採録}\|{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|}\\
必要ならばユーザのマクロ定義などをここに書く.\\
\|\begin{document}|\\
\|\title{|\<表題(和文)\>\|}|\\
\|\etitle{|\<表題(英文)\>\|}|\\
\|\affilabel{|\<所属ラベル\>\|}%|\\
\mbox{}\qquad\qquad\|{|\<和文所属\>\|\\|\<英文所属\>\|}|\\
\mbox{}\qquad\qquad\ldots\ldots\ldots\\
必要ならば \|\paffilabel| により現在の所属を宣言する.\\
\|\author{|\<第一著者(和文)\>\|\and|\\
\leavevmode\phantom{\tt @author@}\<第二著者(和文)\>\|\and|\\
\leavevmode\phantom{\tt @author@} \ldots{} \|}|\\
\|\eauthor{|\<第一著者(英文)\>\|\and|\\
\leavevmode\phantom{\tt @eauthor@}\<第二著者(英文)\>\|\and|\\
\leavevmode\phantom{\tt @eauthor@} \ldots{} \|}|\\
\|\contact{|\<連絡先\>\|}|\\
\|\begin{abstract}|\\
\mbox{}\quad\<概要(和文)\>\\
\|\end{abstract}|\\
\|\begin{eabstract}|\\
\mbox{}\quad\<概要(英文)\>\\
\|\end{eabstract}|\\
\|\maketitle|\\
\|\section{|\<第1節の表題\>\|}|\\
\mbox{}\quad $\ldots\ldots\ldots$\\
\mbox{}\quad\<本文\>\\
\mbox{}\quad $\ldots\ldots\ldots$\\
謝辞があれば \|acknowledgment| 環境を使ってここに記す.\\
\|\bibliographystyle{ipsjunsrt}| または\\
\|\bibliographystyle{ipsjsort}|\\
\|\bibliography{|\<文献データベース\>\|}|\\
付録があれば \|\appendix| に続いてここに記す.\\
\Underline{\|\begin{biography}|}\\
\Underline{\mbox{}\quad\<著者紹介\>}\\
\Underline{\mbox\qquad$\ldots\ldots\ldots$}\\
\Underline{\|\end{biography}|}\\
\|\end{document}|
\end{Quote}

%}{

\subsection{オプション・スタイル}\label{sec:ENUM}

\|\documentstyle| (または \|\documentclass|)の標準オプションとして,以下の5
つのものが用意されている.
%
\begin{ENUMERATE}%{
\item\|draft   | 投稿用
\item\|technote| テクニカルノート用
\item\|preface | 序文用
\item\|printer | 最終印刷用
\item\|english | 英文用
\end{ENUMERATE}%}
%
これらのオプションは(意味があれば)任意の組合せで指定することができる.なお
\|printer|オプションは,{\LaTeX} の実行環境によっては無視されたり印刷時にエ
ラーになったりすることがある.

オプション引数で補助的なスタイルファイルを指定した場合には,製版用のファイ
ル群に必ずスタイルファイルを含める.ただし,以下の5つについては標準的に用
意されているので同封の必要はない.
%
\begin{Quote}\raggedright\tt
epsf\qquad eclepsf\qquad epsbox\qquad epic\qquad eepic
\end{Quote}
%
なおスタイルファイルによっては論文誌スタイルと矛盾するようなものもあるので,
スタイルファイルの性格を良く理解して使用していただきたい.

\subsection{巻数,号数などの記述}
学会より指示された巻数,号数,先頭ページ番号\hbox{(\|\volpageoffset|)},受
付/採録年月日(年は平成年)を記述する.なお学会からの指示がない項目に関して
は,記述しなくてよい.

%}{

\subsection{表題などの記述}\label{sec:Desc}\label{sec:DESC}

表題,著者名とその所属,および概要を前述のコマンドや環境により{\dg 和文と英
文の双方について}定義した後,\|\maketitle| によって出力する.また投稿時には
\|\contact| によって連絡先を記述する(製版時にもあっても良いが無視される).
投稿時には,表題,著者名と連絡先,概要がそれぞれ別のページに出力される.
%
\begin{Description}
\item[表題]
\|\title| および \|\etitle| で定義した表題はセンタリングされる.文字数の多い
ものについては{\dg 自動的な改行が行なわれない}ので,適宜 \|\\| を挿入して改行
する.その際には各行は左詰めで組版され,その後最も長い行を基準にしてセンタリ
ングされる.なお和文表題は奇数ページのヘッダにも表示されるので,ヘッダに納ま
らないような長い表題の場合には
%
\begin{quote}
\|\title[|\<ヘッダ用表題\>\|]{|\<表題\>\|}|
\end{quote}
%
のように,ヘッダ用に短くしたものをオプション引数として指定する.

\item[著者名と所属]
各著者の所属を第一著者から順に \|\affilabel| を用いてラベル(第1引数)を付け
ながら定義すると,脚注に $\dagger$ や $\dagger\dagger$ を付けて和文の所属
(第2引数の\|\\|より前)と英文の所属(\|\\|より後)が出力される.なお,複数
の著者が同じ所属である場合には,一度定義するだけで良い.また論文執筆時と発行
時とでは所属が異なる場合には,\|\paffilabel| を用いて新しい所属を定義する.
新しい所属は脚注に☆や\hbox{☆☆}などを付けて出力される.

著者名は \|\author| と \|\eauthor| で定義し,複数の著者は \|\and| で区切る.
また各著者名の直後に \|\affiref|\allowbreak\hbox{\|{|\<所属ラベル\>\|}|}
をおいて(複数可)所属ラベル (\|\affilabel| や \|\paffilabel| で定義したも
の)を参照し,対応する脚注参照記号を付加する.またさらにその後に,著者が会
員であるか否かにより
%
\begin{DESCRIPTION}
\item[会員\phantom{ああ}]:\|\member{|\<会員番号\>\|}|
\item[学生会員]:\|\stmember{|\<会員番号\>\|}|
\item[非会員\phantom{あ}]:\|\nomember|
\end{DESCRIPTION}
%
を付加する.これらは投稿時に出力され,製版時には無視される.

なお,和文著者名は必ず{\dg 姓と名を半角(ASCII)の空白で区切る}.

\item[連絡先]
投稿時には必ず \|\contact| の引数の中に,連絡先の氏名,住所,電話/FAX番号,
電子メール・アドレスを,適宜 \|\\| で改行しながら記述する.なお製版版では無
視される.

\item[概要]
和文の概要は \|abstract| 環境の中に,英文の概要は \|eabstract| 環境の中に,
それぞれ記述する.
\end{Description}

%}{

\subsection{見出し}

節や小節の見出しには \|\section|, \|\subsection| といったコマンドを使用する.
\|\section|の見出しは2行を占め,他は1行に出力される.

「定義」,「定理」などについては,\|\newtheorem|で適宜環境を宣言し,
その環境を用いて記述する.なお見出しは{\bf 定理1}などのように日本語の題と番
号の組合せを想定しているので,題と番号の間には微小な空白しか入らない.もし
{\bf Thorem 1}のような英語と番号の組合せを用いる場合には,\|\newtheorem*|に
よって環境を宣言すれば,空白が挿入される..

%}{

\subsection{文章の記述}\label{sec:desc*}\label{sec:enum}

\begin{description*}
\item[行送り]
学会誌は2段組を採用しており,左右の段で行の基準線の位置が一致することを原則
としている.また,節見出しなど,行の間隔を他よりたくさんとった方が読みやすい
場所では,この原則を守るようにスタイルファイルが自動的にスペースを挿入する.
したがって本文中では \|\vspace| や \|\vskip| を用いたスペースの調整を行なわ
ないでいただきたい.なお \|\begin{document}| の前にコマンド \|\checkline| を
挿入しておくと,本文の各行が持つべき基準線が印刷されるので,行送りが正しいか
どうかをチェックすることができる.ただしこのコマンドは原稿送付時には使用しな
いでいただきたい.
\item[フォントサイズ]
このガイドの印刷結果からもわかるように,論文誌スタイルでは様々な大きさのフォ
ントが使われるが,これらは全てスタイルファイルが自動的かつ注意深く選択したも
のである.したがって,著者が自分でフォントサイズを変更する必要はなく,かえっ
て行送りの原則を守る妨げにもなる.もし特定の箇所で1行に多くの文字を入れたい
などの理由から小さいフォントを使用する場合には,\|\small*| あるいは 
\|\footnotesize*| という\|*|が付いたコマンドを使用していただきたい(この二つ
以外は禁止).これらは基準線間隔を変えずにフォントの大きさだけを変更するもの
である.なお \|\small*| の例が\ref{sec:config}節とこのページに示されている.

\item[句読点]
句点には全角の「.」,読点には全角の「,」を用いる.ただし英文中や数式
中で「.」や「,」を使う場合には,半角文字を使う.「。」や「、」は一切使
わない.

\item[全角文字と半角文字]
全角文字と半角文字の両方にある文字は次のように使い分ける.
%
\begin{enumerate}
\item 括弧は全角の「(」と「)」を用いる.但し,英文の概要,図表見出し,書誌
データでは半角の「(」と「)」を用いる.

\item
英数字,空白,記号類は半角文字を用いる.ただし,句読点に関しては,前項で述べ
たような例外がある.

\item
カタカナは全角文字を用いる.

\item
引用符では開きと閉じを区別する. 開きには \|``|(``) を用い,閉じには \|''|
('') を用いる.
\end{enumerate}

\item[OverfullとUnderfull]
製版時にはoverfullを起こさないことを原則としている.従って,まず提出するソー
スが著者の環境でoverfullを起こさないように,文章を工夫するなどの最善の努力を
払っていただきたい.但し,\|flushleft| 環境,\|\\|,\|\linebreak| などによる右
詰めをしない形でのoverfullを回避は,できるだけ避けていただきたい.また著者の
環境では発生しないoverfullが,印刷時の環境では発生することもある.このような
事態をできるだけ回避するために,文中の長い数式や \|\verb| を避ける,パラグラフ
の先頭付近では長い英単語を使用しない,などの注意を払っていただきたい.

また,\verb|\\| をパラグラフの終りで使用すると
%
\begin{Quote}\small*
\|Underfull \hbox (badness 10000) detected|
\end{Quote}
%
のwarningが発生し,空行が挿入される.このような空行は見苦しく,また重要なエ
ラー・メッセージを見逃す原因にもなるので,ソースを提出する時点では全て除去さ
れているようにしていただきたい.特に,箇条書用環境の直前, \|\item| の直前,
箇条書用環境の末尾などで \verb|\\| を使うと,前述のwarning が出力されること
に注意していただきたい.
\end{description*}

%}{

\subsection{数式}\label{sec:Item}

\begin{Itemize}
\item 本文中の数式\\
本文中の数式は \|$| と \|$|, \|\(| と \|\)|, あるいは \|math| 環境のいずれで
囲んでもよい.なお \smash{$\frac{a}{b}$} (\|\frac{a}{b}|) のように背が高い要
素は見苦しくかつ行送りを乱すことにもなるので,使用しないようにしていただきた
い.

\item 別組の数式\\
別組数式(displayed math)については {\bf \|$$| と \|$$| は使用してはならない}.
すなわち \|\[| と \|\]| で囲むか, \|displaymath|, \|equation|, \|eqnarray| 
のいずれかの環境を用いなければならない.これらは
%
\begin{equation}
\Delta_l = \sum_{i=l+1}^L\delta_{pi}
\end{equation}
%
のように,センタリングではなく固定字下げで数式を出力し,かつ背が高い数式によ
る行送りの乱れを吸収する機能がある.

\item \|eqnarray|環境\\
互いに関連する別組の数式が2行以上連続して現れる場合には,単に \|\[| と \|\]|,
あるいは \|\begin{equation}| と \|\end{equation}| で囲った数式を書き並べるの
ではなく,\|\begin|\allowbreak\|{eqnarray}| と \|\end{eqnarray}| を使って,
等号(あるいは不等号)の位置で縦揃えを行なった方が読みやすい.なお 
\|eqnarray| の中では改ページが行なわれないので,行数が多く途中で改ページが起
こって欲しい場合には,\|\begin{eqnarray}[s]| のようにオプション \|[s]| を指
定すればよい.

\item 数式のフォント\\
{\LaTeX}が標準的にサポートしているもの以外の特殊な数式用フォントは,できるだ
け使わないようにしていただきたい.どうしても使用しなければならない場合には,
その旨申し出ていただくとともに,印刷工程に深く関与していただくこともあること
に留意されたい.
\end{Itemize}

%}{

\subsection{図}

1段の幅におさまる図は,\figref{fig:single} の形式で指定する. 位置の指定に \|h| 
は使わない.また,図の下に{\dg 和文と英文の双方の}見出しを,\|\caption| と %
\|\ecaption| で指定する.文字数が多い見出しはは自動的に改行して最大幅の行を
基準にセンタリングするが,見出しが2行になる場合には適宜 \|\\| を挿入して改行
したほうが良い結果となることがしばしばある(\figref{fig:single} の英文見出し
を参照).

\begin{figure}
\setbox0\vbox{
\hbox{\|\begin{figure}[tb]|}
\hbox{\quad \<図本体の指定\>}
\hbox{\|\caption{|\<和文見出し\>\|}|}
\hbox{\|\ecaption{|\<英文見出し\>\|}|}
\hbox{\|\label{| $\ldots$ \|}|}
\hbox{\|\end{figure}\|}}
\centerline{\fbox{\box0}}
\caption{1段幅の図}
\ecaption{Single column figure with caption\\
	explicitly broken by $\backslash\backslash$}
\label{fig:single}
\end{figure}

2段の幅にまたがる図は,\figref{fig:double} の形式で指定する. 位置の指定は
\|t| しか使えない.

\begin{figure*}
\setbox0\vbox{\large
\hbox{\|\begin{figure*}[t]|}
\hbox{\quad\<図本体の指定\>}
\hbox{\|\caption{|\<和文見出し\>\|}|}
\hbox{\|\ecaption{|\<英文見出し\>\|}|}
\hbox{\|\label{| $\ldots$ \|}|}
\hbox{\|\end{figure*}|}}
\centerline{\fbox{\hbox to.9\textwidth{\hss\box0\hss}}}
\caption{2段幅の図}
\ecaption{Double column figure}
\label{fig:double}
\end{figure*}

図の中身では本文と違い,どのような大きさのフォントを使用しても構わない
(\figref{fig:double} 参照).また図の中身として,encapsulate された 
PostScript ファイル(いわゆるEPSファイル)を読み込むこともできる.読み込みの
ためには以下に示すいずれかのスタイル・ファイルを \|\documentstyle| のオプショ
ン(または \|\usepackage| の引数)で指定し,ファイル名(など)をコマンド 
\|\epsfile| の引数で指定する.
%
\begin{Quote}\tt
epsf\qquad eclepsf\qquad epsbox
\end{Quote}
%
なお PostScript ファイルの中で使用できるフォントは,付録に示
された標準的なものだけであることに注意していただきたい.

この節を注意深く見ると,\figref{fig:single} や\figref{fig:double} の最初の参照
はゴチック体であるのに対し,2回目以降では明朝体であるのに気づくだろう.この
切替えは論文誌の伝統的体裁に基づくもので,図の参照を(「図\hbox{\|\ref{|\<ラ
ベル\>\|}|}」ではなく)\|\figref{|\<ラベル\>\|}|を用いて行なえば自動的に成され
る.

%}{

\subsection{表}

表の罫線はなるべく少なくするのが,仕上がりをすっきりさせるコツである.罫線を
つける場合には,一番上の罫線には二重線を使い,左右の端には縦の罫線をつけない 
(\tabref{tab:example}).表中のフォントサイズのデフォルトは\|\small|である.

また,表の上に{\dg 和文と英文の双方の}見出しを, \|\caption|と \|\ecaption| 
で指定する.表の参照は \|\tabref{|\<ラベル \>\|}| を用いて行なう. 

\begin{table}[b] \caption{箇条書環境の使用箇所(表の例)} \ecaption{Sections
and sub-sections in which list-like environments are used (example of
table)} \label{tab:example}
% 左右の罫線はつけず,一番上の罫線は二重線
\hbox to\hsize{\hfil
\begin{tabular}{l|lll}\hline\hline
&enumerate&itemize&description\\\hline
type-1&	\ref{sec:enum}&	\ref{sec:item}&	---\\
type-2&	---&		\ref{sec:item*}&\ref{sec:desc*}\\
type-3&	\ref{sec:Enum}&	\ref{sec:Item}&	\ref{sec:Desc}\\
type-4&	\ref{sec:ENUM}&	\ref{sec:ITEM}&	\ref{sec:DESC}\\\hline
\multicolumn{4}{l}{type-1\,: enumerate等\quad type-2\,: enumerate*等}\\
\multicolumn{4}{l}{type-3\,: Enumerate等\quad type-4\,: ENUMERATE等}\\
\end{tabular}\hfil}
\end{table}

%}{

\subsection{箇条書}\label{sec:item*}

論文誌では箇条書に関する形式を特に定めておらず,場合に応じて様々な様式が用い
られている.スタイルファイルでは,{\LaTeX} の箇条書用の環境である
\|enumerate|, \|itemize|, \|description| に4種類のファミリーを設け,状況に応
じた使い分けができるようにしている.
%
\begin{itemize*}
\item \|enumerate|, \|itemize|, \|description|\\
{\LaTeX} の標準的なものと同じ.但しインデンテーションは \|enumerate| では全角3
文字分,その他は全角2文字分である.また \|enumerate| のラベルは,標準の
%
\begin{quote}
1.\quad (a)\quad i.\quad A.
\end{quote}
%
ではなく,
%
\begin{quote}
(\,1\,)\quad (\,a\,)\quad (\,i\,)\quad (\,A\,)
\end{quote}
%
のように全て括弧付きであり,数字などの前後に小さな空白が挿入される.

\item \|enumerate*|, \|itemize*|, \|description*|\\
\|enumerate|などとほぼ同じだが,インデンテーションは全角1文字分である.

\item \|Enumerate|, \|Itemize|, \|Description|\\
文章のインデンテーションを行なわない.

\item \|ENUMERATE|, \|ITEMIZE|, \|DESCRIPTION|\\
文章のインデンテーションを行なわず,先頭行(ラベルがある行)を全角1文字分だ
けインデントする.
\end{itemize*}
%
\tabref{tab:example} に示すように\footnotemark ,
% 34行下の \footnotetext 参照
このパンフレットの各章/節に各々の環境の使用例があるので,適宜参照されたい.

%}{

\subsection{左右の段の行揃え}

文章の記述のところでも述べたように,論文誌では左右の段で行の位置をそろえる必
要がある.ユーザが特別な高さのボックスを使ったために行の位置が乱れてしまうよ
うな場合には,その部分を \|\begin|\allowbreak\|{adjustvboxheight}| と 
\|\end|\allowbreak\|{adjustvboxheight}| で囲っていただきたい.この環境は中途
半端な行送りを吸収するためのものである.例えば次の;
%
\begin{adjustvboxheight}
\begin{quote}
\fbox{$\displaystyle\sum_{i=0}^n i$}
\end{quote}
\end{adjustvboxheight}
%
は,以下のようにして出力したものである.
%
\begin{Quote}
\|\begin{adjustvboxheight}|\\
\|\begin{quote}|\\
\|\fbox{$\displaystyle\sum_{i=0}^n i$}|\\
\|\end{quote}|\\
\|\end{adjustvboxheight}|
\end{Quote}
%
ただしこのようなものを本文中に挿入することを推奨しているわけではない.

%}{

\subsection{脚注}
\footnotetext{このfootnoteは左カラムにマークがあるのにfootnote自体は
右カラムに現われている.これは簡単なトリックで実現できる.ソースファイ
ル参照.}%
% 38行上の \footnotemark 参照

脚注は\|\footnote| コマンドを使って書くと,ページ単位に\footnote{脚注の例.} 
や\footnote{二つめの脚注.}のような参照記号とともに脚注が生成される.なお,
ページ内に複数の脚注がある場合,参照記号は {\LaTeX} を2回実行しないと正しく
ならないことに注意されたい.
({\LaTeX} ブック \cite{latex} の156ページ参照.)

また場合によっては,脚注をつけた位置と脚注本体とを別の段に置く方がよいことも
ある.この場合には,\|\footnotemark| コマンドや \|\footnotetext| コマンドを
使って対処していただきたい.

%}{

\subsection{参考文献の参照}

本文中で参考文献を参照する場合には,参考文献番号が文中の単語
として使われる場合と,そうでない参照とでは,使用する文字の大きさが異
なる.前者は\|\Cite|により参照し,後者は\|\cite|により参照する.たとえば;
%
\begin{Quote}
文献 \|\Cite{total}| は \|\LaTeX\cite{latex}| の総合的な解説書である.
\end{Quote}
%
と書くと;
%
\begin{Quote}
文献\Cite{total}は\LaTeX\cite{latex}の総合的な解説書である.
\end{Quote}
%
が得られる.

また,一つの \|\Cite| あるいは \|\cite| コマンドで三つ以上の文献を参照し,か
つそれらの参照番号が連続している場合,\Cite{article1,article2,article3}や
「文献\cite{latex,article4,article5,article6}」のように,自動的に先
頭と末尾の文献番号が $\sim$ で結合される.なお,非常に多数の文献を参照し,そ
れら全てを \|\Cite| や \|\cite|で指定するのが面倒な場合は
%
\begin{Quote}\raggedright
\|\multiCite{|\<先頭文献のラベル\>\|}|\nobreak\hskip-2em\allowbreak
	\hspace*{2em}\hbox{\|{|\<末尾文献のラベル\>\|}|}\\
\|\multicite{|\<先頭文献のラベル\>\|}|\nobreak\hskip-2em\allowbreak
	\hspace*{2em}\hbox{\|{|\<末尾文献のラベル\>\|}|}
\end{Quote}
%
を用いて,\multiCite{article1}{book3}や「文献
\multicite{booklet1}{unpublished}」のような結果を得ることもできる.

%}{

\subsection{参考文献リスト}

参考文献リストには,原則として本文中で引用した文献のみを列挙する.順序は参照
順あるいは第一著者の苗字のアルファベット順とする.文献リストは BiB{\TeX} 
と \|ipsjunsrt.bst|(参照順)または \|ipsjsort.bst|(アルファベット順)を用
いて作り,\|\bibliograhpystyle| と \|\bibliography| コマンドにより読み込むこ
とを原則とする\footnote{このガイドはファイルを一つにするために
{\TT thebibliography} 環境を用いているが,その中身はBiB{\TeX}で作成したもの
である.}.これらを用いれば,規定の体裁にあったものができるので,できるだけ
利用していただきたい.なおこのガイドの参考文献は,\|bibsample.bib| を文献ス
タイル \|ipsjunsort| で処理した結果であるので,両者を適宜参照されたい.また
製版用のファイル群には \|.bib| ファイルではなく \|.bbl| ファイルを必ず含
めることに注意されたい.

一方,何らかの理由で \|thebibliography| 環境で文献リストを「手作り」しなけれ
ばならない場合は,このガイドの参考文献リストを注意深く見て,そのスタイルにし
たがっていただきたい.

%}{

\subsection{謝辞,付録}

謝辞がある場合には,参考文献リストの直前に置き,\|acknowledgment|環境の中に
入れる.この環境の中身は投稿時には最後のページに出力される.

付録がある場合には,参考文献リストの直後にコマンド \|\appendix| に引き続いて
書く.なお付録では,\|\section| コマンドが{\bf A.1},{\bf A.2}などの見出しを
生成する.また付録全体に見出しをつける場合には,\|\appendix[|\<見出し\>\|]| %
のように見出しをオプション引数として与える.

%}{

\subsection{著者紹介}

本文の最後(\|\end{document}| の直前)に,以下のように著者紹介を記述する.
%
\begin{quote}
\|\begin{biography}|\\
\|\member{|\<第一著者名\>\|}|\\
\mbox{}\quad\<第一著者の紹介\>\\
\|\member{|\<第二著者名\>\|}|\\
\mbox{}\quad\<第二著者の紹介\>\\
\mbox{}\quad $\ldots\ldots\ldots$ \\
\|\end{biography}|
\end{quote}
%
なお著者が学生会員あるいは非会員の場合は,正会員用の \|\member| の代わりにそ
れぞれ \|\stmember|,\|\nomember| を用いる.

なお著者紹介は投稿時には出力されない.

%}{

\subsection{ページ数の見積り}

投稿用スタイルでは1ページが\(35\hbox{字}\times32\hbox{行}=1120\hbox{字}\),
また製版用では\(24\hbox{字}\times46\hbox{行}\times2\hbox{段}=2208\hbox{字}\) 
である.したがって粗い見積りとして,製版時には投稿時の半分のページ数になると
考えることができる.たとえば,このガイドは投稿用では謝辞を除いて17ページ,製
版用では9ページであるので,ほぼ見積った通りである.

また投稿用のファイルを製版用にするのは簡単であるので,投稿時にあらかじめどの
ように製版されるかを試せば,もっと良い見積りが得られる.

%}{

\section{おわりに}

論文誌の {\LaTeX} 化は運用が始まってから日が浅いため,解決されていない問題点
が少なからずあると思われる.これらを著者の方々の御協力を仰ぎつつ,少しでも使
いやすくするための改良を加えていくつもりである.そこで,スタイル・ファイルに
関する要望や意見を,是非
%
\begin{Quote}
\|texnicians@ipsj.or.jp|
\end{Quote}
%
までお寄せいただきたい.また技術的な質問も同じアドレスで受け付けるが,その他
の一般的な質問については
%
\begin{Quote}
\|editt@ipsj.or.jp|
\end{Quote}
%
にお寄せいただきたい.

\begin{acknowledgment}
論文誌の {\LaTeX}化に御協力いただいた三美印刷(株),SATO工房,ならびに試行
のためのボランティアをお願いした著者の皆様に,謹んで感謝の意を表する.
\end{acknowledgment}

%}{

\begin{thebibliography}{10}

\bibitem{total}
伊藤和人: {\LaTeX} トータルガイド, 秀和システムトレーディング (1991).

\bibitem{latex}
Lamport, L.: {\em A Document Preparation System {\LaTeX} User's Guide \&
  Reference Manual\/}, Addison Wesley, Reading, Massachusetts (1986).
\newblock (Cooke, E., et al.訳:文書処理システム {\LaTeX},アスキー出版局
  (1990)).

\bibitem{nodera}
野寺隆志: 楽々 {\LaTeX}, 共立出版 (1990).

\bibitem{okumura}
奥村晴彦: {\LaTeX} 美文書作成入門, 技術評論社 (1991).

\bibitem{article1}
桜井貴文: 直観主義論理と型理論, 情報処理,  Vol.~30, No.~6, pp.\ 626--634
  (1989).

\bibitem{article2}
野口健一郎, 大谷真: OSIの実現とその課題, 情報処理,  Vol.~31, No.~9, pp.\
  1235--1244 (1990).

\bibitem{article3}
Itoh, S. and Goto, N.: An Adaptive Noiseless Coding for Sources with Big
  Alphabet Size, {\em Trans. IEICE\/},  Vol.~E74, No.~9, pp.\ 2495--2503
  (1991).

\bibitem{article4}
田中{正次}, 村松茂, 山下茂: 9段数7次陽的Runge-Kutta法の最適化について,
  情報処理学会論文誌,  Vol.~33, No.~12, pp.\ 1512--1526 (1992).

\bibitem{article5}
Abrahamson, K., Dadoun, N., Kirkpatrick, D.~G. and Przytycka, T.: A Simple
  Parallel Tree Contraction Algorithm, {\em J. Algorithms\/},  Vol.~10, No.~2,
  pp.\ 287--302 (1989).

\bibitem{article6}
田中{正次}ほか: 9段数7次陽的Runge-Kutta法の次数条件式の解について,
  情報処理学会論文誌,  Vol.~33, No.~12, pp.\ 1506--1511 (1992).

\bibitem{book1}
Foley, J.~D. et al.: {\em Computer Graphics --- Principles and Practice\/},
  System Programming Series, Addison-Wesley, Reading, Massachusetts, 2nd
  edition (1990).

\bibitem{book2}
千葉則茂, 村岡一信: レイトレーシングCG入門, Information {\&} Computing,
  Vol.~46, サイエンス社 (1990).

\bibitem{book3}
Chang, C.~L. and Lee, R. C.~T.: {\em Symbolic Logic and Mechanical Theorem
  Proving\/}, Academic Press, New York (1973).
\newblock (長尾真,辻井潤一訳: 計算機による定理の自動証明, 日本コンピュータ協会
  (1983)).

\bibitem{booklet1}
新世代コンピュータ技術開発機構: 第五世代コンピュータプロジェクトの概要,
  {FGCS'92}にて配布 (1992).

\bibitem{inbook1}
Knuth, D.~E.: {\em Fundamental Algorithms\/}, Art of Computer Programming,
  Vol.~1, Addison-Wesley, 2nd edition, chapter~2, pp.\ 371--381 (1973).

\bibitem{incollection1}
Schwartz, A.~J.: Subdividing B{\'e}zier Curves and Surfaces, {\em Geometric
  Modeling: Algorithms and New Trends\/} (Farin, G.~E.(ed.)), SIAM,
  Philadelphia, pp.\ 55--66 (1987).

\bibitem{inproceedings1}
Baraff, D.: Curved Surfaces and Coherence for Non-penetrating Rigid Body
  Simulation, {\em SIGGRAPH '90 Proceedings\/} (Beach, R.~J.(ed.)), Dallas,
  Texas, ACM, Addison-Wesley, pp.\ 19--28 (1990).

\bibitem{manual1}
Adobe Systems Inc.: {\em PostScript Language Reference Manual\/}, Reading,
  Massachusetts (1985).

\bibitem{mastersthesis1}
山下義行: 文脈自由文法への否定の導入, 修士論文, 筑波大学大学院工学研究科
  (1989).

\bibitem{misc1}
斉藤康己, 中島浩: {{\tt ipsjpapers.sty}} (1995).
\newblock (情報処理学会論文誌用スタイルファイル,論文著者に配布).

\bibitem{phdthesis1}
Weihl, W.: {\em Specification and Implementation of Atomic Data Types\/}, PhD
  Thesis, MIT, Boston (1984).

\bibitem{proceedings1}
Institute for New Generation Computer Technology: {\em Proc. Intl. Conf. on
  Fifth Generation Computer Systems\/}, Vol.~1 (1992).

\bibitem{techreport1}
Aredon, I.: {\TeX} 独稽古, Seminar on Mathematical Sciences~13, Department of
  Mathematics, Keio University, Yokohama (1989).

\bibitem{unpublished}
情報処理学会論文誌編集委員会: {\LaTeX}による論文作成のガイド(第1版) (1995).
\newblock (論文著者に配布).

\end{thebibliography}

%}{

\appendix
\section{PostScriptのフォント}\label{app-psfont}

\def\RBI{\it\langle RBI\rangle}
\def\BO{\it\langle BO\rangle}
\def\BDO{\it\langle BDO\rangle}
\def\BI{\it\langle BI\rangle}
\def\LD{\it\langle LD\rangle}

PostScriptファイルの中では以下の標準的なフォントのみが使用できる.
%
\begin{Quote}
Ryumin Light-KL\\
Gothic Medium BBB\\
Jun 101\\
Futo Min A101\\
Futo Go B101\\
Times-\(\RBI\)\\
Hlevetica[-\(\BO\)]\\
Courier[-\(BO\)]\\
Helvetica-Narrow[-\(\BO\)]\\
Symbols Set\\
ITC AvantGarge Gohtic-\(\BDO\)\\
Platino[-\(\BI\)]\\
New Century-Schoolbok[-\(\BI\)]\\
ITC Bookman[-\(\LD\)]\\
ITC Zapf Chancery-Mediumitalic\\
ITC Zapf Dingbats
\end{Quote}
{\def\!{$\,|\,$}
\begin{eqnarray*}[s]
\RBI&::=&\hbox{Roman\!Bold\!Italic\!BoldItalic}\\
\BO&::=&\hbox{Bold\!Oblique\!BoldOblique}\\
\BDO&::=&\hbox{Book\!Demi\!BookOblique\!}\\&&\hbox{DemiOblique}\\
\BI&::=&\hbox{Bold\!Italic\!BoldItalic}\\
\LD&::=&\hbox{\thinmuskip.7\thinmuskip Light\!Demi\!LightItalic\!DemiItalic}
\end{eqnarray*}}

%}{

\section{研究会論文誌用コマンド}\label{sec:app-sig}

各研究会論文誌(トランザクション)には各々に固有のサブタイトル,略称,通番が
ある.製版用原稿では,以下のコマンドを\|\begin{document}|の前に置くことによ
り,これらの情報を与える.
%
\begin{itemize}\item[]
\|\transaction{|\<略称\>\|}{|\<号数\>\|}{|\<通番\>\|}|
\end{itemize}
%
なお\<略称\>は以下のいずれかであり,\<号数\>と\<通番\>は学会あるいは研究会論
文誌編集委員会の指示に基づいて与える.
%
\begin{itemize}%{
\item
\|PRO|(プログラミング)
\item
\|TOM|(数理モデル化と応用)
\item
\|TOD|(データベース)
\item
\|HPS|(ハイパフォーマンスコンピューティングシステム)
\item
\|CVIM|(コンピュータビジョンとイメージメディア)
\end{itemize}%}
%
また上記の\<号数\>は発行月とは連動していないので,学会あるいは編集委員会の指
示に基づき発行月を;
%
\begin{itemize}\item[]
\|\setcounter{|{\bf 月数}\|}{|\<発行月\>\|}|
\end{itemize}
%
によって指定する.

この他,以下の各節で示すように,いくつかの論文誌に固有の機能を実現するための
コマンドなどが用意されている.

%}{

\subsection{「プログラミング」固有機能}

「論文誌:プログラミング」には論文以外に,プログラミング研究会での研究発表の
内容梗概が含まれている.この内容梗概は,\|\documentstyle|または
\|\documentclass|のオプションとして\|abstract|を指定した上で,
\ref{sec:config}節の\|\maketitle|までの内容からなるファイル(すなわち本文が
ないファイル)から生成する.なお\|\|{\bf 受付}や\|\|{\bf 採録}は不要であるが,
代わりに発表年月日を;
%
\begin{itemize}\item[]
\|\|{\bf 発表}\|{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|
\end{itemize}
%
により指定する.

%}{

\subsection{「数理モデル化と応用」固有機能}

「論文誌:数理モデル化と応用」の論文では,受付や採録の日付以外に再受付日付を
記載するように指示されることがある.その場合には;
%
\begin{itemize}\item[]
\|\|{\bf 再受付}\|{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|
\end{itemize}
%
により指定する.

%}{

\subsection{「データベース」固有機能}

「論文誌:データベース」の論文の担当編集委員の氏名は;
%
\begin{itemize}\item[]
\|\edInCharge{|\<氏名\>\|}|
\end{itemize}
%
により指定する.

%}{

\begin{biography}
\member{中島 浩}
昭和31年生.
昭和56年京都大学大学院工学研究科情報工学専攻修士課程修了.
同年三菱電機(株)入社.
推論マシンの研究開発に従事.
平成4年より京都大学工学部助教授.
平成9年より豊橋技術科学大学教授.
並列計算機のアーキテクチャ,プログラミング言語の実装方式に関する研究に従事.
工学博士.昭和63年元岡賞,平成5年坂井記念特別賞受賞.IEEE-CS, ACM, ALP, TUG
各会員.
%
\member{斉藤 康己}
昭和28年生.
昭和53年英国エセックス大学よりM.Sc.(AI研究).
昭和54年東京大学大学院工学系研究科情報工学専攻修士課程修了.
同年電電公社入社.
昭和59年から60年にかけて仏国INRIA客員研究員.
現在NTT基礎研究所主幹研究員.
人工知能(Symbol Grounding Problem),計算機ソフトウェア(\TeX の日本語化),
認知科学(理解プロセスの解明)などの研究に従事.
訳書に『メタマジック・ゲーム』(D. ホフスタッター著, 共訳, 白揚社)など.
人工知能学会,ソフトウェア科学会,日本認知科学会,Cognitive Science Society,
TUG各会員.
\end{biography}
\end{document}
\ No newline at end of file