changeset 0:f84b0189359c

init
author Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
date Fri, 31 Jul 2020 14:42:25 +0900
parents
children b1fb4a92ea12
files .hgignore paper/Images/whalemountain.pdf paper/Makefile paper/bibsample.bib paper/ipsj.cls paper/ipsjpref.sty paper/ipsjsort-e.bst paper/ipsjsort.bst paper/ipsjtech.sty paper/ipsjunsrt-e.bst paper/ipsjunsrt.bst paper/mk-wm.bib paper/mk-wm.pdf paper/mk-wm.tex slide/slide.md
diffstat 14 files changed, 12202 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,280 @@
+syntax:glob
+.DS_Store
+.keep
+
+# Created by https://www.gitignore.io/api/latex
+# Edit at https://www.gitignore.io/?templates=latex
+
+### LaTeX ###
+## Core latex/pdflatex auxiliary files:
+*.aux
+*.lof
+*.log
+*.lot
+*.fls
+*.out
+*.toc
+*.fmt
+*.fot
+*.cb
+*.cb2
+.*.lb
+
+## Intermediate documents:
+*.dvi
+*.xdv
+*-converted-to.*
+# these rules might exclude image files for figures etc.
+# *.ps
+# *.eps
+# *.pdf
+
+## Generated if empty string is given at "Please type another file name for output:"
+.pdf
+
+## Bibliography auxiliary files (bibtex/biblatex/biber):
+*.bbl
+*.bcf
+*.blg
+*-blx.aux
+*-blx.bib
+*.run.xml
+
+## Build tool auxiliary files:
+*.fdb_latexmk
+*.synctex
+*.synctex(busy)
+*.synctex.gz
+*.synctex.gz(busy)
+*.pdfsync
+
+## Build tool directories for auxiliary files
+# latexrun
+latex.out/
+
+## Auxiliary and intermediate files from other packages:
+# algorithms
+*.alg
+*.loa
+
+# achemso
+acs-*.bib
+
+# amsthm
+*.thm
+
+# beamer
+*.nav
+*.pre
+*.snm
+*.vrb
+
+# changes
+*.soc
+
+# comment
+*.cut
+
+# cprotect
+*.cpt
+
+# elsarticle (documentclass of Elsevier journals)
+*.spl
+
+# endnotes
+*.ent
+
+# fixme
+*.lox
+
+# feynmf/feynmp
+*.mf
+*.mp
+*.t[1-9]
+*.t[1-9][0-9]
+*.tfm
+
+#(r)(e)ledmac/(r)(e)ledpar
+*.end
+*.?end
+*.[1-9]
+*.[1-9][0-9]
+*.[1-9][0-9][0-9]
+*.[1-9]R
+*.[1-9][0-9]R
+*.[1-9][0-9][0-9]R
+*.eledsec[1-9]
+*.eledsec[1-9]R
+*.eledsec[1-9][0-9]
+*.eledsec[1-9][0-9]R
+*.eledsec[1-9][0-9][0-9]
+*.eledsec[1-9][0-9][0-9]R
+
+# glossaries
+*.acn
+*.acr
+*.glg
+*.glo
+*.gls
+*.glsdefs
+
+# uncomment this for glossaries-extra (will ignore makeindex's style files!)
+# *.ist
+
+# gnuplottex
+*-gnuplottex-*
+
+# gregoriotex
+*.gaux
+*.gtex
+
+# htlatex
+*.4ct
+*.4tc
+*.idv
+*.lg
+*.trc
+*.xref
+
+# hyperref
+*.brf
+
+# knitr
+*-concordance.tex
+# TODO Comment the next line if you want to keep your tikz graphics files
+*.tikz
+*-tikzDictionary
+
+# listings
+*.lol
+
+# luatexja-ruby
+*.ltjruby
+
+# makeidx
+*.idx
+*.ilg
+*.ind
+
+# minitoc
+*.maf
+*.mlf
+*.mlt
+*.mtc[0-9]*
+*.slf[0-9]*
+*.slt[0-9]*
+*.stc[0-9]*
+
+# minted
+_minted*
+*.pyg
+
+# morewrites
+*.mw
+
+# nomencl
+*.nlg
+*.nlo
+*.nls
+
+# pax
+*.pax
+
+# pdfpcnotes
+*.pdfpc
+
+# sagetex
+*.sagetex.sage
+*.sagetex.py
+*.sagetex.scmd
+
+# scrwfile
+*.wrt
+
+# sympy
+*.sout
+*.sympy
+sympy-plots-for-*.tex/
+
+# pdfcomment
+*.upa
+*.upb
+
+# pythontex
+*.pytxcode
+pythontex-files-*/
+
+# tcolorbox
+*.listing
+
+# thmtools
+*.loe
+
+# TikZ & PGF
+*.dpth
+*.md5
+*.auxlock
+
+# todonotes
+*.tdo
+
+# vhistory
+*.hst
+*.ver
+
+# easy-todo
+*.lod
+
+# xcolor
+*.xcp
+
+# xmpincl
+*.xmpi
+
+# xindy
+*.xdy
+
+# xypic precompiled matrices
+*.xyc
+
+# endfloat
+*.ttt
+*.fff
+
+# Latexian
+TSWLatexianTemp*
+
+## Editors:
+# WinEdt
+*.bak
+*.sav
+
+# Texpad
+.texpadtmp
+
+# LyX
+*.lyx~
+
+# Kile
+*.backup
+
+# KBibTeX
+*~[0-9]*
+
+# auto folder when using emacs and auctex
+./auto/*
+*.el
+
+# expex forward references with \gathertags
+*-tags.tex
+
+# standalone packages
+*.sta
+
+### LaTeX Patch ###
+# glossaries
+*.glstex
+
+# End of https://www.gitignore.io/api/latex
+
+paper/lint
Binary file paper/Images/whalemountain.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/Makefile	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,46 @@
+TARGET = mk-wm
+
+LATEX   = platex
+BIBTEX  = pbibtex
+#DVIPS   = dvips
+#DVIPDFM = dvipdfmx
+RM      = rm -f
+DVIPDF=dvipdfmx -p a4
+#  Option definitions
+#DVIPDFMOPT = 
+#DVIPSOPT   = -D 720 -mode esphi -O 0mm,0mm -N0 
+
+#  Suffixes definitions
+.SUFFIXES: .tex .dvi .pdf
+
+#.PRECIOUS: %.tex
+
+#.md.tex:
+#	perl md2tex.pl $< $@
+
+.tex.dvi:
+	$(LATEX) $<
+	$(BIBTEX) $(TARGET)
+	$(LATEX) $<
+	$(LATEX) $<
+
+.dvi.pdf:
+	$(DVIPDF) $(DVIPDF_OPT) $<
+
+all: $(TARGET).pdf
+	open $(TARGET).pdf
+
+tex: $(TARGET).tex
+
+dvi: $(TARGET).dvi
+
+pdf: $(TARGET).pdf
+
+#vi: 
+#	vim $(TARGET).md
+
+#open:
+#	open $(TARGET).pdf
+
+clean:
+	rm -f *.dvi *.aux *.log  *.ps *.gz *.bbl *.blg *~ *.core anatofuz-sigos.tex
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/bibsample.bib	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,49 @@
+@inproceedings{agda,
+ author = {Norell, Ulf},
+ title = {Dependently Typed Programming in Agda},
+ booktitle = {Proceedings of the 4th International Workshop on Types in Language Design and Implementation},
+ series = {TLDI '09},
+ year = {2009},
+ isbn = {978-1-60558-420-1},
+ location = {Savannah, GA, USA},
+ pages = {1--2},
+ numpages = {2},
+ url = {http://doi.acm.org/10.1145/1481861.1481862},
+ doi = {10.1145/1481861.1481862},
+ acmid = {1481862},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ keywords = {dependent types, programming},
+}
+
+@manual{gcc,
+author = "{GNU Compiler Collection (GCC) Internals}",
+title ="{http://gcc.gnu.org/onlinedocs/gccint/}",
+}
+
+@article{weko_195888_1,
+   author	 = "坂本 昂弘 and 桃原 優 and 河野 真治",
+   title	 = "継続を用いたx.v6 kernelの書き換え",
+   year 	 = "2019",
+   institution	 = "琉球大学工学部情報工学科, 琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科",
+   journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)",
+   number	 = "4",
+   month	 = "may"
+}
+
+@misc{xv6,
+author     = "{Russ Cox, Frans Kaashoek, Robert Morris}",
+title    = {xv6 a simple, Unix-like teaching operating system},
+howpublished   = {https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf},
+}
+
+@book{lions1996lions,
+  title={Lions' Commentary on UNIX 6th Edition with Source Code},
+  author={Lions, J.},
+  isbn={9781573980135},
+  lccn={55015401},
+  series={Computer classics revisited},
+  url={https://books.google.co.jp/books?id=OlZ3QgAACAAJ},
+  year={1996},
+  publisher={Peer-to-Peer Communications}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsj.cls	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,5950 @@
+
+% ipsj.cls  (C) 2012 Information Processing Society of Japan
+% Copyright (C) 1995-2010 by Hiroshi Nakashima, Yasuki Saito and
+%                            The Editorial Board of the IPSJ Journal
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{ipsj}
+% [2011/08/22-11/25 Test.ver IPSJ class]
+% [2011/12/15-2012/04/24 v1.01-v1.02e IPSJ class]
+% [2012/06/01-2018/03/22 v1.03-v3.05 IPSJ class]
+ [2018/08/03 v4.0 IPSJ class]
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{color}
+
+\newif\if@Proof \@Prooffalse%
+\DeclareOption{Proof}{\@Prooftrue}
+
+
+\newif\if@LAYOUT \@LAYOUTfalse%
+\DeclareOption{LAYOUT}{\@LAYOUTtrue}
+
+\newif\if@submit \@submitfalse
+\DeclareOption{submit}{\@submittrue}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%% Document Styles %%%%%%
+%\newif\ifDS@printer \DS@printerfalse
+\newif\ifDS@english \DS@englishfalse
+\newif\ifDS@technote \DS@technotefalse
+\newif\ifDS@preface \DS@prefacefalse
+\newif\ifDS@techrep \DS@techrepfalse
+\newif\ifDS@sigrecommended \DS@sigrecommendedfalse
+\newif\ifDS@invited \DS@invitedfalse
+\newif\ifDS@online \DS@onlinefalse
+\newif\ifDS@draft \DS@draftfalse
+%======================
+\newif\ifDS@PRO \DS@PROfalse
+\newif\ifDS@ACS \DS@ACSfalse
+\newif\ifDS@TOD \DS@TODfalse
+\newif\ifDS@TOM \DS@TOMfalse
+\newif\ifDS@CVA \DS@CVAfalse
+\newif\ifDS@TBIO \DS@TBIOfalse
+\newif\ifDS@SLDM \DS@SLDMfalse
+\newif\ifDS@CDS \DS@CDSfalse
+\newif\ifDS@DC \DS@DCfalse % v1.5
+\newif\ifDS@DCON \DS@DCONfalse % v2.0
+%======================
+\newif\ifDS@JIP \DS@JIPfalse
+\newif\ifDS@Data \DS@Datafalse
+\newif\ifDS@Survey \DS@Surveyfalse
+\newif\ifDS@Research \DS@Researchfalse
+\newif\ifDS@Short \DS@Shortfalse
+\newif\ifDS@systems \DS@systemsfalse
+\newif\ifDS@services \DS@servicesfalse
+\newif\ifDS@devices \DS@devicesfalse
+%======================
+\newif\ifDS@abstract \DS@abstractfalse
+\newif\ifDS@EEE \DS@EEEfalse
+%======================
+\newif\ifDS@OT \DS@OTfalse
+
+
+%% v1.02b
+\newif\ifDS@noauthor \DS@noauthorfalse
+
+%% v1.4
+\newif\ifDS@system \DS@systemfalse
+
+
+%% v1.5
+\newif\ifDS@Express \DS@Expressfalse
+\newif\ifDS@Practice \DS@Practicefalse
+\newif\ifDS@Content \DS@Contentfalse
+
+%% v1.7 TCE
+\newif\ifDS@TCE \DS@TCEfalse
+\newif\ifDS@invitedshort \DS@invitedshortfalse
+\newif\ifDS@recommendedshort \DS@recommendedshortfalse
+%% v1.7 DCON
+%% v2.0 DCON
+\newif\ifDS@recommendedresearch \DS@recommendedresearchfalse
+\newif\ifDS@recommendedpractice \DS@recommendedpracticefalse
+\newif\ifDS@recommendedcontent \DS@recommendedcontentfalse
+
+%% v3.5 CDS
+\newif\ifDS@recommendeddevices \DS@recommendeddevicesfalse
+
+
+
+
+
+
+\DeclareOption{DAM}{\def\@type{DAM}\def\@Mtype{DAM}}
+
+\DeclareOption{english}{\DS@englishtrue\DS@EEEtrue}
+%%%
+\DeclareOption{technote}{\DS@technotetrue\def\@Mtype{technote}}
+\DeclareOption{sigrecommended}{\DS@sigrecommendedtrue\def\@Mtype{sigrecommended}}
+\DeclareOption{invited}{\DS@invitedtrue\def\@Mtype{invited}}
+%=============
+\DeclareOption{PRO}{\DS@PROtrue\def\@type{PRO}\DS@EEEfalse}
+\DeclareOption{ACS}{\DS@ACStrue\def\@type{ACS}\DS@EEEfalse}
+\DeclareOption{TOD}{\DS@TODtrue\def\@type{TOD}\DS@EEEfalse}
+\DeclareOption{TOM}{\DS@TOMtrue\def\@type{TOM}\DS@EEEfalse}
+\DeclareOption{CDS}{\DS@CDStrue\def\@type{CDS}\DS@EEEfalse}
+\DeclareOption{DC}{\DS@DCtrue\def\@type{DC}\DS@EEEfalse}% v1.5
+\DeclareOption{DCON}{\DS@DCONtrue\def\@type{DCON}\DS@EEEfalse}% v2.0
+%%
+\DeclareOption{CVA}{\DS@englishtrue\DS@CVAtrue\def\@type{CVA}\DS@EEEfalse}
+\DeclareOption{TBIO}{\DS@englishtrue\DS@TBIOtrue\def\@type{TBIO}\def\@Mtype{TBIOM}\DS@EEEfalse}
+\DeclareOption{SLDM}{\DS@englishtrue\DS@SLDMtrue\def\@type{SLDM}\DS@EEEfalse}
+%%
+\DeclareOption{JIP}{\DS@englishtrue\DS@JIPtrue\def\@type{JIP}\DS@EEEfalse}
+
+\DeclareOption{Data}{\DS@Datatrue\def\@type{Data}\def\@Mtype{Data}\DS@EEEfalse}
+\DeclareOption{Survey}{\DS@Surveytrue\def\@type{Survey}\def\@Mtype{Survey}\DS@EEEfalse}
+\DeclareOption{Research}{\DS@Researchtrue\def\@type{Research}\def\@Mtype{Research}\DS@EEEfalse}
+\DeclareOption{Short}{\DS@Shorttrue\def\@type{Short}\def\@Mtype{Short}\DS@EEEfalse}
+
+\DeclareOption{abstract}{\DS@abstracttrue\def\@Mtype{abstract}\DS@EEEfalse}
+
+\DeclareOption{systems}{\DS@systemstrue\def\@Mtype{systems}\DS@EEEfalse}
+\DeclareOption{services}{\DS@servicestrue\def\@Mtype{services}\DS@EEEfalse}
+\DeclareOption{devices}{\DS@devicestrue\def\@Mtype{devices}\DS@EEEfalse}
+
+\DeclareOption{preface}{\DS@prefacetrue}
+\DeclareOption{draft}{\DS@drafttrue}
+
+\DeclareOption{OT}{\DS@OTtrue}
+
+%% v1.02b
+\DeclareOption{techrep}{\DS@techreptrue}
+\DeclareOption{noauthor}{\DS@noauthortrue}
+
+%% v1.4
+\DeclareOption{system}{\DS@systemtrue\def\@Mtype{system}\DS@EEEfalse}
+
+%% v1.5
+\DeclareOption{Express}{\DS@Expresstrue\def\@Mtype{Express}\DS@EEEfalse}
+\DeclareOption{Practice}{\DS@Practicetrue\def\@Mtype{Practice}\DS@EEEfalse}
+\DeclareOption{Content}{\DS@Contenttrue\def\@Mtype{Content}\DS@EEEfalse}
+
+%% v1.7 TCE
+\DeclareOption{TCE}{\DS@TCEtrue\def\@type{TCE}\DS@EEEfalse}
+\DeclareOption{invitedshort}{\DS@invitedshorttrue\def\@Mtype{invitedshort}\DS@EEEfalse}
+\DeclareOption{recommendedshort}{\DS@recommendedshorttrue\def\@Mtype{recommendedshort}\DS@EEEfalse}
+
+%% v1.7 DCON
+%% v2.0 DCON
+\DeclareOption{recommendedresearch}{\DS@recommendedresearchtrue\def\@Mtype{recommendedresearch}\DS@EEEfalse}
+\DeclareOption{recommendedpractice}{\DS@recommendedpracticetrue\def\@Mtype{recommendedpractice}\DS@EEEfalse}
+\DeclareOption{recommendedcontent}{\DS@recommendedcontenttrue\def\@Mtype{recommendedcontent}\DS@EEEfalse}
+
+%% v3.5
+\DeclareOption{recommendeddevices}{\DS@recommendeddevicestrue\def\@Mtype{recommendeddevices}\DS@EEEfalse}
+
+
+
+
+
+
+%% v1.8
+\newif\ifDS@preprint \DS@preprintfalse
+
+\DeclareOption{preprint}{%
+\DS@preprinttrue%
+\DS@englishtrue%
+\DS@PROfalse%
+\DS@TOMfalse%
+\DS@ACSfalse%
+\DS@TODfalse%
+\DS@DCfalse%
+\DS@DCONfalse%
+\DS@TCEfalse%
+\DS@CDSfalse%
+\def\@type{DAM}%
+\def\@Mtype{DAM}%
+\DS@EEEtrue%
+\ifDS@systems\def\@Mtype{systems}\fi
+\ifDS@services\def\@Mtype{services}\fi
+\ifDS@devices\def\@Mtype{devices}\fi
+\ifDS@Research\def\@Mtype{Research}\fi
+\ifDS@Practice\def\@Mtype{Practice}\fi
+\ifDS@Content\def\@Mtype{Content}\fi
+%%%v1.10
+\ifDS@invited\def\@Mtype{invited}\fi
+\ifDS@sigrecommended\def\@Mtype{sigrecommended}\fi
+%%%v3.04
+\ifDS@technote\def\@Mtype{technote}\fi
+%%v3.04
+\ifDS@recommendeddevices\def\@Mtype{recommendeddevices}\fi
+}
+%%%%%%%%%%%%%
+
+
+
+
+
+
+
+
+
+
+%%%% parameter %%%%%%%%%
+\unitlength=1mm
+\predisplaypenalty=0
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+%%A4: 210mm, 297mm 
+\newcounter{@paper}
+\newif\if@landscape \@landscapefalse
+\newcommand{\@ptsize}{}
+\newif\if@restonecol
+\newif\if@titlepage
+\@titlepagetrue
+\newif\if@openright
+\newif\if@mainmatter \@mainmattertrue
+%\hour\time \divide\hour by 60\relax
+%\@tempcnta\hour \multiply\@tempcnta 60\relax
+%\minute\time \advance\minute-\@tempcnta
+\newif\if@stysize \@stysizefalse
+\newif\if@enablejfam \@enablejfamtrue
+\DeclareOption{a4paper}{\setcounter{@paper}{1}%
+  \setlength\paperheight {297mm}%
+  \setlength\paperwidth  {210mm}}
+\DeclareOption{a5paper}{\setcounter{@paper}{2}%
+  \setlength\paperheight {210mm}
+  \setlength\paperwidth  {148mm}}
+\DeclareOption{b4paper}{\setcounter{@paper}{3}%
+  \setlength\paperheight {364mm}
+  \setlength\paperwidth  {257mm}}
+\DeclareOption{b5paper}{\setcounter{@paper}{4}%
+  \setlength\paperheight {257mm}
+  \setlength\paperwidth  {182mm}}
+\DeclareOption{a4j}{\setcounter{@paper}{1}\@stysizetrue
+  \setlength\paperheight {297mm}%
+  \setlength\paperwidth  {210mm}}
+\DeclareOption{a5j}{\setcounter{@paper}{2}\@stysizetrue
+  \setlength\paperheight {210mm}
+  \setlength\paperwidth  {148mm}}
+\DeclareOption{b4j}{\setcounter{@paper}{3}\@stysizetrue
+  \setlength\paperheight {364mm}
+  \setlength\paperwidth  {257mm}}
+\DeclareOption{b5j}{\setcounter{@paper}{4}\@stysizetrue
+  \setlength\paperheight {257mm}
+  \setlength\paperwidth  {182mm}}
+\DeclareOption{a4p}{\setcounter{@paper}{1}\@stysizetrue
+  \setlength\paperheight {297mm}%
+  \setlength\paperwidth  {210mm}}
+\DeclareOption{a5p}{\setcounter{@paper}{2}\@stysizetrue
+  \setlength\paperheight {210mm}
+  \setlength\paperwidth  {148mm}}
+\DeclareOption{b4p}{\setcounter{@paper}{3}\@stysizetrue
+  \setlength\paperheight {364mm}
+  \setlength\paperwidth  {257mm}}
+\DeclareOption{b5p}{\setcounter{@paper}{4}\@stysizetrue
+  \setlength\paperheight {257mm}
+  \setlength\paperwidth  {182mm}}
+\if@compatibility
+  \renewcommand{\@ptsize}{0}
+\else
+  \DeclareOption{10pt}{\renewcommand{\@ptsize}{0}}
+\fi
+\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}}
+\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}}
+\DeclareOption{landscape}{\@landscapetrue
+  \setlength\@tempdima{\paperheight}%
+  \setlength\paperheight{\paperwidth}%
+  \setlength\paperwidth{\@tempdima}}
+%\DeclareOption{tombow}{%
+%  \tombowtrue \tombowdatetrue
+%  \setlength{\@tombowwidth}{.1\p@}%
+%  \@bannertoken{%
+%     \jobname\space:\space\number\year/\number\month/\number\day
+%      (\number\hour:\number\minute)}
+%  \maketombowbox}
+%\DeclareOption{tombo}{%
+%  \tombowtrue \tombowdatefalse
+%  \setlength{\@tombowwidth}{.1\p@}%
+%  \maketombowbox}
+\DeclareOption{mentuke}{%
+  \tombowtrue \tombowdatefalse
+  \setlength{\@tombowwidth}{\z@}%
+  \maketombowbox}
+\DeclareOption{tate}{%
+  \AtBeginDocument{\tate\message{《縦組モード》}%
+                   \adjustbaseline}%
+}
+\DeclareOption{oneside}{\@twosidefalse}
+\DeclareOption{twoside}{\@twosidetrue}
+\DeclareOption{onecolumn}{\@twocolumnfalse}
+\DeclareOption{twocolumn}{\@twocolumntrue}
+\DeclareOption{titlepage}{\@titlepagetrue}
+\DeclareOption{notitlepage}{\@titlepagefalse}
+\if@compatibility
+\@openrighttrue
+\else
+\DeclareOption{openright}{\@openrighttrue}
+\DeclareOption{openany}{\@openrightfalse}
+\fi
+\DeclareOption{leqno}{\input{leqno.clo}}
+\DeclareOption{fleqn}{\input{fleqn.clo}}
+\DeclareOption{openbib}{%
+  \AtEndOfPackage{%
+   \renewcommand\@openbib@code{%
+      \advance\leftmargin\bibindent
+      \itemindent -\bibindent
+      \listparindent \itemindent
+      \parsep \z@
+      }%
+   \renewcommand\newblock{\par}}}
+\if@compatibility
+\else
+  \DeclareOption{disablejfam}{\@enablejfamfalse}
+\fi
+%\DeclareOption{draft}{\setlength\overfullrule{5pt}}
+\DeclareOption{final}{\setlength\overfullrule{0pt}}
+
+%%
+%% Option
+%%
+\ExecuteOptions{a4paper,10pt,twoside,twocolumn,final,openright,DAM,Prooffalse}%!!
+\tracingmacros=1
+\ProcessOptions\relax
+\tracingmacros=0
+
+%% 
+\newdimen\h
+  \h=0.25mm
+\newdimen\JQ
+  \JQ=0.7392507pt
+\newdimen\Q
+  \Q=0.71144pt
+
+\newdimen\@Q \@Q=0.25mm
+
+
+%%
+%% Font
+%%
+
+\ifDS@english
+\else
+%% 
+\expandafter\let\csname JY1/mc/m/n/10\endcsname\relax
+\expandafter\let\csname JY1/gt/m/n/10\endcsname\relax
+%%%
+\DeclareFontShape{JT1}{gt}{m}{it}{<-> ssub*gt/m/n}{}
+\DeclareFontFamily{JT1}{mdg}{}
+\DeclareFontShape{JT1}{mdg}{m}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontFamily{JT1}{gmb}{}
+\DeclareFontShape{JT1}{gmb}{m}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontShape{JT1}{gmb}{bx}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontFamily{JT1}{sg}{}
+\DeclareFontShape{JT1}{sg}{m}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontShape{JT1}{sg}{bx}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontFamily{JT1}{gbm}{}
+\DeclareFontShape{JT1}{gbm}{m}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontShape{JT1}{gbm}{bx}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontFamily{JT1}{jun}{}
+\DeclareFontShape{JT1}{jun}{b}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontShape{JT1}{jun}{m}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontShape{JT1}{jun}{bx}{n}{<-> ssub*gt/m/n}{}
+\DeclareFontShape{JT1}{mc}{m}{it}{<-> ssub*mc/m/n}{}
+\DeclareFontShape{JY1}{mc}{m}{it}{<-> ssub*mc/m/n}{}%% v1.4
+%
+\DeclareFontShape{JT1}{mc}{bx}{it}{<-> ssub*gt/m/n}{}%% v1.4
+\DeclareFontShape{JY1}{mc}{bx}{it}{<-> ssub*gt/m/n}{}%% v1.4
+
+
+%%%
+\DeclareFontShape{JT1}{mc}{m}{sc}{<-> ssub*mc/m/n}{}
+\DeclareFontShape{JY1}{mc}{m}{sc}{<-> ssub*mc/m/n}{}
+
+\DeclareFontShape{JY1}{mc}{m}{n}{<5>jis <6> jis
+ <7> s * [1.05571] jis
+ <8> s * [1.01625] jis
+ <9> s * [0.98556] jis
+ <10> s * [0.961] jis
+ <10.95> s * [0.94516] jis
+ <12> s * [0.98567] jis
+ <14.4> s * [0.92406] jis
+ <17.28> s * [0.85561] jis
+ <20.74> s * [0.88545] jis
+ <24.88> s * [0.9508] jis 
+ <-> jis
+ }{}
+%
+\DeclareFontShape{JY1}{gt}{m}{n}{<5>jisg <6> jisg
+ <7> s * [1.05571] jisg 
+ <8> s * [1.01625] jisg 
+ <9> s * [0.98556] jisg
+ <10> s * [0.961] jisg
+ <10.95> s * [0.94516] jisg
+ <12> s * [0.98567] jisg
+ <14.4> s * [0.92406] jisg
+ <17.28> s * [0.85561] jisg
+ <20.74> s * [0.88545] jisg
+ <24.88> s * [0.9508] jisg  
+ <-> jisg
+ }{}
+\fi
+
+
+%
+\DeclareFontShape{OT1}{cmr}{m}{n}%
+     {<-5.5>   cmr5%
+      <5.5-6.5>   cmr6%
+      <6.5-7.5>   cmr7% 
+      <7.5-8.5>   cmr8%
+      <8.5-11.5>  cmr10%
+      <11.5-16.5> cmr12%
+      <16.5->   cmr17%
+      }{}
+\DeclareFontShape{OT1}{cmr}{m}{sl}%
+     {  <-8.5>   cmsl8%
+      <8.5-9.5>  cmsl9%
+      <9.5-11.5> cmsl10%
+      <11.5->    cmsl12%
+      }{}
+\DeclareFontShape{OT1}{cmr}{m}{it}%
+     {%
+      <-7.5>     cmti7%
+      <7.5-8.5>  cmti8%
+      <8.5-9.5>  cmti9%
+      <9.5-11.5> cmti10%
+      <11.5->    cmti12%
+      }{}
+\DeclareFontShape{OT1}{cmr}{m}{sc}%
+     {%
+      <->cmcsc10%
+      }{}
+\DeclareFontShape{OT1}{cmr}{m}{ui}
+     {%
+      <-> cmu10%
+      }{}
+%%%%%%% bold series
+\DeclareFontShape{OT1}{cmr}{b}{n}
+     {%
+      <-> cmb10%
+      }{}
+%%%%%%%% bold extended series
+\DeclareFontShape{OT1}{cmr}{bx}{n}
+   {%
+      <-5.5>     cmbx5
+      <5.5-6.5>  cmbx6
+      <6.5-7.5>  cmbx7
+      <7.5-8.5>  cmbx8
+      <8.5-9.5>  cmbx9%
+      <9.5-11.5> cmbx10%
+      <11.5->    cmbx12%
+      }{}
+\DeclareFontShape{OT1}{cmr}{bx}{sl}
+      {%
+      <-> cmbxsl10%
+      }{}
+\DeclareFontShape{OT1}{cmr}{bx}{it}
+      {%
+      <-> cmbxti10%
+      }{}
+\DeclareFontShape{OT1}{cmr}{bx}{ui}
+      {<->sub*cmr/m/ui}{}
+%OMScmsy
+\DeclareFontShape{OMS}{cmsy}{m}{n}{%
+      <-5.5>    cmsy5
+      <5.5-6.5> cmsy6
+      <6.5-7.5> cmsy7
+      <7.5-8.5> cmsy8
+      <8.5-9.5> cmsy9
+      <9.5->    cmsy10%
+      }{}
+\DeclareFontShape{OMS}{cmsy}{b}{n}{%
+      <-5.5>    cmbsy5
+      <5.5-6.5> cmbsy6
+      <6.5-7.5> cmbsy7
+      <7.5-8.5> cmbsy8
+      <8.5-9.5> cmbsy9
+      <9.5->    cmbsy10%
+      }{}
+%OMXcmex
+\DeclareFontShape{OMX}{cmex}{m}{n}{%
+   <-> cmex10%
+   }{}
+%OMLcmmi
+\DeclareFontShape{OML}{cmm}{m}{it}%
+     {<-5.5>    cmmi5
+      <5.5-6.5> cmmi6
+      <6.5-7.5> cmmi7
+      <7.5-8.5> cmmi8
+      <8.5-9.5> cmmi9%
+      <9.5-11.5>cmmi10%
+      <11.5->   cmmi12%
+      }{}
+\DeclareFontShape{OML}{cmm}{b}{it}{%
+      <-5.5>    cmmib5
+      <5.5-6.5> cmmib6
+      <6.5-7.5> cmmib7
+      <7.5-8.5> cmmib8
+      <8.5-9.5> cmmib9%
+      <9.5->    cmmib10%
+      }{}
+\DeclareFontShape{OML}{cmm}{bx}{it}%
+   {<->ssub*cmm/b/it}{}
+%%OT1cmtt
+\DeclareFontShape{OT1}{cmtt}{m}{n}
+     {%
+      <-8.5>     cmtt8
+      <8.5-9.5>  cmtt9%
+      <9.5-11.5> cmtt10%
+      <11.5->    cmtt12%
+      }{}
+%%%%%% make sure subst shapes are available
+\DeclareFontShape{OT1}{cmtt}{m}{it}
+     {%
+      <-> cmitt10%
+      }{}
+\DeclareFontShape{OT1}{cmtt}{m}{sl}
+     {%
+      <-> cmsltt10%
+      }{}
+\DeclareFontShape{OT1}{cmtt}{m}{sc}
+     {%
+      <-> cmtcsc10%
+      }{}
+\DeclareFontShape{OT1}{cmtt}{m}{ui}
+  {<->ssub*cmtt/m/it}{}
+\DeclareFontShape{OT1}{cmtt}{bx}{n}
+  {<->ssub*cmtt/m/n}{}
+\DeclareFontShape{OT1}{cmtt}{bx}{it}
+  {<->ssub*cmtt/m/it}{}
+\DeclareFontShape{OT1}{cmtt}{bx}{ui}
+  {<->ssub*cmtt/m/it}{}
+%umsa
+\DeclareFontFamily{U}{msa}{}
+\DeclareFontShape{U}{msa}{m}{n}{
+  <   -5.5> msam5
+  <5.5-6.5> msam6
+  <6.5-7.5> msam7
+  <7.5-8.5> msam8
+  <8.5-9.5> msam9
+  <9.5-    > msam10
+  }{}
+\DeclareFontFamily{U}{msb}{}
+\DeclareFontShape{U}{msb}{m}{n}{
+  <   -5.5> msbm5
+  <5.5-6.5> msbm6
+  <6.5-7.5> msbm7
+  <7.5-8.5> msbm8
+  <8.5-9.5> msbm9
+  <9.5-    > msbm10
+  }{}
+
+\DeclareFontShape{OT1}{cmss}{m}{n}
+     {%
+      <-8.5>cmss8%
+      <8.5-9.5>cmss9%
+      <9.5-11.5>cmss10%
+      <11.5-16.5>cmss12%
+      <16.5->cmss17%
+      }{}
+\DeclareFontShape{OT1}{cmss}{m}{it}
+      {<->sub*cmss/m/sl}{}
+\DeclareFontShape{OT1}{cmss}{m}{sl}
+    {%
+      <-8.5>cmssi8
+      <8.5-9.5>cmssi9%
+      <9.5-11.5>cmssi10%
+      <11.5-16.5>cmssi12%
+      <16.5->cmssi17%
+      }{}
+\DeclareFontShape{OT1}{cmss}{m}{sc}
+       {<->sub*cmr/m/sc}{}
+\DeclareFontShape{OT1}{cmss}{m}{ui}
+       {<->sub*cmr/m/ui}{}
+\DeclareFontShape{OT1}{cmss}{sbc}{n}
+     {%
+      <->cmssdc10%
+     }{}
+\DeclareFontShape{OT1}{cmss}{bx}{n}
+     {%
+      <->cmssbx10%
+      }{}
+\DeclareFontShape{OT1}{cmss}{bx}{ui}
+       {<->sub*cmr/bx/ui}{}
+%%for latexsym
+\DeclareFontFamily{U}{lasy}{}
+\DeclareFontShape{U}{lasy}{m}{n}{
+ <   -5.5>lasy5
+ <5.5-6.5>lasy6
+ <6.5-7.5>lasy7
+ <7.5-8.5>lasy8
+ <8.5-9.5>lasy9
+ <9.5-    >lasy10  }{}
+\DeclareFontShape{U}{lasy}{b}{n}{ 
+     <  -10> ssub * lasy/m/n
+     <10-  > lasyb10  }{}
+%%%
+
+
+
+\ifDS@english
+\else
+%% FutoGo
+ \DeclareFontFamily{JY1}{fgb}{}
+ \DeclareFontShape{JY1}{fgb}{m}{n}{%
+ <-14> s *[0.961] FutoGoB101-Bold-J.tfm%
+ <14-> s *[1] FutoGoB101-Bold-J.tfm%
+ }{}
+ \DeclareFontFamily{JT1}{fgb}{}
+ \DeclareFontShape{JT1}{fgb}{m}{n}{%
+ <-> s *tmin10%
+ }{}
+
+%% FutoMin
+ \DeclareFontFamily{JY1}{fmb}{}
+ \DeclareFontShape{JY1}{fmb}{m}{n}{%
+ <-14> s *[0.961] FutoMinA101-Bold-J.tfm%
+ <14-> s *[1] FutoMinA101-Bold-J.tfm%
+ }{}
+ \DeclareFontFamily{JT1}{fmb}{}
+ \DeclareFontShape{JT1}{fmb}{m}{n}{%
+ <-> s *tmin10%
+ }{}
+\fi
+
+
+\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}
+
+
+\newskip\ChtE
+\newskip\CdpE
+\newskip\CwdE
+\newskip\CvsE
+
+
+
+% normalsize
+% J: 13Q x 21H
+% E: 13Q x 18H
+
+\ifDS@english
+\renewcommand{\normalsize}{%
+    \@setfontsize\normalsize{9.25pt}{12.80592pt}%
+%  \kanjiskip\z@ \@plus .1zw \@minus .05zw
+  \abovedisplayskip 9\p@ \@plus 3\p@ \@minus 4\p@
+  \abovedisplayshortskip \z@ \@plus 2.5\p@
+  \belowdisplayshortskip 5\p@ \@plus 2\p@ \@minus 2\p@
+   \belowdisplayskip \abovedisplayskip
+   \let\@listi\@listI}
+ \normalsize
+% \setbox0\hbox{\char\euc"A1A1}% "
+% \setlength\Cht{\ht0}
+% \setlength\Cdp{\dp0}
+% \setlength\Cwd{\wd0}
+% \setlength\Chs{\wd0}
+ \setlength\ChtE{7.19269pt}
+ \setlength\CdpE{1.28441pt}
+ \setlength\CwdE{8.9005pt}
+ \setlength\CvsE{12.80592pt}
+\else
+\renewcommand{\normalsize}{%
+    \@setfontsize\normalsize{13\JQ}{21H}%
+  \kanjiskip\z@ \@plus .1zw \@minus .05zw
+  \abovedisplayskip 9\p@ \@plus 3\p@ \@minus 4\p@
+  \abovedisplayshortskip \z@ \@plus 2.5\p@
+  \belowdisplayshortskip 5\p@ \@plus 2\p@ \@minus 2\p@
+   \belowdisplayskip \abovedisplayskip
+   \let\@listi\@listI}
+ \normalsize
+ \setbox0\hbox{\char\euc"A1A1}% "
+ \setlength\Cht{\ht0}
+ \setlength\Cdp{\dp0}
+ \setlength\Cwd{\wd0}
+ \setlength\Cvs{\baselineskip}
+ \setlength\Chs{\wd0}
+\fi
+
+\ifDS@english
+\let\Cht\ChtE
+\let\Cdp\CdpE
+\let\Cwd\CwdE
+\let\Cvs\CvsE
+\else\fi
+
+
+
+% small
+% J: 12Q x 20H
+% E: 12Q x 17H
+
+\ifDS@english
+ \newcommand{\small}{%
+  \@setfontsize\small{8.53728pt}{9.960159pt}%
+%  \kanjiskip\z@ \@plus .1zw \@minus .05zw
+  \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+  \abovedisplayshortskip \z@ \@plus\p@
+  \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+  \def\@listi{\leftmargin\leftmargini
+              \topsep 3\p@ \@plus \p@ \@minus \p@
+              \parsep 1\p@ \@plus \p@ \@minus \p@
+              \itemsep \parsep}%
+  \belowdisplayskip \abovedisplayskip}
+\else 
+\newcommand{\small}{%
+  \@setfontsize\small{12\JQ}{20H}%
+  \kanjiskip\z@ \@plus .1zw \@minus .05zw
+  \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+  \abovedisplayshortskip \z@ \@plus\p@
+  \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+  \def\@listi{\leftmargin\leftmargini
+              \topsep 3\p@ \@plus \p@ \@minus \p@
+              \parsep 1\p@ \@plus \p@ \@minus \p@
+              \itemsep \parsep}%
+  \belowdisplayskip \abovedisplayskip}
+\fi
+
+
+% footnotesize
+% J: 11Q x 18H
+% E: 11Q x 13H
+
+\ifDS@english
+ \newcommand{\footnotesize}{%
+%  \@setfontsize\footnotesize{7.82584pt}{9.24872pt}%
+  \@setfontsize\footnotesize{7.82584pt}{9.24872pt}%
+%  \kanjiskip\z@ \@plus .1zw \@minus .05zw
+  \abovedisplayskip 5\p@ \@plus 1.5\p@ \@minus 3\p@
+  \abovedisplayshortskip \z@ \@plus\p@
+  \belowdisplayshortskip 2.5\p@ \@plus \p@ \@minus 1.5\p@
+  \def\@listi{\leftmargin\leftmargini
+              \topsep 2\p@ \@plus\p@ \@minus\p@
+              \parsep 1\p@ \@plus\p@ \@minus\p@
+              \itemsep \parsep}%
+  \belowdisplayskip \abovedisplayskip}
+\else
+ \newcommand{\footnotesize}{%
+  \@setfontsize\footnotesize{11\JQ}{18H}%
+  \kanjiskip\z@ \@plus .1zw \@minus .05zw
+  \abovedisplayskip 5\p@ \@plus 1.5\p@ \@minus 3\p@
+  \abovedisplayshortskip \z@ \@plus\p@
+  \belowdisplayshortskip 2.5\p@ \@plus \p@ \@minus 1.5\p@
+  \def\@listi{\leftmargin\leftmargini
+              \topsep 2\p@ \@plus\p@ \@minus\p@
+              \parsep 1\p@ \@plus\p@ \@minus\p@
+              \itemsep \parsep}%
+  \belowdisplayskip \abovedisplayskip}
+\fi
+
+
+
+\ifDS@english
+ \newcommand{\scriptsize}{\@setfontsize\scriptsize{10\Q}{12\h}}
+\else
+ \newcommand{\scriptsize}{\@setfontsize\scriptsize{10\JQ}{16H}}
+\fi
+
+ \newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt}
+ \newcommand{\large}{\@setfontsize\large\@xpt{22\JQ}}
+ \newcommand{\Large}{\@setfontsize\Large\@xipt{27\JQ}}
+ \newcommand{\LARGE}{\@setfontsize\LARGE\@xiipt{33\JQ}}
+ \newcommand{\huge}{\@setfontsize\huge\@xivpt{25}}
+ \newcommand{\Huge}{\@setfontsize\Huge\@xviipt{30}}
+
+
+
+\setlength\floatsep    {1\Cvs \@plus .75\Cvs \@minus .25\Cvs}
+\setlength\textfloatsep{1\Cvs \@plus .75\Cvs \@minus .25\Cvs}
+\setlength\intextsep   {1\Cvs \@plus .75\Cvs \@minus .25\Cvs}
+\setlength\dblfloatsep    {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+
+
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{8\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{8\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+  \parsep 4\p@ \@plus2\p@ \@minus\p@
+  \topsep 8\p@ \@plus2\p@ \@minus4\p@
+  \itemsep4\p@ \@plus2\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii{\leftmargin\leftmarginii
+   \labelwidth\leftmarginii \advance\labelwidth-\labelsep
+   \topsep  4\p@ \@plus2\p@ \@minus\p@
+   \parsep  2\p@ \@plus\p@  \@minus\p@
+   \itemsep\parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+   \labelwidth\leftmarginiii \advance\labelwidth-\labelsep
+   \topsep 2\p@  \@plus\p@\@minus\p@
+   \parsep\z@
+   \partopsep \p@ \@plus\z@ \@minus\p@
+   \itemsep\topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+              \labelwidth\leftmarginiv
+              \advance\labelwidth-\labelsep}
+\def\@listv  {\leftmargin\leftmarginv
+              \labelwidth\leftmarginv
+              \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+              \labelwidth\leftmarginvi
+              \advance\labelwidth-\labelsep}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+\setlength\headheight{12\p@}
+\setlength\headsep{4.5mm}
+\ifDS@english
+\setlength\topskip{7.19269pt}%% 1\Cht
+\else
+\setlength\topskip{1\Cht}
+\fi
+%\advance\topskip by 0.14748pt%%%%%%%%%%%
+%\setlength\topskip{12.80592pt}
+%\setlength\topskip{12Q}
+\setlength\footskip{11.7mm} %
+\if@compatibility
+  \setlength\maxdepth{4\p@}
+\else
+  \setlength\maxdepth{.5\topskip}
+\fi
+\if@compatibility
+  \if@stysize
+    \ifnum\c@@paper=2 % A5
+      \if@landscape
+        \setlength\textwidth{47\Cwd}
+      \else
+        \setlength\textwidth{28\Cwd}
+      \fi
+    \else\ifnum\c@@paper=3 % B4
+      \if@landscape
+        \setlength\textwidth{75\Cwd}
+      \else
+        \setlength\textwidth{60\Cwd}
+      \fi
+    \else\ifnum\c@@paper=4 % B5
+      \if@landscape
+        \setlength\textwidth{60\Cwd}
+      \else
+        \setlength\textwidth{37\Cwd}
+      \fi
+    \else % A4 ant other
+      \if@landscape
+        \setlength\textwidth{73\Cwd}
+      \else
+        \setlength\textwidth{47\Cwd}
+      \fi
+    \fi\fi\fi
+  \else
+    \if@twocolumn
+      \setlength\textwidth{52\Cwd}
+    \else
+      \setlength\textwidth{4.3in}
+    \fi
+  \fi
+\else
+  \if@stysize
+    \if@twocolumn
+      \setlength\textwidth{.8\paperwidth}
+    \else
+      \setlength\textwidth{.7\paperwidth}
+    \fi
+  \else
+    \setlength\@tempdima{\paperwidth}
+    \addtolength\@tempdima{-2in}
+    \setlength\@tempdimb{327\p@}
+    \if@twocolumn
+      \ifdim\@tempdima>2\@tempdimb\relax
+        \setlength\textwidth{2\@tempdimb}
+      \else
+        \setlength\textwidth{\@tempdima}
+      \fi
+    \else
+      \ifdim\@tempdima>\@tempdimb\relax
+        \setlength\textwidth{\@tempdimb}
+      \else
+        \setlength\textwidth{\@tempdima}
+      \fi
+    \fi
+  \fi
+\fi
+\@settopoint\textwidth
+\if@compatibility
+  \if@stysize
+    \ifnum\c@@paper=2 % A5
+      \if@landscape
+        \setlength\textheight{17\Cvs}
+      \else
+        \setlength\textheight{28\Cvs}
+      \fi
+    \else\ifnum\c@@paper=3 % B4
+      \if@landscape
+        \setlength\textheight{38\Cvs}
+      \else
+        \setlength\textheight{57\Cvs}
+      \fi
+    \else\ifnum\c@@paper=4 % B5
+      \if@landscape
+        \setlength\textheight{22\Cvs}
+      \else
+        \setlength\textheight{35\Cvs}
+      \fi
+    \else % A4 and other
+      \if@landscape
+        \setlength\textheight{27\Cvs}
+      \else
+        \setlength\textheight{43\Cvs}
+      \fi
+    \fi\fi\fi
+    \addtolength\textheight{\topskip}
+    \addtolength\textheight{\baselineskip}
+  \else
+  \setlength\textheight{554\p@}
+  \fi
+\else
+  \if@stysize
+    \setlength\textheight{.70\paperheight}
+  \else
+    \setlength\@tempdima{\paperheight}
+    \addtolength\@tempdima{-2in}
+    \addtolength\@tempdima{-1.5in}
+    \divide\@tempdima\baselineskip
+    \@tempcnta\@tempdima
+    \setlength\textheight{\@tempcnta\baselineskip}
+  \fi
+\fi
+\addtolength\textheight{\topskip}
+\@settopoint\textheight
+\if@compatibility
+  \if@stysize
+    \setlength\topmargin{-.3in}
+  \else
+    \setlength\topmargin{.75in}
+  \fi
+\else
+  \setlength\topmargin{\paperheight}
+  \addtolength\topmargin{-\headheight}
+  \addtolength\topmargin{-\headsep}
+  \addtolength\topmargin{-\textheight}
+  \addtolength\topmargin{-\footskip}
+  \if@stysize
+    \ifnum\c@@paper=2 % A5
+      \addtolength\topmargin{-1.3in}
+    \else
+      \addtolength\topmargin{-2.0in}
+    \fi
+  \else
+    \addtolength\topmargin{-2.0in}
+  \fi
+  \addtolength\topmargin{-.5\topmargin}
+\fi
+\@settopoint\topmargin
+\if@twocolumn
+  \setlength\marginparsep{10\p@}
+\else
+  \setlength\marginparsep{10\p@}
+\fi
+\setlength\marginparpush{5\p@}
+\if@compatibility
+    \setlength\oddsidemargin   {.5in}
+    \setlength\evensidemargin  {1.5in}
+    \setlength\marginparwidth {.75in}
+  \if@twocolumn
+     \setlength\oddsidemargin  {30\p@}
+     \setlength\evensidemargin {30\p@}
+     \setlength\marginparwidth {48\p@}
+  \fi
+  \if@stysize
+    \if@twocolumn\else
+      \setlength\oddsidemargin{0\p@}
+      \setlength\evensidemargin{0\p@}
+    \fi
+  \fi
+\else
+  \setlength\@tempdima{\paperwidth}
+  \addtolength\@tempdima{-\textwidth}
+  \if@twoside
+    \setlength\oddsidemargin{.4\@tempdima}
+  \else
+    \setlength\oddsidemargin{.5\@tempdima}
+  \fi
+  \addtolength\oddsidemargin{-1in}
+  \setlength\evensidemargin{\paperwidth}
+  \addtolength\evensidemargin{-2in}
+  \addtolength\evensidemargin{-\textwidth}
+  \addtolength\evensidemargin{-\oddsidemargin}
+  \@settopoint\oddsidemargin
+  \@settopoint\evensidemargin
+  \if@twoside
+    \setlength\marginparwidth{.6\@tempdima}
+    \addtolength\marginparwidth{-.4in}
+  \else
+    \setlength\marginparwidth{.5\@tempdima}
+    \addtolength\marginparwidth{-.4in}
+  \fi
+  \ifdim \marginparwidth >2in
+    \setlength\marginparwidth{2in}
+  \fi
+  \@settopoint\marginparwidth
+\fi
+
+%
+\headheight5mm
+%
+\headsep9.5mm
+
+
+\if@Proof
+ \def\@Rtop{\rlap{\smash{\rule[-\headsep]{0.05mm}{10mm}%
+  \rule[-\headsep]{10mm}{0.05mm}}}}
+ \def\@Ltop{\llap{\smash{\rule[-\headsep]{10mm}{0.05mm}%
+  \rule[-\headsep]{0.05mm}{10mm}}}}
+ \def\@Rbot{\rlap{\smash{\raisebox{1\footskip}
+  {\rule[-10mm]{0.05mm}{10mm}\rule{10mm}{0.05mm}}}}}
+ \def\@Lbot{\llap{\smash{\raisebox{1\footskip}
+  {\rule{10mm}{0.05mm}\rule[-10mm]{0.05mm}{10mm}}}}}
+\else
+ \let\@Rtop\relax\let\@Ltop\relax\let\@Rbot\relax\let\@Lbot\relax
+\fi
+
+
+%
+\newif\if@enablejfam \@enablejfamtrue%
+
+\setlength\lineskip{1\p@}%
+\setlength\normallineskip{1\p@}%
+\renewcommand{\baselinestretch}{}%
+\newskip\normalbaselineskip
+
+\setlength\parskip{\z@}%
+
+
+\ifDS@english
+\setlength\parindent{1em}%
+\else
+\setlength\parindent{1zw}%
+\fi
+
+
+%penalty
+\@lowpenalty   51
+\@medpenalty  151
+\@highpenalty 301
+
+%%float
+\setcounter{topnumber}{8}
+\setcounter{bottomnumber}{8}
+\setcounter{totalnumber}{16}
+\setcounter{dbltopnumber}{2}
+
+%\renewcommand{\topfraction}{1}
+%\renewcommand{\bottomfraction}{1}
+%\renewcommand{\textfraction}{.05}
+%\renewcommand{\floatpagefraction}{.05}
+%\renewcommand{\dbltopfraction}{.95}
+%\renewcommand{\dblfloatpagefraction}{.05}
+
+\def\topfraction{1}
+\def\bottomfraction{1}
+\def\textfraction{0}
+\def\floatpagefraction{0}
+\def\dbltopfraction{1}
+\def\dblfloatpagefraction{0}
+%
+
+%=================================================================================
+
+%
+\def\SIGHead{\ifDS@english%
+{IPSJ Transactions on}%
+\else 情報処理学会論文誌\fi}%%
+
+
+\def\signame@DAM{\ifDS@english%
+Electronic Preprint for Journal of Information Processing%
+\else 情報処理学会論文誌\fi}%%
+
+\ifDS@english
+\newcommand{\COMS}{Consumer Devices \& Systems}
+\else
+\newcommand{\COMS}{コンシューマ・デバイス\,\&\,システム}
+\fi
+
+
+\def\signame@ACS{\ifDS@english%
+{{{\SIGHead} Advanced Computing Systems}}%
+\else {\SIGHead}\hskip12\JQ コンピューティングシステム\fi}%
+%
+\def\signame@PRO{\ifDS@english%
+{{{\SIGHead} Programming}}%
+\else {\SIGHead}\hskip12\JQ プログラミング\fi}%
+%
+\def\signame@TOM{\ifDS@english%
+{{{\SIGHead} Mathematical Modeling and Its Applications}}%
+\else {\SIGHead}\hskip12\JQ 数理モデル化と応用\fi}%
+%
+\def\signame@TOD{\ifDS@english%
+{{{\SIGHead} Databases}}%
+\else {\SIGHead}\hskip12\JQ データベース\fi}%
+%
+\def\signame@CDS{\ifDS@english%
+{{{\SIGHead} Consumer Devices \& Systems}}%
+\else {\SIGHead}\hskip12\JQ \COMS%
+\fi}%
+%
+% v1.5
+\def\signame@DC{\ifDS@english%
+{{{\SIGHead} Digital Content}}%
+\else {\SIGHead}\hskip12\JQ デジタルコンテンツ\fi}%
+%%%
+% v2.0
+\def\signame@DCON{\ifDS@english%
+{{{\SIGHead} Digital Content}}%
+\else {\SIGHead}\hskip12\JQ デジタルコンテンツ\fi}%
+%%%
+\def\signame@CVA{{{{\SIGHead} Computer Vision and Applications}}}
+\def\signame@TBIO{{{{\SIGHead} Bioinformatics}}}
+\def\signame@SLDM{{{{\SIGHead} System LSI Design Methodology}}}
+\def\signame@JIP{{{Journal of Information Processing}}}
+%%%
+\let\signame@Data\signame@TBIO
+\let\signame@Survey\signame@TBIO
+%\let\signame@Research\signame@CVA
+\let\signame@Short\signame@SLDM
+%
+% v1.7
+\def\signame@TCE{\ifDS@english%
+{{{\SIGHead} Computers and Education}}%
+\else {\SIGHead}\hskip12\JQ 教育とコンピュータ\fi}%
+
+
+
+
+
+%%%<<<< 1.02
+\def\signame@Research{%
+   \ifDS@CVA
+      {{\SIGHead} Computer Vision and Applications}%
+   \else
+      \ifDS@CDS%
+         \ifDS@english%
+         {{{\SIGHead} Consumer Devices \& Systems}}%
+         \else {\SIGHead}\hskip12\JQ \COMS%
+         \fi
+      \else\fi
+%%%
+      \ifDS@DCON%
+         \ifDS@english%
+         {{{\SIGHead} Digital Content}}%
+         \else {\SIGHead}\hskip12\JQ デジタルコンテンツ%
+         \fi
+      \else\fi
+%%%
+      \ifDS@DC%
+         \ifDS@english%
+         {{{\SIGHead} Digital Content}}%
+         \else {\SIGHead}\hskip12\JQ デジタルコンテンツ%
+         \fi
+      \else\fi
+   \fi
+}%
+%
+
+
+
+
+\def\signame{\csname signame@\@type\endcsname}
+
+\def\type#1{\def\@type{#1}}
+
+
+\def\HeadfontE{%
+\ifDS@english
+   \fontsize{13\Q}{0\h}\sffamily\bfseries\selectfont%
+\else
+   \if@submit
+   \fontsize{13\Q}{0\h}\sffamily\bfseries\selectfont%
+   \else
+   \fontsize{13\Q}{0\h}\usefont{OT1}{phv}{b}{n}\selectfont%
+   \fi
+\fi
+}
+
+
+\def\HeadfontJ{\fontsize{12\JQ}{0\h}\bfseries\selectfont}
+
+\def\DOIHeadfont{\fontsize{11\Q}{0\h}%\usefont{OT1}{phv}{m}{n}\selectfont
+\sffamily\selectfont}
+
+%============================================================
+
+
+\def\Mtype#1{\def\@type{#1}}
+
+\def\SHUBETUname{\csname SHUBETUname@\@Mtype\endcsname}
+
+
+
+\def\SHUBETUfontE{\fontsize{18\Q}{0\h}\bfseries%
+%\usefont{OT1}{ptm}{b}{n}%Times-Bold*
+\selectfont
+}
+
+\def\SHUBETUfontJ{%
+\if@submit
+\fontsize{18\JQ}{0\h}\usefont{JY1}{gt}{m}{n}%
+\selectfont%
+\else
+\fontsize{18\JQ}{0\h}\usefont{JY1}{fgb}{m}{n}%
+\selectfont%
+\fi
+}
+
+
+%v1.7
+\def\SHUBETUname@DAM{\ifDS@english%
+Regular Paper%
+\else 
+ \ifDS@TCE
+ 論{\hskip1\zw}文%
+ \fi
+\leavevmode \fi}%%
+
+
+
+
+%%%
+\def\SHUBETUname@invited{\ifDS@english%
+Invited Paper%
+\else 招待論文\fi}
+
+
+%v1.7
+\def\SHUBETUname@sigrecommended{\ifDS@english%
+Recommended Paper%
+\else 
+ \ifDS@TCE
+ 研究会%
+ \fi
+推薦論文\fi}%
+
+
+%v1.7
+\def\SHUBETUname@invitedshort{\ifDS@english%
+Invited Short Paper%
+\else 招待ショートペーパー\fi}%
+
+
+\def\SHUBETUname@recommendedshort{\ifDS@english%
+Recommended Short Paper%
+\else 研究会推薦ショートペーパー\fi}%
+
+
+
+\def\SHUBETUname@technote{\ifDS@english%
+Technical Note%
+\else テクニカルノート\fi}%
+
+
+
+\def\SHUBETUname@recommendedresearch{\ifDS@english%
+Recommended Research Paper%
+\else 推薦研究論文\fi}%
+
+
+
+\def\SHUBETUname@recommendedpractice{\ifDS@english%
+Recommended Practice Paper%
+\else 推薦産業論文\fi}%
+
+
+\def\SHUBETUname@recommendedcontent{\ifDS@english%
+Recommended Content Paper%
+\else 推薦作品論文\fi}%
+
+
+
+
+
+
+
+
+
+%%%<<<< 4.0
+\def\SHUBETUname@abstract{\ifDS@english%
+Presentation Abstract%
+\else 発表概要\fi}%
+
+
+\def\SHUBETUname@Eabstract{Presentation Abstract}
+
+
+
+
+
+\ifDS@english
+\newcommand{\COMSYS}{Paper on Consumer Systems}
+\newcommand{\COMSER}{Paper on Consumer Services}
+\newcommand{\COMSDV}{Paper on Consumer Devices}
+\newcommand{\RECCOMSDV}{Paper on Consumer Devices}%% v3.05
+\newcommand{\COMSAN}{Practice Paper}% v1.5
+\newcommand{\COMCON}{Content Paper} % v1.5
+\else
+\newcommand{\COMSYS}{コンシューマ・システム論文}
+\newcommand{\COMSER}{コンシューマ・サービス論文}
+\newcommand{\COMSDV}{コンシューマ・デバイス論文}
+\newcommand{\RECCOMSDV}{推薦コンシューマ・デバイス論文}%v3.05
+\newcommand{\COMSAN}{産業論文}% v1.5
+\newcommand{\COMCON}{作品論文}% v1.5
+\fi
+
+
+
+\def\SHUBETUname@systems{\ifDS@english%
+\ifDS@JIP Paper (Consumer Systems)\else Paper on Consumer Systems\fi
+\else \COMSYS%
+\fi}
+
+\def\SHUBETUname@services{\ifDS@english%
+\ifDS@JIP Paper (Consumer Services)\else Paper on Consumer Services\fi
+\else \COMSER%
+\fi}
+
+\def\SHUBETUname@devices{\ifDS@english%
+\ifDS@JIP Paper (Consumer Devices)\else Paper on Consumer Devices\fi
+\else \COMSDV%
+\fi}
+
+\def\SHUBETUname@Research{\ifDS@english%
+\ifDS@JIP Regular Paper\else Research Paper\fi
+\else 研究論文\fi}
+
+
+\def\SHUBETUname@Data{Database/Software Paper}
+\def\SHUBETUname@Survey{Survey Paper}
+\def\SHUBETUname@TBIOM{Original Paper}
+
+
+%v1.7
+\def\SHUBETUname@Short{\ifDS@english%
+Short Paper%
+\else ショートペーパー\fi}
+
+
+
+
+% v1.4
+\def\SHUBETUname@system{Systems Paper}
+
+% v1.5
+\def\SHUBETUname@Express{Express Paper}
+
+% v3.05
+\def\SHUBETUname@recommendeddevices{\ifDS@english%
+\ifDS@JIP Paper (Consumer Devices)\else Paper on Consumer Devices\fi
+\else \RECCOMSDV%
+\fi}
+
+
+
+\def\SHUBETUname@Practice{\ifDS@english%
+\ifDS@JIP Regular Paper\else Practice Paper\fi
+\else \COMSAN%
+\fi}
+
+
+\def\SHUBETUname@Content{\ifDS@english%
+\ifDS@JIP Regular Paper\else Content Paper\fi
+\else \COMCON%
+\fi}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\def\ps@plain{\let\@mkboth\@gobbletwo
+   \let\ps@jpl@in\ps@plain
+   \let\@oddhead\@empty
+   \def\@oddfoot{\reset@font\hfil\thepage\hfil}%
+   \let\@evenhead\@empty
+   \let\@evenfoot\@oddfoot}
+\let\ps@jpl@in\ps@plain
+\def\ps@headnombre{\let\@mkboth\@gobbletwo
+    \let\ps@jpl@in\ps@headnombre
+  \def\@evenhead{\thepage\hfil}%
+  \def\@oddhead{\hfil\thepage}%
+  \let\@oddfoot\@empty\let\@evenfoot\@empty}
+\def\ps@footnombre{\let\@mkboth\@gobbletwo
+    \let\ps@jpl@in\ps@footnombre
+  \def\@evenfoot{\thepage\hfil}%
+  \def\@oddfoot{\hfil\thepage}%
+  \let\@oddhead\@empty\let\@evenhead\@empty}
+
+
+\def\ps@empty{%
+ \def\@oddhead{\@Ltop\hfil\@Rtop}%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot\hfil\@Rbot}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}
+
+%===============================================================
+
+
+% copyright
+\DeclareTextCommandDefault{\textcopyrighttx}{%
+{\fontfamily{txsy}\textcircled{%
+\usefont{OT1}{ptm}{m}{n}\selectfont%
+c}}}
+
+
+
+\def\bothashira{%
+\ifDS@english
+ \fontsize{10\Q}{0\h}\normalfont\selectfont%
+\else
+   \if@submit
+      \fontsize{10\Q}{0\h}\normalfont\selectfont%
+   \else
+      \fontsize{10\Q}{0\h}\usefont{OT1}{ptm}{m}{n}%Times
+      \selectfont%
+   \fi
+\fi
+}
+
+
+\def\botnomble{%
+\ifDS@english
+ \fontsize{13\Q}{0\h}\normalfont\selectfont%
+\else
+   \if@submit
+      \fontsize{13\Q}{0\h}\normalfont\selectfont%
+   \else
+      \fontsize{13\Q}{0\h}\usefont{OT1}{ptm}{m}{n}%Times
+      \selectfont%
+   \fi
+\fi
+}
+
+
+
+
+
+%%%<<<< 1.02
+\ifDS@english
+\def\ps@IPSJTITLEheadings{%
+ \def\@oddhead{\@Ltop%
+\rlap{\small{%%
+%%
+\ifx\signame\relax%
+{\HeadfontE{\signame@DEF}}%%
+\else%<<<--   to TCE
+  \ifDS@JIP
+    {\HeadfontE{\signame@JIP}}%%
+  \else
+    {\HeadfontE{\signame}}%%
+  \fi
+\fi
+%%%%%
+%vol
+%%%%%
+%===============
+\hskip12\Q{\HeadfontE{Vol.\number\c@volume}}%
+%===============
+  \ifDS@CVA\relax\else
+  \ifDS@TBIO\relax\else
+  \ifDS@SLDM\relax\else
+%%%<<<< 3.03
+  \ifDS@preprint\relax\else
+  \ifDS@JIP\relax\else
+%%%%%%
+%no
+%%%%%%
+%%%<<<< 3.01
+\hskip1em{\HeadfontE{No.\number\c@number}}%
+\fi\fi\fi\fi\fi
+%%%%%%
+%page
+%%%%%%
+\bgroup
+%%%
+%
+\ifDS@ACS
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@PRO
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+   \ifDS@abstract
+      \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+      \HeadfontE{(\@monthyear)}%
+   \else
+     \ifDS@JIP
+     \else
+       \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+       \HeadfontE{(\@monthyear)}%
+     \fi
+   \fi
+\else\relax\fi
+%
+\ifDS@TOD
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@TOM
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+      \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+      \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@TBIO
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else\relax\fi
+%
+\ifDS@CVA
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else\relax\fi
+%
+\ifDS@SLDM
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else\relax\fi
+%
+\ifDS@JIP
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else\relax\fi
+%
+\ifDS@CDS
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+% v1.5
+\ifDS@DC
+%%%%<<<< 3.01
+\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+% v2.0
+\ifDS@DCON
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+% v1.7
+\ifDS@TCE%% invitedshort,recommendedshort
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%%%
+\egroup
+}%
+}%
+%%%%%
+\smash{\raisebox{-6mm}{\rlap{%
+{\DOIHeadfont%
+%%%%
+\bgroup
+\ifDS@TBIO
+   [DOI: 10.2197/ipsjtbio.\number\c@volume.\pageref{ipsj@firstpage}]
+\else\fi
+%
+\ifDS@CVA
+   [DOI: 10.2197/ipsjtcva.\number\c@volume.\pageref{ipsj@firstpage}]
+\else\fi
+%
+\ifDS@SLDM
+   [DOI: 10.2197/ipsjtsldm.\number\c@volume.\pageref{ipsj@firstpage}]
+\else\fi
+%
+\ifDS@JIP
+   [DOI: 10.2197/ipsjjip.\number\c@volume.\pageref{ipsj@firstpage}]
+\else\fi
+%
+%%
+%%
+%%%%%
+\egroup
+}%
+}}}%
+\hfil\@Rtop}%
+%%%%%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot%
+\rlap{%\fontsize{10\Q}{0\h}%
+%\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+%\normalfont%
+{\bothashira%
+\copyright \ {\@footyear} Information Processing Society of Japan%
+}}%
+\hfil
+%\fontsize{13\Q}{0\h}%
+%\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+%\normalsize
+{\botnomble
+%%%%%%
+\ifDS@ACS{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@PRO{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@TOD{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@TOM{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@TBIO{\thepage}\else\fi
+\ifDS@CVA{\thepage}\else\fi
+\ifDS@SLDM{\thepage}\else\fi
+\ifDS@JIP{\thepage}\else\fi
+\ifDS@CDS{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@DC{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@DCON{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@TCE{\ifDS@JIP\else\thepage\fi}\else\fi
+%<<<<<<<<<<< 3.02
+%\ifDS@invitedshort{\thepage}\else\fi % v1.7
+%\ifDS@recommendedshort{\thepage}\else\fi % v1.7
+%%%%%
+\@Rbot}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}}
+%%%
+%%%%%%%%%
+\else
+%%%%%%%%%
+%%%
+\def\ps@IPSJTITLEheadings{%
+ \def\@oddhead{\@Ltop%
+\rlap{\small%
+%%
+\ifx\signame\relax%
+{\HeadfontJ{\signame@DEF}}%%
+\else
+{\HeadfontJ{\signame}}%%
+\fi
+%%%%%
+{%%
+\hskip12\JQ{\HeadfontE{Vol.\number\c@volume}}%
+\hskip12\JQ{\HeadfontE{No.\number\c@number}}% jp1p
+\ifDS@abstract
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else
+\hskip12\JQ{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+\HeadfontE{(\@monthyear)}%
+\fi
+}}%
+%%%%
+\smash{\raisebox{-6mm}{\rlap{%
+{\DOIHeadfont%%
+}%
+}}}%
+\hfil\@Rtop}%
+%%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot%
+\rlap{%
+%\fontsize{10\Q}{0\h}\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+{\bothashira%
+{\textcopyrighttx} \ {\@footyear} Information Processing Society of Japan%
+}}%
+\hfil%
+%\fontsize{13\Q}{0\h}%
+%\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+{\botnomble%
+{\thepage}}%
+\@Rbot}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}
+\fi
+
+
+
+
+
+
+
+
+%===================================================================
+%%%
+\ifDS@english
+\def\ps@headings{%
+ \def\@oddhead{\@Ltop%
+\rlap{\small{%%
+%%
+\ifx\signame\relax%
+{\HeadfontE{\signame@DEF}}%%
+\else%<<<--   to TCE
+  \ifDS@JIP
+    {\HeadfontE{\signame@JIP}}%%
+  \else
+    {\HeadfontE{\signame}}%%
+  \fi
+\fi
+%%%%%
+%vol
+%%%%%
+%===============
+\hskip12\Q{\HeadfontE{Vol.\number\c@volume}}%
+%===============
+  \ifDS@CVA\relax\else
+  \ifDS@TBIO\relax\else
+  \ifDS@SLDM\relax\else
+%%%<<<< 3.03
+  \ifDS@preprint\relax\else
+  \ifDS@JIP\relax\else
+%%%%%%
+%no
+%%%%%%
+%%%<<<< 3.01
+\hskip1em{\HeadfontE{No.\number\c@number}}%
+\fi\fi\fi\fi\fi
+%%%%%%
+%page
+%%%%%%
+\bgroup
+%%%
+%
+\ifDS@ACS
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@PRO
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+     \ifDS@JIP
+     \else
+       \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+       \HeadfontE{(\@monthyear)}%
+     \fi
+\else\relax\fi
+%
+\ifDS@TOD
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@TOM
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@TBIO
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else\relax\fi
+%
+\ifDS@CVA
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else\relax\fi
+%
+\ifDS@SLDM
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else\relax\fi
+%
+\ifDS@JIP
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+\else\relax\fi
+%
+\ifDS@CDS
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+% v1.5
+\ifDS@DC
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+% v2.0
+\ifDS@DCON
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+% v1.7
+\ifDS@TCE%% invitedshort,recommendedshort
+%%%<<<< 3.01
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+  \ifDS@JIP
+  \else
+     \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+     \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+%
+%%%
+\egroup
+}%
+}%
+%%%%%
+\smash{\raisebox{-6mm}{\rlap{%
+{\DOIHeadfont%
+%%%%
+}%
+}}}%
+\hfil\@Rtop}%
+%%%%%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot%
+\rlap{%
+%\fontsize{10\Q}{0\h}\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+{\bothashira%
+\copyright \ {\@footyear} Information Processing Society of Japan%
+}}%
+\hfil
+%\fontsize{13\Q}{0\h}\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+{\botnomble%
+%%%%%%
+\ifDS@ACS{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@PRO{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@TOD{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@TOM{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@TBIO{\thepage}\else\fi
+\ifDS@CVA{\thepage}\else\fi
+\ifDS@SLDM{\thepage}\else\fi
+\ifDS@JIP{\thepage}\else\fi
+\ifDS@CDS{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@DC{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@DCON{\ifDS@JIP\else\thepage\fi}\else\fi
+\ifDS@TCE{\ifDS@JIP\else\thepage\fi}\else\fi
+%<<<<<<<<<<< 3.02
+%\ifDS@invitedshort{\thepage}\else\fi % v1.7
+%\ifDS@recommendedshort{\thepage}\else\fi % v1.7
+%
+%
+%
+%\ifDS@ACS{\thepage}\else\fi
+%\ifDS@PRO{\ifDS@JIP\else\thepage\fi}\else\fi
+%\ifDS@TOD{\thepage}\else\fi
+%\ifDS@TOM{\thepage}\else\fi
+%\ifDS@TBIO{\thepage}\else\fi
+%\ifDS@CVA{\thepage}\else\fi
+%\ifDS@SLDM{\thepage}\else\fi
+%\ifDS@JIP{\thepage}\else\fi
+%\ifDS@CDS{\thepage}\else\fi
+%\ifDS@DC{\thepage}\else\fi % v1.5
+%\ifDS@TCE{\thepage}\else\fi % v1.7
+%\ifDS@invitedshort{\thepage}\else\fi % v1.7
+%\ifDS@recommendedshort{\thepage}\else\fi % v1.7
+%%%%%
+\@Rbot}}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}
+%%%
+%%%%%%%%%
+\else
+%%%%%%%%%
+%%%
+\def\ps@headings{%
+ \def\@oddhead{\@Ltop%
+\rlap{\small%
+%%
+\ifx\signame\relax%
+{\HeadfontJ{\signame@DEF}}%%
+\else
+{\HeadfontJ{\signame}}%%
+\fi
+%%%%%
+{%%
+\hskip12\JQ{\HeadfontE{Vol.\number\c@volume}}%
+\hskip12\JQ{\HeadfontE{No.\number\c@number}}% jp
+\hskip12\JQ{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+\HeadfontE{(\@monthyear)}}}%
+%%%%
+\smash{\raisebox{-6mm}{\rlap{%
+{\DOIHeadfont%%
+}%
+}}}%
+\hfil\@Rtop}%
+%%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot%
+\rlap{%\fontsize{10\Q}{0\h}\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+{\bothashira%
+{\textcopyrighttx} \ {\@footyear} Information Processing Society of Japan%
+}}%
+\hfil%
+%\fontsize{13\Q}{0H}\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+{\botnomble%
+{\thepage}}%
+\@Rbot}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}
+\fi
+
+
+
+
+
+
+
+%%%<<<< 1.02
+
+\def\ipsj@year{%
+%%%
+\ifDS@JIP
+\ifnum\c@year<\z@
+\c@year1992 \advance\c@year\c@volume 
+\fi\fi
+%%%
+\ifDS@EEE
+\ifnum\c@year<\z@
+\c@year1992 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@ACS 
+\ifnum\c@year<\z@
+\c@year2007 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@PRO
+\ifnum\c@year<\z@
+\c@year2007 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@TOD
+\ifnum\c@year<\z@
+\c@year2007 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@TOM
+\ifnum\c@year<\z@
+\c@year2007 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@TBIO
+\ifnum\c@year<\z@
+\c@year2007 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@CVA
+\ifnum\c@year<\z@
+\c@year2008 \advance\c@year\c@volume %!!
+\fi\fi
+\ifDS@SLDM
+\ifnum\c@year<\z@
+\c@year2007 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@CDS
+\ifnum\c@year<\z@
+\c@year2010 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@DC % v1.5
+\ifnum\c@year<\z@
+\c@year2012 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@DCON % v2.0
+\ifnum\c@year<\z@
+\c@year2012 \advance\c@year\c@volume 
+\fi\fi
+\ifDS@TCE % v1.5
+\ifnum\c@year<\z@
+\c@year2014 \advance\c@year\c@volume 
+\fi\fi
+%%
+%===
+\ifnum\c@year<\z@
+\c@year2020 \advance\c@year\c@volume 
+\fi
+\number\c@year
+%===
+}
+
+
+
+
+%%%<<<< 1.02
+%%%<<<< 1.09
+%%%<<<< 3.01
+\def\ipsj@month{{%
+	\@tempcnta\ifDS@online\ipsj@olh@month \else
+		\ifnum\c@month<\z@ \c@number \else \c@month \fi \fi \relax
+   %\ifDS@JIP
+	%\ifcase\@tempcnta???\or Jan.\or Mar.\or May\or July\or Sep.\or Nov.\else
+	%	???\fi
+   %\else   
+	\ifcase\@tempcnta???\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
+   %\fi
+}}
+
+
+
+
+
+\def\@monthyear{\ipsj@month \hskip.5\Cwd \ipsj@year}
+
+\def\@footyear{\ipsj@year}
+
+
+\newcounter{volume} \c@volume\z@
+\newcounter{number} \c@number\z@
+\newcounter{month} \c@month\m@ne
+\newcounter{year} \c@year\m@ne
+				
+
+\expandafter\let\csname c@巻数\endcsname\c@volume
+\expandafter\let\csname c@号数\endcsname\c@number
+\expandafter\let\csname c@月数\endcsname\c@month
+\expandafter\let\csname c@年数\endcsname\c@year
+
+
+
+\AtBeginDocument{\label{ipsj@firstpage}}
+\AtEndDocument{%
+ \clearpage
+ \addtocounter{page}{-1}%
+ \immediate\write\@auxout
+  {\string\newlabel{ipsj@lastpage}{{}{\thepage}}}%
+}
+
+
+%==========================================================================================================================
+
+
+\def\jtitle{\@ifnextchar[% 
+ {\d@jtitle}{\s@jtitle}}
+\def\d@jtitle[#1]#2{\gdef\hd@title{#1}\gdef\@jtitle{#2}}
+\def\s@jtitle#1{\gdef\hd@title{#1}\gdef\@jtitle{#1}}
+\def\@jtitle{}
+\def\hd@title{}
+\def\etitle#1{\gdef\@etitle{#1}}
+\def\@etitle{}
+
+
+\def\p@thanks#1{\footnotemark
+  \protected@xdef\@thanks{\@thanks
+    \protect{\noindent$\m@th^\thefootnote$~#1\protect\par}}}
+
+
+
+%=================================================================================
+% author,affiliate
+%=================================================================================
+
+\newcount\author@count
+\newcount\label@count
+\newcount\email@count
+\newcount\affiliate@count
+\newcount\offsetemail
+\newcount\paffiliate@count
+
+
+
+\ifDS@english
+\def\author#1#2{%
+\@ifnextchar[%
+{\@author{#1}{#2}}
+{\@author{#1}{#2}[]}
+}
+%====
+\else
+%====
+\def\author#1#2#3{%
+\@ifnextchar[%
+{\@author{#1}{#2}{#3}}
+{\@author{#1}{#2}{#3}[]}
+}
+\fi
+
+
+
+\ifDS@english
+\def\@author#1#2[#3]{%
+ \advance\author@count\@ne
+\expandafter\def\csname authorname\the\author@count\endcsname{#1}
+%%
+\edef\@labellist{\zap@space#2 \@empty}
+\@for\@temp:=\@labellist\do{%
+ \advance\label@count\@ne
+\expandafter\edef\csname authorlabel\the\author@count @\the\label@count\endcsname{\@temp}}
+\expandafter\edef\csname authorlabel@num@\the\author@count \endcsname{\the\label@count}
+\label@count\z@
+\def\_{\leavevmode \kern.06em\vbox{\hrule\@width.3em}}%%%!!!!
+\edef\@emaillist{\zap@space#3 \@empty}
+\@for\@temp:=\@emaillist\do{%
+ \advance\email@count\@ne
+\expandafter\edef\csname authoremail\the\author@count @\the\email@count\endcsname{\@temp}%
+}%
+\expandafter\edef\csname authoremail@num@\the\author@count \endcsname{\the\email@count}%
+\email@count\z@
+}%
+%===
+\else
+%===
+\def\@author#1#2#3[#4]{%
+ \advance\author@count\@ne
+\expandafter\def\csname authorname\the\author@count\endcsname{#1}
+%%
+\expandafter\def\csname eauthorname\the\author@count\endcsname{#2}
+%%
+\edef\@labellist{\zap@space#3 \@empty}
+\@for\@temp:=\@labellist\do{%
+ \advance\label@count\@ne
+\expandafter\edef\csname authorlabel\the\author@count @\the\label@count\endcsname{\@temp}}
+\expandafter\edef\csname authorlabel@num@\the\author@count \endcsname{\the\label@count}
+\label@count\z@
+%%
+\def\_{\leavevmode \kern.06em\vbox{\hrule\@width.3em}}%%%!!!!
+\edef\@emaillist{\zap@space#4 \@empty}
+\@for\@temp:=\@emaillist\do{%
+ \advance\email@count\@ne
+\expandafter\edef\csname authoremail\the\author@count @\the\email@count\endcsname{\@temp}}
+\expandafter\edef\csname authoremail@num@\the\author@count \endcsname{\the\email@count}
+\email@count\z@
+}
+\fi
+
+
+
+
+
+
+
+
+
+\def\affiliate#1#2{%
+%\expandafter\def\csname affiliate@#1\endcsname{#2}
+\advance\affiliate@count\@ne
+\expandafter\edef\csname affiliate@num@#1\endcsname{\the\affiliate@count}%
+%\typeout{>>>>>>\csname affiliate@1\endcsname}
+\expandafter\def\csname affiliate@\the\affiliate@count\endcsname{#2}%
+}
+
+
+\def\paffiliate#1#2{%
+%\advance\affiliate@count\@ne
+\advance\paffiliate@count\@ne
+\expandafter\edef\csname paffiliate@num@#1\endcsname{$\dagger$\the\paffiliate@count}%
+\expandafter\def\csname paffiliate@\the\paffiliate@count\endcsname{#2}%
+}
+
+
+
+\def\authoroutput#1{%
+%\begin{center}
+\bgroup
+\offsetemail\z@
+\count@\@ne
+\advance\author@count\@ne
+%%%
+%%%
+%%%
+\@whilenum{\count@<\author@count}\do{%
+\mbox{% start
+%
+%% \csname #1authorfont\endcsname%% !! font
+%
+\ifDS@english
+   \csname authorname\the\count@\endcsname %\csname affiliate@num@\endcsname
+\else
+   \csname #1authorname\the\count@\endcsname %\csname affiliate@num@\endcsname
+\fi
+%%%%%label
+\null{}%
+\expandafter\@tempcnta\csname authorlabel@num@\the\count@\endcsname
+   \advance\@tempcnta\@ne
+   \@tempcntb\@ne
+{%
+   \@whilenum{\@tempcntb<\@tempcnta}\do{%
+      \edef\temp{\csname authorlabel\the\count@ @\the\@tempcntb\endcsname}%
+      \textsuperscript{\csname #1labelfont\endcsname%% !! font
+%%%change from here
+%%%add paffiliate
+%         \expandafter\if\csname affiliate@num@\temp\endcsname\relax %% v1.06
+         \expandafter\ifx\csname affiliate@num@\temp\endcsname\relax
+            \csname paffiliate@num@\temp\endcsname%%affiliate
+         \else
+            \csname affiliate@num@\temp\endcsname
+         \fi
+%%%end
+         \comma@or@relax@affilabel}%
+      \advance\@tempcntb\@ne
+}%
+}%
+%%%%%%email
+\expandafter\@tempcnta\csname authoremail@num@\the\count@\endcsname\relax
+   \ifnum\@tempcnta=\z@\relax\else\textsuperscript{,}\fi
+   \advance\@tempcnta\@ne
+   \@tempcntb\@ne
+   \@whilenum{\@tempcntb<\@tempcnta}\do{%
+         %\textsuperscript{\space}%
+      \bgroup
+         \advance\@tempcntb\offsetemail
+         \textsuperscript{\csname #1labelfont\endcsname%% !! font
+            \@alph{\@tempcntb}\rparen\comma@or@relax@email}%
+      \egroup
+      \advance\@tempcntb\@ne
+   }%
+\advance\@tempcntb-1\relax
+\global\advance\offsetemail\@tempcntb
+%
+}%% end
+%%
+\csname #1break@or@oneskip\endcsname
+%%
+\advance\count@\@ne
+%%%
+}%
+%%%%%%
+%\end{center}%
+\egroup
+}
+
+
+
+
+
+
+
+\def\breakauthorline#1{%
+   \edef\temp@break{\zap@space#1 \@empty}
+   \@for\@temp:=\temp@break\do{%
+      \expandafter\def\csname break@\@temp\endcsname{\\}%
+   }%
+}
+
+\def\breakeauthorline#1{%
+   \edef\temp@break{\zap@space#1 \@empty}
+   \@for\@temp:=\temp@break\do{%
+      \expandafter\def\csname ebreak@\@temp\endcsname{\\}%
+   }%
+}
+
+\def\break@or@oneskip{%
+   \expandafter\ifx\csname break@\the\count@\endcsname\relax
+\ifDS@english
+\hskip1em \else \hskip1zw \fi
+   \else 
+      \csname break@\the\count@\endcsname
+   \fi
+}
+
+\def\ebreak@or@oneskip{%
+   \expandafter\ifx\csname ebreak@\the\count@\endcsname\relax
+\ifDS@english
+\hskip1em \else \hskip1zw \fi
+   \else 
+      \csname ebreak@\the\count@\endcsname
+   \fi
+}
+
+
+
+\ifDS@english
+\let\breakauthorline\breakeauthorline
+\else\fi
+
+
+
+%%(
+\def\rparen{)}%%
+
+
+
+\def\comma@or@relax@affilabel{%
+   \bgroup
+   \count@\@tempcnta
+   \advance\count@\m@ne
+   \ifnum\count@=\@tempcntb
+      \relax
+   \else
+      ,%\space
+   \fi
+   \egroup
+}
+
+\def\comma@or@relax@email{%
+   \bgroup
+   \count@\@tempcnta
+   \advance\count@\m@ne
+   \advance\@tempcntb-\offsetemail
+   \ifnum\count@=\@tempcntb
+      \relax
+   \else
+      ,%\space
+   \fi
+   \egroup
+}
+
+
+
+
+
+
+
+
+%=================================================================================
+% maketitle
+%=================================================================================
+
+
+
+\def\maketitle{\par
+  \begingroup
+    \renewcommand{\thefootnote}{\fnsymbol{footnote}}%
+    \def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$
+      \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}%
+     \long\def\@makefntext##1{\parindent 1em\noindent
+       \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}%
+    \if@twocolumn
+      \ifnum \col@number=\@ne \@maketitle
+      \else \twocolumn[\@maketitle]%
+      \fi
+    \else
+      \newpage
+      \global\@topnum\z@   % Prevents figures from going at top of page.
+      \@maketitle
+    \fi
+     \thispagestyle{IPSJTITLEheadings}
+\@thanks
+  \endgroup
+  \setcounter{footnote}{0}%
+  \global\let\thanks\relax
+  \global\let\maketitle\relax
+  \global\let\p@thanks\relax
+  \global\let\@thanks\@empty
+  \global\let\@author\@empty
+  \global\let\@eauthor\@empty
+  \global\let\@date\@empty
+  \global\let\@title\@empty
+  \global\let\title\relax
+  \global\let\@etitle\@empty
+  \global\let\etitle\relax
+%%%
+  \global\let\author\relax
+  \global\let\eauthor\relax
+  \global\let\date\relax
+  \global\let\and\relax
+%%%
+% affiliate
+%%%
+\bgroup
+\setcounter{footnote}{0}
+\def\thefootnote{\@arabic{\c@footnote}\protect\hphantom{\rparen}}
+\advance\affiliate@count\@ne
+\count@\@ne
+\@whilenum{\count@<\affiliate@count}\do{%
+   \refstepcounter{footnote}
+   \footnotetext{\csname affiliate@\the\count@\endcsname}%
+   \advance\count@\@ne
+}%
+\egroup
+%%%
+% paffiliate
+%%%
+\bgroup
+\setcounter{footnote}{0}
+\def\thefootnote{$\dagger$\@arabic{\c@footnote}\protect\hphantom{\rparen}}
+\advance\paffiliate@count\@ne
+\count@\@ne
+\@whilenum{\count@<\paffiliate@count}\do{%
+   \refstepcounter{footnote}
+%%%%
+ \ifDS@english
+   \footnotetext{%
+Presently with\ %
+\csname paffiliate@\the\count@\endcsname}%
+ \else
+  \footnotetext{%
+\def\\{\newline Presently with \ignorespaces}%
+現在,\csname paffiliate@\the\count@\endcsname}%
+  \fi%
+   \advance\count@\@ne
+}%
+\egroup
+%%%
+%=====
+% email
+%=====
+\bgroup
+\setcounter{footnote}{0}
+\def\thefootnote{\@alph{\c@footnote}\rparen}
+\count@\@ne
+\advance\author@count\@ne
+   \@whilenum{\count@<\author@count}\do{%
+      \expandafter\@tempcntb\csname authoremail@num@\the\count@ \endcsname      
+      \advance\@tempcntb\@ne
+      \@tempcnta\@ne
+      \@whilenum{\@tempcnta<\@tempcntb}\do{%
+      \refstepcounter{footnote}
+      \footnotetext{\csname authoremail\the\count@ @\the\@tempcnta\endcsname}%
+      \advance\@tempcnta\@ne
+      }%
+   \advance\count@\@ne
+   }%
+\egroup
+%=================
+\setcounter{footnote}{0}
+  }
+%%%
+
+
+
+
+
+
+%=================================================================================
+% @maketitle
+%=================================================================================
+
+%%
+\newskip\shubetutitlesep 
+\newskip\JEhonbunsep
+
+\shubetutitlesep=6.2mm% default 10mm
+\JEhonbunsep=13.7mm % default 15mm
+
+\newskip\Etitleauthorsep 
+\newskip\Eauthorreceivesep
+\newskip\Ereceiveabstsep
+\newskip\Eabstkeywordsep
+
+\Etitleauthorsep=10mm% default 12.5mm
+\Eauthorreceivesep=5.5mm% default 7mm
+\Ereceiveabstsep=2.5mm% default 6mm
+\Eabstkeywordsep=4mm % default 5mm
+
+%
+\newskip\Jtitlejauthorsep 
+\newskip\Jauthorjreceivesep
+\newskip\Jreceivejabstsep
+\newskip\Jabstsepjkeyword
+\newskip\Jkeywordetitle
+\newskip\Jetitleeauthor
+\newskip\Jeauthorereceivesep
+\newskip\Jereceiveeabstsep
+\newskip\Jeabstekeywordsep
+
+\Jtitlejauthorsep=9mm% default 10mm
+\Jauthorjreceivesep=6.5mm% default 7mm
+\Jreceivejabstsep=2.5mm% default 5mm
+\Jabstsepjkeyword=5.5mm % default 5mm
+\Jkeywordetitle=14.2mm % default 16mm
+\Jetitleeauthor=5.5mm% default 7mm
+\Jeauthorereceivesep=5.5mm% default 6.5mm
+\Jereceiveeabstsep=1.5mm% default 4.5mm
+\Jeabstekeywordsep=5mm % default 5mm
+
+%======================================================
+
+
+
+\def\@maketitle{%
+\newpage\null
+%%%%%%%%%%
+\ifDS@english
+%%
+\vskip-1.3mm%
+\ifx\SHUBETUname\relax%
+{\SHUBETUfontE{\SHUBETUname@DEF}}%%
+\else
+{\SHUBETUfontE{\SHUBETUname}}%%
+\fi
+%%
+\else
+\ifx\SHUBETUname\relax%
+{\SHUBETUfontJ{\SHUBETUname@DEF}}%%
+\else
+{\SHUBETUfontJ{\SHUBETUname}}%%
+\fi\fi
+%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\shubetutitlesep% 
+%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%\vskip 10mm%
+\begin{center}
+\authortitle %%<---
+\end{center}
+%%%%%%%%%%%%%%%%%%%
+%
+}
+
+
+
+\ifDS@english
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\authortitle{%
+{\Engtitlefont%
+{\@title}\par}
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Etitleauthorsep% 
+%%%%%%%%%%%%%%%%%%%%%%%
+%% author %%%
+{\Engeauthorfont%
+\authoroutput{e}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Eauthorreceivesep% 
+%%%%%%%%%%%%%%%%%%%%%%%%%
+{\Enguketukefont%
+{\@uketsuke}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Ereceiveabstsep% 
+%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@abstractbox}\par%
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Eabstkeywordsep% 
+%%%%%%%%%%%%%%%%%%%%%%%
+\let\@keywordbox\@ekeywordbox
+\mbox{\box\@ekeywordbox}\par%
+%%%%%%%%%%%%%%%%%%%
+\vskip\JEhonbunsep%
+%%%%%%%%%%%%%%%%%%%
+}
+%===========
+\else
+%==========
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\authortitle{%
+{\jtitlefont%
+{\@title}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jtitlejauthorsep%
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% author
+%======
+{\authorfont%
+\authoroutput{}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jauthorjreceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+%======
+{\juketukefont%
+{\@uketsuke}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jreceivejabstsep%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@abstractbox}\par%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jabstsepjkeyword%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@jkeywordbox}\par%
+%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jkeywordetitle%
+%%%%%%%%%%%%%%%%%%%%%%
+{\etitlefont%
+{\bfseries{\@etitle}}}\par%
+%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jetitleeauthor%
+%%%%%%%%%%%%%%%%%%%%%%
+{\eauthorfont%
+\authoroutput{e}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jeauthorereceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\euketukefont%
+{\@euketsuke}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jereceiveeabstsep%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@eabstractbox}\par%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jeabstekeywordsep%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@ekeywordbox}\par%
+%%%%%%%%%%%%%%%%%%%
+\vskip\JEhonbunsep%
+%%%%%%%%%%%%%%%%%%%
+}
+\fi
+
+
+
+
+%<<<< 4.0
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abstract
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifDS@abstract
+\ifDS@english
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\authortitle{%
+{\Engtitlefont%
+{\@title}\par}
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Etitleauthorsep%
+%%%%%%%%%%%%%%%%%%%%%%%
+{\Engeauthorfont%
+\authoroutput{e}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Eauthorreceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+   {\Enguketukefont%
+   {\@huketsuke}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Ereceiveabstsep%
+%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@abstractbox}\par%
+%%%%%%%%%%%%%%%%%%%
+\vskip\JEhonbunsep%
+%%%%%%%%%%%%%%%%%%%
+}
+%===========
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\authortitle{%
+{\jtitlefont%
+{\@title}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jtitlejauthorsep%
+%%%%%%%%%%%%%%%%%%%%%%%%
+{\authorfont%
+\authoroutput{}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jauthorjreceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+   {\juketukefont%
+   {\@huketsuke}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jreceivejabstsep%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@abstractbox}\par%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jkeywordetitle%
+%%%%%%%%%%%%%%%%%%%%%%
+\rlap{\SHUBETUfontE{\SHUBETUname@Eabstract}}%%
+\vskip\shubetutitlesep%
+%%%%%%%%%%%%%%%%%%%%%%
+{\etitlefont%
+{\bfseries{\@etitle}}}\par%
+%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jetitleeauthor%
+%%%%%%%%%%%%%%%%%%%%%%
+{\eauthorfont%
+\authoroutput{e}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jeauthorereceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+   {\euketukefont%
+   {\@heuketsuke}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jereceiveeabstsep%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@eabstractbox}\par%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\JEhonbunsep%
+%%%%%%%%%%%%%%%%%%%
+}
+\fi\fi
+
+
+
+
+
+%=================================================================================
+% maketitle Font
+%=================================================================================
+
+
+%% Times -> CM
+\def\titleddash{{\usefont{OT1}{cmr}{bx}{n}\selectfont%
+\leavevmode \raise.1zh\hbox to 2zw{---\hss ---}}}
+
+
+%% 
+\def\jtitlefont{%
+\if@submit
+   \fontsize{26\JQ}{34\h}
+   \usefont{JY1}{gt}{m}{n}%
+%   \usefont{OT1}{ptm}{b}{n}%Times-Bold*
+   \bfseries%
+   \mathversion{bold}\selectfont%
+\else
+   \fontsize{26\JQ}{34\h}
+   \usefont{JY1}{fmb}{m}{n}% FutoMin
+   \usefont{OT1}{ptm}{b}{n}%Times-Bold*
+   \mathversion{bold}\selectfont%
+\let\ddash\titleddash%
+\fi
+}
+
+
+%% J-Uketuke
+\def\juketukefont{%
+\if@submit
+   \fontsize{10\JQ}{12\h}\normalfont\selectfont
+\else
+   \fontsize{10\JQ}{12\h}\usekanji{JY1}{gt}{m}{n}%
+   \useroman{OT1}{phv}{m}{n}\selectfont
+\fi}
+
+
+%% v1.02c
+%% E-title
+\def\etitlefont{\fontsize{20\Q}{22\h}\mathversion{bold}\selectfont}
+
+%% E-Uketuke
+\def\euketukefont{%
+\if@submit
+   \fontsize{10\JQ}{12\h}\normalfont\selectfont
+\else
+   \fontsize{10\JQ}{12\h}\useroman{OT1}{phv}{m}{n}\selectfont
+\fi}
+
+
+%% author-migikata
+\def\labelfont{\useroman{OT1}{cmr}{m}{n}\selectfont}
+
+%% J-name
+\def\authorfont{\fontsize{16\JQ}{22\h}\selectfont}
+
+%% J-(e)-name
+\def\eauthorfont{\fontsize{14\JQ}{18\h}\scshape\selectfont}%14Qx18
+
+
+%% E-name
+\def\Engeauthorfont{\fontsize{17\JQ}{22\h}\scshape\selectfont}%17Qx22
+
+%% eauthor-migikata
+\ifDS@english
+  \def\elabelfont{\normalfont}%\useroman{OT1}{ptm}{m}{n}\selectfont
+\else
+  \def\elabelfont{\normalfont}%\useroman{OT1}{cmr}{m}{n}\selectfont
+\fi
+%%%
+
+
+
+
+%% E-only-title
+\def\Engtitlefont{\fontsize{28\Q}{34\h}\bfseries%
+\mathversion{bold}\selectfont}
+
+
+
+%%E Uketuke
+\def\Enguketukefont{\fontsize{10\JQ}{12\h}\sffamily\selectfont}
+
+
+
+
+%=============================================================================
+% uketsuke, euketsuke
+%=============================================================================
+
+
+\def\@uketsuke{%
+\@received
+\@ifundefined{@rereceived}{, }{%
+   \@rereceived
+   \@ifundefined{@rerereceived}{, }{\@rerereceived}%
+   \par
+}%
+{\@accepted}%
+\@ifundefined{@released}{}{, \@released}%
+}
+
+
+\def\@euketsuke{%
+\@ereceived
+\@ifundefined{@erereceived}{, }{%
+   \@erereceived
+   \@ifundefined{@ererereceived}{, }{\@ererereceived}%
+   \par
+}%
+\@eaccepted
+}
+
+
+\def\@huketsuke{%
+\@Presented}
+
+
+\def\@heuketsuke{%
+\@ePresented}
+
+
+
+
+
+
+
+\def\TUKI#1{\ifcase#1 xx\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}
+
+
+
+
+\ifDS@english
+\def\received#1#2#3{%
+ \gdef\@received{Received: \TUKI{#2} #3, #1}%
+}
+
+\def\accepted#1#2#3{%
+  \gdef\@accepted{Accepted: \TUKI{#2} #3, #1}%
+}
+\def\@accepted{}
+
+\def\rereceived#1#2#3{%
+ \gdef\@rereceived{, Revised: \TUKI{#2} #3, #1}%
+}
+
+\def\rerereceived#1#2#3{%
+ \gdef\@rerereceived{/\TUKI{#2} #3, #1,}%
+}
+%%% 
+\def\released#1#2#3{%
+ \gdef\@released{Released: \TUKI{#2} #3, #1}%
+}
+%%
+\else
+%%
+\def\received#1#2#3{%
+ \gdef\@received{受付日{#1}\kern0pt{年}\kern0pt{#2}\kern0pt{月}\kern0pt{#3}\kern0pt{日}}%
+ \gdef\@ereceived{Received: \TUKI{#2} #3, #1}%
+}
+
+\def\accepted#1#2#3{%
+  \gdef\@accepted{採録日{#1}\kern0pt{年}\kern0pt{#2}\kern0pt{月}\kern0pt{#3}\kern0pt{日}}%
+  \gdef\@eaccepted{Accepted: \TUKI{#2} #3, #1}%
+}
+
+\def\rereceived#1#2#3{%
+ \gdef\@rereceived{,再受付日{#1}\kern0pt{年}\kern0pt{#2}\kern0pt{月}\kern0pt{#3}\kern0pt{日}}%
+ \gdef\@erereceived{, Revised: \TUKI{#2} #3, #1}%
+}
+
+\def\rerereceived#1#2#3{%
+ \gdef\@rerereceived{\,/\,{#1}\kern0pt{年}\kern0pt{#2}\kern0pt{月}\kern0pt{#3}\kern0pt{日},}%
+ \gdef\@ererereceived{/\TUKI{#2} #3, #1,}%
+}
+\fi
+
+
+
+
+% abstract
+\ifDS@english
+\def\Presented#1#2#3{%
+ \gdef\@Presented{Presented: \TUKI{#2} #3, #1}%
+}
+\else
+\def\Presented#1#2#3{%
+ \gdef\@Presented{{#1}\kern0pt{年}\kern0pt{#2}\kern0pt{月}\kern0pt{#3}\kern0pt{日発表}}%
+ \gdef\@ePresented{Presented: \TUKI{#2} #3, #1}%
+}
+\fi
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%
+\received{xxxx}{0}{xx}
+\accepted{xxxx}{0}{xx}
+\Presented{xxxx}{0}{xx}
+%\rereceived{xxxx}{0}{xx}
+%\rerereceived{xxxx}{0}{xx}
+%%%%%%%%%%%%%%
+
+
+
+\ifDS@english\else
+\let\受付\received
+\let\採録\accepted
+\let\再受付\rereceived
+\let\再再受付\rerereceived
+\let\発表\Presented
+\fi
+
+
+
+%==========================================================================================================================
+
+
+
+
+
+\def\EGAIYOU{%
+\ifDS@english
+   \ifDS@abstract
+   {\hskip1em}
+   \else
+   \sffamily\itshape%
+Abstract:\hskip.5em%
+   \fi
+\else
+   \if@submit
+   \itshape\bfseries%
+   \else
+   \useroman{OT1}{phv}{b}{it}\selectfont%
+   \fi
+\ifDS@abstract
+   {\hskip1zw}\else
+   Abstract:\hskip.5em% 
+   \fi
+\fi
+}
+
+
+
+
+%%%<<<< 1.02
+\ifDS@english
+\def\GAIYOU{%
+   \ifDS@abstract
+   {\hskip1em}%
+   \else
+   \itshape\bfseries\sffamily%
+   Abstract:\hskip.5em%
+   \fi
+}
+\else
+\def\GAIYOU{%
+   \ifDS@abstract
+   {\hskip1zw}%
+   \else
+{\textbf{概要}:}
+   \fi
+}
+\fi
+
+
+
+
+
+\newbox\@abstractbox
+\newbox\@eabstractbox
+
+
+
+\ifDS@english
+\def\abstract{%
+ \global\setbox\@abstractbox\hbox\bgroup%
+  \begin{minipage}[t]{.8\textwidth}% 12Q 14H
+\fontsize{12\Q}{14\h}\selectfont%
+\noindent{\GAIYOU}%
+\ignorespaces}
+\else
+\def\abstract{%
+ \global\setbox\@abstractbox\hbox\bgroup%
+  \begin{minipage}[t]{.8\textwidth}% 12Q 18H
+\fontsize{12\JQ}{18\h}\selectfont%
+\noindent{\GAIYOU}%
+\ignorespaces}
+\fi
+
+
+
+
+
+\def\endabstract{%
+\par%
+\end{minipage}%
+\egroup\ignorespaces}
+
+
+\def\eabstract{%
+ \global\setbox\@eabstractbox\hbox\bgroup%
+  \begin{minipage}[t]{.8\textwidth}% 12Q 16H
+\fontsize{12\Q}{15\h}\selectfont%
+\noindent{\EGAIYOU}%
+\ignorespaces}
+
+\def\endeabstract{%
+\par%
+\end{minipage}%
+\egroup\ignorespaces}
+
+
+
+%==========================================================================================================================
+
+
+\def\EKEYWORD{%
+\ifDS@english
+\itshape\bfseries\sffamily%
+Keywords:\hskip.5em% 
+\else
+   \if@submit
+   \itshape\bfseries%
+   \else
+   \useroman{OT1}{phv}{b}{it}\selectfont%
+   \fi
+Keywords:\hskip.5em% 
+\fi
+}
+
+
+
+\ifDS@english
+\def\JKEYWORD{%
+\itshape\bfseries\sffamily%
+Keywords:\hskip.5em%
+}
+\else
+\def\JKEYWORD{\textbf{キーワード}:}%
+\fi
+
+
+\newbox\@jkeywordbox
+\newbox\@ekeywordbox
+\newbox\@keywordbox
+
+
+\def\jkeyword{\@par%
+\global\setbox\@jkeywordbox\hbox\bgroup
+  \begin{minipage}[t]{.8\textwidth}%
+\fontsize{12\JQ}{15\h}\selectfont%
+{\noindent{\JKEYWORD}}%
+\ignorespaces}
+\def\endjkeyword{%
+\par\end{minipage}%
+\egroup\ignorespaces}
+
+\def\ekeyword{\@par%
+ \global\setbox\@ekeywordbox\hbox\bgroup
+  \begin{minipage}[t]{.8\textwidth}%
+\fontsize{12\Q}{15\h}\selectfont%
+{\noindent{\EKEYWORD}}%
+\ignorespaces}
+\def\endekeyword{%
+\par\end{minipage}%
+\egroup\ignorespaces}
+
+
+\def\keyword{\@par%
+ \global\setbox\@ekeywordbox\hbox\bgroup
+  \begin{minipage}[t]{.8\textwidth}%
+\fontsize{12\Q}{15\h}\selectfont%
+{\noindent{\EKEYWORD}}%
+\ignorespaces}
+\def\endkeyword{%
+\par\end{minipage}%
+\egroup\ignorespaces}
+
+
+
+%==========================================================================================================================
+
+
+
+\setcounter{secnumdepth}{3}
+\newcounter{part}
+\newcounter{section}
+\newcounter{subsection}[section]
+\newcounter{subsubsection}[subsection]
+\newcounter{paragraph}[subsubsection]
+\newcounter{subparagraph}[paragraph]
+\renewcommand\thepart{\@Roman\c@part}
+\renewcommand\thesection{\@arabic\c@section}
+\renewcommand\thesubsection   {\thesection.\@arabic\c@subsection}
+\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}
+\renewcommand\theparagraph    {\thesubsubsection.\@arabic\c@paragraph}
+\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
+\newcommand\part{%
+   \if@noskipsec \leavevmode \fi
+   \par
+   \addvspace{4ex}%
+   \@afterindentfalse
+   \secdef\@part\@spart}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Midasi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newbox\@tempboxb
+%\newdimen\SECTwd
+\newbox\SECTwd
+
+\newlength{\section@height}%
+\section@height=\lineskip%
+\advance \section@height-\topskip
+\advance \section@height \baselineskip
+
+
+
+
+
+\def\@startsectionA#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\addvspace\@tempskipa
+  \fi
+  \@ifstar
+    {\@ssectA{#3}{#4}{#5}{#6}}%
+    {\@dblarg{\@sectA{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+
+
+
+\ifDS@english%%!!!!!!!
+\def\@sectA#1#2#3#4#5#6[#7]#8{%
+  \ifnum #2>\c@secnumdepth
+    \let\@svsec\@empty
+  \else
+    \refstepcounter{#1}%
+    \protected@edef\@svsec{%\protect\rule{0mm}{21.75mm}
+\@seccntformatA{#1}\relax}%
+  \fi
+  \@tempskipa #5\relax
+  \ifdim \@tempskipa>\z@%\@tempskipa>\z@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbox\SECTwd=\hbox{%
+\begingroup
+\noindent
+#6{\@hangfrom{\hskip #3\relax\@svsec}}%
+\interlinepenalty \@M {{#8}}%
+\endgroup}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbox\@tempboxb\hbox{#6{%
+{\hskip #3\relax{\csname #2@font\endcsname \@svsec}}}}%
+%%%%%%%%%%%\the\wd\SECTwd
+\ifdim \wd\SECTwd > \columnwidth
+\@tempdima\columnwidth
+\advance\@tempdima-\wd\@tempboxb
+%%%%%%%%%%%%
+\begingroup
+\mbox{}\par%
+\vspace{-\baselineskip}%%
+\addvspace{\section@height}%
+\addvspace{-.9mm}%
+  \noindent%
+   #6{\@hangfrom{\hskip #3\relax\@svsec}%
+         \interlinepenalty \@M 
+   %\noindent
+   \hangindent\wd\@tempboxb\hangafter=1
+   #8\@@par}\nobreak%
+%   \addvspace{.74\Cvs}%
+\vspace{-.7mm}%
+\addvspace{\section@height}%
+\endgroup
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begingroup
+\mbox{}\par%
+\vspace{-\baselineskip}%%
+\noindent
+{\vbox to 8.65mm
+  {\vfill%
+   \addvspace{.54\Cvs}
+   #6{\@hangfrom{\hskip #3\relax\@svsec}%
+         \interlinepenalty \@M {#8}\@@par%
+   }\nobreak%
+   \vfill
+  }%
+ }
+\endgroup
+\fi
+\par
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    \csname #1mark\endcsname{#7}%
+    \addcontentsline{toc}{#1}{%
+      \ifnum #2>\c@secnumdepth \else%
+        \protect\numberline{\csname the#1\endcsname}\hskip1em%
+      \fi%
+      {#7}%\vfill
+}%
+  \else
+    \def\@svsechd{%
+      #6{\hskip #3\relax
+      \@svsec #8}%
+      \csname #1mark\endcsname{#7}%
+      \addcontentsline{toc}{#1}{%
+        \ifnum #2>\c@secnumdepth \else%
+         \protect\numberline{\csname the#1\endcsname}%
+        \fi%
+        #7}}%
+  \fi%
+  \@xsect{#5}}
+\def\@xsect#1{%
+  \@tempskipa #1\relax
+  \ifdim \@tempskipa>\z@
+    \par \nobreak
+    \vskip \@tempskipa
+    \@afterheading
+  \else
+    \@nobreakfalse
+    \global\@noskipsectrue
+    \everypar{%
+      \if@noskipsec
+        \global\@noskipsecfalse
+       {\setbox\z@\lastbox}%
+        \clubpenalty\z@
+        \begingroup \@svsechd \endgroup
+        \unskip
+        \@tempskipa #1\relax
+        \hskip -\@tempskipa
+      \else
+        \clubpenalty \@clubpenalty
+        \everypar{}%
+      \fi}%
+  \fi
+  \ignorespaces}
+%%%%%%%%
+\else%-------------------------------------------------------------
+%%%%%%%%
+\def\@sectA#1#2#3#4#5#6[#7]#8{%
+  \ifnum #2>\c@secnumdepth
+    \let\@svsec\@empty
+  \else
+    \refstepcounter{#1}%
+    \protected@edef\@svsec{%\protect\rule{0mm}{21.75mm}
+\@seccntformatA{#1}\relax}%
+  \fi
+  \@tempskipa #5\relax
+  \ifdim \@tempskipa>\z@%\@tempskipa>\z@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbox\SECTwd=\hbox{%
+\begingroup
+\noindent
+#6{\@hangfrom{\hskip #3\relax\@svsec}}%
+\interlinepenalty \@M {{#8}}%
+\endgroup}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbox\@tempboxb\hbox{#6{%
+{\hskip #3\relax{\csname #2@font\endcsname \@svsec}}}}%
+%%%%%%%%%%%\the\wd\SECTwd
+\ifdim \wd\SECTwd > \columnwidth
+%%%%%%%%%%%%
+\@tempdima\columnwidth
+\advance\@tempdima-\wd\@tempboxb
+%%%%%%%%%%%%
+\begingroup
+   \mbox{}\par%
+   \vspace{-\baselineskip}%%
+   \addvspace{.65\Cvs}%
+   \noindent%
+   #6{\@hangfrom{\hskip #3\relax\@svsec}%
+          \interlinepenalty \@M 
+   %\noindent
+   \hangindent\wd\@tempboxb\hangafter=1
+   #8\@@par}\nobreak{\par}%
+   \addvspace{.74\Cvs}%
+\endgroup
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begingroup
+   \mbox{}\par%
+   \vspace{-\baselineskip}%%
+   \noindent
+   {\vbox to 2.43\Cvs{\vfill%
+   #6{\@hangfrom{\hskip #3\relax\@svsec}%
+          \interlinepenalty \@M {#8}\@@par}%
+   \vfill}%
+   }\@@par%
+\endgroup
+\fi
+\par\prevdepth=-1000pt%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    \csname #1mark\endcsname{#7}%
+    \addcontentsline{toc}{#1}{%
+      \ifnum #2>\c@secnumdepth \else%
+        \protect\numberline{\csname the#1\endcsname}\hskip1zw%
+      \fi%
+      {#7}%\vfill
+}%
+  \else
+    \def\@svsechd{%
+      #6{\hskip #3\relax
+      \@svsec #8}%
+      \csname #1mark\endcsname{#7}%
+      \addcontentsline{toc}{#1}{%
+        \ifnum #2>\c@secnumdepth \else%
+         \protect\numberline{\csname the#1\endcsname}%
+        \fi%
+        #7}}%
+  \fi%
+  \@xsect{#5}}
+\def\@xsect#1{%
+  \@tempskipa #1\relax
+  \ifdim \@tempskipa>\z@
+    \par \nobreak
+    \vskip \@tempskipa
+    \@afterheading
+  \else
+    \@nobreakfalse
+    \global\@noskipsectrue
+    \everypar{%
+      \if@noskipsec
+        \global\@noskipsecfalse
+       {\setbox\z@\lastbox}%
+        \clubpenalty\z@
+        \begingroup \@svsechd \endgroup
+        \unskip
+        \@tempskipa #1\relax
+        \hskip -\@tempskipa
+      \else
+        \clubpenalty \@clubpenalty
+        \everypar{}%
+      \fi}%
+  \fi
+  \ignorespaces}
+\fi
+
+
+
+\ifDS@english
+\def\@seccntformatA#1{\csname the#1\endcsname.\hskip1em}
+\else
+\def\@seccntformatA#1{\csname the#1\endcsname.\hskip1zw}
+\fi
+
+
+
+%%%<<<< 1.02
+\def\@ssectA#1#2#3#4#5{%
+  \@tempskipa #3\relax
+  \ifdim \@tempskipa>\z@
+%%%
+\begingroup
+   \mbox{}\par%
+   \vspace{-\baselineskip}%%
+   \addvspace{.5\Cvs}%
+   \noindent%
+%%%
+      #4{%
+        \@hangfrom{\hskip #1}%
+          \interlinepenalty \@M #5\@@par}%
+   \addvspace{.5\Cvs}%
+    \endgroup
+  \else
+    \def\@svsechd{#4{\hskip #1\relax #5}}%
+  \fi
+  \@xsect{#3}}
+\newif\if@afterindent \@afterindenttrue
+\def\@afterheading{%
+  \@nobreaktrue
+  \everypar{%
+    \if@nobreak
+      \@nobreakfalse
+      \clubpenalty \z@
+      \if@afterindent \else
+        {\setbox\z@\lastbox}%
+      \fi
+    \else
+      \clubpenalty \@clubpenalty
+      \everypar{}%
+    \fi}}
+
+%----------------------------------------------------------------------------
+%----------------------------------------------------------------------------
+
+%%%%%%%%%%%%%%% C
+\def\@startsectionC#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
+\ifnum #2=\@ne
+       \vskip-\prevdepth \prevdepth\z@ \vskip\Cvs
+       \advance\@tempskipa-\Cvs \vspace*{\@tempskipa}%
+     \else
+\addvspace\@tempskipa
+\fi
+  \fi
+  \@ifstar
+    {\@ssectC{#3}{#4}{#5}{#6}}%
+    {\@dblarg{\@sectC{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+\def\@sectC#1#2#3#4#5#6[#7]#8{%
+  \ifnum #2>\c@secnumdepth
+    \let\@svsec\@empty
+  \else
+    \refstepcounter{#1}%
+    \protected@edef\@svsec{%\protect\rule{0mm}{21.75mm}
+\@seccntformatC{#1}\relax}%
+  \fi
+  \@tempskipa #5\relax
+  \ifdim \@tempskipa>\z@
+    \begingroup
+      #6{%
+%        \centering
+\@hangfrom{\hskip #3\relax\@svsec}%
+%          \interlinepenalty \@M \protect\SECTUP{\jidoukintou{#8}}\@@par}%
+          \interlinepenalty \@M {#8}\@@par}%
+    \endgroup
+    \csname #1mark\endcsname{#7}%
+    \addcontentsline{toc}{#1}{%
+      \ifnum #2>\c@secnumdepth \else
+        \protect\numberline{\csname the#1\endcsname}%
+      \fi
+      {#7}}%
+  \else
+    \def\@svsechd{%
+      #6{\hskip #3\relax
+      \@svsec #8}%
+      \csname #1mark\endcsname{#7}%
+      \addcontentsline{toc}{#1}{%
+        \ifnum #2>\c@secnumdepth \else
+          \protect\numberline{\csname the#1\endcsname}%
+        \fi
+        #7}}%
+  \fi
+  \@xsect{#5}}
+\def\@xsect#1{%
+  \@tempskipa #1\relax
+  \ifdim \@tempskipa>\z@
+    \par \nobreak
+    \vskip \@tempskipa
+    \@afterheading
+  \else
+    \@nobreakfalse
+    \global\@noskipsectrue
+    \everypar{%
+      \if@noskipsec
+        \global\@noskipsecfalse
+       {\setbox\z@\lastbox}%
+        \clubpenalty\z@
+        \begingroup \@svsechd \endgroup
+        \unskip
+        \@tempskipa #1\relax
+        \hskip -\@tempskipa
+      \else
+        \clubpenalty \@clubpenalty
+        \everypar{}%
+      \fi}%
+  \fi
+  \ignorespaces}
+
+\ifDS@english
+\def\@seccntformatC#1{\csname the#1\endcsname\hskip1em}
+\else
+\def\@seccntformatC#1{\csname the#1\endcsname\hskip1zw}
+\fi
+
+\def\@ssectC#1#2#3#4#5{%
+  \@tempskipa #3\relax
+  \ifdim \@tempskipa>\z@
+    \begingroup
+      #4{%
+%        \centering
+\@hangfrom{\hskip #1}%
+          \interlinepenalty \@M {#5}\@@par}%
+    \endgroup
+  \else
+    \def\@svsechd{#4{\hskip #1\relax #5}}%
+  \fi
+  \@xsect{#3}}
+\newif\if@afterindent \@afterindenttrue
+\def\@afterheading{%
+  \@nobreaktrue
+  \everypar{%
+    \if@nobreak
+      \@nobreakfalse
+      \clubpenalty \z@
+      \if@afterindent \else
+        {\setbox\z@\lastbox}%
+      \fi
+    \else
+      \clubpenalty \@clubpenalty
+      \everypar{}%
+    \fi}}
+\def\@hangfrom#1{\setbox\@tempboxa\hbox{#1}%
+      \hangindent \wd\@tempboxa\noindent\box\@tempboxa}
+
+
+
+%===========================================================
+
+
+\def\@startsectionAPP#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{}%
+\ifnum #2=1\relax \vspace*{0mm}\fi%<---------------
+  \else
+    \addpenalty\@secpenalty\addvspace\@tempskipa
+  \fi
+  \@ifstar
+    {\@ssectC{#3}{#4}{#5}{#6}}%<--------------------
+    {\@dblarg{\@sectAPP{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+
+
+
+\ifDS@english%%!!!!!!!
+\def\@sectAPP#1#2#3#4#5#6[#7]#8{%
+  \ifnum #2>\c@secnumdepth
+    \let\@svsec\@empty
+  \else
+    \refstepcounter{#1}%
+    \protected@edef\@svsec{%\protect\rule{0mm}{21.75mm}
+\@seccntformatAPP{#1}\relax}%
+  \fi
+  \@tempskipa #5\relax
+  \ifdim \@tempskipa>\z@%\@tempskipa>\z@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbox\SECTwd=\hbox{%
+\begingroup
+\noindent
+#6{\@hangfrom{\hskip #3\relax\@svsec}}%
+\interlinepenalty \@M {{#8}}%
+\endgroup}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbox\@tempboxb\hbox{#6{%
+{\hskip #3\relax{\csname #2@font\endcsname \@svsec}}}}%
+%%%%%%%%%%%\the\wd\SECTwd
+\ifdim \wd\SECTwd > \columnwidth
+\@tempdima\columnwidth
+\advance\@tempdima-\wd\@tempboxb
+%%%%%%%%%%%%
+\begingroup
+\mbox{}\par%
+\vspace{-\baselineskip}%%
+\addvspace{\section@height}%
+\addvspace{-.9mm}%
+  \noindent%
+   #6{\@hangfrom{\hskip #3\relax\@svsec}%
+         \interlinepenalty \@M 
+   %\noindent
+   \hangindent\wd\@tempboxb\hangafter=1
+   #8\@@par}\nobreak%
+%   \addvspace{.74\Cvs}%
+\vspace{-.7mm}%
+\addvspace{\section@height}%
+\endgroup
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begingroup
+\mbox{}\par%
+\vspace{-\baselineskip}%%
+\noindent
+{\vbox to 8.65mm
+  {\vfill%
+   \addvspace{.54\Cvs}
+   #6{\@hangfrom{\hskip #3\relax\@svsec}%
+         \interlinepenalty \@M {#8}\@@par%
+   }\nobreak%
+   \vfill
+  }%
+ }
+\endgroup
+\fi
+\par
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    \csname #1mark\endcsname{#7}%
+    \addcontentsline{toc}{#1}{%
+      \ifnum #2>\c@secnumdepth \else%
+        \protect\numberline{\csname the#1\endcsname}\hskip1em%
+      \fi%
+      {#7}%\vfill
+}%
+  \else
+    \def\@svsechd{%
+      #6{\hskip #3\relax
+      \@svsec #8}%
+      \csname #1mark\endcsname{#7}%
+      \addcontentsline{toc}{#1}{%
+        \ifnum #2>\c@secnumdepth \else%
+         \protect\numberline{\csname the#1\endcsname}%
+        \fi%
+        #7}}%
+  \fi%
+  \@xsect{#5}}
+\def\@xsect#1{%
+  \@tempskipa #1\relax
+  \ifdim \@tempskipa>\z@
+    \par \nobreak
+    \vskip \@tempskipa
+    \@afterheading
+  \else
+    \@nobreakfalse
+    \global\@noskipsectrue
+    \everypar{%
+      \if@noskipsec
+        \global\@noskipsecfalse
+       {\setbox\z@\lastbox}%
+        \clubpenalty\z@
+        \begingroup \@svsechd \endgroup
+        \unskip
+        \@tempskipa #1\relax
+        \hskip -\@tempskipa
+      \else
+        \clubpenalty \@clubpenalty
+        \everypar{}%
+      \fi}%
+  \fi
+  \ignorespaces}
+%%%%%%%%
+\else%-------------------------------------------------------------
+%%%%%%%%
+\def\@sectAPP#1#2#3#4#5#6[#7]#8{%
+  \ifnum #2>\c@secnumdepth
+    \let\@svsec\@empty
+  \else
+    \refstepcounter{#1}%
+    \protected@edef\@svsec{%\protect\rule{0mm}{21.75mm}
+\@seccntformatAPP{#1}\relax}%
+  \fi
+  \@tempskipa #5\relax
+  \ifdim \@tempskipa>\z@%\@tempskipa>\z@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbox\SECTwd=\hbox{%
+\begingroup
+\noindent
+#6{\@hangfrom{\hskip #3\relax\@svsec}}%
+\interlinepenalty \@M {{#8}}%
+\endgroup}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setbox\@tempboxb\hbox{#6{%
+{\hskip #3\relax{\csname #2@font\endcsname \@svsec}}}}%
+%%%%%%%%%%%\the\wd\SECTwd
+\ifdim \wd\SECTwd > \columnwidth
+%%%%%%%%%%%%
+\@tempdima\columnwidth
+\advance\@tempdima-\wd\@tempboxb
+%%%%%%%%%%%%
+\begingroup
+   \mbox{}\par%
+   \vspace{-\baselineskip}%%
+   \addvspace{.65\Cvs}%
+   \noindent%
+   #6{\@hangfrom{\hskip #3\relax\@svsec}%
+          \interlinepenalty \@M 
+   %\noindent
+   \hangindent\wd\@tempboxb\hangafter=1
+   #8\@@par}\nobreak{\par}%
+   \addvspace{.74\Cvs}%
+\endgroup
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begingroup
+   \mbox{}\par%
+   \vspace{-\baselineskip}%%
+   \noindent
+   {\vbox to 2.43\Cvs{\vfill%
+   #6{\@hangfrom{\hskip #3\relax\@svsec}%
+          \interlinepenalty \@M {#8}\@@par}%
+   \vfill}%
+   }\@@par%
+\endgroup
+\fi
+\par\prevdepth=-1000pt%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    \csname #1mark\endcsname{#7}%
+    \addcontentsline{toc}{#1}{%
+      \ifnum #2>\c@secnumdepth \else%
+        \protect\numberline{\csname the#1\endcsname}\hskip1zw%
+      \fi%
+      {#7}%\vfill
+}%
+  \else
+    \def\@svsechd{%
+      #6{\hskip #3\relax
+      \@svsec #8}%
+      \csname #1mark\endcsname{#7}%
+      \addcontentsline{toc}{#1}{%
+        \ifnum #2>\c@secnumdepth \else%
+         \protect\numberline{\csname the#1\endcsname}%
+        \fi%
+        #7}}%
+  \fi%
+  \@xsect{#5}}
+\def\@xsect#1{%
+  \@tempskipa #1\relax
+  \ifdim \@tempskipa>\z@
+    \par \nobreak
+    \vskip \@tempskipa
+    \@afterheading
+  \else
+    \@nobreakfalse
+    \global\@noskipsectrue
+    \everypar{%
+      \if@noskipsec
+        \global\@noskipsecfalse
+       {\setbox\z@\lastbox}%
+        \clubpenalty\z@
+        \begingroup \@svsechd \endgroup
+        \unskip
+        \@tempskipa #1\relax
+        \hskip -\@tempskipa
+      \else
+        \clubpenalty \@clubpenalty
+        \everypar{}%
+      \fi}%
+  \fi
+  \ignorespaces}
+\fi
+
+
+\ifDS@english
+\def\@seccntformatAPP#1{\csname the#1\endcsname.\hskip1em}
+\else
+\def\@seccntformatAPP#1{\csname the#1\endcsname.\hskip1zw}
+\fi
+
+
+%----------------------------------------------------------------------------
+
+
+
+
+%-----------------------------------
+\newcommand{\section}{\@startsectionA{section}{1}{\z@}%
+{.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}% \@plus1.3\Cdp\@minus10.5\Cdp}%
+{.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%
+{\reset@font
+\fontsize{16\JQ}{21\h}\selectfont%
+\bfseries\mathversion{bold}%
+}}
+%-----------
+
+
+
+%=======================
+ \newcommand{\subsection}{\@startsectionC{subsection}{2}{\z@}%
+{\Cvs}%{.3125\Cvs}%{.3125\Cvs \@plus.2\Cdp \@minus.5\Cdp}% 
+{.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%   {.5\Cvs \@plus.3\Cdp}%
+   {\reset@font\normalsize\bfseries\mathversion{bold}}}
+
+
+%=======================%=======================
+
+
+\newcommand{\subsubsection}{\@startsectionC{subsubsection}{3}{\z@}%
+   {0.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%{.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
+   {0.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%{.5\Cvs \@plus.3\Cdp}%
+   {\reset@font\normalsize\bfseries\mathversion{bold}}}
+
+
+%=======================%=======================
+
+
+
+\newcommand{\paragraph}{\@startsectionC{paragraph}{3}{\z@}%
+   {0.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%
+   {0.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%
+   {\reset@font\normalsize\bfseries}}
+
+\newcommand{\subparagraph}{\@startsectionC{subparagraph}{3}{\z@}%
+   {0.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%
+   {0.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%
+   {\reset@font\normalsize\bfseries}}
+
+
+%============================================================================
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% fig, tab
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifDS@english
+\newcommand{\figurename}{Fig.}
+\newcommand{\tablename}{Table}
+\else
+\newcommand{\figurename}{図}
+\newcommand{\tablename}{表}
+\fi
+
+
+
+\def\CaptionType{\def\@captype}
+
+
+\newdimen\@abovecapskip
+\newdimen\@belowcapskip
+
+
+\newcounter{figure}
+\renewcommand{\thefigure}{\@arabic\c@figure}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+%%%<<<< 3.03
+\def\fnum@figure{\mbox{\figurename~\thefigure}}
+\def\fnum@efigure{\mbox{Fig.~\thefigure}}
+\newenvironment{figure}
+               {\@floatenv
+%                \if@tecrep
+\capwidth\hsize\ecapwidth\hsize
+%\else
+%\capwidth65mm\ecapwidth65mm
+%\fi
+                \abovecaptionskip1mm\belowcaptionskip\z@\@float{figure}}
+               {\end@float}
+\newenvironment{figure*}
+               {\@floatenv\capwidth.66\textwidth\ecapwidth.66\textwidth
+                \abovecaptionskip1mm\belowcaptionskip\z@\@dblfloat{figure}}
+               {\end@dblfloat}
+
+
+
+
+\newcounter{table}
+\renewcommand{\thetable}{\@arabic\c@table}
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+%%%<<<< 3.03
+\def\fnum@table{\mbox{\tablename~\thetable}}
+\def\fnum@etable{\mbox{Table~\thetable}}
+\newenvironment{table}
+               {\@floatenv
+%                \if@tecrep
+\capwidth\hsize\ecapwidth\hsize
+%\else
+%\capwidth65mm\ecapwidth65mm
+%\fi
+                \abovecaptionskip\z@\belowcaptionskip1mm\@float{table}}
+               {\end@float}
+\newenvironment{table*}
+               {\@floatenv\capwidth.66\textwidth\ecapwidth.66\textwidth
+                \abovecaptionskip\z@\belowcaptionskip1mm\@dblfloat{table}}
+               {\end@dblfloat}
+
+
+
+\def \@floatboxreset{%
+\reset@font
+\footnotesize\baselineskip16\h
+%\tabcolsep.5zw
+\@setminipage
+}
+
+\def\@floatenv{\let\center\Center}
+
+
+\def\Center{\topsep\z@\parsep\z@\partopsep\z@\itemsep\z@
+ \trivlist \centering\item\relax}
+\def\endCenter{\endtrivlist}
+
+
+
+
+\long\def\@caption#1[#2]#3{\par
+ \begingroup
+  \@parboxrestore
+  \if@minipage
+   \@setminipage
+  \fi
+   \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \endgroup}
+
+
+
+\newlength\abovecaptionskip
+\newlength\belowcaptionskip
+
+
+
+\newbox\@tempboxb
+\newdimen\capwidth
+\newdimen\ecapwidth
+
+
+
+
+%%%<<< 1.02
+\long\def\@makecaption#1#2{\footnotesize%
+ \vskip\abovecaptionskip
+ \setbox\@tempboxa\hbox{\footnotesize{\bfseries%
+#1}\hskip1\zw\shortstack[l]{#2}}%
+ \@tempdima\ht\@tempboxa \advance \@tempdima\dp\@tempboxa%
+ \setbox\@tempboxb\hbox{\footnotesize{\bfseries%
+#1}\hskip1\zw}%% <<
+ \ifdim \@tempdima > \baselineskip
+  \ifdim \wd\@tempboxa > \capwidth
+   \hfil\parbox[t]{\capwidth}{\hangindent\wd\@tempboxb 
+{\bfseries%
+    #1}\hskip1\zw #2}\vskip4\@Q
+  \else
+   \hfil\parbox[t]{\wd\@tempboxa}{\hangindent\wd\@tempboxb 
+{\bfseries%
+   #1}\hskip1\zw #2}%\vskip4\@Q
+\par\prevdepth=0pt%
+\vskip-1.5\h%
+  \fi
+ \else %% <
+  \ifdim \wd\@tempboxa > \capwidth
+   \hfil\parbox[t]{\capwidth}{\hangindent\wd\@tempboxb
+{\bfseries%
+    #1}\hskip1\zw #2}%\vskip4\@Q
+%%%
+\ifx \@captype\TABLE
+      \ifDS@english 
+      \par\vskip.25mm%
+      \else
+      \par\prevdepth=0pt\vskip-1.5mm%
+      \fi
+\else
+      \par\prevdepth=0pt\vskip-1.5\h%
+\fi
+%%%
+  \else
+   \setbox\@tempboxb\hbox{#2}%
+%%
+%   \ifdim \wd\@tempboxb < 4.5\zw %% >
+%    \hbox to\hsize{\hfil  %
+%{\bfseries%
+%#1}\hskip1\zw%\kintou{5\zw}%%
+%{#2}\hfil}%
+%   \else
+    \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+\ifDS@english \relax\else \vspace{-\belowcaptionskip}\fi
+%   \fi
+  \fi
+ \fi
+ \vspace{\belowcaptionskip}\par
+}
+
+
+
+
+
+
+
+\long\def\ecaption#1{{\footnotesize%
+ \setbox\@tempboxa\hbox{\footnotesize{\bfseries%
+\csname fnum@e\@captype\endcsname}%
+\hskip1\zw\shortstack[l]{#1}}%
+ \@tempdima\ht\@tempboxa \advance \@tempdima\dp\@tempboxa
+ \setbox\@tempboxb\hbox{\footnotesize{\bfseries%
+\csname fnum@e\@captype\endcsname}\hskip1\zw}%% <<
+%%%%%%%%%%%%
+ \ifdim \@tempdima > \baselineskip
+  \ifdim \wd\@tempboxa > \ecapwidth
+   \hfil\parbox[t]{\ecapwidth}{\hangindent\wd\@tempboxb 
+{\bfseries%
+    \csname fnum@e\@captype\endcsname}\hskip1\zw #1}\par
+  \else
+   \hfil\parbox[t]{\wd\@tempboxa}{\hangindent\wd\@tempboxb 
+{\bfseries%
+    \csname fnum@e\@captype\endcsname}\hskip1\zw #1}\par
+  \fi
+%%%
+ \else %% <
+  \ifdim \wd\@tempboxa > \ecapwidth
+   \hfil\parbox[t]{\ecapwidth}{\hangindent\wd\@tempboxb
+{\bfseries%
+    \csname fnum@e\@captype\endcsname}\hskip1\zw #1}\par
+  \else
+   \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+  \fi
+ \fi
+}%!!<---
+ \vspace{2\belowcaptionskip}\par
+}
+
+
+
+
+
+
+
+
+
+
+
+%==================================================================================================
+
+
+%%## % ipsjpapers.sty ##%%
+%% from "ipsjpapers.sty", a little customized
+\leftmargini\Cwd
+\leftmarginii.5\Cwd
+\leftmarginiii2\Cwd
+\leftmarginiv2\Cwd
+\leftmarginv2\Cwd
+\leftmarginvi2\Cwd
+
+\def\lst@listi{\labelsep\Cwd \labelwidth.25\Cwd
+	\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}%
+		\leftmargin2\Cwd \labelwidth2\Cwd \labelsep\z@
+\itemsep\z@\topsep\z@\parsep\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\Cwd \labelsep\z@
+\itemsep\z@\topsep\z@\parsep\z@%%!!!
+}\fi}
+\let\enditemize\endlist
+
+
+
+\def\description{\list{}{\labelwidth\z@ \labelsep\Cwd
+\itemsep\z@\topsep\z@\parsep\z@%%!!!
+	\itemindent\labelsep \advance\itemindent-\leftmargin
+	\def\makelabel##1{\bf ##1}}}
+\let\enddescription\endlist
+
+
+\let\latex@trivlist\@trivlist
+\def\lst@trivlist#1#2{%
+\itemsep\z@\topsep\z@\parsep\z@%%!!!
+\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@\Cwd}}
+\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\Cwd{-\Cwd}}}
+\@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{}{%
+\itemsep\z@\topsep\z@\parsep\z@%%!!!
+\itemindent-\Cwd \listparindent\itemindent 
+	\rightmargin\leftmargin \advance\leftmargin\Cwd}\item[]}
+\let\endverse\endlist
+
+\def\quotation{\list{}{%
+\itemsep\z@\topsep\z@\parsep\z@%%!!!
+\listparindent\Cwd	\itemindent\listparindent
+	\rightmargin\leftmargin}\item[]}
+\let\endquotation\endlist
+
+\def\quote{\list{}{\itemsep\z@\topsep\z@\parsep\z@%%!!!
+\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
+\ifDS@english
+\let\theo@it\it \let\theo@sp\ %
+\else
+\let\theo@it\relax \let\theo@sp\relax
+\fi
+
+%==================================================================================================
+
+
+\ifDS@english
+\newcommand{\refname}{References}
+\else
+\newcommand{\refname}{参考文献}
+\fi
+
+
+\newdimen\bibindent
+\setlength\bibindent{1.5em}
+\def\@biblabel#1{[#1]}
+
+
+
+
+
+\newenvironment{thebibliography}[1]
+ {%
+\ifDS@english
+%\fontsize{11\Q}{12\h}\selectfont%
+\footnotesize\baselineskip12\h % 11Qx12H
+\else
+\small\baselineskip15\h % 12Qx15H
+\fi
+ \subsection*{{\normalsize%\footnotesize%
+\refname}}%
+\vspace*{2mm}%%
+%\noindent{\bfseries{\refname}}%
+%%%%%%%%%%%%
+\def\@mklab##1{##1\hfil } % 
+%\def\@mklab##1{\hfil ##1}
+%
+   \list{\@biblabel{\@arabic\c@enumiv}}%
+        {\settowidth\labelwidth{\@biblabel{#1}}%
+         \leftmargin\labelwidth
+         \advance\leftmargin\labelsep
+%
+%         
+         \@openbib@code
+         \usecounter{enumiv}%
+         \let\p@enumiv\@empty
+         \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+         \parskip\z@
+	 \topsep\z@\partopsep\z@
+         \itemsep1\h
+         \parsep\z@
+%         \baselineskip3.5mm
+%
+   \sloppy
+   \clubpenalty\z@
+   \@clubpenalty\clubpenalty
+   \widowpenalty\z@
+   \sfcode`\.\@m
+}
+  {\def\@noitemerr
+    {\@latex@warning{Empty `thebibliography' environment}}%
+   \endlist\unskip}
+%%%%
+\let\@openbib@code\@empty
+
+
+
+
+%==================================================================================================
+
+
+%%%%%%%%%%%%%%%%% These are borrowed style files %%%%%%%%%%%
+%%% from  LaTeX
+\def\pushtowall{\relax\leavevmode
+\ifmmode\def\next{\mathpalette\mathpushw@ll}
+\else\let\next\makepushw@ll \fi \next}
+\def\finpushw@ll{\wd0=0pt \box0}
+\def\makepushw@ll#1{\setbox0=\hbox{#1}\finpushw@ll}
+\def\mathpushw@ll#1#2{\setbox0=\hbox{$\m@th#1{#2}$}\finpushw@ll}
+%%%% 
+
+\ifDS@english
+\newcommand{\profname}{\relax}
+\else
+\newcommand{\profname}{著者紹介}
+\fi
+
+
+
+\newenvironment{biography}{%
+\vspace{2\baselineskip}%
+% \subsection*{\profname}%
+%\noindent{\bfseries{\profname}}\par
+\nobreak%
+ \footnotesize\normalfont
+ \parindent\z@
+ \vskip\baselineskip
+ \penalty\@medpenalty
+ \penalty\@M
+  \let\@profile\@eprofile
+  \let\n@profile\n@eprofile
+%%%
+\ifDS@english
+\vskip.5\Cvs%
+\else
+\vskip-.5\Cvs%
+\fi
+%%%
+}{\par}
+
+
+%%
+\newcounter{profile}
+%%
+
+
+\def\profile{\@ifstar{\n@eprofile}{\@eprofile}}
+
+
+\def\@eprofile{%
+\@ifnextchar[%% ]
+{\ip@eprofile}
+{\no@eprofile}
+}
+
+
+
+
+\ifDS@english
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\ip@eprofile[#1]#2#3{%
+ \stepcounter{profile}%
+ \vbox{%
+  \fmt@pro@pic{#2}{#3}{#1}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\n@eprofile#1#2{%
+ \stepcounter{profile}%
+ \vbox{%
+  \fmt@pro@nopicnoframe{#1}{#2}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\no@eprofile#1#2{%
+ \stepcounter{profile}%
+ \vbox{%
+  \fmt@pro@nopic{#1}{#2}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+%=====================
+\else
+%=====================
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\ip@eprofile[#1]#2#3#4{%
+ \stepcounter{profile}%
+ \vbox{%
+  \fmt@pro@pic{#2}{#3}{#4}{#1}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\n@eprofile#1#2#3{%
+ \stepcounter{profile}%
+ \vbox{%
+  \fmt@pro@nopicnoframe{#1}{#2}{#3}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\no@eprofile#1#2#3{%
+ \stepcounter{profile}%
+ \vbox{%
+  \fmt@pro@nopic{#1}{#2}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\fi
+
+
+\def\BreakMember{\def\@BreakMember{\\}}
+\let\@BreakMember\relax
+
+
+
+\ifDS@english
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\ip@eprofile[#1]#2#3{%
+ \stepcounter{profile}%
+ \vbox{%
+%  \fmt@pro@noEname%
+  \fmt@pro@pic{#2}{#3}{#1}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\n@eprofile#1#2{%
+ \stepcounter{profile}%
+ \vbox{%
+%  \fmt@pro@noEname{#1}%
+  \fmt@pro@nopicnoframe{#1}{#2}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\no@eprofile#1#2{%
+ \stepcounter{profile}%
+ \vbox{%
+%  \fmt@pro@noEname{#1}%
+  \fmt@pro@nopic{#1}{#2}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+%=====================
+\else
+%=====================
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\ip@eprofile[#1]#2#3#4{%
+ \stepcounter{profile}%
+ \vbox{%
+%  \fmt@pro@noEname%
+  \fmt@pro@pic{#2}{#3}{#4}{#1}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\n@eprofile#1#2#3{%
+ \stepcounter{profile}%
+ \vbox{%
+%  \fmt@pro@noEname{#1}%
+  \fmt@pro@nopicnoframe{#1}{#2}{#3}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\gdef\no@eprofile#1#2#3{%
+ \stepcounter{profile}%
+ \vbox{%
+%  \fmt@pro@noEname{#1}%
+  \fmt@pro@nopic{#1}{#2}{#3}%
+ }%
+ \vskip2\Cvs%
+}
+%%%%%%%%%%%%%%%%%%%%%
+\fi
+
+
+
+
+
+
+
+
+
+%%% 
+\ifDS@english
+\def\fmt@pro@pic#1#2#3{%
+\noindent
+\begin{minipage}[t]{\columnwidth}%
+\leavevmode%
+\noindent\IfFileExists{#3.eps}{%
+\noindent
+{\raisebox{-28.19mm}{\pushtowall{%{-19.3mm}
+\smash{%
+\resizebox{25mm}{31mm}{\includegraphics{#3.eps}}}}}%<-- kao
+}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}%{%
+%\noindent{\smash{\raisebox{8mm}{\pushtowall{%
+%\begin{minipage}[t]{25mm}
+%     \hrule \@height .1mm
+%     \hbox to 25mm{\vrule \@width .1mm \@height 31mm\hss
+%                   \vrule \@width .1mm \@height 31mm}%
+%     \hrule \@height .1mm
+%\end{minipage}
+%}}}}
+%}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pushtowall{\raisebox{.5mm}{%%
+\begin{minipage}[t]{\columnwidth}%
+%\raggedright%
+%\penalty=-200%
+\hangindent30mm\hangafter-8\relax
+\mbox{\fontsize{13\Q}{18\h}\selectfont\bfseries #1}\hskip.5em%
+%%
+%
+%\@BreakMember%%
+%%%%%%%%%%%%%%
+%\if #1m\relax
+%   \hangindent31mm{\normalsize (Member)}\else%
+%\if #1s\relax
+%   \hangindent31mm{\normalsize (Student Member)}\else%
+%\if #1f\relax
+%   \hangindent31mm{\normalsize (Member, Fellow)}\else%
+%\if #1h\relax
+%   \hangindent31mm{\normalsize (Honorary Member, Fellow)}\else%
+%\if #1n\relax
+%    \relax
+%  \else
+% \relax
+%\fi\fi\fi\fi\fi
+%%%%%%%%%%
+%\\[.5\Cvs]
+%==============
+\baselineskip=18\h%
+{\fontsize{13\Q}{18\h}\selectfont%
+#2}
+%==============
+\end{minipage}}}%
+\end{minipage}%
+%\global\let\@BreakMember\relax
+}
+%===============================================================
+\else
+%===============================================================
+\def\fmt@pro@pic#1#2#3#4{%
+\noindent
+%%% kao
+\begin{minipage}[t]{\columnwidth}%
+\leavevmode%
+\noindent\IfFileExists{#4.eps}{%
+\noindent
+{\raisebox{-27.8mm}{\pushtowall{%{-19.3mm}
+\smash{%
+\resizebox{25mm}{31mm}{\includegraphics{#4.eps}}}}}%<-- kao
+}%
+%%%%%%
+}%{%
+%\noindent{\smash{\raisebox{8mm}{\pushtowall{%
+%\begin{minipage}[t]{25mm}
+%     \hrule \@height .1mm
+%     \hbox to 25mm{\vrule \@width .1mm \@height 31mm\hss
+%                   \vrule \@width .1mm \@height 31mm}%
+%     \hrule \@height .1mm
+%\end{minipage}
+%}}}}}%
+%%%%%%%%%%%%
+\pushtowall{\begin{minipage}[t]{\columnwidth}%
+\hangindent30mm\hangafter-7\relax
+\mbox{\fontsize{15\JQ}{0\h}\selectfont\bfseries #2}%%
+%%
+\hskip1.6zw%%%
+\@BreakMember%%
+%%%%%%%%%%%%%% <<<<<<<<<<<<<<<<< v2.0
+\@for\@temp:=#1\do{%   koko
+   \@ifundefined{\@temp @member}{\relax}%
+                {\edef\@@member{(\csname \@temp @member\endcsname)}%
+                }%
+   \@ifundefined{\@temp @title@member}{\relax}%
+                {\edef\@title@member{\csname \@temp @title@member\endcsname.}%
+                }%
+}%
+\hangindent30mm{\normalsize \inhibitglue\csname @@member\endcsname}%
+%
+%\if #1m\relax
+%   \hangindent30mm{\normalsize \inhibitglue(正会員)}\else%
+%\if #1s\relax
+%   \hangindent30mm{\normalsize \inhibitglue(学生会員)}\else%
+%\if #1j\relax
+%   \hangindent30mm{\normalsize \inhibitglue(ジュニア会員)}\else%
+%\if #1F\relax
+%   \hangindent30mm{\normalsize \inhibitglue(正会員,フェロー)}\else%
+%\if #1h\relax
+%   \hangindent30mm{\normalsize \inhibitglue(名誉会員,フェロー)}\else%
+%\if #1n\relax
+%   \relax
+%  \else
+% \relax
+%\fi\fi\fi\fi\fi\fi
+%%%%%%%%%%
+\\[.5\Cvs]
+%============== <<<<<<<<<<<<<<<<< v2.0
+\baselineskip=21\h{\fontsize{13\JQ}{21\h}\selectfont #3%
+\csname @title@member\endcsname}%
+%==============
+\end{minipage}}%
+\end{minipage}%
+\global\let\@BreakMember\relax
+}
+\fi
+
+
+\def\h@member{名誉会員}
+\def\m@member{正会員}
+\def\s@member{学生会員}
+\def\j@member{ジュニア会員}
+
+\def\F@title@member{本会フェロー}
+\def\E@title@member{本会シニア会員}
+\def\L@title@member{本会終身会員}
+
+
+%
+%\ifDS@english
+%\newcommand{\FELLOW}{FELLOW.}
+%\newcommand{\SENIOR}{SENIOR Member.}
+%\else
+%\newcommand{\FELLOW}{本会フェロー.}
+%\newcommand{\SENIOR}{本会シニア会員.}
+%\newcommand{\SHUUSIN}{本会終身会員.}
+%\fi
+
+
+%==================================================================
+%==================================================================
+
+
+%%% E:  profile{name}{xxx}
+%%% J:  profile{m}{name}{xxx}
+\ifDS@english
+\def\fmt@pro@nopic#1#2{%
+\noindent
+%%% kao
+\begin{minipage}[t]{\columnwidth}%
+\leavevmode%
+\noindent\IfFileExists{\the\c@profile.eps}{%
+\noindent
+{\raisebox{-28mm}{\pushtowall{%{-19.3mm}
+\smash{%
+%\resizebox{25mm}{31mm}{\includegraphics{#4.eps}}
+}}}%<-- kao
+}%
+%%%%%%%
+}{%
+\noindent{%\smash
+{\raisebox{2.2mm}{\pushtowall{%
+\begin{minipage}[t]{25mm}
+     \hrule \@height .1mm
+     \hbox to 25mm{\vrule \@width .1mm \@height 31mm\hss
+                   \vrule \@width .1mm \@height 31mm}%
+     \hrule \@height .1mm
+\end{minipage}
+}}}}}%
+%%%%%%%
+\pushtowall{\begin{minipage}[t]{\columnwidth}%
+\hangindent30mm\hangafter-8\relax
+\mbox{\fontsize{13\Q}{18\h}\selectfont\bfseries #1}\hskip.5em%%
+%%
+%\quad%%%
+%\@BreakMember%%
+%%%%%%%%%%%%%%
+%\if #1m\relax
+%   \hangindent31mm{\normalsize (Member)}\else%
+%\if #1s\relax
+%   \hangindent31mm{\normalsize (Student Member)}\else%
+%\if #1j\relax
+%   \hangindent31mm{\normalsize (Member, Fellow)}\else%
+%\if #1h\relax
+%   \hangindent31mm{\normalsize (Honorary Member, Fellow)}\else%
+%\if #1n\relax
+%   \relax
+%  \else
+% \relax
+%\fi\fi\fi\fi\fi
+%%%%%%%%%%
+%\\[.5\Cvs]
+%==============
+\baselineskip=18\h%
+{\fontsize{13\Q}{18\h}\selectfont%
+#2}
+%==============
+\end{minipage}}%
+\end{minipage}%
+%\global\let\@BreakMember\relax
+}
+%===============================================================
+\else
+%===============================================================
+\def\fmt@pro@nopic#1#2#3{%
+\noindent
+\begin{minipage}[t]{\columnwidth}%
+\leavevmode%
+\noindent\IfFileExists{\the\c@profile.eps}{%
+\noindent
+{\raisebox{-28mm}{\pushtowall{%{-19.3mm}
+\smash{%
+%\resizebox{25mm}{31mm}{\includegraphics{#4.eps}}%%
+}}}%<-- kao
+}%
+%%%%%%%
+}{%
+\noindent{%\smash
+{\raisebox{3mm}{\pushtowall{%
+\begin{minipage}[t]{25mm}
+     \hrule \@height .1mm
+     \hbox to 25mm{\vrule \@width .1mm \@height 31mm\hss
+                   \vrule \@width .1mm \@height 31mm}%
+     \hrule \@height .1mm
+\end{minipage}
+}}}}}%
+%%%%%%%%
+\pushtowall{\begin{minipage}[t]{\columnwidth}%
+\hangindent30mm\hangafter-7\relax
+\mbox{\fontsize{15\JQ}{0\h}\selectfont\bfseries #2}%%
+%%
+\hskip1.6zw%%%
+\@BreakMember%%
+%%%%%%%%%%%%%% <<<<<<<<<<<<<<<<< v2.0
+\@for\@temp:=#1\do{%   koko
+   \@ifundefined{\@temp @member}{\relax}%
+                {\edef\@@member{(\csname \@temp @member\endcsname)}%
+                }%
+   \@ifundefined{\@temp @title@member}{\relax}%
+                {\edef\@title@member{\csname \@temp @title@member\endcsname.}%
+                }%
+}%
+\hangindent30mm{\normalsize \inhibitglue\csname @@member\endcsname}%
+%
+%\if #1m\relax
+%   \hangindent30mm{\normalsize \inhibitglue(正会員)}\else%
+%\if #1s\relax
+%   \hangindent30mm{\normalsize \inhibitglue(学生会員)}\else%
+%\if #1j\relax
+%   \hangindent30mm{\normalsize \inhibitglue(ジュニア会員)}\else%
+%\if #1F\relax
+%   \hangindent30mm{\normalsize \inhibitglue(正会員,フェロー)}\else%
+%\if #1h\relax
+%   \hangindent30mm{\normalsize \inhibitglue(名誉会員,フェロー)}\else%
+%\if #1n\relax
+%   \relax
+%  \else
+% \relax
+%\fi\fi\fi\fi\fi\fi
+%%%%%%%%%%
+\\[.5\Cvs]
+%============== <<<<<<<<<<<<<<<<< v2.0
+\baselineskip=21\h{\fontsize{13\JQ}{21\h}\selectfont #3%
+\csname @title@member\endcsname}%
+%==============
+\end{minipage}}%
+\end{minipage}%
+\global\let\@BreakMember\relax
+}
+\fi
+
+
+
+
+
+%==================================================================
+%==================================================================
+
+
+
+%%% profile*{m}{name}{xxx}
+\ifDS@english
+\def\fmt@pro@nopicnoframe#1#2{%
+\noindent
+\begin{minipage}[t]{\columnwidth}%
+\pushtowall{\begin{minipage}[t]{\columnwidth}%
+%\hangindent30mm\hangafter-7\relax
+\mbox{\fontsize{13\JQ}{18\h}\selectfont\bfseries #1}\hskip.5em%%
+%%
+%\quad%%%
+%\@BreakMember%%
+%%%%%%%%%%%%%%
+%\if #1m\relax
+%{\normalsize (Member)}\else%
+%\if #1s\relax
+%{\normalsize (Student Member)}\else%
+%\if #1j\relax
+%{\normalsize (Member, Fellow)}\else%
+%\if #1h\relax
+%{\normalsize (Honorary Member, Fellow)}\else%
+%\if #1n\relax
+%   \relax
+%  \else
+% \relax
+%\fi\fi\fi\fi\fi
+%%%%%%%%%%
+%\\[.5\Cvs]
+%==============
+\baselineskip=18\h%
+{\fontsize{13\Q}{18\h}\selectfont%
+#2}
+%==============
+\end{minipage}}%
+\end{minipage}%
+\global\let\@BreakMember\relax
+}
+%===============================================================
+\else
+%===============================================================
+\def\fmt@pro@nopicnoframe#1#2#3{%
+\begin{minipage}[t]{\columnwidth}%
+\noindent
+\pushtowall{\begin{minipage}[t]{\columnwidth}%
+%%\hangindent30mm\hangafter-7\relax
+\mbox{\fontsize{15\JQ}{0\h}\selectfont\bfseries #2}%%
+%%
+\hskip1.6zw%%%
+\@BreakMember%%
+%%%%%%%%%%%%%% <<<<<<<<<<<<<<<<< v2.0
+\@for\@temp:=#1\do{%   koko
+   \@ifundefined{\@temp @member}{\relax}%
+                {\edef\@@member{(\csname \@temp @member\endcsname)}%
+                }%
+   \@ifundefined{\@temp @title@member}{\relax}%
+                {\edef\@title@member{\csname \@temp @title@member\endcsname.}%
+                }%
+}%
+%\hangindent30mm
+{\normalsize \inhibitglue\csname @@member\endcsname}%
+%
+%\if #1m\relax
+%   \hangindent30mm{\normalsize \inhibitglue(正会員)}\else%
+%\if #1s\relax
+%   \hangindent30mm{\normalsize \inhibitglue(学生会員)}\else%
+%\if #1j\relax
+%   \hangindent30mm{\normalsize \inhibitglue(ジュニア会員)}\else%
+%\if #1F\relax
+%   \hangindent30mm{\normalsize \inhibitglue(正会員,フェロー)}\else%
+%\if #1h\relax
+%   \hangindent30mm{\normalsize \inhibitglue(名誉会員,フェロー)}\else%
+%\if #1n\relax
+%   \relax
+%  \else
+% \relax
+%\fi\fi\fi\fi\fi\fi
+%%%%%%%%%%
+\\[.5\Cvs]
+%============== <<<<<<<<<<<<<<<<< v2.0
+\baselineskip=21\h{\fontsize{13\JQ}{21\h}\selectfont #3%
+\csname @title@member\endcsname}%
+%==============
+\end{minipage}}%
+\end{minipage}%
+\global\let\@BreakMember\relax
+}
+\fi
+
+
+
+
+%==================================================================================================
+
+%\setlength\footnotesep{6.65\p@}
+\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}
+
+
+
+
+%\renewcommand{\footnoterule}{%
+%  \kern-3\p@
+%  \hrule width \columnwidth
+%  \kern 2.6\p@}
+
+\ifDS@english
+\setlength\footnotesep{6.65\p@}%%!!
+%
+\renewcommand{\footnoterule}{%
+  \kern-3\p@
+  \hrule width \columnwidth
+  \kern 2.6\p@}
+\else
+\setlength\footnotesep{10\h}%!!
+%
+\renewcommand{\footnoterule}{%
+  \kern-4\p@
+  \hrule width \columnwidth
+  \kern 1.6\p@}
+\fi
+
+
+
+\let\footnotes@ve=\footnote
+\ifDS@english
+\def\footnote{\footnotes@ve}
+\else
+\def\footnote{\inhibitglue\footnotes@ve}
+\fi
+
+\let\footnotemarks@ve=\footnotemark
+\ifDS@english
+\def\footnotemark{\footnotemarks@ve}
+\else
+\def\footnotemark{\inhibitglue\footnotemarks@ve}
+\fi
+
+
+\def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi}
+
+
+
+
+
+
+\long\def\@footnotetext#1{\insert\footins{%
+    \reset@font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+    \protected@edef\@currentlabel{%
+       \csname p@footnote\endcsname\@thefnmark
+    }%
+    \color@begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \color@endgroup}}%
+
+
+
+
+\def\footfont{%
+\ifDS@english
+ \fontsize{11\Q}{13\h}\normalfont\selectfont%
+\else
+ \fontsize{11\JQ}{14\h}\normalfont\selectfont%
+\fi
+}
+
+
+%%%<<<< 1.02
+\long\def\@makefntext#1{\footfont%
+\ifDS@english
+\setbox\z@=\hbox{\makebox[1.61\Cwd][l]{\@makefnmark}}%
+\else
+\setbox\z@=\hbox{\makebox[1.58\Cwd][l]{\@makefnmark}}%
+\fi
+\def\par{{\@@par}}
+\@tempdima\columnwidth
+\advance\@tempdima-\wd\z@
+\parshape 1 \wd\z@ \@tempdima
+\parindent=1\zw
+\noindent
+\llap{\unhbox\z@}#1}
+
+
+
+
+%==================================================================================================
+
+%==================================================================================================
+
+
+
+
+%% from fleqn.clo
+%%\ProvidesFile{fleqn.clo}
+%%       [1998/08/17 v1.1c Standard LaTeX option
+%%                                   (flush left equations)]
+\newdimen\mathindent
+\AtEndOfClass{\mathindent1\zw}% \leftmargini
+\renewcommand\[{\relax
+                \ifmmode\@badmath
+                \else
+                 \parsep  4\p@ \@plus2\p@ \@minus\p@
+                 \topsep  8\p@ \@plus2\p@ \@minus4\p@
+                 \itemsep 4\p@ \@plus2\p@ \@minus\p@
+                  \begin{trivlist}%
+                    \@beginparpenalty\predisplaypenalty
+                    \@endparpenalty\postdisplaypenalty
+                    \item[]\leavevmode
+                    \hb@xt@\linewidth\bgroup $\m@th\displaystyle %$
+                      \hskip\mathindent\bgroup
+                \fi}
+\renewcommand\]{\relax
+                \ifmmode
+                      \egroup $\hfil% $
+                    \egroup
+                  \end{trivlist}%
+                \else \@badmath
+                \fi}
+\renewenvironment{equation}%
+    {\@beginparpenalty\predisplaypenalty
+     \@endparpenalty\postdisplaypenalty
+     \refstepcounter{equation}%
+     \parsep  4\p@ \@plus2\p@ \@minus\p@
+     \topsep  8\p@ \@plus2\p@ \@minus4\p@
+     \itemsep 4\p@ \@plus2\p@ \@minus\p@
+     \trivlist \item[]\leavevmode
+       \hb@xt@\linewidth\bgroup $\m@th% $
+         \displaystyle
+         \hskip\mathindent}%
+        {$\hfil % $
+         \displaywidth\linewidth\hbox{\@eqnnum}%
+       \egroup
+     \endtrivlist}
+\renewenvironment{eqnarray}{%
+    \stepcounter{equation}%
+    \parsep  4\p@ \@plus2\p@ \@minus\p@
+    \topsep  8\p@ \@plus2\p@ \@minus4\p@
+    \itemsep 4\p@ \@plus2\p@ \@minus\p@
+    \def\@currentlabel{\p@equation\theequation}%
+    \global\@eqnswtrue\m@th
+    \global\@eqcnt\z@
+    \tabskip\mathindent
+    \let\\=\@eqncr
+    \setlength\abovedisplayskip{\topsep}%
+    \ifvmode
+      \addtolength\abovedisplayskip{\partopsep}%
+    \fi
+    \addtolength\abovedisplayskip{\parskip}%
+    \setlength\belowdisplayskip{\abovedisplayskip}%
+    \setlength\belowdisplayshortskip{\abovedisplayskip}%
+    \setlength\abovedisplayshortskip{\abovedisplayskip}%
+    $$\everycr{}\halign to\linewidth% $$
+    \bgroup
+      \hskip\@centering
+      $\displaystyle\tabskip\z@skip{##}$\@eqnsel&%
+      \global\@eqcnt\@ne \hskip.8\arraycolsep \hfil${##}$\hfil&%
+      \global\@eqcnt\tw@ \hskip.8\arraycolsep
+        $\displaystyle{##}$\hfil \tabskip\@centering&%
+      \global\@eqcnt\thr@@
+        \hb@xt@\z@\bgroup\hss##\egroup\tabskip\z@skip\cr}%
+      {\@@eqncr
+    \egroup
+    \global\advance\c@equation\m@ne$$% $$
+    \@ignoretrue
+    }
+%%\endinput
+%%
+%% End of file `fleqn.clo'.
+
+\def\@eqnnum{{\normalfont \normalcolor (\theequation)\hspace*{3mm}}}
+
+
+%=============================================================================
+
+
+%% Editor
+
+\def\Ediname{\csname Ediname@\@type\endcsname}
+
+
+\def\Ediname@DAM{\ifDS@english%
+{Editor in Charge:}
+\else {担当編集委員}
+\fi}%%
+
+\def\Ediname@TBIO{Communicated by}
+\def\Ediname@CVA{Communicated by}
+
+
+\def\Ediname@SLDM{\ifDS@invited
+{Invited by Editor-in-Chief:}%
+\else%
+{Recommended by Associate Editor:}%
+\fi}
+
+
+\let\Ediname@TOD\Ediname@DAM
+\let\Ediname@Data\Ediname@TBIO
+\let\Ediname@Survey\Ediname@TBIO
+\let\Ediname@Research\Ediname@CVA
+\let\Ediname@Short\Ediname@SLDM
+
+
+
+\def\Edifont{\normalfont\normalsize}
+
+
+
+%%%% <<<<<<<<<<  4.0
+\def\Editor#1{%
+\vspace{-.5\baselineskip}%
+\ifDS@english
+%%% v4.0
+\ifDS@JIP\else
+%%%
+  \ifx\Ediname\relax%
+  \noindent
+  \hfill ({\Edifont{\Ediname@DEF}}%%)
+  \else
+  \noindent
+  \hfill ({\Edifont{\Ediname}}%%)
+  \fi
+\fi
+%%
+\else
+\noindent
+\hfill \<({\Edifont{\Ediname}}%%)
+\fi
+%%
+\ifDS@english
+%%% v1.8
+  \ifDS@JIP\else
+%%%
+     \hskip.5em%
+     \textit{#1})%
+  \fi
+\else
+  \hskip1\zw%
+  #1)
+\fi
+}
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+%=============================================================================
+
+
+
+\newcommand\appendixname{%
+\ifDS@english Appendix\else \protect\kintou{5zw}{付録}\fi}
+
+
+
+
+\newcommand\appendix{\par
+%\def\@seccntformat##1{a\thesection.\the\c@subsection\ }%  ver2.3
+\ifDS@english
+\def\@seccntformatAPP##1{\csname the##1\endcsname\hskip1em}
+\else
+\def\@seccntformatAPP##1{\csname the##1\endcsname\hskip1zw}
+\fi
+\vspace*{\Cvs}%
+\renewcommand{\section}{\@startsectionAPP{section}{1}{\z@}%
+{.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}% \@plus1.3\Cdp\@minus10.5\Cdp}%
+{.00001\Cvs}% \@plus.3\Cdp \@minus.2\Cdp}%
+{\reset@font
+\fontsize{16\JQ}{21\h}\selectfont%
+\bfseries\mathversion{bold}%
+}}%
+%-----------
+\section*{\appendixname}
+  \setcounter{section}{0}%
+  \setcounter{subsection}{0}%
+  \setcounter{equation}{0}%
+  \setcounter{figure}{0}%
+  \setcounter{table}{0}%
+%\renewcommand\thesection{\@Alph\c@section}
+%\renewcommand\thesubsection   {\thesection.\@arabic\c@subsection}
+%
+\renewcommand\thesection{A.\@arabic\c@section}
+\renewcommand\thesubsection{\thesection.\@arabic\c@subsection}
+%
+%\renewcommand\theequation {A.\@arabic\c@equation}
+\renewcommand\theequation {A.\@arabic\c@equation}
+%
+\renewcommand \thefigure {{A$\cdot$\@arabic\c@figure}}
+\renewcommand\thetable{{A$\cdot$\@arabic\c@table}}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+%%%<<<< 3.03
+\def\fnum@figure{\mbox{\figurename~\thefigure}}
+\def\fnum@table{\mbox{\tablename~\thetable}}
+%\@addtoreset{equation}{section}
+%\@addtoreset{figure}{section}
+%\@addtoreset{table}{section}
+}
+
+
+
+
+%=============================================================================
+
+
+\ifDS@english
+\edef\zw{em}\else
+\edef\zw{zw}\fi
+
+\let\Cite\cite
+
+
+
+\if@twocolumn
+  \setlength\leftmargini {2\Cwd}%
+\else
+  \setlength\leftmargini {2\Cwd}%
+\fi
+
+
+\if@twocolumn
+  \setlength\marginparsep{5mm}
+\else
+  \setlength\marginparsep{5mm}
+\fi
+
+
+\if@twocolumn
+  \twocolumn
+  \sloppy
+\else
+  \onecolumn
+\fi
+
+\if@twoside
+  \@mparswitchtrue
+\else
+  \@mparswitchfalse
+\fi
+
+%\sloppy
+\flushbottom
+%\raggedbottom
+\sloppy
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setlength{\paperheight}{297mm}
+\setlength{\paperwidth}{210mm}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ \ifDS@english
+%%\AtBeginDocument{\RequirePackage{txfonts}}
+\textwidth 177mm
+ \@settopoint\textwidth
+ \textheight 55\Cvs
+% \textheight 250.75mm
+% \textheight 55\baselineskip
+ \advance \textheight \topskip
+ \advance \textheight .4mm %% limit .31mm
+ \@settopoint\textheight
+ \setlength\marginparsep{5mm}
+\else
+\textwidth 177mm
+ \@settopoint\textwidth
+ \textheight 47\Cvs
+ \advance \textheight \topskip
+ \advance \textheight .4mm %% limit .31mm
+ \@settopoint\textheight
+ \setlength\marginparsep{5mm}
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%
+\@tempdima\paperwidth
+\advance\@tempdima-\textwidth
+\@tempdima.5\@tempdima
+\advance\@tempdima-1in
+\oddsidemargin\@tempdima
+\evensidemargin\@tempdima
+\setlength{\topmargin}{-17mm}%
+
+
+
+%
+\columnsep 8mm
+
+%% \doublerulesep is 1pt (H.N.)
+\arraycolsep5pt 
+\tabcolsep6pt
+\arrayrulewidth.4pt
+\doublerulesep1pt 
+\tabbingsep.5\Cwd
+
+\skip\@mpfootins\skip\footins
+\fboxsep3pt \fboxrule.4pt 
+
+
+%% SKIP
+\def\onelineskip{\par\vspace{1\baselineskip}\par}
+\def\halflineskip{\par\vspace{.5\baselineskip}\par}
+
+
+
+%% kintou
+\def\kintou#1#2{\ifDS@english
+\relax\else
+\@ifundefined{jintercharskip}%
+ {\leavevmode\hbox to #1{%
+   \kanjiskip\z@ \@plus 1fill \@minus 1fill\xkanjiskip\kanjiskip #2}}%
+ {\leavevmode\hbox to #1{\kanjiskip\z@ \@plus 1fill \@minus 1fill
+   \jasciikanjiskip\kanjiskip #2}}%
+\fi
+}
+
+
+%% runy
+\def\ruby#1#2{\leavevmode \setbox0=\hbox{#1}\setbox1=\hbox{\tiny #2}%% <
+ \ifdim\wd0>\wd1 \dimen0=\wd0 \else \dimen0=\wd1 \fi
+ \hbox{\kanjiskip=\fill
+ \vbox{\hbox to \dimen0{\tiny \hfil#2\hfil}%
+  \nointerlineskip \hbox to \dimen0{\hfil#1\hfil}}}}
+
+%% Proof end
+\def\QED{{\unskip\nobreak\hfil\penalty50
+ \hskip1\zw\hbox{}\nobreak\hfil \hbox{$\Box$\hskip1\zw}
+ \parfillskip\z@ \finalhyphendemerits\z@\par}}
+
+
+%% 
+\def\Hline{\noalign{\hrule height 0.4mm}}
+
+
+
+\def\thepage{\the\c@page}
+
+
+\hbadness4000
+\vbadness10001
+\tolerance4000\pretolerance\m@ne
+\clubpenalty\z@
+\widowpenalty\z@
+\displaywidowpenalty\z@
+\interdisplaylinepenalty\z@ %%  100
+\predisplaypenalty\z@       %% 1000
+
+
+\pagestyle{headings}
+
+
+
+
+
+%==================================================================================================
+%==================================================================================================
+
+
+\def\long@fig{\ifDS@english {Figure~\nobreak}\else {\figurename~\nobreak}\fi}
+\def\short@fig{\ifDS@english {Fig.\,\nobreak}\else {\figurename~\nobreak}\fi}
+\def\long@figs{\ifDS@english {Figures~\nobreak}\else {\figurename~\nobreak}\fi}
+\def\short@figs{\ifDS@english {Figs.\,\nobreak}\else {\figurename~\nobreak}\fi}
+
+\def\long@tab{\ifDS@english {Table~}\else {\tablename~\nobreak}\fi}
+\def\short@tab{\ifDS@english {Table~}\else {\tablename~\nobreak}\fi}
+\def\long@tabs{\ifDS@english {Tables~}\else {\tablename~\nobreak}\fi}
+\def\short@tabs{\ifDS@english {Tables~}\else {\tablename~\nobreak}\fi}
+
+
+
+\def\Figref{\bgroup\let\prefix@figtabref\long@fig
+                   \@ifstar\figtabref@star\figtabref@}
+\def\figref{\bgroup\let\prefix@figtabref\short@fig
+                   \@ifstar\figtabref@star\figtabref@}
+\def\Figsref{\bgroup\let\prefix@figtabref\long@figs
+                   \@ifstar\figtabref@star\figtabref@}
+\def\figsref{\bgroup\let\prefix@figtabref\short@figs
+                   \@ifstar\figtabref@star\figtabref@}
+
+\def\Tabref{\bgroup\let\prefix@figtabref\long@tab
+                   \@ifstar\figtabref@star\figtabref@}
+\def\tabref{\bgroup\let\prefix@figtabref\short@tab
+                   \@ifstar\figtabref@star\figtabref@}
+\def\Tabsref{\bgroup\let\prefix@figtabref\long@tabs
+                   \@ifstar\figtabref@star\figtabref@}
+\def\tabsref{\bgroup\let\prefix@figtabref\short@tabs
+                   \@ifstar\figtabref@star\figtabref@}
+
+
+
+\def\figtabref@star#1{\prefix@figtabref\ref{#1}\egroup}
+
+\def\figtabref@#1{%
+   \let\bf@or@normal\normalfont
+   \@ifundefined{used@#1}{\expandafter\gdef\csname used@#1\endcsname{used}%
+                          \let\bf@or@normal\bfseries}{\relax}%
+   \bf@or@normal\prefix@figtabref\ref{#1}\egroup}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\def\urlj{%
+\@ifnextchar[%% ]
+{\n@urlj}
+{\@urlj}
+}
+
+\def\n@urlj[#1]#2{%
+\normalfont 
+\if #11\relax
+入手先\\ \else%
+\fi
+\normalfont $\langle$\nobreak{#2}\nobreak$\rangle$}
+
+\def\@urlj#1{%
+\normalfont 入手先$\langle$\nobreak{#1}\nobreak$\rangle$}
+
+
+\def\urle{%
+\@ifnextchar[%% ]
+{\n@urle}
+{\@urle}
+}
+
+
+\def\n@urle[#1]#2{%
+\normalfont 
+\if #11\relax
+available \\ from \else%
+\if #12\relax
+available from \\ \else
+\fi\fi
+$\langle$\nobreak{#2}\nobreak$\rangle$}
+
+
+\def\@urle#1{%
+\normalfont available from $\langle$\nobreak{#1}\nobreak$\rangle$}
+
+
+
+
+\def\refdatej#1{\normalfont (参照{#1})\<}
+\def\refdatee#1{\normalfont (accessed {#1})}
+
+\def\doi#1{\normalfont DOI: #1}
+
+
+
+
+
+\newenvironment{recommendation}{%
+\normalsize%
+\par\vskip\baselineskip%
+\ifDS@english
+   \noindent{\bfseries{Editor's Recommendation}}\par
+\else
+   \noindent{\bfseries{推薦文}}\par%
+\fi
+}{\par}%\vskip\baselineskip
+
+
+
+
+
+\def\acknowledgment{\par
+\ifDS@english
+   {\bfseries{Acknowledgments}}%
+\hskip1em\ignorespaces%
+\else
+   {\bfseries{謝辞}}%
+\hskip1\zw\ignorespaces%
+\fi}
+
+
+
+%====================================
+% Dannuki-sita
+%====================================
+
+\newbox\@dummyfigbox
+
+\def\twocolcaption{\refstepcounter\@captype \@dblarg{\@twocolcaption\@captype}}
+
+
+
+\long\def\@twocolcaption#1[#2]#3{\par
+ \begingroup
+  \@parboxrestore
+  \if@minipage
+   \@setminipage
+  \fi
+\footnotesize%%
+   \@maketwocolcaption{%
+{\bfseries{\csname fnum@#1\endcsname}}}{\ignorespaces #3}\par
+ \endgroup}
+
+
+\newdimen\twocolcapwidth
+\twocolcapwidth=.66\textwidth%130mm
+\newdimen\twocolecapwidth
+\twocolecapwidth=.66\textwidth%130mm
+
+
+
+
+
+
+
+
+\ifDS@english
+\long\def\@maketwocolcaption#1#2{%
+ \vskip\abovecaptionskip
+ \setbox\@tempboxa\hbox{#1\hskip1\zw\shortstack[l]{#2}}%
+ \@tempdima\ht\@tempboxa \advance \@tempdima \dp\@tempboxa
+ \setbox\@tempboxb\hbox{#1\hskip1\zw}%% <<
+ \ifdim \@tempdima > \baselineskip
+  \ifdim \wd\@tempboxa > \twocolcapwidth
+  \hbox to\textwidth{\hfil\parbox[t]{\twocolcapwidth}{\hangindent\wd\@tempboxb 
+    #1\hskip1\zw #2}\hfil}%
+\par\prevdepth=0pt%
+\vskip4\@Q
+  \else
+\hbox to\textwidth{\hss\parbox[t]{\wd\@tempboxa}{\hangindent\wd\@tempboxb 
+    #1\hskip1\zw #2}\hss}%
+\par\prevdepth=0pt%
+\vskip4\@Q
+  \fi
+ \else %% <
+  \ifdim \wd\@tempboxa > \twocolcapwidth
+   \hbox to\textwidth{\hfil\begin{tabular}{p{\twocolcapwidth}}\hangindent\wd\@tempboxb 
+    #1\hskip1\zw #2\end{tabular}\hfil}%
+\par\prevdepth=0pt%
+\vskip2.5\@Q
+%\vskip12\@Q
+  \else
+   \setbox\@tempboxb\hbox{#2}%
+   \hbox to\textwidth{\hfil\hbox to\twocolcapwidth
+{\hss\box\@tempboxa\hss}\hfil}%
+\vskip\belowcaptionskip
+  \fi
+ \fi
+}
+%%%%%
+\else
+%%%%%
+\long\def\@maketwocolcaption#1#2{%
+ \vskip\abovecaptionskip
+ \setbox\@tempboxa\hbox{#1\hskip1\zw\shortstack[l]{#2}}%
+ \@tempdima\ht\@tempboxa \advance \@tempdima \dp\@tempboxa
+ \setbox\@tempboxb\hbox{#1\hskip1\zw}%% <<
+ \ifdim \@tempdima > \baselineskip
+  \ifdim \wd\@tempboxa > \twocolcapwidth
+   \hbox to\textwidth{\hfil\parbox[t]{\twocolcapwidth}{\hangindent\wd\@tempboxb 
+    #1\hskip1\zw #2}\hfil}\vskip2\@Q
+  \else
+\hbox to\textwidth{\hss\parbox[t]{\wd\@tempboxa}{\hangindent\wd\@tempboxb 
+    #1\hskip1\zw #2}\hss}
+\vskip2\@Q
+  \fi
+ \else %% <
+  \ifdim \wd\@tempboxa > \twocolcapwidth
+   \hbox to\textwidth{\hfil\begin{tabular}{p{\twocolcapwidth}}\hangindent\wd\@tempboxb 
+    #1\hskip1\zw #2\end{tabular}\hfil}\vskip2\@Q
+  \else
+   \setbox\@tempboxb\hbox{#2}%
+%   \ifdim \wd\@tempboxb < 4.5\Cwd %% >
+%    \hbox to\textwidth{\hss #1\hskip1\zw\kintou{5\Cwd}{#2}\hss}%
+%   \else
+   \hbox to\textwidth{\hfil\hbox to\twocolcapwidth
+{\hss\box\@tempboxa\hss}\hfil}%
+%   \fi
+  \fi
+ \fi
+}
+\fi
+
+
+\def\TABLE{table}%%!!
+
+
+
+
+\long\def\twocolecaption#1{\footnotesize%
+ \setbox\@tempboxa%
+\hbox{{\bfseries%
+\csname fnum@e\@captype\endcsname}\hskip1\zw
+  \shortstack[l]{#1}}%
+ \@tempdima\ht\@tempboxa \advance \@tempdima \dp\@tempboxa
+ \setbox\@tempboxb\hbox{{\bfseries%
+\csname fnum@e\@captype\endcsname}\hskip1\zw}%% <<
+ \ifdim \@tempdima > \baselineskip
+  \ifdim \wd\@tempboxa > \twocolecapwidth
+\hbox to\textwidth{\hss\parbox[t]{\twocolecapwidth}{\hangindent\wd\@tempboxb 
+    {\bfseries%
+\csname fnum@e\@captype\endcsname}\hskip1\zw #1}\hss}\par\prevdepth=0pt%
+  \else
+ \hbox to\textwidth{\hss\parbox[t]{\wd\@tempboxa}{\hangindent\wd\@tempboxb 
+    {\bfseries%
+\csname fnum@e\@captype\endcsname}\hskip1\zw #1}\hss}\par\prevdepth=0pt%%
+\vskip5.9\h%
+  \fi
+ \else %% <
+  \ifdim \wd\@tempboxa > \twocolecapwidth
+\hbox to\textwidth{\hfil\begin{tabular}{p{\twocolecapwidth}}\hangindent\wd\@tempboxb 
+    {\bfseries%
+\csname fnum@e\@captype\endcsname}\hskip1\zw #1\end{tabular}\hfil}
+\par\prevdepth=0pt%
+\vskip3\h%
+  \else
+   \hbox to\textwidth{\hfil\hbox to\twocolcapwidth%
+{\hss\box\@tempboxa\hss}\hfil}%
+\vspace{\belowcaptionskip}\par
+  \fi
+ \fi
+\ifx \@captype\TABLE
+\vspace{1mm}%
+\else
+\fi
+}
+
+
+
+
+
+
+
+
+\def\twocolfig#1{%
+\hbox to \columnwidth{%
+\hbox to \textwidth{\hss
+#1
+\hss}\hss}}
+
+
+
+\def\dummyfigure#1{%
+ \begin{figure}[b]
+ \vspace{#1}
+ \vskip\abovecaptionskip
+ \phantom{\box\@dummyfigbox}\par
+ \end{figure}
+}
+
+\def\dummyfiguret#1{%
+ \begin{figure}[t]
+ \vspace{#1}
+ \vskip\abovecaptionskip
+ \phantom{\box\@dummyfigbox}\par
+ \end{figure}
+}
+
+%====================================
+
+
+
+
+
+%
+\long\def\contact#1{}
+
+%
+\def\MARU#1{\raisebox{0.1zh}{{\rm
+\ooalign{\hfil
+\lower.168ex\hbox{\ifnum#1<10\relax {#1}\else \scalebox{.5}[1]{#1}\fi}%
+\hfil\crcr
+\mathhexbox20D}}}}
+
+%
+\ifDS@english
+\def\ddash{\leavevmode \raise.1mm\hbox to 1.95em{\hfil ---\hss ---\hfil}}
+\else
+\def\ddash{\leavevmode \raise.1zh\hbox to 2zw{---\hss ---}}
+\fi
+
+\let\doubledash\ddash
+
+
+%% for ams
+\AtBeginDocument{%
+\newcommand{\ipeqref}[1]{\textup{\iptagform@{\ref{#1}}}}%% v1.5
+\mathindent1em%
+\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)\hskip1\zw}}%
+\def\iptagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}%% v1.5
+\let\eqref\ipeqref%% v1.5
+}
+
+
+
+%% sort cite
+\def\@cite@itemsep{,\penalty\@m\ }
+\def\@cite@firstdelim{}
+\def\@cite@lastdelim{}
+
+\def\@cite#1#2{%
+   \ifvmode\leavevmode\fi\nobreak
+   \if@tempswa\@cite@without@comment{#1}{#2}%
+   \else      \@cite@with@comment{#1}%
+   \fi}
+
+\def\@cite@without@comment#1#2{%
+   \@cite@firstdelim{#1, #2}\@cite@lastdelim}%
+
+\def\@cite@with@comment#1{%
+   \@cite@firstdelim{#1}\@cite@lastdelim
+}
+
+\def\@citex[#1]#2{%
+   \let\@cite@reference@list\@empty
+   \let\@cite@undefined@reference\@empty
+   \@for\@tempa:=#2\do{%
+      \edef\@tempa{\expandafter\@firstofone\@tempa\@empty}%
+      \if@filesw
+         \immediate\write\@auxout{\string\citation{\@tempa}}%
+      \fi 
+      \@ifundefined{b@\@tempa}%
+      {\G@refundefinedtrue
+          \@latex@warning{Citation `\@tempa' on page
+          \thepage \space undefined}%
+       \def\@cite@undefined@reference{%
+           \@cite@put@itemsep
+            \mbox{\reset@font\bfseries ?}}}%
+       {\edef\@tempb{{\@nameuse{b@\@tempa}}}%     
+        \expandafter\@append@list\expandafter         
+           \@cite@reference@list\@tempb}}%
+       \@simplify@list\@cite@reference@list
+       \@ascending@sort@list\@cite@reference@list\@compare@num 
+       \@cite{{\let\@elt\@cite@output@elt
+               \def\@cite@put@itemsep{%
+                  \def\@cite@put@itemsep{\@cite@itemsep}}%
+                \@cite@reference@list
+                \@cite@undefined@reference}}%
+        {#1}}%
+
+
+\def\@cite@output@elt#1{%
+    \@cite@put@itemsep
+    \bgroup[#1]\egroup
+}
+
+%%%%%%%%%%%%%%%
+\def\@append@list#1#2{%
+   \@addto@macro#1{\@elt{#2}}}%
+
+\def\@addto@macro#1#2{%
+   \expandafter\def\expandafter#1\expandafter{#1#2}}
+       
+\def\@simplify@list#1{%
+   \begingroup
+      \let\@templist\@empty
+      \loop\ifx#1\@empty\else
+         \@pop@list\@firstterm#1%
+         \expandafter\@append@list\expandafter\@templist
+             \expandafter{\@firstterm}%
+         \expandafter\@remove@from@list\expandafter#1%
+             \expandafter{\@firstterm}%
+      \repeat
+      \expandafter\endgroup\expandafter
+         \def\expandafter#1\expandafter{\@templist}}
+
+\def\@remove@from@list#1#2{%
+    \begingroup
+    \let\@templist\@empty
+    \def\@to@be@removed{#2}%
+    \let\@elt\@remove@from@list@elt
+     #1%
+    \expandafter\endgroup\expandafter
+      \def\expandafter#1\expandafter{\@templist}}
+
+\def\@remove@from@list@elt#1{%
+   \def\@tempa{#1}%
+   \ifx\@tempa\@to@be@removed\else
+      \@append@list\@templist{#1}%
+   \fi}%
+
+\def\@pop@list#1#2{%
+   \ifx#2\@empty\let#1\@empty
+   \else        \expandafter\@pop@list@#2\@nil#1#2%
+   \fi
+}
+
+\def\@pop@list@\@elt#1#2\@nil#3#4{%
+    \def#3{#1}\def#4{#2}}
+
+
+\newcount\@compare@result
+
+\def\@compare@num#1#2{%
+    \@compare@result#1\relax
+    \advance\@compare@result-#2\relax
+}
+
+\def\@ascending@sort@list{\@sort@list<}
+\def\@descending@sort@list{\@sort@list>}
+
+\def\@sort@list#1#2#3{%
+   \begingroup
+   \let\@sort@templista\@empty
+   \def\@elt##1{%
+      \@addto@sorted@list#1\@sort@templista{#3}{##1}}%
+   #2%
+   \expandafter\endgroup\expandafter
+      \def\expandafter#2\expandafter{\@sort@templista}}
+
+
+\newif\if@ignore@same@item
+
+\def\@addto@sorted@list#1#2#3#4{%
+    \begingroup
+    \let\@sort@templistb\@empty
+    \def\@tempz{\@elt{#4}}%
+    \def\@elt##1{%
+        #3{##1}{#4}%
+        \def\@tempa{\@elt{##1}}%
+        \let\@tempb\@empty
+        \ifnum\z@#1\@compare@result
+           \@csc@t\@tempa\@tempz\@tempa
+           \def\@tempb{\@addto@sorted@list@skip}%
+        \else
+            \ifnum\z@=\@compare@result
+                \if@ignore@same@item
+                     \def\@tempb{\@addto@sorted@list@skip}%
+                \fi
+            \fi
+        \fi
+        \@csc@t\@sort@templistb\@sort@templistb\@tempa
+        \@tempb}%
+     #2\@addto@sorted@list@{\@elt{#4}}%
+     \expandafter\endgroup\expandafter
+         \def\expandafter#2\expandafter{\@sort@templistb}}% 
+
+\def\@addto@sorted@list@skip#1\@addto@sorted@list@#2{%
+    \@addto@sorted@list@{#1}}
+
+\def\@addto@sorted@list@#1{%
+    \@addto@macro\@sort@templistb{#1}}
+
+\def\@csc@t#1#2#3{%
+   \expandafter\expandafter\expandafter\def
+   \expandafter\expandafter\expandafter#1%
+   \expandafter\expandafter\expandafter{%
+   \expandafter#2#3}}
+
+
+
+
+%%% kinsoku %%%
+
+\ifDS@english
+\else
+\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						% 2.12(6)
+\prebreakpenalty`〜=\@M						% 2.12(6)
+
+\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
+
+
+%% v1.5
+%\def\:{\makebox[1zw][l]{:}}
+\ifDS@english
+\else
+\prebreakpenalty34=1000%%% '' penalty
+\postbreakpenalty92=1000%%% `` penalty
+\def\:{\nobreak\protect\makebox[1\zw][l]{:}\ignorespaces}
+\fi
+
+
+%\ifDS@draft\def\next{\input{ipsjdraft.sty}\endinput}\else\let\next\relax\fi
+%\next
+
+\ifDS@preface\def\next{\input{ipsjpref.sty}\endinput}\else\let\next\relax\fi
+\next
+
+
+\ifDS@OT\def\next{\input{ipsjot.sty}\endinput}\else\let\next\relax\fi
+\next
+
+%% v1.02c
+\ifDS@techrep\def\next{\input{ipsjtech.sty}\endinput}\else\let\next\relax\fi
+\next
+
+
+%% not use submit 
+\def\zdash{{\usefont{OT1}{cmr}{bx}{n}\selectfont\leavevmode \raise.1zh\hbox {---}}}
+
+\def\ndash{{\usefont{OT1}{cmr}{bx}{n}\selectfont\leavevmode \raise.1zh\hbox {--}}}
+ 
+
+
+
+%% pdflatex papersize v1.6
+\@ifundefined{pdfpagewidth}
+{\relax}%{\special{papersize=\paperwidth,\paperheight}}
+{\pdfpagewidth=\paperwidth
+\pdfpageheight=\paperheight
+}
+
+
+
+\endinput
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjpref.sty	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,374 @@
+
+% ipsjpref.sty  (C) 2012 Information Processing Society of Japan
+% Copyright (C) 1995-2010 by Hiroshi Nakashima, Yasuki Saito and
+%                            The Editorial Board of the IPSJ Journal
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ipsj}
+%\ProvidesClass{ipsj}
+% [2011/12/10-2012/03/09 v1.00-2.00 IPSJPREF.STY]
+% [2012/06/01 v2.01 IPSJPREF.STY]
+ [2017/02/16 v3.00 IPSJ class]
+
+
+
+
+\newif\ifDS@alone \DS@alonefalse
+\DeclareOption{alone}{\DS@alonetrue}
+\ProcessOptions
+
+
+\def\SHUBETUname@DAM{\ifDS@english%
+\leavevmode %%<---
+\else \leavevmode \fi}%%
+
+
+\JEhonbunsep=5mm % default 15mm
+
+
+\def\@maketitle{%
+\newpage\null
+%%%%%%%%%%
+\ifDS@english
+%%
+\vskip-1.3mm%
+\ifx\SHUBETUname\relax%
+{\SHUBETUfontE{\SHUBETUname@DEF}}%%
+\else
+{\SHUBETUfontE{\SHUBETUname}}%%
+\fi
+%%
+\else
+\ifx\SHUBETUname\relax%
+{\SHUBETUfontJ{\SHUBETUname@DEF}}%%
+\else
+{\SHUBETUfontJ{\SHUBETUname}}%%
+\fi\fi
+%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\shubetutitlesep% 
+%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%\vskip 10mm%
+\begin{center}
+\authortitle %%<---
+\end{center}
+%%%%%%%%%%%%%%%%%%%
+%
+}
+
+
+
+\ifDS@english
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\authortitle{%
+{\Engtitlefont%
+{\@title}\par}
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Etitleauthorsep%
+%%%%%%%%%%%%%%%%%%%%%%%
+%% author %%%
+{\Engeauthorfont%
+\authoroutput{e}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Eauthorreceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\JEhonbunsep%
+%%%%%%%%%%%%%%%%%%%
+%%
+}
+%===========
+\else
+%==========
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\authortitle{%
+{\jtitlefont%
+{\@title}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jtitlejauthorsep%
+%%%%%%%%%%%%%%%%%%%%%%%%
+%======
+{\authorfont%
+\authoroutput{}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jauthorjreceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\JEhonbunsep%
+%%%%%%%%%%%%%%%%%%%
+}
+\fi
+
+
+
+
+
+
+
+\ifDS@english
+\def\ps@IPSJTITLEheadings{%
+ \def\@oddhead{\@Ltop%
+\rlap{\small{%%
+%%
+\ifx\signame\relax%
+{\HeadfontE{\signame@DEF}}%%
+\else
+{\HeadfontE{\signame}}%%
+\fi
+%%%%%
+%vol
+%%%%%
+%===============
+\hskip12\Q{\HeadfontE{Vol.\number\c@volume}}%
+%===============
+  \ifDS@CVA\relax\else
+  \ifDS@TBIO\relax\else
+  \ifDS@SLDM\relax\else
+%  \ifDS@JIP\relax\else
+%%%%%%
+%no
+%%%%%%
+%\hskip1em{\HeadfontE{No.\number\c@number}}%
+\fi\fi\fi%\fi
+%%%%%%
+%page
+%%%%%%
+\bgroup
+%%%
+%
+\ifDS@ACS
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@PRO
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@TOD
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@TOM
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@TBIO
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@CVA
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@SLDM
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+%\ifDS@JIP
+%   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+%   \HeadfontE{(\@monthyear)}%
+%\else\relax\fi
+\ifDS@JIP
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+\ifDS@CDS
+  \ifDS@alone
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \else
+   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+   \HeadfontE{(\@monthyear)}%
+  \fi
+\else\relax\fi
+%
+%\ifDS@EEE
+%   \hskip12\Q{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+%   \HeadfontE{(\@monthyear)}%
+%\else\relax\fi
+%
+%
+%
+%%%
+\egroup
+}%
+}%
+%%%%%
+\smash{\raisebox{-6mm}{\rlap{%
+{\DOIHeadfont%
+%%%%
+\bgroup
+\ifDS@TBIO
+   [DOI: 10.2197/ipsjtbio.\number\c@volume.\pageref{ipsj@firstpage}]
+\else\fi
+%
+\ifDS@CVA
+   [DOI: 10.2197/ipsjtcva.\number\c@volume.\pageref{ipsj@firstpage}]
+\else\fi
+%
+\ifDS@SLDM
+   [DOI: 10.2197/ipsjtsldm.\number\c@volume.\pageref{ipsj@firstpage}]
+\else\fi
+%
+\ifDS@JIP
+   [DOI: 10.2197/ipsjjip.\number\c@volume.\pageref{ipsj@firstpage}]
+\else\fi
+%
+%%
+%%
+%%%%%
+\egroup
+}%
+}}}%
+\hfil\@Rtop}%
+%%%%%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot%
+\rlap{%\fontsize{10\Q}{0\h}%
+%\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+%\normalfont%
+{\bothashira%
+\copyright \ {\@footyear} Information Processing Society of Japan%
+}}%
+\hfil
+%\fontsize{13\Q}{0\h}%
+%\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+%\normalsize
+{\botnomble
+%%%%%%
+\ifDS@ACS{\thepage}\else\fi
+\ifDS@PRO{\thepage}\else\fi
+\ifDS@TOD{\thepage}\else\fi
+\ifDS@TOM{\thepage}\else\fi
+\ifDS@TBIO{\thepage}\else\fi
+\ifDS@CVA{\thepage}\else\fi
+\ifDS@SLDM{\thepage}\else\fi
+\ifDS@JIP{\thepage}\else\fi
+\ifDS@CDS{\thepage}\else\fi
+%\ifDS@EEE{\thepage}\else\fi
+%%%%%
+\@Rbot}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}}
+%%%
+%%%%%%%%%
+\else
+%%%%%%%%%
+%%%
+\def\ps@IPSJTITLEheadings{%
+ \def\@oddhead{\@Ltop%
+\rlap{\small%
+%%
+\ifx\signame\relax%
+{\HeadfontJ{\signame@DEF}}%%
+\else
+{\HeadfontJ{\signame}}%%
+\fi
+%%%%%
+{%%
+\hskip12\JQ{\HeadfontE{Vol.\number\c@volume}}%
+%\hskip12\JQ{\HeadfontE{No.\number\c@number}}%
+%
+\ifDS@alone
+\hskip12\JQ{\HeadfontE{\pageref{ipsj@firstpage}}}\ %
+\HeadfontE{(\@monthyear)}%
+\else
+%
+\hskip12\JQ{\HeadfontE{\pageref{ipsj@firstpage}--\pageref{ipsj@lastpage}}}\ %
+\HeadfontE{(\@monthyear)}
+\fi
+}}%
+%%%%
+\smash{\raisebox{-6mm}{\rlap{%
+{\DOIHeadfont%%
+}%
+}}}%
+\hfil\@Rtop}%
+%%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot%
+\rlap{%
+%\fontsize{10\Q}{0\h}\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+{\bothashira%
+{\textcopyrighttx} \ {\@footyear} Information Processing Society of Japan%
+}}%
+\hfil%
+%\fontsize{13\Q}{0\h}%
+%\usefont{OT1}{ptm}{m}{n}%Times
+%\selectfont%
+{\botnomble%
+{\thepage}}%
+\@Rbot}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}
+\fi
+
+
+
+
+%% <<<< v1.02
+\def\SHUBETUname@Data{\leavevmode\phantom{Database/Software Paper}}
+\def\SHUBETUname@Survey{\leavevmode\phantom{Survey Paper}}
+\def\SHUBETUname@TBIOM{\leavevmode\phantom{Original Paper}}
+\def\SHUBETUname@Short{\leavevmode\phantom{Short Paper}}
+
+
+
+
+
+\endinput
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjsort-e.bst	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,1248 @@
+% ipsjsort-e.bst 28-Oct-10 by Hiroshi Nakashima (ver 3.00)
+% ipsjsort-e.bst 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
+% ipsjsort.bst 30-Jan-02 by Hiroshi Nakashima (ver 2.00)
+% ipsjsort.bst 28-Dec-93 by Hiroshi Nakashima (ver 1.00)
+% 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
+    doi							% 3.00(1)
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    refdate						% 3.00(1)
+    school
+    series
+    title
+    type
+    url							% 3.00(1)
+    volume
+    year
+  }
+  {}
+  { 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 :=					% 1.00(1)
+}
+
+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 =		% 1.00(1)
+		{ " " * 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 {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "{\em " swap$ * "}" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}					% 1.00(4), 2.00(4)
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{vv }{ll}{, jj}{, f.}" format.name$ 't :=
+      nameptr #1 >
+	{ namesleft #1 >
+	    { ", " * t * }
+	    { t "others" =
+		{" et al." * }
+		{" and " * t * }
+	      if$
+	    }
+	  if$
+	}
+	't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names }
+  if$
+}
+
+FUNCTION {add.colon}					% 2.00(5)
+{ ": " *
+}
+
+FUNCTION {format.editors.inparen}			% 2.00(6)
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{", eds." *}
+	{", ed." *}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{"(eds.)" *}
+	{"(ed.)" *}
+      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 :=				% 1.00(1)
+  year empty$
+    { month empty$
+	{ "" }
+	{ "there's a month but no year in " cite$ * warning$
+          ""						% 1.00(5)
+	}
+      if$
+    }
+    { "(" year ")" * * }				% 1.00(5)
+  if$
+}
+
+FUNCTION {format.ref.date}				% 3.00(1)>>
+{ before.year 'output.state :=
+  "\refdatee{" refdate "}" * *
+}							% 3.00(1)<<
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { "\ " }						% 1.00(6)
+  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 output
+      output.volume
+      output.number }
+ 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.online}				% 3.00(1)>>
+{ duplicate$ empty$
+    { "(online)" * }
+    { " (online)" * }
+  if$
+}							% 3.00(1)<<
+
+FUNCTION {format.url}					% 3.00(1)>>
+{ "\urle{" url "}" * *
+}							% 3.00(1)<<
+
+FUNCTION {format.pages}					% 1.00(7)
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+	{ "pp." pages n.dashify tie.or.space.connect }
+	{ "p." pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.doi.url}				% 3.00(1)>>
+{ doi empty$
+    { url empty$
+	'skip$
+	{ format.online output.nonnull
+	  format.url
+	}
+	if$
+    }
+    { format.online output.nonnull
+      "\doi{" doi "}" * *
+    }
+  if$							% 3.00(1)<<
+}
+
+FUNCTION {format.pages.output}				% 3.00(1)>>
+{ format.pages
+  format.doi.url output					% 3.00(1)<<
+}
+
+FUNCTION {format.vol.num.pages}				% 1.00(8)
+{ 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 * }
+      if$
+    }
+  if$
+  format.doi.url					% 3.00(1)
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+	{ "chapter" chapter tie.or.space.connect }
+        { type "l" change.case$ chapter tie.or.space.connect }
+      if$
+      pages empty$
+	'skip$
+	{ ", " * format.pages * }
+      if$
+    }
+  if$
+  format.doi.url					% 3.00(1)
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { booktitle emphasize
+      editor empty$
+	'skip$
+	{ " (" * format.editors.inparen * ")" *}	% 1.00(9), 2.00(6)
+      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$
+    { "Technical Report" }
+    {type}
+  if$
+  number empty$
+    { "t" change.case$ }
+    { " " number * * }
+  if$
+}
+
+FUNCTION {format.article.crossref}			% 2.00(8)
+{ key empty$
+    { journal empty$
+	{ "need key or journal for " cite$ * " to crossref " * crossref *
+	  warning$
+	  ""
+	}
+	{ journal emphasize }				% 1.00(10)
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}			% 1.00(11)
+{ editor #1 "{vv }{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    {pop$ " et al." * }
+    { #2 <
+	'skip$
+	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+	    {" et al." * }
+	    {" and " * editor #2 "{vv }{ll}" format.name$ * }
+	  if$
+	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}				% 2.00(8)
+{ 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 }			% 1.00(10)
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { format.crossref.editor }
+  if$
+  " \cite{" * crossref * "}" *
+  volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ }
+    { * "Vol." * volume tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.incoll.inproc.crossref}		% 2.00(8)
+{ 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 emphasize }			% 1.00(10)
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { format.crossref.editor }
+  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 add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { journal emphasize output
+      format.vol.num.pages output			% 1.00(12)
+      format.date output
+    }
+    { format.article.crossref output.nonnull
+      format.pages.output				% 3.00(1)
+    }
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  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$
+  add.colon						% 2.00(5)
+  title emphasize output
+  crossref missing$
+    { output.series.volume.number
+      format.chapter.pages output
+      publisher output
+    }
+    { format.chapter.pages output
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date output					% 1.00(13)
+  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 add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { format.in.ed.booktitle output
+      output.series.volume.number
+      publisher output
+      address output
+      format.edition output
+      format.chapter.pages output			% 1.00(13)
+      format.date output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{
+%%%%
+  author    "author"    required.argument
+  title     "title"     required.argument
+  year      "year"      required.argument
+
+  optional.series.volume.number.argument
+%%%%
+  output.bibitem 
+  format.authors add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { format.in.ed.booktitle output
+      booktitle "booktitle" required.argument
+      output.series.volume.number
+      address output
+      organization output
+      publisher output
+      format.pages.output				% 3.00(1)
+      format.date output				% 1.00(13)
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages.output				% 3.00(1)
+    }
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output
+  "Master's thesis"
+  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 add.colon				% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output						% 2.00(9)
+  "PhD Thesis"
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {webpage}					% 3.00(1)>>
+{
+%%%%
+  author       "author"       required.argument
+  title        "title"        required.argument
+  url          "url"          required.argument
+  refdate      "refdate"      required.argument
+%%%%
+  output.bibitem
+  format.authors add.colon
+  title output
+  organization format.doi.url output
+  format.ref.date output
+  new.block
+  note output
+  fin.entry
+}							% 3.00(1)<<
+
+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 :=
+  #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}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjsort.bst	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,1358 @@
+% ipsjsort.bst 28-Oct-10 by Hiroshi Nakashima (ver 3.00)
+% ipsjsort.bst 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
+% ipsjsort.bst 30-Jan-02 by Hiroshi Nakashima (ver 2.00)
+% ipsjsort.bst 28-Dec-93 by Hiroshi Nakashima (ver 1.00)
+% 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
+    doi							% 3.00(1)
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    refdate						% 3.00(1)
+    school
+    series
+    title
+    type
+    url							% 3.00(1)
+    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 :=					% 1.00(1)
+}
+
+STRINGS { s t }
+
+FUNCTION {is.kanji}
+{ is.kanji.str$ }					% 1.00(2), 2.00(1)
+
+FUNCTION {is.kanji.title}				% 3.00(1)
+{ title is.kanji.str$ }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { duplicate$ is.kanji				% 2.00(2)
+	{ "," * write$ }
+	{ ", " * write$ }
+      if$
+    }
+    { output.state after.block =
+	{ add.period$ write$
+	  newline$
+	  "\newblock " write$
+	}
+	{ output.state before.all =
+	    'write$
+	    { output.state before.year =		% 1.00(1)
+		{ " " * 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 {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { duplicate$ is.kanji
+        'skip$						% 1.00(3)
+        { "{\em " swap$ * "}" * }			% 2.00(3)
+      if$
+    }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}					% 1.00(4), 2.00(4)
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{ff}{ll}" format.name$ duplicate$ is.kanji
+	{ duplicate$ text.length$ #6 >
+	    { 't := }
+	    { pop$ s nameptr "{ff} {ll}" format.name$ 't := }
+	  if$
+	}
+        { pop$ s nameptr "{vv }{ll}{, jj}{, f.}" format.name$ 't := }
+      if$
+      nameptr #1 >
+	{ namesleft #1 >
+	    { s is.kanji
+		{ "," }
+		{ ", " }
+	      if$
+	      * t * }
+	    { t "others" =
+		{ s is.kanji
+			{"ほか" * }
+			{" et al." * }
+		      if$
+                }
+		{ s is.kanji
+			{"," * 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 {add.colon}					% 2.00(5)
+{ duplicate$ is.kanji
+    { "\:" * }						% 2.12(1)
+    { ": " * }
+  if$
+}
+
+FUNCTION {format.editors.inparen}			% 2.00(6)
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{ editor is.kanji
+		{",編" * } {", eds." *} if$
+	}
+	{ editor is.kanji
+		{",編" *}  {", ed." *} if$
+	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{ editor is.kanji
+		{"(編)" * } {"(eds.)" *} if$		% 2.00(7)
+	}
+	{ editor is.kanji
+		{"(編)" *}  {"(ed.)" *} if$		% 2.00(7)
+	}
+      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 :=				% 1.00(1)
+  year empty$
+    { month empty$
+	{ "" }
+	{ "there's a month but no year in " cite$ * warning$
+          ""						% 1.00(5)
+	}
+      if$
+    }
+    { "(" year ")" * * }				% 1.00(5)
+  if$
+}
+
+FUNCTION {format.ref.date}				% 3.00(1)>>
+{ before.year 'output.state :=
+  is.kanji.title
+    { "\refdatej{" refdate "}" * *}
+    { "\refdatee{" refdate "}" * *}
+  if$
+}							% 3.00(1)<<
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { "\ " }						% 1.00(6)
+  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.online}				% 3.00(1)>>
+{ is.kanji.title
+    { "(オンライン)" * }
+    { duplicate$ empty$
+        { "(online)" * }
+        { " (online)" * }
+      if$
+    }
+  if$
+}							% 3.00(1)<<
+
+FUNCTION {format.url}					% 3.00(1)>>
+{ is.kanji.title
+    { "\urlj{" url "}" * * }
+    { "\urle{" url "}" * * }
+  if$
+}							% 3.00(1)<<
+
+FUNCTION {format.pages}					% 1.00(7)
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+	{ "pp." pages n.dashify tie.or.space.connect }
+	{ "p." pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.doi.url}				% 3.00(1)>>
+{ doi empty$
+    { url empty$
+	'skip$
+	{ format.online output.nonnull
+	  format.url
+	}
+	if$
+    }
+    { format.online output.nonnull
+      "\doi{" doi "}" * *
+    }
+  if$							% 3.00(1)<<
+}
+
+FUNCTION {format.pages.output}				% 3.00(1)>>
+{ format.pages
+  format.doi.url output					% 3.00(1)<<
+}
+
+FUNCTION {format.vol.num.pages}				% 1.00(8)
+{ 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 * }
+      if$
+    }
+  if$
+  format.doi.url					% 3.00(1)
+}
+
+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$
+  format.doi.url					% 3.00(1)
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { booktitle emphasize
+      editor empty$
+	'skip$
+	{ booktitle is.kanji
+	    { "(" * format.editors.inparen * ")" *}	% 2.00(6,7)
+	    { " (" * format.editors.inparen * ")" *}	% 1.00(9), 2.00(6)
+	  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
+            { "技術報告" }
+            { "Technical Report" }
+          if$
+        }
+      if$
+    }
+    {type}
+  if$
+  number empty$
+    { "t" change.case$ }
+    { " " number * * }
+  if$
+}
+
+FUNCTION {format.article.crossref}			% 2.00(8)
+{ key empty$
+    { journal empty$
+	{ "need key or journal for " cite$ * " to crossref " * crossref *
+	  warning$
+	  ""
+	}
+	{ journal emphasize }				% 1.00(10)
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}			% 1.00(11)
+{ editor #1
+  editor is.kanji { "{ff}" } { "{vv }{ll}" } if$
+  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 "{ff}" format.name$ * }
+		{" and " * editor #2 "{vv }{ll}" format.name$ * }
+	      if$
+	    }
+	  if$
+	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}				% 2.00(8)
+{ 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 }			% 1.00(10)
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { format.crossref.editor }
+  if$
+  " \cite{" * crossref * "}" *
+  volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ }
+    { duplicate$ is.kanji { "," } { ", "} if$ *
+      "Vol." * volume tie.or.space.connect
+    }
+  if$
+}
+
+FUNCTION {format.incoll.inproc.crossref}		% 2.00(8)
+{ 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 emphasize }			% 1.00(10)
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { format.crossref.editor }
+  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 add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { journal emphasize output
+      format.vol.num.pages output			% 1.00(12)
+      format.date output
+    }
+    { format.article.crossref output.nonnull
+      format.pages.output				% 3.00(1)
+    }
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  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$
+  add.colon						% 2.00(5)
+  title emphasize output
+  crossref missing$
+    { output.series.volume.number
+      format.chapter.pages output
+      publisher output
+    }
+    { format.chapter.pages output
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date output					% 1.00(13)
+  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 add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { format.in.ed.booktitle output
+      output.series.volume.number
+      publisher output
+      address output
+      format.edition output
+      format.chapter.pages output			% 1.00(13)
+      format.date output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{
+%%%%
+  author    "author"    required.argument
+  title     "title"     required.argument
+  year      "year"      required.argument
+
+  optional.series.volume.number.argument
+%%%%
+  output.bibitem 
+  format.authors add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { format.in.ed.booktitle output
+      booktitle "booktitle" required.argument
+      output.series.volume.number
+      address output
+      organization output
+      publisher output
+      format.pages.output				% 3.00(1)
+      format.date output				% 1.00(13)
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages.output				% 3.00(1)
+    }
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output
+  author empty$
+    { "Master's thesis" }
+    { author is.kanji
+        { "修士論文" }  
+        { "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 add.colon				% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output						% 2.00(9)
+  author empty$
+    { "PhD Thesis" }
+    { author is.kanji
+        { "博士論文" }
+        { "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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {webpage}					% 3.00(1)>>
+{
+%%%%
+  author       "author"       required.argument
+  title        "title"        required.argument
+  url          "url"          required.argument
+  refdate      "refdate"      required.argument
+%%%%
+  output.bibitem
+  format.authors add.colon
+  title output
+  organization format.doi.url output
+  format.ref.date output
+  new.block
+  note output
+  fin.entry
+}							% 3.00(1)<<
+
+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}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjtech.sty	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,354 @@
+
+% ipsjtech.sty  (C) 2012 Information Processing Society of Japan
+% Copyright (C) 1995-2010 by Hiroshi Nakashima, Yasuki Saito and
+%                            The Editorial Board of the IPSJ Journal
+
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ipsj}
+% [2012/03/26-05/02 v1.00-2.00 IPSJTECH.STY]
+ [2012/06/01 v3.00 IPSJTECH.STY]
+
+
+
+
+%%%%%%%%
+%techrep
+%%%%%%%%
+\def\biography{\ipsjnobiography}
+\def\endbiography{\ipsjendnobiography}
+
+\def\ipsjnobiography{\let\profile\@gobble
+	\ifDS@english \let\author\@gobble \fi
+	\let\adjust\@gobble \setbox0\vbox\bgroup
+	\tolerance\@M \hbadness\@M \hfuzz\maxdimen}
+\def\ipsjendnobiography{\egroup\setbox0\hbox{}}
+
+
+
+
+\def\@uketsuke{%
+\leavevmode%
+\phantom{@received}
+\@ifundefined{@rereceived}{\phantom{, }}{%
+   \phantom{\@rereceived}
+   \@ifundefined{@rerereceived}{\phantom{, }}{\phantom{\@rerereceived}}%
+   \par
+}%
+\phantom{\@accepted}%
+\@ifundefined{@released}{}{, \@released}%
+}
+
+
+\def\@euketsuke{%
+\leavevmode%
+\phantom{\@ereceived}
+\@ifundefined{@erereceived}{\phantom{, }}{%
+   \phantom{\@erereceived}
+   \@ifundefined{@ererereceived}{\phantom{, }}{\phantom{\@ererereceived}}%
+   \par
+}%
+\phantom{\@eaccepted}
+}
+
+
+
+
+
+%%
+\def\SIGHead{\ifDS@english%
+{IPSJ SIG Technical Report}%
+\else 情報処理学会研究報告\fi}%%
+%
+
+\def\signame@DAM{\ifDS@english%
+IPSJ SIG Technical Report%
+\else 情報処理学会研究報告\fi}%%
+
+
+
+\def\signame@ACS{\SIGHead}
+\def\signame@PRO{\SIGHead}
+\def\signame@TOM{\SIGHead}
+\def\signame@TOD{\SIGHead}
+\def\signame@CDS{\SIGHead}
+\def\signame@CVA{\SIGHead}
+\def\signame@TBIO{\SIGHead}
+\def\signame@SLDM{\SIGHead}
+\def\signame@JIP{\SIGHead}
+
+
+\def\HeadfontE{%
+\ifDS@english
+   \fontsize{13\Q}{0\h}\sffamily\bfseries\selectfont%
+\else
+   \fontsize{13\Q}{0\h}\bfseries\selectfont%
+\fi
+}
+
+\def\DOIHeadfont{\fontsize{11\Q}{0\h}%\usefont{OT1}{phv}{m}{n}\selectfont
+\selectfont}
+
+
+
+%%%<<<< 1.02
+\ifDS@english
+\def\ps@IPSJTITLEheadings{%
+ \def\@oddhead{\@Ltop%
+\rlap{\small{%%
+%%
+{\HeadfontE{\signame}}%%
+}}%
+%%%%%
+%}}}}%
+\hfil\@Rtop}%
+%%%%%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot%
+\rlap{%\fontsize{10\Q}{0\h}%
+{\bothashira%
+\copyright \ {\@footyear} Information Processing Society of Japan%
+}}%
+\hfil
+{\botnomble
+{\thepage}
+\@Rbot}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}}
+%%%
+%%%%%%%%%
+\else
+%%%%%%%%%
+%%%
+\def\ps@IPSJTITLEheadings{%
+ \def\@oddhead{\@Ltop%
+\rlap{\small%
+%%
+{\HeadfontJ{\signame}}%%
+%%%%%
+{%%
+\ifDS@abstract\else\fi
+}}%
+%%%%
+\smash{\raisebox{-4mm}{\rlap{%
+{\DOIHeadfont%%
+IPSJ SIG Technical Report%
+}%
+}}}%
+\hfil\@Rtop}%
+%%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@Lbot%
+\rlap{%
+{\bothashira%
+{\textcopyrighttx} \ {\@footyear} Information Processing Society of Japan%
+}}%
+\hfil%
+{\botnomble%
+{\thepage}}%
+\@Rbot}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\@gobbletwo
+}
+\fi
+
+
+
+
+
+%==========================================
+
+\newif\if@ET
+\def\etitle#1{\global\@ETtrue%
+\gdef\@etitle{#1}}
+
+\newif\if@JK
+
+\def\jkeyword{\@par%
+\global\@JKtrue%
+\global\setbox\@jkeywordbox\hbox\bgroup
+  \begin{minipage}[t]{.8\textwidth}%
+\fontsize{12\JQ}{15\h}\selectfont%
+{\noindent{\JKEYWORD}}%
+\ignorespaces}
+\def\endjkeyword{%
+\par\end{minipage}%
+\egroup\ignorespaces}
+
+
+
+\newif\if@EAB
+
+\def\eabstract{%
+\global\@EABtrue%
+ \global\setbox\@eabstractbox\hbox\bgroup%
+  \begin{minipage}[t]{.8\textwidth}% 12Q 16H
+\fontsize{12\Q}{15\h}\selectfont%
+\noindent{\EGAIYOU}%
+\ignorespaces}
+
+
+
+\newif\if@EK
+
+\def\ekeyword{\@par%
+\global\@EKtrue%
+ \global\setbox\@ekeywordbox\hbox\bgroup
+  \begin{minipage}[t]{.8\textwidth}%
+\fontsize{12\Q}{15\h}\selectfont%
+{\noindent{\EKEYWORD}}%
+\ignorespaces}
+\def\endekeyword{%
+\par\end{minipage}%
+\egroup\ignorespaces}
+
+
+
+\def\@maketitle{%
+\newpage\null
+%%%%%%%%%%
+\ifDS@english
+%%
+\vskip-1.3mm%<--
+\ifx\SHUBETUname\relax%
+{\SHUBETUfontE{\vphantom{\SHUBETUname@DEF}}}%%
+\else
+{\SHUBETUfontE{\vphantom{\SHUBETUname}}}%%
+\fi
+%%
+\else
+\ifx\SHUBETUname\relax%
+{\SHUBETUfontJ{\SHUBETUname@DEF}}%%
+\else
+{\SHUBETUfontJ{\SHUBETUname}}%%
+\fi\fi
+%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\shubetutitlesep%
+%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%\vskip 10mm%
+\begin{center}
+\authortitle %%<---
+\end{center}
+%%%%%%%%%%%%%%%%%%%
+%
+}
+
+
+
+
+
+
+\ifDS@english
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\authortitle{%
+{\Engtitlefont%
+{\@title}\par}
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Etitleauthorsep%
+%%%%%%%%%%%%%%%%%%%%%%%
+{\Engeauthorfont%
+\authoroutput{e}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Eauthorreceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+{\Enguketukefont%
+{\@uketsuke}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Ereceiveabstsep%
+%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@abstractbox}\par%
+%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Eabstkeywordsep%
+%%%%%%%%%%%%%%%%%%%%%%%
+\let\@keywordbox\@ekeywordbox
+\mbox{\box\@ekeywordbox}\par%
+%%%%%%%%%%%%%%%%%%%
+\vskip\JEhonbunsep%
+%%%%%%%%%%%%%%%%%%%
+}
+%===========
+\else
+%==========
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\authortitle{%
+{\jtitlefont%
+{\@title}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jtitlejauthorsep%
+%%%%%%%%%%%%%%%%%%%%%%%%
+%======
+{\authorfont%
+\authoroutput{}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jauthorjreceivesep%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+%======
+{\juketukefont%
+{\@uketsuke}\par}%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jreceivejabstsep%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@abstractbox}\par%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\if@JK%<-----
+\vskip\Jabstsepjkeyword%
+%
+\mbox{\box\@jkeywordbox}\par%
+\fi%<-----
+\if@ET%<-----
+%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jkeywordetitle%
+%%%%%%%%%%%%%%%%%%%%%%
+{\etitlefont%
+{\bfseries{\@etitle}}}\par%
+\fi%<-----
+%%%%%%%%%%%%%%%%%%%%%%
+\ifDS@noauthor%%%%!!!!!!!!!!!!!!
+\else%
+\vskip\Jetitleeauthor% 
+%%%%%%%%%%%%%%%%%%%%%%
+%% eauthor
+{\eauthorfont%
+\authoroutput{e}
+\par}%
+\vskip\Jeauthorereceivesep% 
+\fi%%%%%%!!!!!!!!!!!!!!!!!
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\ifDS@noauthor%%%%!!!!!!!!!!!!!!
+%\else%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\euketukefont%
+{\@euketsuke}\par}%
+%\fi%%%!!!!
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\if@EAB%<-----
+\vskip\Jereceiveeabstsep% 
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@eabstractbox}\par%
+\fi%<-----j
+\if@EK%<-----
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\vskip\Jeabstekeywordsep% 
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\mbox{\box\@ekeywordbox}\par%
+\fi%<-----
+%%%%%%%%%%%%%%%%%%%
+\vskip\JEhonbunsep%
+%%%%%%%%%%%%%%%%%%%
+}
+\fi
+
+
+
+
+\pagestyle{IPSJTITLEheadings}
+
+
+
+\endinput
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjunsrt-e.bst	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,1103 @@
+% ipsjsort-e.bst 28-Oct-10 by Hiroshi Nakashima (ver 3.00)
+% ipsjsort-e.bst 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
+% ipsjsort.bst 30-Jan-02 by Hiroshi Nakashima (ver 2.00)
+% ipsjsort.bst 28-Dec-93 by Hiroshi Nakashima (ver 1.00)
+% 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
+    doi							% 3.00(1)
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    refdate						% 3.00(1)
+    school
+    series
+    title
+    type
+    url							% 3.00(1)
+    volume
+    year
+  }
+  {}
+  { 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 :=					% 1.00(1)
+}
+
+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 =		% 1.00(1)
+		{ " " * 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 {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "{\em " swap$ * "}" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}					% 1.00(4), 2.00(4)
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{vv }{ll}{, jj}{, f.}" format.name$ 't :=
+      nameptr #1 >
+	{ namesleft #1 >
+	    { ", " * t * }
+	    { t "others" =
+		{" et al." * }
+		{" and " * t * }
+	      if$
+	    }
+	  if$
+	}
+	't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names }
+  if$
+}
+
+FUNCTION {add.colon}					% 2.00(5)
+{ ": " *
+}
+
+FUNCTION {format.editors.inparen}			% 2.00(6)
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{", eds." *}
+	{", ed." *}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{"(eds.)" *}
+	{"(ed.)" *}
+      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 :=				% 1.00(1)
+  year empty$
+    { month empty$
+	{ "" }
+	{ "there's a month but no year in " cite$ * warning$
+          ""						% 1.00(5)
+	}
+      if$
+    }
+    { "(" year ")" * * }				% 1.00(5)
+  if$
+}
+
+FUNCTION {format.ref.date}				% 3.00(1)>>
+{ before.year 'output.state :=
+  "\refdatee{" refdate "}" * *
+}							% 3.00(1)<<
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { "\ " }						% 1.00(6)
+  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 output
+      output.volume
+      output.number }
+ 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.online}				% 3.00(1)>>
+{ duplicate$ empty$
+    { "(online)" * }
+    { " (online)" * }
+  if$
+}							% 3.00(1)<<
+
+FUNCTION {format.url}					% 3.00(1)>>
+{ "\urle{" url "}" * *
+}							% 3.00(1)<<
+
+FUNCTION {format.pages}					% 1.00(7)
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+	{ "pp." pages n.dashify tie.or.space.connect }
+	{ "p." pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.doi.url}				% 3.00(1)>>
+{ doi empty$
+    { url empty$
+	'skip$
+	{ format.online output.nonnull
+	  format.url
+	}
+	if$
+    }
+    { format.online output.nonnull
+      "\doi{" doi "}" * *
+    }
+  if$							% 3.00(1)<<
+}
+
+FUNCTION {format.pages.output}				% 3.00(1)>>
+{ format.pages
+  format.doi.url output					% 3.00(1)<<
+}
+
+FUNCTION {format.vol.num.pages}				% 1.00(8)
+{ 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 * }
+      if$
+    }
+  if$
+  format.doi.url					% 3.00(1)
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+	{ "chapter" chapter tie.or.space.connect }
+        { type "l" change.case$ chapter tie.or.space.connect }
+      if$
+      pages empty$
+	'skip$
+	{ ", " * format.pages * }
+      if$
+    }
+  if$
+  format.doi.url					% 3.00(1)
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { booktitle emphasize
+      editor empty$
+	'skip$
+	{ " (" * format.editors.inparen * ")" *}	% 1.00(9), 2.00(6)
+      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$
+    { "Technical Report" }
+    {type}
+  if$
+  number empty$
+    { "t" change.case$ }
+    { " " number * * }
+  if$
+}
+
+FUNCTION {format.article.crossref}			% 2.00(8)
+{ key empty$
+    { journal empty$
+	{ "need key or journal for " cite$ * " to crossref " * crossref *
+	  warning$
+	  ""
+	}
+	{ journal emphasize }				% 1.00(10)
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}			% 1.00(11)
+{ editor #1 "{vv }{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    {pop$ " et al." * }
+    { #2 <
+	'skip$
+	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+	    {" et al." * }
+	    {" and " * editor #2 "{vv }{ll}" format.name$ * }
+	  if$
+	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}				% 2.00(8)
+{ 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 }			% 1.00(10)
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { format.crossref.editor }
+  if$
+  " \cite{" * crossref * "}" *
+  volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ }
+    { * "Vol." * volume tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.incoll.inproc.crossref}		% 2.00(8)
+{ 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 emphasize }			% 1.00(10)
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { format.crossref.editor }
+  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 add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { journal emphasize output
+      format.vol.num.pages output			% 1.00(12)
+      format.date output
+    }
+    { format.article.crossref output.nonnull
+      format.pages.output				% 3.00(1)
+    }
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  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$
+  add.colon						% 2.00(5)
+  title emphasize output
+  crossref missing$
+    { output.series.volume.number
+      format.chapter.pages output
+      publisher output
+    }
+    { format.chapter.pages output
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date output					% 1.00(13)
+  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 add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { format.in.ed.booktitle output
+      output.series.volume.number
+      publisher output
+      address output
+      format.edition output
+      format.chapter.pages output			% 1.00(13)
+      format.date output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{
+%%%%
+  author    "author"    required.argument
+  title     "title"     required.argument
+  year      "year"      required.argument
+
+  optional.series.volume.number.argument
+%%%%
+  output.bibitem 
+  format.authors add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { format.in.ed.booktitle output
+      booktitle "booktitle" required.argument
+      output.series.volume.number
+      address output
+      organization output
+      publisher output
+      format.pages.output				% 3.00(1)
+      format.date output				% 1.00(13)
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages.output				% 3.00(1)
+    }
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output
+  "Master's thesis"
+  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 add.colon				% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output						% 2.00(9)
+  "PhD Thesis"
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {webpage}					% 3.00(1)>>
+{
+%%%%
+  author       "author"       required.argument
+  title        "title"        required.argument
+  url          "url"          required.argument
+  refdate      "refdate"      required.argument
+%%%%
+  output.bibitem
+  format.authors add.colon
+  title output
+  organization format.doi.url output
+  format.ref.date output
+  new.block
+  note output
+  fin.entry
+}							% 3.00(1)<<
+
+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}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjunsrt.bst	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,1208 @@
+% ipsjunsrt.bst 28-Oct-10 by Hiroshi Nakashima (ver 3.00)
+% ipsjunsrt.bst 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
+% ipsjunsrt.bst 30-Jan-02 by Hiroshi Nakashima (ver 2.00)
+% ipsjunsrt.bst 28-Dec-93 by Hiroshi Nakashima (ver 1.00)
+% 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
+    doi							% 3.00(1)
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    refdate						% 3.00(1)
+    school
+    series
+    title
+    type
+    url							% 3.00(1)
+    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 :=					% 1.00(1)
+}
+
+STRINGS { s t }
+
+FUNCTION {is.kanji}
+{ is.kanji.str$ }					% 1.00(2), 2.00(1)
+
+FUNCTION {is.kanji.title}				% 3.00(1)
+{ title is.kanji.str$ }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { duplicate$ is.kanji				% 2.00(2)
+	{ "," * write$ }
+	{ ", " * write$ }
+      if$
+    }
+    { output.state after.block =
+	{ add.period$ write$
+	  newline$
+	  "\newblock " write$
+	}
+	{ output.state before.all =
+	    'write$
+	    { output.state before.year =		% 1.00(1)
+		{ " " * 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 {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { duplicate$ is.kanji
+        'skip$						% 1.00(3)
+        { "{\em " swap$ * "}" * }			% 2.00(3)
+      if$
+    }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}					% 1.00(4), 2.00(4)
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{ff}{ll}" format.name$ duplicate$ is.kanji
+	{ duplicate$ text.length$ #6 >
+	    { 't := }
+	    { pop$ s nameptr "{ff} {ll}" format.name$ 't := }
+	  if$
+	}
+        { pop$ s nameptr "{vv }{ll}{, jj}{, f.}" format.name$ 't := }
+      if$
+      nameptr #1 >
+	{ namesleft #1 >
+	    { s is.kanji
+		{ "," }
+		{ ", " }
+	      if$
+	      * t * }
+	    { t "others" =
+		{ s is.kanji
+			{"ほか" * }
+			{" et al." * }
+		      if$
+                }
+		{ s is.kanji
+			{"," * 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 {add.colon}					% 2.00(5)
+{ duplicate$ is.kanji
+    { "\:" * }						% 2.12(1)
+    { ": " * }
+  if$
+}
+
+FUNCTION {format.editors.inparen}			% 2.00(6)
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{ editor is.kanji
+		{",編" * } {", eds." *} if$
+	}
+	{ editor is.kanji
+		{",編" *}  {", ed." *} if$
+	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{ editor is.kanji
+		{"(編)" * } {"(eds.)" *} if$		% 2.00(7)
+	}
+	{ editor is.kanji
+		{"(編)" *}  {"(ed.)" *} if$		% 2.00(7)
+	}
+      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 :=				% 1.00(1)
+  year empty$
+    { month empty$
+	{ "" }
+	{ "there's a month but no year in " cite$ * warning$
+          ""						% 1.00(5)
+	}
+      if$
+    }
+    { "(" year ")" * * }				% 1.00(5)
+  if$
+}
+
+FUNCTION {format.ref.date}				% 3.00(1)>>
+{ before.year 'output.state :=
+  is.kanji.title
+    { "\refdatej{" refdate "}" * *}
+    { "\refdatee{" refdate "}" * *}
+  if$
+}							% 3.00(1)<<
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { "\ " }						% 1.00(6)
+  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.online}				% 3.00(1)>>
+{ is.kanji.title
+    { "(オンライン)" * }
+    { duplicate$ empty$
+        { "(online)" * }
+        { " (online)" * }
+      if$
+    }
+  if$
+}							% 3.00(1)<<
+
+FUNCTION {format.url}					% 3.00(1)>>
+{ is.kanji.title
+    { "\urlj{" url "}" * * }
+    { "\urle{" url "}" * * }
+  if$
+}							% 3.00(1)<<
+
+FUNCTION {format.pages}					% 1.00(7)
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+	{ "pp." pages n.dashify tie.or.space.connect }
+	{ "p." pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.doi.url}				% 3.00(1)>>
+{ doi empty$
+    { url empty$
+	'skip$
+	{ format.online output.nonnull
+	  format.url
+	}
+	if$
+    }
+    { format.online output.nonnull
+      "\doi{" doi "}" * *
+    }
+  if$							% 3.00(1)<<
+}
+
+FUNCTION {format.pages.output}				% 3.00(1)>>
+{ format.pages
+  format.doi.url output					% 3.00(1)<<
+}
+
+FUNCTION {format.vol.num.pages}				% 1.00(8)
+{ 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 * }
+      if$
+    }
+  if$
+  format.doi.url					% 3.00(1)
+}
+
+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$
+  format.doi.url					% 3.00(1)
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { booktitle emphasize
+      editor empty$
+	'skip$
+	{ booktitle is.kanji
+	    { "(" * format.editors.inparen * ")" *}	% 2.00(6,7)
+	    { " (" * format.editors.inparen * ")" *}	% 1.00(9), 2.00(6)
+	  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
+            { "技術報告" }
+            { "Technical Report" }
+          if$
+        }
+      if$
+    }
+    {type}
+  if$
+  number empty$
+    { "t" change.case$ }
+    { " " number * * }
+  if$
+}
+
+FUNCTION {format.article.crossref}			% 2.00(8)
+{ key empty$
+    { journal empty$
+	{ "need key or journal for " cite$ * " to crossref " * crossref *
+	  warning$
+	  ""
+	}
+	{ journal emphasize }				% 1.00(10)
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}			% 1.00(11)
+{ editor #1
+  editor is.kanji { "{ff}" } { "{vv }{ll}" } if$
+  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 "{ff}" format.name$ * }
+		{" and " * editor #2 "{vv }{ll}" format.name$ * }
+	      if$
+	    }
+	  if$
+	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}				% 2.00(8)
+{ 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 }			% 1.00(10)
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { format.crossref.editor }
+  if$
+  " \cite{" * crossref * "}" *
+  volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ }
+    { duplicate$ is.kanji { "," } { ", "} if$ *
+      "Vol." * volume tie.or.space.connect
+    }
+  if$
+}
+
+FUNCTION {format.incoll.inproc.crossref}		% 2.00(8)
+{ 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 emphasize }			% 1.00(10)
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { format.crossref.editor }
+  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 add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { journal emphasize output
+      format.vol.num.pages output			% 1.00(12)
+      format.date output
+    }
+    { format.article.crossref output.nonnull
+      format.pages.output				% 3.00(1)
+    }
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  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$
+  add.colon						% 2.00(5)
+  title emphasize output
+  crossref missing$
+    { output.series.volume.number
+      format.chapter.pages output
+      publisher output
+    }
+    { format.chapter.pages output
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date output					% 1.00(13)
+  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 add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { format.in.ed.booktitle output
+      output.series.volume.number
+      publisher output
+      address output
+      format.edition output
+      format.chapter.pages output			% 1.00(13)
+      format.date output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{
+%%%%
+  author    "author"    required.argument
+  title     "title"     required.argument
+  year      "year"      required.argument
+
+  optional.series.volume.number.argument
+%%%%
+  output.bibitem 
+  format.authors add.colon				% 2.00(5)
+  title output
+  crossref missing$
+    { format.in.ed.booktitle output
+      booktitle "booktitle" required.argument
+      output.series.volume.number
+      address output
+      organization output
+      publisher output
+      format.pages.output				% 3.00(1)
+      format.date output				% 1.00(13)
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages.output				% 3.00(1)
+    }
+  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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output
+  author empty$
+    { "Master's thesis" }
+    { author is.kanji
+        { "修士論文" }  
+        { "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 add.colon				% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output						% 2.00(9)
+  author empty$
+    { "PhD Thesis" }
+    { author is.kanji
+        { "博士論文" }
+        { "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$
+  add.colon						% 2.00(5)
+  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 add.colon				% 2.00(5)
+  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 add.colon				% 2.00(5)
+  title output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {webpage}					% 3.00(1)>>
+{
+%%%%
+  author       "author"       required.argument
+  title        "title"        required.argument
+  url          "url"          required.argument
+  refdate      "refdate"      required.argument
+%%%%
+  output.bibitem
+  format.authors add.colon
+  title output
+  organization format.doi.url output
+  format.ref.date output
+  new.block
+  note output
+  fin.entry
+}							% 3.00(1)<<
+
+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}
+
+
Binary file paper/mk-wm.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/mk-wm.tex	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,207 @@
+%%
+%% 研究報告用スイッチ
+%% [techrep]
+%%
+%% 欧文表記無しのスイッチ(etitle,eabstractは任意)
+%% [noauthor]
+%%
+
+%\documentclass[submit,techrep]{ipsj}
+\documentclass[submit,techrep,noauthor]{ipsj}
+
+
+
+\usepackage[dvips,dvipdfmx]{graphicx}
+\usepackage{latexsym}
+\usepackage{listings}
+\lstset{
+  language=C,
+  tabsize=2,
+  frame=single,
+  basicstyle={\tt\footnotesize}, %
+  identifierstyle={\footnotesize}, %
+  commentstyle={\footnotesize\itshape}, %
+  keywordstyle={\footnotesize\ttfamily}, %
+  ndkeywordstyle={\footnotesize\ttfamily}, %
+  stringstyle={\footnotesize\ttfamily},
+  breaklines=true,
+  captionpos=b,
+  columns=[l]{fullflexible}, %
+  xrightmargin=0zw, %
+  xleftmargin=1zw, %
+  aboveskip=1zw,
+  numberstyle={\scriptsize}, %
+  stepnumber=1,
+  numbersep=0.5zw, %
+  lineskip=-0.5ex,
+}
+\usepackage{caption}
+
+
+\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
+\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
+\def\|{\verb|}
+%
+
+%\setcounter{巻数}{59}%vol59=2018
+%\setcounter{号数}{10}
+%\setcounter{page}{1}
+\renewcommand{\lstlistingname}{Code}
+
+\begin{document}
+
+
+\title{情報工学科演習用のコンテナ技術を用いた新規サービスの設計・実装}
+
+%\etitle{How to Prepare Your Paper for IPSJ SIG Technical Report \\ (version 2018/10/29)}
+
+\affiliate{KIE}{琉球大学大学院理工学研究科情報工学専攻}
+\affiliate{IE}{琉球大学工学部工学科知能情報コース}
+
+
+\author{宮平 賢}{Miyahira Ken}{IE}[mk@cr.ie.u-ryukyu.ac.jp]
+\author{河野 真治}{Shinji Kono}{IE}[kono@ie.u-ryukyu.ac.jp]
+
+\begin{abstract}
+IT技術を学ぶ時の学習環境の 1つとして, OS 上の隔離された環境を構築する技術であるコンテナがある. これらはローカルに設置された計算機, あるいはクラウド上に作られる. 
+作成されるコンテナは学生, あるいは教員側から適切に管理するシステムが必要となる. 
+管理システムはマルチユーザで動作するのは当然として, 利用者や管理者に適したUI, sudo権限で動作するコンテナへの対処などが含まれる. 
+学生の演習には, Webサービスの実装や人工知能の学習などがある. そのため, 気軽に開発環境やテスト環境などを用意できる利用のしやすさが重要である. 
+本稿ではコンテナ管理ソフトウェアである Docker, Singularity を用いた新規 Web サービスの設計・実装を行う. 
+\end{abstract}
+
+
+\maketitle
+
+\section{はじめに}
+情報通信技術の普及に伴い学生が学ぶ学習環境が必要となる。その学習環境として VM や コンテナにより, 手軽に開発し試せる技術が普及している。
+だが, 手元の PC 上で VM や コンテナを立ち上げ, 開発を行うことはできるが, VM や コンテナの使用には高性能 PC や 有料のクラウドサービスが必要になる場合がある。
+この大きな負担を学生に負わせない仕組みが必要である。\par
+琉球大学工学部工学科知能情報コースでは, 希望の学生に学科のブレードサーバから仮想環境を貸出すサービスを行なっている。貸出をする VM のデフォルトのスペックでは
+不足場合要望に応じてスペックの変更を行なっている。だが, 貸出サービスでは GPU を利用した処理環境を提供することができない。
+%だが, 貸出サービスでは近年盛んに行われている人工知能の研究に必要な環境を提供することができない。
+GPU が搭載されている PC は研究室によっては用意されているが, 研究室に所属していない学生は利用することができない。そのため, 新たな仕組みが必要である。\par
+学科のブレードサーバに搭載される GPU は VM の貸出サービスでは利用することができないため, コンテナ技術を利用する。
+コンテナ管理ソフトウェアである Docker では NVIDIA Container Toolkit である nvidia-docker を利用することで, 複数のコンテナで GPU を使用することができる。
+Docker では基本的に root 権限で動作する。また一般ユーザが docker コマンドを使用するには docker グループに追加する必要がある。
+そのため Docker をマルチユーザで使用すると, 他ユーザのコンテナへアクセスできるなどセキュリティの問題がある。\par
+そこで, 本論文では, Docker と マルチユーザ環境で利用しやすい Linux コンテナである Singularity を利用したコンテナ貸出サービスを提案する。
+このコンテナ貸出サービスでは, Web コンソールからコンテナの操作を行うことで他ユーザのコンテナへの操作をさせない。また, 先行研究の課題でもあったデータの永続化を
+Singularity で, 外部リポジトリの利用を Docker の操作を API で提供することで利用によるで解消する。
+
+
+\section{Docker}
+Docker とは Docker, Inc. が開発した Linux コンテナ管理ソフトウェアであり, 2013年にオープンソースのプロジェクトとして公開された。
+Docker ではコンテナを実行するだけでなく, コンテナイメージの作成
+
+\section{Singularity}
+Singularity とは, Berkeley Lab が開発した Linux コンテナであり, オープンソースソフトウェアで提供されている。
+Singularity には他のコンテナランタイムとは異なるセキュリティ機能がある。Singularity はコンテナを作成時にコンテナ内にUID及びGID情報を動的に書き込み, ユーザの権限を引き継ぐ。
+そのため, ユーザが非特権ユーザの場合コンテナ内でも非特権ユーザとして動作する。また, Singularity は他のユーザのコンテナを操作することができないためマルチユーザ環境で安全に使用できる。
+Singularity のコンテナではデフォルトで \$HOME, /tmp, /proc, /sys, /dev がマウントされる。そのため, ユーザがコンテナ内にファイルをコピーする手間を省くことができる。
+
+\section{GitLab}
+GitLab とは, GitLab.Inc. が開発した Gitリポジトリマネージャーであり, オープンソースソフトウェアで提供されている。
+GitLab には無償版の GitLab Community Edition (以下GitLab CE) と 有償版の GitLab Enterprise Edition (以下GitLab EE) がある。
+本コースでは GitLab CE を運用している。本研究では GitLab CE に統合されいている CI/CD 機能を利用する。
+
+\section{関連研究}
+本サービスに関連した研究として, Docker をラップし複数のユーザで利用することを目的とした ie-docker, Kubernetes を利用した教育用コンテナ貸出を目的とした, digdog がある。
+この 2 つの研究について軽く概要を説明する。
+\subsection{ie-docker}
+ie-docker とは Docker をラップし複数のユーザで利用することのできるコンテナ管理ツールである。
+利用する学生は ssh でブレードサーバへ接続し, ie-docker を使用してコンテナを操作することができる。
+ie-docker は UID 及び GID 情報を取得し他のユーザのコンテナを操作させない。
+またユーザが使える docker の機能を制限する。表\ref{tb:ie-docker}が ie-docker の機能である。
+
+\begin{table}[htb]
+  \begin{center}
+  \caption{ie-docker のコマンド}
+  \begin{tabular}{c|l} \hline
+    ps  & 起動中のコンテナの一覧を表示する \\ \hline
+    run & コンテナを作成する \\ \hline
+    start & コンテナを起動する \\ \hline
+    stop & コンテナを停止する \\ \hline
+    attach & 起動しているコンテナに attach する \\ \hline
+    cp & コンテナにファイルを送信する \\ \hline
+    rm & コンテナを削除する \\ \hline
+    \end{tabular}
+  \label{tb:ie-docker}
+  \end{center}
+\end{table}
+
+\subsection{digdog}
+digdog とは Kubernetes を利用したコンテナ貸出サービスである。
+学生は Dockerfile を GitLab CI/CD を利用して GitLab Registry に Docker イメージを登録する。
+コンテナを利用するには学科アカウントを使用して Web サービスへログインし, 登録したイメージでコンテナを作成することができる。
+また学生の Namespace が作成される。RBAC を用いたリソース操作のアクセス制御を行なっており, 学生は Kubernetes コマンドである kubectl コマンドで Pod の操作を行うことができる。 
+RBAC で許可されているリソース操作は表\ref{tb:digdog}である。
+
+\begin{table}[htb]
+  \begin{center}
+  \caption{kubectl のコマンド}
+  \begin{tabular}{c|l} \hline
+    get  & Pod の一覧を表示する \\ \hline
+    log & Pod の Log を表示する \\ \hline
+    exec & Pod にアクセスする \\ \hline
+    \end{tabular}
+  \label{tb:digdog}
+  \end{center}
+\end{table}
+
+\section{WhaleMountain}
+本サービスの構成を図\ref{fig:wm}に示す。本サービスは digdog を参考にして作られた コンテナ貸出を行う Web サービスである。
+学生は学科アカウントを使用して Web サービスへログインし, コンテナの作成や操作を行うことができる。
+また, GitLab CI/CD を使用し学生が作成した Dockerfile を GitLab へ Push することで, 学生が自由に Docker イメージを作成することもできる。
+作成した Docker イメージは他の学生に共有できる。また学生は他の学生が作成したコンテナやイメージを操作することはできない。
+WhaleMountain が提供するサービスは以下である。
+\begin{itemize}
+  \item GitLab CI/CD Token の更新
+  \item Docker Image の削除
+  \item Singularity Image のダウンロード
+  \item Docker コンテナの作成, 操作
+  \item Kubernetes Pods の作成
+\end{itemize}
+
+\begin{figure}[tb]
+    \begin{center}
+        \includegraphics[width=80mm]{Images/whalemountain.pdf}
+    \end{center}
+    \caption{システム構成}
+    \label{fig:wm}
+\end{figure}
+
+\section{WhaleMountain と他ツールとの比較}
+関連研究である ie-docker と digdog との比較を行う。
+
+\subsection{ie-docker と比較}
+ie-docker では学生が自由に Docker イメージを作成することができない。またコンテナで使用できる Docker イメージも制限される。
+WhaleMountain の Docker コンテナでは学生がコンテナの log の確認することができない。また ie-docker の attach と比べ WhaleMountain では, 
+コンテナに接続するのではなく, コンテナでコマンドを実行し出力を表示するため, ファイルの編集などを行うことができない。そのため, WhaleMountain では,
+Docker コンテナだけでなく Kubernetes の Pods を作成することができる。 Kubernetes で作成した Pods に対して 学生は kubectl コマンドで操作ができる。
+
+\subsection{digdog と比較}
+WhaleMountain は digdog を参考にして作られたため, 基本構成は似ている。だが, digdog はコンテナ作成に学生が作成した Docker イメージのみに制限されている。
+また, GitLab CI/CD の CI で Dockerfile を build する際に利用する GitLab Runner が共有される。そのため複数の学生が同時に Dockerfile を build することができない。
+WhaleMountain では コンテナ作成で Docker イメージに制限をかけないため Docker Hub に登録されている Docker イメージも利用できる。
+また, 学生用のGitLab Runner を Token の設定時に用意するため, 複数の学生が同時に Dockerfile を build することができる。
+
+%\begin{lstlisting}[frame=lrbt,label=src:example,caption={コード書き方例}]
+%package main
+%import "fmt"
+
+%func main() {
+%    fmt.Println("Hello, World!!")
+%}
+%\end{lstlisting}
+
+\section{今後の課題}
+
+\section{まとめ}
+
+\nocite{*}
+\bibliographystyle{ipsjunsrt}
+\bibliography{mk-wm}
+
+
+\end{document}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slide/slide.md	Fri Jul 31 14:42:25 2020 +0900
@@ -0,0 +1,25 @@
+---
+marp: false
+title: 情報工学科演習用のコンテナ技術を用いた新規サービスの設計・実装
+paginate: true
+---
+
+
+# <!--fit--> 情報工学科演習用のコンテナ技術を用いた新規サービスの設計・実装
+
+- 宮平 賢
+    - 琉球大学工学部工学科知能情報コース
+- 河野 真治
+    - 琉球大学工学部
+
+---
+
+# 研究目的
+
+- 現在知能情報コースとなり、機械学習系統の講義も増えてきている。
+- だが、コース推奨の PC では性能的に厳しいものがある。
+- そこで、次期システムに搭載される GPU を活かした学習環境を提供する。
+- 学習環境では、GPU を使用する環境やチーム開発で開発環境をメンバーで共有できる環境を提供する。
+- また、先輩方の研究環境をそのまま使えるような仕様を目指す。
+- 提供する学習環境は、授業の手助けではなく知能情報コースの学生に学習する場を提供する形を目指す。
+- そのため、学生が好みの学習環境を構築することで、新しい技術を試したりチームで開発環境を共有する場となる。