exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

acmart.cls (79181B)


      1 %%
      2 %% This is file `acmart.cls',
      3 %% generated with the docstrip utility.
      4 %%
      5 %% The original source files were:
      6 %%
      7 %% acmart.dtx  (with options: `class')
      8 %% 
      9 %% IMPORTANT NOTICE:
     10 %% 
     11 %% For the copyright see the source file.
     12 %% 
     13 %% Any modified versions of this file must be renamed
     14 %% with new filenames distinct from acmart.cls.
     15 %% 
     16 %% For distribution of the original source see the terms
     17 %% for copying and modification in the file acmart.dtx.
     18 %% 
     19 %% This generated file may be distributed as long as the
     20 %% original source files, as listed above, are part of the
     21 %% same distribution. (The sources need not necessarily be
     22 %% in the same archive or directory.)
     23 %% \CharacterTable
     24 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
     25 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
     26 %%   Digits        \0\1\2\3\4\5\6\7\8\9
     27 %%   Exclamation   \!     Double quote  \"     Hash (number) \#
     28 %%   Dollar        \$     Percent       \%     Ampersand     \&
     29 %%   Acute accent  \'     Left paren    \(     Right paren   \)
     30 %%   Asterisk      \*     Plus          \+     Comma         \,
     31 %%   Minus         \-     Point         \.     Solidus       \/
     32 %%   Colon         \:     Semicolon     \;     Less than     \<
     33 %%   Equals        \=     Greater than  \>     Question mark \?
     34 %%   Commercial at \@     Left bracket  \[     Backslash     \\
     35 %%   Right bracket \]     Circumflex    \^     Underscore    \_
     36 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
     37 %%   Right brace   \}     Tilde         \~}
     38 \NeedsTeXFormat{LaTeX2e}
     39 \ProvidesClass{acmart}
     40 [2017/05/14 v1.39 Typesetting articles for Association of
     41 Computing Machinery]
     42 \def\@classname{acmart}
     43 \InputIfFileExists{acmart-preload-hook.tex}{%
     44   \ClassWarning{\@classname}{%
     45     I am loading acmart-preload-hook.tex. You are fully responsible
     46     for any problems from now on.}}{}
     47 \RequirePackage{xkeyval}
     48 \RequirePackage{xstring}
     49 \define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
     50   manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
     51   sigplan, sigchi, sigchi-a}[manuscript]{}{%
     52   \ClassError{\@classname}{The option format must be manuscript,
     53     acmsmall, acmlarge, acmtog, sigconf, siggraph,
     54     sigplan, sigchi or sigchi-a}}
     55 \def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}}
     56 \@DeclareACMFormat{manuscript}
     57 \@DeclareACMFormat{acmsmall}
     58 \@DeclareACMFormat{acmlarge}
     59 \@DeclareACMFormat{acmtog}
     60 \@DeclareACMFormat{sigconf}
     61 \@DeclareACMFormat{siggraph}
     62 \@DeclareACMFormat{sigplan}
     63 \@DeclareACMFormat{sigchi}
     64 \@DeclareACMFormat{sigchi-a}
     65 \ExecuteOptionsX{format}
     66 \define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
     67   \if@ACM@screen
     68     \PackageInfo{\@classname}{Using screen mode}%
     69   \else
     70     \PackageInfo{\@classname}{Not using screen mode}%
     71   \fi}{\PackageError{\@classname}{Option screen can be either true or
     72     false}}
     73 \ExecuteOptionsX{screen=false}
     74 \define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
     75   \if@ACM@review
     76     \PackageInfo{\@classname}{Using review mode}%
     77   \else
     78     \PackageInfo{\@classname}{Not using review mode}%
     79   \fi}{\PackageError{\@classname}{Option review can be either true or
     80     false}}
     81 \ExecuteOptionsX{review=false}
     82 \define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
     83   \if@ACM@authorversion
     84     \PackageInfo{\@classname}{Using authorversion mode}%
     85   \else
     86     \PackageInfo{\@classname}{Not using authorversion mode}%
     87   \fi}{\PackageError{\@classname}{Option authorversion can be either true or
     88     false}}
     89 \ExecuteOptionsX{authorversion=false}
     90 \define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
     91   \if@ACM@natbib
     92     \PackageInfo{\@classname}{Explicitly selecting natbib mode}%
     93   \else
     94     \PackageInfo{\@classname}{Explicitly deselecting natbib mode}%
     95   \fi}{\PackageError{\@classname}{Option natbib can be either true or
     96     false}}
     97 \ExecuteOptionsX{natbib=true}
     98 \define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
     99   \if@ACM@anonymous
    100     \PackageInfo{\@classname}{Using anonymous mode}%
    101   \else
    102     \PackageInfo{\@classname}{Not using anonymous mode}%
    103   \fi}{\PackageError{\@classname}{Option anonymous can be either true or
    104     false}}
    105 \ExecuteOptionsX{anonymous=false}
    106 \define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
    107   \if@ACM@timestamp
    108     \PackageInfo{\@classname}{Using timestamp mode}%
    109   \else
    110     \PackageInfo{\@classname}{Not using timestamp mode}%
    111   \fi}{\PackageError{\@classname}{Option timestamp can be either true or
    112     false}}
    113 \ExecuteOptionsX{timestamp=false}
    114 \define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
    115   \if@ACM@authordraft
    116     \PackageInfo{\@classname}{Using authordraft mode}%
    117     \@ACM@timestamptrue
    118     \@ACM@reviewtrue
    119   \else
    120     \PackageInfo{\@classname}{Not using authordraft mode}%
    121   \fi}{\PackageError{\@classname}{Option authordraft can be either true or
    122     false}}
    123 \ExecuteOptionsX{authordraft=false}
    124 \def\ACM@fontsize{}
    125 \DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}}
    126 \DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}}
    127 \DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}}
    128 \DeclareOptionX{12pt}{\edef\ACM@fontsize{\CurrentOption}}
    129 \DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{amsart}}
    130 \DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}}
    131 \ProcessOptionsX
    132 \ClassInfo{\@classname}{Using format \ACM@format, number \ACM@format@nr}
    133 \newif\if@ACM@manuscript
    134 \newif\if@ACM@journal
    135 \newif\if@ACM@sigchiamode
    136 \ifnum\ACM@format@nr=5\relax % siggraph
    137   \ClassWarning{\@classname}{The format `siggraph' is now obsolete.
    138     I am switching to sigconf.}
    139   \setkeys{acmart.cls}{format=sigconf}
    140 \fi
    141 \ifnum\ACM@format@nr=0\relax
    142   \@ACM@manuscripttrue
    143 \else
    144   \@ACM@manuscriptfalse
    145 \fi
    146 \@ACM@sigchiamodefalse
    147 \ifcase\ACM@format@nr
    148 \relax % manuscript
    149   \@ACM@journaltrue
    150 \or % acmsmall
    151   \@ACM@journaltrue
    152 \or % acmlarge
    153   \@ACM@journaltrue
    154 \or % acmtog
    155   \@ACM@journaltrue
    156 \or % sigconf
    157   \@ACM@journalfalse
    158 \or % siggraph
    159   \@ACM@journalfalse
    160  \or % sigplan
    161   \@ACM@journalfalse
    162  \or % sigchi
    163   \@ACM@journalfalse
    164 \or % sigchi-a
    165   \@ACM@journalfalse
    166   \@ACM@sigchiamodetrue
    167 \fi
    168 \ifx\ACM@fontsize\@empty
    169   \ifcase\ACM@format@nr
    170   \relax % manuscript
    171     \def\ACM@fontsize{9pt}%
    172   \or % acmsmall
    173     \def\ACM@fontsize{10pt}%
    174   \or % acmlarge
    175     \def\ACM@fontsize{10pt}%
    176   \or % acmtog
    177     \def\ACM@fontsize{9pt}%
    178   \or % sigconf
    179     \def\ACM@fontsize{9pt}%
    180   \or % siggraph
    181     \def\ACM@fontsize{9pt}%
    182    \or % sigplan
    183     \def\ACM@fontsize{10pt}%
    184    \or % sigchi
    185     \def\ACM@fontsize{10pt}%
    186   \or % sigchi-a
    187     \def\ACM@fontsize{10pt}%
    188   \fi
    189 \fi
    190 \ClassInfo{\@classname}{Using fontsize \ACM@fontsize}
    191 \LoadClass[\ACM@fontsize, reqno]{amsart}
    192 \RequirePackage{microtype}
    193 \RequirePackage{totpages}
    194 \RequirePackage{environ}
    195 \if@ACM@manuscript
    196 \RequirePackage{setspace}
    197 \onehalfspacing
    198 \fi
    199 \if@ACM@natbib
    200   \RequirePackage{natbib}
    201   \renewcommand{\bibsection}{%
    202      \section*{\refname}%
    203      \phantomsection\addcontentsline{toc}{section}{\refname}%
    204   }
    205   \renewcommand{\bibfont}{\bibliofont}
    206   \renewcommand\setcitestyle[1]{
    207   \@for\@tempa:=#1\do
    208   {\def\@tempb{round}\ifx\@tempa\@tempb
    209      \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi
    210    \def\@tempb{square}\ifx\@tempa\@tempb
    211      \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi
    212    \def\@tempb{angle}\ifx\@tempa\@tempb
    213      \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi
    214    \def\@tempb{curly}\ifx\@tempa\@tempb
    215      \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi
    216    \def\@tempb{semicolon}\ifx\@tempa\@tempb
    217      \renewcommand\NAT@sep{;}\fi
    218    \def\@tempb{colon}\ifx\@tempa\@tempb
    219      \renewcommand\NAT@sep{;}\fi
    220    \def\@tempb{comma}\ifx\@tempa\@tempb
    221      \renewcommand\NAT@sep{,}\fi
    222    \def\@tempb{authoryear}\ifx\@tempa\@tempb
    223      \NAT@numbersfalse\fi
    224    \def\@tempb{numbers}\ifx\@tempa\@tempb
    225      \NAT@numberstrue\NAT@superfalse\fi
    226    \def\@tempb{super}\ifx\@tempa\@tempb
    227      \NAT@numberstrue\NAT@supertrue\fi
    228    \def\@tempb{nobibstyle}\ifx\@tempa\@tempb
    229      \let\bibstyle=\@gobble\fi
    230    \def\@tempb{bibstyle}\ifx\@tempa\@tempb
    231      \let\bibstyle=\@citestyle\fi
    232    \def\@tempb{sort}\ifx\@tempa\@tempb
    233      \def\NAT@sort{\@ne}\fi
    234    \def\@tempb{nosort}\ifx\@tempa\@tempb
    235      \def\NAT@sort{\z@}\fi
    236    \def\@tempb{compress}\ifx\@tempa\@tempb
    237      \def\NAT@cmprs{\@ne}\fi
    238    \def\@tempb{nocompress}\ifx\@tempa\@tempb
    239      \def\NAT@cmprs{\@z}\fi
    240    \def\@tempb{sort&compress}\ifx\@tempa\@tempb
    241      \def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}\fi
    242    \def\@tempb{mcite}\ifx\@tempa\@tempb
    243      \let\NAT@merge\@ne\fi
    244    \def\@tempb{merge}\ifx\@tempa\@tempb
    245      \@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}\fi
    246    \def\@tempb{elide}\ifx\@tempa\@tempb
    247      \@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}\fi
    248    \def\@tempb{longnamesfirst}\ifx\@tempa\@tempb
    249      \NAT@longnamestrue\fi
    250    \def\@tempb{nonamebreak}\ifx\@tempa\@tempb
    251      \def\NAT@nmfmt#1{\mbox{\NAT@up#1}}\fi
    252    \expandafter\NAT@find@eq\@tempa=\relax\@nil
    253    \if\@tempc\relax\else
    254      \expandafter\NAT@rem@eq\@tempc
    255      \def\@tempb{open}\ifx\@tempa\@tempb
    256       \xdef\NAT@open{\@tempc}\fi
    257      \def\@tempb{close}\ifx\@tempa\@tempb
    258       \xdef\NAT@close{\@tempc}\fi
    259      \def\@tempb{aysep}\ifx\@tempa\@tempb
    260       \xdef\NAT@aysep{\@tempc}\fi
    261      \def\@tempb{yysep}\ifx\@tempa\@tempb
    262       \xdef\NAT@yrsep{\@tempc}\fi
    263      \def\@tempb{notesep}\ifx\@tempa\@tempb
    264       \xdef\NAT@cmt{\@tempc}\fi
    265      \def\@tempb{citesep}\ifx\@tempa\@tempb
    266       \xdef\NAT@sep{\@tempc}\fi
    267    \fi
    268   }%
    269   \NAT@@setcites
    270   }
    271   \renewcommand\citestyle[1]{%
    272     \ifcsname bibstyle@#1\endcsname%
    273     \csname bibstyle@#1\endcsname\let\bibstyle\@gobble%
    274     \else%
    275     \@latex@error{Undefined `#1' citestyle}%
    276     \fi
    277   }%
    278 \fi
    279 \newcommand{\bibstyle@acmauthoryear}{%
    280   \setcitestyle{%
    281     authoryear,%
    282     open={[},close={]},citesep={;},%
    283     aysep={},yysep={,},%
    284     notesep={, }}}
    285 \newcommand{\bibstyle@acmnumeric}{%
    286   \setcitestyle{%
    287     numbers,sort&compress,%
    288     open={[},close={]},citesep={,},%
    289     notesep={, }}}
    290 \if@ACM@natbib
    291 \citestyle{acmnumeric}
    292 \fi
    293 \def\@startsection#1#2#3#4#5#6{%
    294   \if@noskipsec \leavevmode \fi
    295   \par
    296   \@tempskipa #4\relax
    297   \@afterindenttrue
    298   \ifdim \@tempskipa <\z@
    299     \@tempskipa -\@tempskipa \@afterindentfalse
    300   \fi
    301   \if@nobreak
    302     \everypar{}%
    303   \else
    304     \addpenalty\@secpenalty\addvspace\@tempskipa
    305   \fi
    306   \@ifstar
    307     {\@ssect{#3}{#4}{#5}{#6}}%
    308     {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
    309 \def\@sect#1#2#3#4#5#6[#7]#8{%
    310   \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
    311   \ifnum #2>\c@secnumdepth
    312     \let\@svsec\@empty
    313   \else
    314     \refstepcounter{#1}%
    315     \protected@edef\@svsec{\@seccntformat{#1}\relax}%
    316   \fi
    317   \@tempskipa #5\relax
    318   \ifdim \@tempskipa>\z@
    319     \begingroup
    320       #6{%
    321         \@hangfrom{\hskip #3\relax\@svsec}%
    322           \interlinepenalty \@M #8\@@par}%
    323     \endgroup
    324     \csname #1mark\endcsname{#7}%
    325     \ifnum #2>\c@secnumdepth \else
    326         \@tochangmeasure{\csname the#1\endcsname}%
    327     \fi
    328     \addcontentsline{toc}{#1}{%
    329       \ifnum #2>\c@secnumdepth \else
    330         \protect\numberline{\csname the#1\endcsname}%
    331       \fi
    332       #7}%
    333   \else
    334     \def\@svsechd{%
    335       #6{\hskip #3\relax
    336       \@svsec #8}%
    337       \csname #1mark\endcsname{#7}%
    338       \ifnum #2>\c@secnumdepth \else
    339         \@tochangmeasure{\csname the#1\endcsname\space}%
    340       \fi
    341       \addcontentsline{toc}{#1}{%
    342         \ifnum #2>\c@secnumdepth \else
    343           \protect\numberline{\csname the#1\endcsname}%
    344         \fi
    345         #7}}%
    346   \fi
    347   \@xsect{#5}}
    348 \def\@xsect#1{%
    349   \@tempskipa #1\relax
    350   \ifdim \@tempskipa>\z@
    351     \par \nobreak
    352     \vskip \@tempskipa
    353     \@afterheading
    354   \else
    355     \@nobreakfalse
    356     \global\@noskipsectrue
    357     \everypar{%
    358       \if@noskipsec
    359         \global\@noskipsecfalse
    360        {\setbox\z@\lastbox}%
    361         \clubpenalty\@M
    362         \begingroup \@svsechd \endgroup
    363         \unskip
    364         \@tempskipa #1\relax
    365         \hskip -\@tempskipa
    366       \else
    367         \clubpenalty \@clubpenalty
    368         \everypar{}%
    369       \fi}%
    370   \fi
    371   \ignorespaces}
    372 \def\@seccntformat#1{\csname the#1\endcsname\quad}
    373 \def\@ssect#1#2#3#4#5{%
    374   \@tempskipa #3\relax
    375   \ifdim \@tempskipa>\z@
    376     \begingroup
    377       #4{%
    378         \@hangfrom{\hskip #1}%
    379           \interlinepenalty \@M #5\@@par}%
    380     \endgroup
    381   \else
    382     \def\@svsechd{#4{\hskip #1\relax #5}}%
    383   \fi
    384   \@xsect{#3}}
    385 \def\@starttoc#1#2{\begingroup
    386   \setTrue{#1}%
    387   \par\removelastskip\vskip\z@skip
    388   \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}%
    389     {.5\linespacing}{\centering\contentsnamefont}{#2}%
    390   \@input{\jobname.#1}%
    391   \if@filesw
    392     \@xp\newwrite\csname tf@#1\endcsname
    393     \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
    394   \fi
    395   \global\@nobreakfalse \endgroup
    396   \addvspace{32\p@\@plus14\p@}%
    397 }
    398 \def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}}
    399 \def\l@subsubsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
    400 \let\@footnotemark@nolink\@footnotemark
    401 \let\@footnotetext@nolink\@footnotetext
    402 \RequirePackage[bookmarksnumbered,unicode]{hyperref}
    403 \pdfstringdefDisableCommands{%
    404   \def\unskip{}%
    405   \def\textbullet{- }%
    406   \def\textrightarrow{ -> }%
    407   \def\footnotemark{}%
    408 }
    409 \urlstyle{rm}
    410 \ifcase\ACM@format@nr
    411 \relax % manuscript
    412 \or % acmsmall
    413 \or % acmlarge
    414 \or % acmtog
    415 \or % sigconf
    416 \or % siggraph
    417 \or % sigplan
    418   \urlstyle{sf}
    419 \or % sigchi
    420 \or % sigchi-a
    421   \urlstyle{sf}
    422 \fi
    423 \if@ACM@screen
    424   \hypersetup{colorlinks,
    425     linkcolor=ACMRed,
    426     citecolor=ACMPurple,
    427     urlcolor=ACMDarkBlue,
    428     filecolor=ACMDarkBlue}
    429 \else
    430   \hypersetup{hidelinks}
    431 \fi
    432 \if@ACM@natbib
    433   \let\citeN\cite
    434   \let\cite\citep
    435   \let\citeANP\citeauthor
    436   \let\citeNN\citeyearpar
    437   \let\citeyearNP\citeyear
    438   \let\citeyear\citeyearpar
    439   \let\citeNP\citealt
    440   \DeclareRobustCommand\citeA
    441      {\begingroup\NAT@swafalse
    442        \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}%
    443   \providecommand\newblock{}%
    444 \else
    445   \AtBeginDocument{%
    446     \let\shortcite\cite%
    447     \providecommand\citename[1]{#1}}
    448 \fi
    449 \newcommand\shortcite[2][]{%
    450   \ifNAT@numbers\cite[#1]{#2}\else\citeyear[#1]{#2}\fi}
    451 \def\bibliographystyle#1{%
    452   \ifx\@begindocumenthook\@undefined\else
    453     \expandafter\AtBeginDocument
    454   \fi
    455     {\if@filesw
    456        \immediate\write\@auxout{\string\bibstyle{#1}}%
    457      \fi}}
    458 \RequirePackage{graphicx, xcolor}
    459 \definecolor[named]{ACMBlue}{cmyk}{1,0.1,0,0.1}
    460 \definecolor[named]{ACMYellow}{cmyk}{0,0.16,1,0}
    461 \definecolor[named]{ACMOrange}{cmyk}{0,0.42,1,0.01}
    462 \definecolor[named]{ACMRed}{cmyk}{0,0.90,0.86,0}
    463 \definecolor[named]{ACMLightBlue}{cmyk}{0.49,0.01,0,0}
    464 \definecolor[named]{ACMGreen}{cmyk}{0.20,0,1,0.19}
    465 \definecolor[named]{ACMPurple}{cmyk}{0.55,1,0,0.15}
    466 \definecolor[named]{ACMDarkBlue}{cmyk}{1,0.58,0,0.21}
    467 \if@ACM@authordraft
    468   \RequirePackage{draftwatermark}
    469   \SetWatermarkFontSize{0.5in}
    470   \SetWatermarkColor[gray]{.9}
    471   \SetWatermarkText{\parbox{12em}{\centering
    472       Unpublished working draft\\
    473       Not for distribution}}
    474 \fi
    475 \RequirePackage{geometry}
    476 \ifcase\ACM@format@nr
    477 \relax % manuscript
    478    \geometry{letterpaper,head=13pt,
    479    marginparwidth=6pc}%
    480 \or % acmsmall
    481    \geometry{twoside=true,
    482      includeheadfoot, head=13pt, foot=2pc,
    483      paperwidth=6.75in, paperheight=10in,
    484      top=58pt, bottom=44pt, inner=46pt, outer=46pt,
    485      marginparwidth=2pc
    486    }%
    487 \or % acmlarge
    488    \geometry{twoside=true, head=13pt, foot=2pc,
    489      paperwidth=8.5in, paperheight=11in,
    490      includeheadfoot,
    491      top=78pt, bottom=114pt, inner=81pt, outer=81pt,
    492      marginparwidth=4pc
    493      }%
    494 \or % acmtog
    495    \geometry{twoside=true, head=13pt, foot=2pc,
    496      paperwidth=8.5in, paperheight=11in,
    497      includeheadfoot, columnsep=24pt,
    498      top=52pt, bottom=75pt, inner=52pt, outer=52pt,
    499      marginparwidth=2pc
    500      }%
    501 \or % sigconf
    502    \geometry{twoside=true, head=13pt,
    503      paperwidth=8.5in, paperheight=11in,
    504      includeheadfoot, columnsep=2pc,
    505      top=57pt, bottom=73pt, inner=54pt, outer=54pt,
    506      marginparwidth=2pc
    507      }%
    508 \or % siggraph
    509    \geometry{twoside=true, head=13pt,
    510      paperwidth=8.5in, paperheight=11in,
    511      includeheadfoot, columnsep=2pc,
    512      top=57pt, bottom=73pt, inner=54pt, outer=54pt,
    513      marginparwidth=2pc
    514      }%
    515 \or % sigplan
    516    \geometry{twoside=true, head=13pt,
    517      paperwidth=8.5in, paperheight=11in,
    518      includeheadfoot=false, columnsep=2pc,
    519      top=1in, bottom=1in, inner=0.75in, outer=0.75in,
    520      marginparwidth=2pc
    521      }%
    522 \or % sigchi
    523    \geometry{twoside=true, head=13pt,
    524      paperwidth=8.5in, paperheight=11in,
    525      includeheadfoot, columnsep=2pc,
    526      top=66pt, bottom=73pt, inner=54pt, outer=54pt,
    527      marginparwidth=2pc
    528      }%
    529 \or % sigchi-a
    530    \geometry{twoside=false, head=13pt,
    531      paperwidth=11in, paperheight=8.5in,
    532      includeheadfoot, marginparsep=72pt,
    533      marginparwidth=170pt, columnsep=20pt,
    534      top=72pt, bottom=72pt, left=314pt, right=72pt
    535      }%
    536      \@mparswitchfalse
    537      \reversemarginpar
    538 \fi
    539 \setlength\parindent{10\p@}
    540 \setlength\parskip{\z@}
    541 \ifcase\ACM@format@nr
    542 \relax % manuscript
    543 \or % acmsmall
    544 \or % acmlarge
    545 \or % acmtog
    546   \setlength\parindent{9\p@}%
    547 \or % sigconf
    548 \or % siggraph
    549 \or % sigplan
    550 \or % sigchi
    551 \or % sigchi-a
    552 \fi
    553 \setlength\normalparindent{\parindent}
    554 \def\copyrightpermissionfootnoterule{\kern-3\p@
    555   \hrule \@width \columnwidth \kern 2.6\p@}
    556 \RequirePackage{manyfoot}
    557 \SelectFootnoteRule[2]{copyrightpermission}
    558 \DeclareNewFootnote{copyrightpermission}
    559 \def\footnoterule{\kern-3\p@
    560   \hrule \@width 4pc \kern 2.6\p@}
    561 \def\endminipage{%
    562     \par
    563     \unskip
    564     \ifvoid\@mpfootins\else
    565       \vskip\skip\@mpfootins
    566       \normalcolor
    567       \unvbox\@mpfootins
    568     \fi
    569     \@minipagefalse   %% added 24 May 89
    570   \color@endgroup
    571   \egroup
    572   \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
    573 \def\@makefntext{\noindent\@makefnmark}
    574 \if@ACM@sigchiamode
    575 \long\def\@footnotetext#1{\marginpar{%
    576     \reset@font\small
    577     \interlinepenalty\interfootnotelinepenalty
    578     \protected@edef\@currentlabel{%
    579        \csname p@footnote\endcsname\@thefnmark
    580     }%
    581     \color@begingroup
    582       \@makefntext{%
    583         \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
    584     \color@endgroup}}%
    585 \fi
    586 \long\def\@mpfootnotetext#1{%
    587   \global\setbox\@mpfootins\vbox{%
    588     \unvbox\@mpfootins
    589     \reset@font\footnotesize
    590     \hsize\columnwidth
    591     \@parboxrestore
    592     \protected@edef\@currentlabel
    593          {\csname p@mpfootnote\endcsname\@thefnmark}%
    594     \color@begingroup\centering
    595       \@makefntext{%
    596         \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
    597     \color@endgroup}}
    598 \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
    599 \def\@textbottom{\vskip \z@ \@plus 1pt}
    600 \let\@texttop\relax
    601 \RequirePackage{iftex}
    602 \ifPDFTeX
    603 \input{glyphtounicode}
    604 \pdfgentounicode=1
    605 \fi
    606 \RequirePackage{cmap}
    607 \newif\if@ACM@newfonts
    608 \@ACM@newfontstrue
    609 \IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
    610     have libertine package installed.  Please upgrade your
    611     TeX}\@ACM@newfontsfalse}
    612 \IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
    613     have zi4 package installed.  Please upgrade your TeX}\@ACM@newfontsfalse}
    614 \IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
    615     have newtxmath package installed.  Please upgrade your
    616     TeX}\@ACM@newfontsfalse}
    617 \if@ACM@newfonts
    618 \RequirePackage[tt=false, type1=true]{libertine}
    619 \RequirePackage[varqu]{zi4}
    620 \RequirePackage[libertine]{newtxmath}
    621 \RequirePackage[T1]{fontenc}
    622 \fi
    623 \if@ACM@sigchiamode
    624   \renewcommand{\familydefault}{\sfdefault}
    625 \fi
    626 \RequirePackage{caption, float}
    627 \captionsetup[table]{position=top}
    628 \if@ACM@journal
    629   \captionsetup{labelfont={sf, small},
    630     textfont={sf, small},  margin=\z@}
    631   \captionsetup[figure]{name={Fig.}}
    632 \else
    633   \captionsetup{labelfont={bf},
    634     textfont={bf}, labelsep=colon, margin=\z@}
    635   \ifcase\ACM@format@nr
    636   \relax % manuscript
    637   \or % acmsmall
    638   \or % acmlarge
    639   \or % acmtog
    640   \or % sigconf
    641   \or % siggraph
    642     \captionsetup{textfont={it}}
    643   \or % sigplan
    644     \captionsetup{labelfont={bf},
    645       textfont={normalfont}, labelsep=period, margin=\z@}
    646   \or % sigchi
    647     \captionsetup[figure]{labelfont={bf, small},
    648       textfont={bf, small}}
    649   \or % sigchi-a
    650     \captionsetup[figure]{labelfont={bf, small},
    651       textfont={bf, small}}
    652   \fi
    653 \fi
    654 \newfloat{sidebar}{}{sbar}
    655 \floatname{sidebar}{Sidebar}
    656 \renewenvironment{sidebar}{\Collect@Body\@sidebar}{}
    657 \long\def\@sidebar#1{\bgroup\captionsetup{type=sidebar}%
    658   \marginpar{\small#1}\egroup}
    659 \newenvironment{marginfigure}{\Collect@Body\@marginfigure}{}
    660 \long\def\@marginfigure#1{\bgroup\captionsetup{type=figure}%
    661   \marginpar{\centering\small#1}\egroup}
    662 \newenvironment{margintable}{\Collect@Body\@margintable}{}
    663 \long\def\@margintable#1{\bgroup\captionsetup{type=table}%
    664   \marginpar{\centering\small#1}\egroup}
    665 \newdimen\fulltextwidth
    666 \fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep)
    667 \if@ACM@sigchiamode
    668 \def\@dblfloat{\bgroup\columnwidth=\fulltextwidth
    669   \let\@endfloatbox\@endwidefloatbox
    670   \def\@fpsadddefault{\def\@fps{tp}}%
    671   \@float}
    672 \fi
    673 \if@ACM@sigchiamode
    674 \def\end@dblfloat{%
    675     \end@float\egroup}
    676 \fi
    677 \def\@endwidefloatbox{%
    678   \par\vskip\z@skip
    679   \@minipagefalse
    680   \outer@nobreak
    681   \egroup
    682   \color@endbox
    683   \global\setbox\@currbox=\vbox{\moveleft
    684     \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}%
    685   \wd\@currbox=\textwidth
    686 }
    687 \ifcase\ACM@format@nr
    688 \relax % manuscript
    689 \or % acmsmall
    690 \or % acmlarge
    691 \or % acmtog
    692 \or % sigconf
    693 \or % siggraph
    694 \or % sigplan
    695 \def\labelenumi{\theenumi.}
    696 \def\labelenumii{\theenumii.}
    697 \def\labelenumiii{\theenumiii.}
    698 \def\labelenumiv{\theenumiv.}
    699 \or % sigchi
    700 \or % sigchi-a
    701 \fi
    702 \newdimen\@ACM@labelwidth
    703 \AtBeginDocument{%
    704   \setlength\labelsep{4pt}
    705   \setlength{\@ACM@labelwidth}{6.5pt}
    706 
    707   %% First-level list: when beginning after the first line of an
    708   %% indented paragraph or ending before an indented paragraph, labels
    709   %% should not hang to the left of the preceding/following text.
    710   \setlength\leftmargini{\z@}
    711   \addtolength\leftmargini{\parindent}
    712   \addtolength\leftmargini{2\labelsep}
    713   \addtolength\leftmargini{\@ACM@labelwidth}
    714 
    715   %% Second-level and higher lists.
    716   \setlength\leftmarginii{\z@}
    717   \addtolength\leftmarginii{0.5\labelsep}
    718   \addtolength\leftmarginii{\@ACM@labelwidth}
    719   \setlength\leftmarginiii{\leftmarginii}
    720   \setlength\leftmarginiv{\leftmarginiii}
    721   \setlength\leftmarginv{\leftmarginiv}
    722   \setlength\leftmarginvi{\leftmarginv}
    723   \@listi}
    724 \newskip\listisep
    725 \listisep\smallskipamount
    726 \def\@listI{\leftmargin\leftmargini
    727   \labelwidth\leftmargini \advance\labelwidth-\labelsep
    728   \listparindent\z@
    729   \topsep\listisep}
    730 \let\@listi\@listI
    731 \def\@listii{\leftmargin\leftmarginii
    732   \labelwidth\leftmarginii \advance\labelwidth-\labelsep
    733   \topsep\z@skip}
    734 \def\@listiii{\leftmargin\leftmarginiii
    735   \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
    736 \def\@listiv{\leftmargin\leftmarginiv
    737   \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
    738 \def\@listv{\leftmargin\leftmarginv
    739   \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
    740 \def\@listvi{\leftmargin\leftmarginvi
    741   \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
    742 \renewcommand{\descriptionlabel}[1]{\upshape\bfseries #1}
    743 \renewenvironment{description}{\list{}{%
    744     \labelwidth\@ACM@labelwidth
    745     \let\makelabel\descriptionlabel}%
    746 }{
    747   \endlist
    748 }
    749 \let\enddescription=\endlist % for efficiency
    750 \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{%
    751   CIE,%
    752   CSUR,%
    753   IMWUT,%
    754   JACM,%
    755   JDIQ,%
    756   JEA,%
    757   JERIC,%
    758   JETC,%
    759   JOCCH,%
    760   PACMHCI,%
    761   PACMPL,%
    762   POMACS,%
    763   TAAS,%
    764   TACCESS,%
    765   TACO,%
    766   TALG,%
    767   TALLIP,%
    768   TAP,%
    769   TCPS,%
    770   TEAC,%
    771   TECS,%
    772   TIIS,%
    773   TISSEC,%
    774   TIST,%
    775   TKDD,%
    776   TMIS,%
    777   TOCE,%
    778   TOCHI,%
    779   TOCL,%
    780   TOCS,%
    781   TOCT,%
    782   TODAES,%
    783   TODS,%
    784   TOG,%
    785   TOIS,%
    786   TOIT,%
    787   TOMACS,%
    788   TOMM,%
    789   TOMPECS,%
    790   TOMS,%
    791   TOPC,%
    792   TOPS,%
    793   TOPLAS,%
    794   TOS,%
    795   TOSEM,%
    796   TOSN,%
    797   TRETS,%
    798   TSAS,%
    799   TSC,%
    800   TSLP,%
    801   TWEB%
    802 }{%
    803 \ifcase\@journalCode@nr
    804 \relax % CIE
    805   \def\@journalName{ACM Computers in Entertainment}%
    806   \def\@journalNameShort{ACM Comput. Entertain.}%
    807   \def\@permissionCodeOne{1544-3574}%
    808 \or % CSUR
    809   \def\@journalName{ACM Computing Surveys}%
    810   \def\@journalNameShort{ACM Comput. Surv.}%
    811   \def\@permissionCodeOne{0360-0300}%
    812 \or % IMWUT
    813   \def\@journalName{Proceedings of the ACM on Interactive, Mobile,
    814     Wearable and Ubiquitous Technologies}%
    815   \def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}%
    816   \def\@permissionCodeOne{2474-9567}%
    817 \or % JACM
    818   \def\@journalName{Journal of the ACM}%
    819   \def\@journalNameShort{J. ACM}%
    820   \def\@permissionCodeOne{0004-5411}%
    821 \or % JDIQ
    822   \def\@journalName{ACM Journal of Data and Information Quality}%
    823   \def\@journalNameShort{ACM J. Data Inform. Quality}%
    824   \def\@permissionCodeOne{1936-1955}%
    825 \or % JEA
    826   \def\@journalName{ACM Journal of Experimental Algorithmics}%
    827   \def\@journalNameShort{ACM J. Exp. Algor.}%
    828   \def\@permissionCodeOne{1084-6654}%
    829 \or % JERIC
    830   \def\@journalName{ACM Journal of Educational Resources in Computing}%
    831   \def\@journalNameShort{ACM J. Edu. Resources in Comput.}%
    832   \def\@permissionCodeOne{1073-0516}%
    833 \or % JETC
    834   \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}%
    835   \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}%
    836   \def\@permissionCodeOne{1550-4832}%
    837 \or % JOCCH
    838   \def\@journalName{ACM Journal on Computing and Cultural Heritage}%
    839   \def\@journalName{ACM J. Comput. Cult. Herit.}%
    840 \or % PACMHCI
    841   \def\@journalName{Proceedings of the ACM on Human-Computer Interaction}%
    842   \def\@journalName{Proc. ACM Hum.-Comput. Interact.}%
    843   \def\@permissionCodeOne{2573-0142}%
    844 \or % PACMPL
    845   \def\@journalName{Proceedings of the ACM on Programming Languages}%
    846   \def\@journalName{Proc. ACM Program. Lang.}%
    847   \def\@permissionCodeOne{2475-1421}%
    848 \or % POMACS
    849   \def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}%
    850   \def\@journalName{Proc. ACM Meas. Anal. Comput. Syst.}%
    851   \def\@permissionCodeOne{2476-1249}%
    852 \or % TAAS
    853   \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}%
    854   \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}%
    855   \def\@permissionCodeOne{1556-4665}%
    856 \or % TACCESS
    857   \def\@journalName{ACM Transactions on Accessible Computing}%
    858   \def\@journalNameShort{ACM Trans. Access. Comput.}%
    859   \def\@permissionCodeOne{1936-7228}%
    860 \or % TACO
    861   \def\@journalName{ACM Transactions on Architecture and Code Optimization}%
    862 \or % TALG
    863   \def\@journalName{ACM Transactions on Algorithms}%
    864   \def\@journalNameShort{ACM Trans. Algor.}%
    865   \def\@permissionCodeOne{1549-6325}%
    866 \or % TALLIP
    867   \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}%
    868   \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}%
    869   \def\@permissionCodeOne{2375-4699}%
    870 \or % TAP
    871   \def\@journalName{ACM Transactions on Applied Perception}%
    872 \or % TCPS
    873   \def\@journalName{ACM Transactions on Cyber-Physical Systems}%
    874 \or % TEAC
    875   \def\@journalName{ACM Transactions on Economics and Computation}%
    876 \or % TECS
    877   \def\@journalName{ACM Transactions on Embedded Computing Systems}%
    878   \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}%
    879   \def\@permissionCodeOne{1539-9087}%
    880 \or % TIIS
    881   \def\@journalName{ACM Transactions on Interactive Intelligent Systems}%
    882   \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}%
    883   \def\@permissionCodeOne{2160-6455}%
    884 \or % TISSEC
    885   \def\@journalName{ACM Transactions on Information and System Security}%
    886   \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}%
    887   \def\@permissionCodeOne{1094-9224}%
    888 \or % TIST
    889   \def\@journalName{ACM Transactions on Intelligent Systems and Technology}%
    890   \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}%
    891   \def\@permissionCodeOne{2157-6904}%
    892 \or % TKDD
    893   \def\@journalName{ACM Transactions on Knowledge Discovery from Data}%
    894   \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}%
    895   \def\@permissionCodeOne{1556-4681}%
    896 \or % TMIS
    897   \def\@journalName{ACM Transactions on Management Information Systems}%
    898   \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}%
    899   \def\@permissionCodeOne{2158-656X}%
    900 \or % TOCE
    901   \def\@journalName{ACM Transactions on Computing Education}%
    902   \def\@journalNameShort{ACM Trans. Comput. Educ.}%
    903   \def\@permissionCodeOne{1946-6226}%
    904 \or % TOCHI
    905   \def\@journalName{ACM Transactions on Computer-Human Interaction}%
    906   \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}%
    907   \def\@permissionCodeOne{1073-0516}%
    908 \or % TOCL
    909   \def\@journalName{ACM Transactions on Computational Logic}%
    910   \def\@journalNameShort{ACM Trans. Comput. Logic}%
    911   \def\@permissionCodeOne{1529-3785}%
    912 \or % TOCS
    913   \def\@journalName{ACM Transactions on Computer Systems}%
    914   \def\@journalNameShort{ACM Trans. Comput. Syst.}%
    915   \def\@permissionCodeOne{0734-2071}%
    916 \or % TOCT
    917   \def\@journalName{ACM Transactions on Computation Theory}%
    918   \def\@journalNameShort{ACM Trans. Comput. Theory}%
    919   \def\@permissionCodeOne{1942-3454}%
    920 \or % TODAES
    921   \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}%
    922   \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}%
    923   \def\@permissionCodeOne{1084-4309}%
    924 \or % TODS
    925   \def\@journalName{ACM Transactions on Database Systems}%
    926   \def\@journalNameShort{ACM Trans. Datab. Syst.}%
    927   \def\@permissionCodeOne{0362-5915}%
    928 \or % TOG
    929   \def\@journalName{ACM Transactions on Graphics}%
    930   \def\@journalNameShort{ACM Trans. Graph.}%
    931   \def\@permissionCodeOne{0730-0301}
    932 \or % TOIS
    933   \def\@journalName{ACM Transactions on Information Systems}%
    934   \def\@journalName{ACM Transactions on Information Systems}%
    935   \def\@permissionCodeOne{1046-8188}%
    936 \or % TOIT
    937   \def\@journalName{ACM Transactions on Internet Technology}%
    938   \def\@journalNameShort{ACM Trans. Internet Technol.}%
    939   \def\@permissionCodeOne{1533-5399}%
    940 \or % TOMACS
    941   \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
    942   \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
    943   \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}%
    944 \or % TOMM
    945   \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}%
    946   \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}%
    947   \def\@permissionCodeOne{1551-6857}%
    948   \def\@permissionCodeTwo{0100}%
    949 \or % TOMPECS
    950   \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}%
    951   \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}%
    952   \def\@permissionCodeOne{2376-3639}%
    953 \or % TOMS
    954   \def\@journalName{ACM Transactions on Mathematical Software}%
    955   \def\@journalNameShort{ACM Trans. Math. Softw.}%
    956   \def\@permissionCodeOne{0098-3500}%
    957 \or % TOPC
    958   \def\@journalName{ACM Transactions on Parallel Computing}%
    959   \def\@journalNameShort{ACM Trans. Parallel Comput.}%
    960   \def\@permissionCodeOne{1539-9087}%
    961 \or % TOPS
    962   \def\@journalName{ACM Transactions on Privacy and Security}%
    963   \def\@journalNameShort{ACM Trans. Priv. Sec.}%
    964   \def\@permissionCodeOne{2471-2566}%
    965 \or % TOPLAS
    966   \def\@journalName{ACM Transactions on Programming Languages and Systems}%
    967   \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}%
    968   \def\@permissionCodeOne{0164-0925}%
    969 \or % TOS
    970   \def\@journalName{ACM Transactions on Storage}%
    971   \def\@journalNameShort{ACM Trans. Storage}%
    972   \def\@permissionCodeOne{1553-3077}%
    973 \or % TOSEM
    974   \def\@journalName{ACM Transactions on Software Engineering and Methodology}%
    975   \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}%
    976   \def\@permissionCodeOne{1049-331X}%
    977 \or % TOSN
    978   \def\@journalName{ACM Transactions on Sensor Networks}%
    979   \def\@journalNameShort{ACM Trans. Sensor Netw.}%
    980   \def\@permissionCodeOne{1550-4859}%
    981 \or % TRETS
    982   \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}%
    983   \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}%
    984   \def\@permissionCodeOne{1936-7406}%
    985 \or % TSAS
    986   \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}%
    987   \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}%
    988   \def\@permissionCodeOne{2374-0353}%
    989 \or % TSC
    990   \def\@journalName{ACM Transactions on Social Computing}%
    991   \def\@journalNameShort{ACM Trans. Soc. Comput.}%
    992   \def\@permissionCodeOne{2469-7818}%
    993 \or % TSLP
    994   \def\@journalName{ACM Transactions on Speech and Language Processing}%
    995   \def\@journalNameShort{ACM Trans. Speech Lang. Process.}%
    996   \def\@permissionCodeOne{1550-4875}%
    997 \or % TWEB
    998   \def\@journalName{ACM Transactions on the Web}%
    999   \def\@journalNameShort{ACM Trans. Web}%
   1000   \def\@permissionCodeOne{1559-1131}%
   1001 \fi
   1002 \ClassInfo{\@classname}{Using journal code \@journalCode}%
   1003 }{%
   1004   \ClassError{\@classname}{Incorrect journal #1}%
   1005 }%
   1006 \def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}}
   1007 \def\@journalCode@nr{0}
   1008 \def\@journalName{}%
   1009 \def\@journalNameShort{\@journalName}%
   1010 \def\@permissionCodeOne{XXXX-XXXX}%
   1011 \def\@permissionCodeTwo{}%
   1012 \newcommand\acmConference[4][]{%
   1013   \gdef\acmConference@shortname{#1}%
   1014   \gdef\acmConference@name{#2}%
   1015   \gdef\acmConference@date{#3}%
   1016   \gdef\acmConference@venue{#4}%
   1017   \ifx\acmConference@shortname\@empty
   1018     \gdef\acmConference@shortname{#2}%
   1019   \fi}
   1020 \acmConference[Conference'17]{ACM Conference}{July 2017}{Washington,
   1021   DC, USA}
   1022 \def\subtitle#1{\def\@subtitle{#1}}
   1023 \subtitle{}
   1024 \newcount\num@authorgroups
   1025 \num@authorgroups=0\relax
   1026 \newif\if@insideauthorgroup
   1027 \@insideauthorgroupfalse
   1028 \renewcommand\author[2][]{%
   1029   \if@insideauthorgroup\else
   1030     \global\advance\num@authorgroups by 1\relax
   1031     \global\@insideauthorgrouptrue
   1032   \fi
   1033   \ifx\addresses\@empty
   1034     \if@ACM@anonymous
   1035       \gdef\addresses{\@author{Anonymous Author(s)}}%
   1036       \gdef\authors{Anonymous Author(s)}%
   1037     \else
   1038       \gdef\addresses{\@author{#2}}%
   1039       \gdef\authors{#2}%
   1040     \fi
   1041   \else
   1042     \if@ACM@anonymous\else
   1043       \g@addto@macro\addresses{\and\@author{#2}}%
   1044       \g@addto@macro\authors{\and#2}%
   1045     \fi
   1046   \fi
   1047   \if@ACM@anonymous
   1048     \ifx\shortauthors\@empty
   1049       \gdef\shortauthors{Anon.}%
   1050     \fi
   1051   \else
   1052     \def\@tempa{#1}%
   1053     \ifx\@tempa\@empty
   1054       \ifx\shortauthors\@empty
   1055         \gdef\shortauthors{#2}%
   1056       \else
   1057         \g@addto@macro\shortauthors{\and#2}%
   1058       \fi
   1059     \else
   1060       \ifx\shortauthors\@empty
   1061         \gdef\shortauthors{#1}%
   1062       \else
   1063         \g@addto@macro\shortauthors{\and#1}%
   1064       \fi
   1065     \fi
   1066   \fi}
   1067 \newcommand{\affiliation}[2][]{%
   1068   \global\@insideauthorgroupfalse
   1069   \if@ACM@anonymous\else
   1070     \g@addto@macro\addresses{\affiliation{#1}{#2}}%
   1071   \fi}
   1072 \define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}%
   1073 [true]{}{\ClassError{\@classname}{obeypunctuation must be true or false}}
   1074 \def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}}
   1075 \def\@additionalaffiliation#1{\bgroup
   1076   \def\position##1{\ignorespaces}%
   1077   \def\institution##1{##1\ignorespaces}%
   1078   \def\department{\@ifnextchar[{\@department}{\@department[]}}%
   1079   \def\@department[##1]##2{\unskip, ##2\ignorespaces}%
   1080   \let\streetaddress\position
   1081   \let\city\position
   1082   \let\state\position
   1083   \let\postcode\position
   1084   \let\country\position
   1085   Also with #1\unskip.\egroup}
   1086 \renewcommand{\email}[2][]{%
   1087   \if@ACM@anonymous\else
   1088     \g@addto@macro\addresses{\email{#1}{#2}}%
   1089   \fi}
   1090 \let\orcid\@gobble
   1091 \def\@titlenotes{}
   1092 \def\titlenote#1{%
   1093   \g@addto@macro\@title{\footnotemark}%
   1094   \if@ACM@anonymous
   1095     \g@addto@macro\@titlenotes{%
   1096       \stepcounter{footnote}\footnotetext{Title note}}%
   1097   \else
   1098     \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}%
   1099   \fi}
   1100 \def\@subtitlenotes{}
   1101 \def\subtitlenote#1{%
   1102   \g@addto@macro\@subtitle{\footnotemark}%
   1103   \if@ACM@anonymous
   1104     \g@addto@macro\@subtitlenotes{%
   1105       \stepcounter{footnote}\footnotetext{Subtitle note}}%
   1106   \else
   1107     \g@addto@macro\@subtitlenotes{%
   1108       \stepcounter{footnote}\footnotetext{#1}}%
   1109   \fi}
   1110 \def\@authornotes{}
   1111 \def\authornote#1{%
   1112   \if@ACM@anonymous\else
   1113     \g@addto@macro\addresses{\@authornotemark}%
   1114     \g@addto@macro\@authornotes{%
   1115       \stepcounter{footnote}\footnotetext{#1}}%
   1116   \fi}
   1117 \newcommand\authornotemark[1][\relax]{%
   1118   \ifx#1\relax\relax\relax
   1119   \g@addto@macro\addresses{\@authornotemark}%
   1120   \else
   1121   \g@addto@macro\addresses{\@@authornotemark{#1}}%
   1122   \fi}
   1123 \def\acmVolume#1{\def\@acmVolume{#1}}
   1124 \acmVolume{1}
   1125 \def\acmNumber#1{\def\@acmNumber{#1}}
   1126 \acmNumber{1}
   1127 \def\acmArticle#1{\def\@acmArticle{#1}}
   1128 \acmArticle{1}
   1129 \def\acmArticleSeq#1{\def\@acmArticleSeq{#1}}
   1130 \acmArticleSeq{\@acmArticle}
   1131 \def\acmYear#1{\def\@acmYear{#1}}
   1132 \acmYear{\the\year}
   1133 \def\acmMonth#1{\def\@acmMonth{#1}}
   1134 \acmMonth{\the\month}
   1135 \def\@acmPubDate{\ifcase\@acmMonth\or
   1136   January\or February\or March\or April\or May\or June\or
   1137   July\or August\or September\or October\or November\or
   1138   December\fi~\@acmYear}
   1139 \def\acmPrice#1{\def\@acmPrice{#1}}
   1140 \acmPrice{15.00}
   1141 \def\acmSubmissionID#1{\def\@acmSubmissionID{#1}}
   1142 \acmSubmissionID{}
   1143 \def\acmISBN#1{\def\@acmISBN{#1}}
   1144 \acmISBN{978-x-xxxx-xxxx-x/YY/MM}
   1145 \def\acmDOI#1{\def\@acmDOI{#1}}
   1146 \acmDOI{10.1145/nnnnnnn.nnnnnnn}
   1147 \newif\if@ACM@badge
   1148 \@ACM@badgefalse
   1149 \newlength\@ACM@badge@width
   1150 \setlength\@ACM@badge@width{5pc}
   1151 \newlength\@ACM@title@width
   1152 \newlength\@ACM@badge@skip
   1153 \setlength\@ACM@badge@skip{1pc}
   1154 \newcommand\acmBadgeR[2][]{\@ACM@badgetrue
   1155   \def\@acmBadgeR@url{#1}%
   1156   \def\@acmBadgeR@image{#2}}
   1157 \def\@acmBadgeR@url{}
   1158 \def\@acmBadgeR@image{}
   1159 \newcommand\acmBadgeL[2][]{\@ACM@badgetrue
   1160   \def\@acmBadgeL@url{#1}%
   1161   \def\@acmBadgeL@image{#2}}
   1162 \def\@acmBadgeL@url{}
   1163 \def\@acmBadgeL@image{}
   1164 \def\startPage#1{\def\@startPage{#1}}
   1165 \startPage{}
   1166 \def\terms#1{\ClassWarning{\@classname}{The command \string\terms{} is
   1167     obsolete.  I am going to ignore it}}
   1168 \def\keywords#1{\def\@keywords{#1}}
   1169 \keywords{}
   1170 \renewenvironment{abstract}{\Collect@Body\@saveabstract}{}
   1171 \long\def\@saveabstract#1{\long\gdef\@abstract{#1}}
   1172 \@saveabstract{}
   1173 \long\def\@lempty{}
   1174 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printccs}[true]{%
   1175   \if@ACM@printccs
   1176     \ClassInfo{\@classname}{Printing CCS}%
   1177   \else
   1178     \ClassInfo{\@classname}{Suppressing CCS}%
   1179   \fi}{\ClassError{\@classname}{printccs must be true or false}}
   1180 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{%
   1181   \if@ACM@printacmref
   1182     \ClassInfo{\@classname}{Printing bibformat}%
   1183   \else
   1184     \ClassInfo{\@classname}{Suppressing bibformat}%
   1185   \fi}{\ClassError{\@classname}{printacmref must be true or false}}
   1186 \define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{%
   1187   \if@ACM@printfolios
   1188     \ClassInfo{\@classname}{Printing folios}%
   1189   \else
   1190     \ClassInfo{\@classname}{Suppressing folios}%
   1191   \fi}{\ClassError{\@classname}{printfolios must be true or false}}
   1192 \define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{%
   1193   \IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to
   1194       #1}}{\ClassWarning{\@classname}{Parameter authorsperrow must be
   1195       numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}}
   1196 \def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}}
   1197 \settopmatter{printccs=true, printacmref=true}
   1198 \if@ACM@manuscript
   1199   \settopmatter{printfolios=true}
   1200 \else
   1201   \if@ACM@journal
   1202     \settopmatter{printfolios=true}
   1203   \else
   1204     \settopmatter{printfolios=false}
   1205   \fi
   1206 \fi
   1207 \settopmatter{authorsperrow=0}
   1208 \def\@received{}
   1209 \newcommand\received[2][]{\def\@tempa{#1}%
   1210   \ifx\@tempa\@empty
   1211     \ifx\@received\@empty
   1212       \gdef\@received{Received #2}%
   1213     \else
   1214       \g@addto@macro{\@received}{; revised #2}%
   1215     \fi
   1216   \else
   1217     \ifx\@received\@empty
   1218       \gdef\@received{#1 #2}%
   1219     \else
   1220       \g@addto@macro{\@received}{; #1 #2}%
   1221     \fi
   1222   \fi}
   1223 \AtEndDocument{%
   1224   \ifx\@received\@empty\else
   1225     \par\bigskip\noindent\small\normalfont\@received\par
   1226   \fi}
   1227 \RequirePackage{comment}
   1228 \excludecomment{CCSXML}
   1229 \let\@concepts\@empty
   1230 \newcommand\ccsdesc[2][100]{%
   1231   \ccsdesc@parse#1~#2~}
   1232 \RequirePackage{textcomp}
   1233 \def\ccsdesc@parse#1~#2~#3~{%
   1234   \expandafter\ifx\csname CCS@#2\endcsname\relax
   1235     \expandafter\gdef\csname CCS@#2\endcsname{\textbullet\ \textbf{#2} \textrightarrow\ }%
   1236   \g@addto@macro{\@concepts}{\csname CCS@#2\endcsname}\fi
   1237   \expandafter\g@addto@macro\expandafter{\csname CCS@#2\endcsname}{%
   1238     \ifnum#1>499\textbf{#3}; \else
   1239     \ifnum#1>299\textit{#3}; \else
   1240     #3; \fi\fi}}
   1241 \newif\if@printcopyright
   1242 \@printcopyrighttrue
   1243 \newif\if@printpermission
   1244 \@printpermissiontrue
   1245 \newif\if@acmowned
   1246 \@acmownedtrue
   1247 \define@choicekey*{ACM@}{acmcopyrightmode}[%
   1248   \acm@copyrightinput\acm@copyrightmode]{none,acmcopyright,acmlicensed,%
   1249   rightsretained,usgov,usgovmixed,cagov,cagovmixed,%
   1250   licensedusgovmixed,licensedcagovmixed,othergov,licensedothergov}{%
   1251   \@printpermissiontrue
   1252   \@printcopyrighttrue
   1253   \@acmownedtrue
   1254   \ifnum\acm@copyrightmode=0\relax % none
   1255    \@printpermissionfalse
   1256    \@printcopyrightfalse
   1257    \@acmownedfalse
   1258   \fi
   1259   \ifnum\acm@copyrightmode=2\relax % acmlicensed
   1260    \@acmownedfalse
   1261   \fi
   1262   \ifnum\acm@copyrightmode=3\relax % rightsretained
   1263    \@acmownedfalse
   1264    \acmPrice{}%
   1265   \fi
   1266   \ifnum\acm@copyrightmode=4\relax % usgov
   1267    \@printpermissiontrue
   1268    \@printcopyrightfalse
   1269    \@acmownedfalse
   1270    \acmPrice{}%
   1271   \fi
   1272   \ifnum\acm@copyrightmode=6\relax % cagov
   1273    \@acmownedfalse
   1274   \fi
   1275   \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
   1276    \@acmownedfalse
   1277   \fi
   1278   \ifnum\acm@copyrightmode=9\relax % licensedcagovmixed
   1279    \@acmownedfalse
   1280   \fi
   1281   \ifnum\acm@copyrightmode=10\relax % othergov
   1282    \@acmownedtrue
   1283   \fi
   1284   \ifnum\acm@copyrightmode=11\relax % licensedothergov
   1285    \@acmownedfalse
   1286   \fi}
   1287 \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
   1288 \setcopyright{acmcopyright}
   1289 \def\@copyrightowner{%
   1290   \ifcase\acm@copyrightmode\relax % none
   1291   \or % acmcopyright
   1292   Association for Computing Machinery.
   1293   \or % acmlicensed
   1294   Copyright held by the owner/author(s). Publication rights licensed to
   1295   Association for Computing Machinery.
   1296   \or % rightsretained
   1297   Copyright held by the owner/author(s).
   1298   \or % usgov
   1299   \or % usgovmixed
   1300   Association for Computing Machinery.
   1301   \or % cagov
   1302   Crown in Right of Canada.
   1303   \or %cagovmixed
   1304   Association for Computing Machinery.
   1305   \or %licensedusgovmixed
   1306   Copyright held by the owner/author(s). Publication rights licensed to
   1307   Association for Computing Machinery.
   1308   \or %licensedcagovmixed
   1309   Copyright held by the owner/author(s). Publication rights licensed to
   1310   Association for Computing Machinery.
   1311   \or % othergov
   1312   Association for Computing Machinery.
   1313   \or % licensedothergov
   1314   Copyright held by the owner/author(s). Publication rights licensed to
   1315   Association for Computing Machinery.
   1316   \fi}
   1317 \def\@formatdoi#1{\url{https://doi.org/#1}}
   1318 \def\@copyrightpermission{%
   1319   \ifcase\acm@copyrightmode\relax % none
   1320   \or % acmcopyright
   1321    Permission to make digital or hard copies of all or part of this
   1322    work for personal or classroom use is granted without fee provided
   1323    that copies are not made or distributed for profit or commercial
   1324    advantage and that copies bear this notice and the full citation on
   1325    the first page. Copyrights for components of this work owned by
   1326    others than ACM must be honored. Abstracting with credit is
   1327    permitted. To copy otherwise, or republish, to post on servers or to
   1328    redistribute to lists, requires prior specific permission
   1329    and\hspace*{.5pt}/or  a fee. Request permissions from
   1330    permissions@acm.org.
   1331   \or % acmlicensed
   1332    Permission to make digital or hard copies of all or part of this
   1333    work for personal or classroom use is granted without fee provided
   1334    that copies are not made or distributed for profit or commercial
   1335    advantage and that copies bear this notice and the full citation on
   1336    the first page. Copyrights for components of this work owned by
   1337    others than the author(s) must be honored. Abstracting with credit
   1338    is permitted.  To copy otherwise, or republish, to post on servers
   1339    or to  redistribute to lists, requires prior specific permission
   1340    and\hspace*{.5pt}/or  a fee. Request permissions from
   1341    permissions@acm.org.
   1342   \or % rightsretained
   1343    Permission to make digital or hard copies of part or all of this work
   1344    for personal or classroom use is granted without fee provided that
   1345    copies are not made or distributed for profit or commercial advantage
   1346    and that copies bear this notice and the full citation on the first
   1347    page. Copyrights for third-party components of this work must be
   1348    honored. For all other uses, contact the
   1349    owner\hspace*{.5pt}/author(s).
   1350   \or % usgov
   1351    This paper is authored by an employee(s) of the United States
   1352    Government and is in the public domain. Non-exclusive copying or
   1353    redistribution is allowed, provided that the article citation is
   1354    given and the authors and agency are clearly identified as its
   1355    source.
   1356   \or % usgovmixed
   1357    ACM acknowledges that this contribution was authored or co-authored
   1358    by an employee, or contractor of the national government. As such,
   1359    the Government retains a nonexclusive, royalty-free right to
   1360    publish or reproduce this article, or to allow others to do so, for
   1361    Government purposes only. Permission to make digital or hard copies
   1362    for personal or classroom use is granted. Copies must bear this
   1363    notice and the full citation on the first page. Copyrights for
   1364    components of this work owned by others than ACM must be
   1365    honored. To copy otherwise, distribute, republish, or post,
   1366    requires prior specific permission and\hspace*{.5pt}/or a
   1367    fee. Request permissions from permissions@acm.org.
   1368   \or % cagov
   1369    This article was authored by employees of the Government of Canada.
   1370    As such, the Canadian government retains all interest in the
   1371    copyright to this work and grants to ACM a nonexclusive,
   1372    royalty-free right to publish or reproduce this article, or to allow
   1373    others to do so, provided that clear attribution is given both to
   1374    the authors and the Canadian government agency employing them.
   1375    Permission to make digital or hard copies for personal or classroom
   1376    use is granted. Copies must bear this notice and the full citation
   1377    on the first page.  Copyrights for components of this work owned by
   1378    others than the Canadain Government must be honored. To copy
   1379    otherwise, distribute, republish, or post, requires prior specific
   1380    permission and\hspace*{.5pt}/or a fee. Request permissions from
   1381    permissions@acm.org.
   1382   \or % cagovmixed
   1383    ACM acknowledges that this contribution was co-authored by an
   1384    affiliate of the national government of Canada. As such, the Crown
   1385    in Right of Canada retains an equal interest in the copyright.
   1386    Reprints must include clear attribution to ACM and the author's
   1387    government agency affiliation.  Permission to make digital or hard
   1388    copies for personal or classroom use is granted.  Copies must bear
   1389    this notice and the full citation on the first page. Copyrights for
   1390    components of this work owned by others than ACM must be honored.
   1391    To copy otherwise, distribute, republish, or post, requires prior
   1392    specific permission and\hspace*{.5pt}/or a fee. Request permissions
   1393    from permissions@acm.org.
   1394   \or % licensedusgovmixed
   1395    Publication rights licensed to ACM\@. ACM acknowledges that this
   1396    contribution was authored or co-authored by an employee, contractor
   1397    or affiliate of the United States government. As such, the
   1398    Government retains a nonexclusive, royalty-free right to publish or
   1399    reproduce this article, or to allow others to do so, for Government
   1400    purposes only.
   1401   \or % licensedcagovmixed
   1402    Publication rights licensed to ACM\@. ACM acknowledges that this
   1403    contribution was authored or co-authored by an employee, contractor
   1404    or affiliate of the national government of Canada. As such, the
   1405    Government retains a nonexclusive, royalty-free right to publish or
   1406    reproduce this article, or to allow others to do so, for Government
   1407    purposes only.
   1408   \or % othergov
   1409    ACM acknowledges that this contribution was authored or co-authored
   1410    by an employee, contractor or affiliate of a national government. As
   1411    such, the Government retains a nonexclusive, royalty-free right to
   1412    publish or reproduce this article, or to allow others to do so, for
   1413    Government purposes only.
   1414   \or % licensedothergov
   1415    Publication rights licensed to ACM\@. ACM acknowledges that this
   1416    contribution was authored or co-authored by an employee, contractor
   1417    or affiliate of a national government. As such, the Government
   1418    retains a nonexclusive, royalty-free right to publish or reproduce
   1419    this article, or to allow others to do so, for Government purposes
   1420    only.
   1421   \fi}
   1422 \def\copyrightyear#1{\def\@copyrightyear{#1}}
   1423 \copyrightyear{\@acmYear}
   1424 \def\@teaserfigures{}
   1425 \newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{}
   1426 \long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}}
   1427 \renewcommand{\thanks}[1]{%
   1428   \@ifnotempty{#1}{%
   1429     \if@ACM@anonymous
   1430       \g@addto@macro\thankses{\thanks{A note}}%
   1431    \else
   1432     \g@addto@macro\thankses{\thanks{#1}}%
   1433    \fi}}
   1434 \newbox\mktitle@bx
   1435 \def\maketitle{%
   1436   \if@ACM@anonymous
   1437     % Anonymize omission of \author-s
   1438     \ifnum\num@authorgroups=0\author{}\fi
   1439   \fi
   1440   \begingroup
   1441   \let\@footnotemark\@footnotemark@nolink
   1442   \let\@footnotetext\@footnotetext@nolink
   1443   \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
   1444   \global\@topnum\z@ % this prevents floats from falling
   1445                      % at the top of page 1
   1446   \global\@botnum\z@ % we do not want them to be on bottom either
   1447   \hsize=\textwidth
   1448   \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}%
   1449   \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers
   1450   \@printtopmatter
   1451   \if@ACM@sigchiamode\@mkauthors\fi
   1452   \setcounter{footnote}{0}%
   1453   \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}%
   1454   \@titlenotes
   1455   \@subtitlenotes
   1456   \@authornotes
   1457   \let\@makefnmark\relax  \let\@thefnmark\relax
   1458   \let\@makefntext\noindent
   1459   \ifx\@empty\thankses\else
   1460     \footnotetextcopyrightpermission{%
   1461       \def\par{\let\par\@par}\parindent\z@\@setthanks}%
   1462   \fi
   1463   \footnotetextcopyrightpermission{%
   1464     \if@ACM@authordraft
   1465         \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries
   1466             Unpublished
   1467             working draft. Not for distribution}}%
   1468        \color[gray]{0.9}%
   1469     \fi
   1470     \parindent\z@\parskip0.1\baselineskip
   1471     \if@ACM@authorversion\else
   1472       \if@printpermission\@copyrightpermission\par\fi
   1473     \fi
   1474     \if@ACM@manuscript\else
   1475        \if@ACM@journal\else % Print the conference information
   1476          {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par
   1477        \fi
   1478     \fi
   1479     \if@printcopyright
   1480       \copyright\ \@copyrightyear\ \@copyrightowner\\
   1481     \else
   1482      \@copyrightyear.\
   1483     \fi
   1484     \if@ACM@manuscript
   1485       Manuscript submitted to ACM\\
   1486     \else
   1487       \if@ACM@authorversion
   1488           This is the author's version of the work. It is posted here for
   1489           your personal use. Not for redistribution. The definitive Version
   1490           of Record was published in
   1491           \if@ACM@journal
   1492             \emph{\@journalName}%
   1493           \else
   1494             \emph{Proceedings of \acmConference@name, \acmConference@date}%
   1495           \fi
   1496           \ifx\@acmDOI\@empty
   1497           .
   1498           \else
   1499             , \@formatdoi{\@acmDOI}.
   1500           \fi\\
   1501         \else
   1502           \if@ACM@journal
   1503             \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle
   1504             \ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\
   1505             \@formatdoi{\@acmDOI}%
   1506           \else % Conference
   1507              ACM~ISBN~\@acmISBN
   1508              \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\
   1509              \@formatdoi{\@acmDOI}%
   1510           \fi
   1511         \fi
   1512       \fi}
   1513   \endgroup
   1514   \setcounter{footnote}{0}%
   1515   \@mkabstract
   1516   \if@ACM@printccs
   1517     \ifx\@concepts\@empty\else\bgroup
   1518       {\@specialsection{CCS Concepts}%
   1519          \@concepts\par}\egroup
   1520      \fi
   1521    \fi
   1522    \ifx\@keywords\@empty\else\bgroup
   1523       {\if@ACM@journal
   1524          \@specialsection{Additional Key Words and Phrases}%
   1525        \else
   1526          \@specialsection{Keywords}%
   1527        \fi
   1528          \@keywords}\par\egroup
   1529    \fi
   1530   \andify\authors
   1531   \andify\shortauthors
   1532   \global\let\authors=\authors
   1533   \global\let\shortauthors=\shortauthors
   1534   \if@ACM@printacmref
   1535      \@mkbibcitation
   1536   \fi
   1537   \hypersetup{pdfauthor={\authors},
   1538     pdftitle={\@title}, pdfkeywords={\@concepts}}%
   1539   \@printendtopmatter
   1540   \@afterindentfalse
   1541   \@afterheading
   1542 }
   1543 \def\@specialsection#1{%
   1544   \ifcase\ACM@format@nr
   1545   \relax % manuscript
   1546     \par\medskip\small\noindent#1: %
   1547   \or % acmsmall
   1548     \par\medskip\small\noindent#1: %
   1549   \or % acmlarge
   1550     \par\medskip\small\noindent#1: %
   1551   \or % acmtog
   1552     \par\medskip\small\noindent#1: %
   1553   \or % sigconf
   1554     \section*{#1}%
   1555   \or % siggraph
   1556     \section*{#1}%
   1557   \or % sigplan
   1558     \paragraph*{#1}%
   1559   \or % sigchi
   1560     \section*{#1}%
   1561   \or % sigchi-a
   1562     \section*{#1}%
   1563   \fi}
   1564 \def\@printtopmatter{%
   1565   \ifx\@startPage\@empty
   1566      \gdef\@startPage{1}%
   1567   \else
   1568      \setcounter{page}{\@startPage}%
   1569   \fi
   1570   \thispagestyle{firstpagestyle}%
   1571   \noindent
   1572   \ifcase\ACM@format@nr
   1573   \relax % manuscript
   1574     \box\mktitle@bx\par
   1575     \noindent\hrulefill\par
   1576   \or % acmsmall
   1577     \box\mktitle@bx\par
   1578     \noindent\hrulefill\par
   1579   \or % acmlarge
   1580     \box\mktitle@bx\par
   1581     \noindent\hrulefill\par
   1582   \or % acmtog
   1583     \twocolumn[\box\mktitle@bx]%
   1584   \or % sigconf
   1585     \twocolumn[\box\mktitle@bx]%
   1586   \or % siggraph
   1587     \twocolumn[\box\mktitle@bx]%
   1588   \or % sigplan
   1589     \twocolumn[\box\mktitle@bx]%
   1590   \or % sigchi
   1591     \twocolumn[\box\mktitle@bx]%
   1592   \or % sigchi-a
   1593     \par\box\mktitle@bx\par\bigskip
   1594     \if@ACM@badge
   1595        \marginpar{\noindent
   1596          \ifx\@acmBadgeL@image\@empty\else
   1597            \href{\@acmBadgeL@url}{%
   1598              \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}%
   1599             \hskip\@ACM@badge@skip
   1600           \fi
   1601          \ifx\@acmBadgeR@image\@empty\else
   1602            \href{\@acmBadgeR@url}{%
   1603              \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}%
   1604           \fi}%
   1605     \fi
   1606   \fi
   1607 }
   1608 \def\@mktitle{%
   1609   \ifcase\ACM@format@nr
   1610   \relax % manuscript
   1611     \@mktitle@i
   1612   \or % acmsmall
   1613     \@mktitle@i
   1614   \or % acmlarge
   1615     \@mktitle@i
   1616   \or % acmtog
   1617     \@mktitle@i
   1618   \or % sigconf
   1619     \@mktitle@iii
   1620   \or % siggraph
   1621     \@mktitle@iii
   1622   \or % sigplan
   1623     \@mktitle@iii
   1624   \or % sigchi
   1625     \@mktitle@iii
   1626   \or % sigchi-a
   1627     \@mktitle@iv
   1628   \fi
   1629 }
   1630 \def\@titlefont{%
   1631   \ifcase\ACM@format@nr
   1632   \relax % manuscript
   1633     \LARGE\bfseries\sffamily
   1634   \or % acmsmall
   1635     \LARGE\bfseries\sffamily
   1636   \or % acmlarge
   1637     \LARGE\bfseries\sffamily
   1638   \or % acmtog
   1639     \Huge\sffamily
   1640   \or % sigconf
   1641     \Huge\sffamily\bfseries
   1642   \or % siggraph
   1643     \Huge\sffamily\bfseries
   1644   \or % sigplan
   1645     \Huge\bfseries
   1646   \or % sigchi
   1647     \Huge\sffamily\bfseries
   1648   \or % sigchi-a
   1649      \Huge\bfseries
   1650   \fi}
   1651 \def\@subtitlefont{\normalsize
   1652   \ifcase\ACM@format@nr
   1653   \relax % manuscript
   1654     \mdseries
   1655   \or % acmsmall
   1656     \mdseries
   1657   \or % acmlarge
   1658     \mdseries
   1659   \or % acmtog
   1660      \LARGE
   1661   \or % sigconf
   1662      \LARGE\mdseries
   1663   \or % siggraph
   1664      \LARGE\mdseries
   1665   \or % sigplan
   1666      \LARGE\mdseries
   1667   \or % sigchi
   1668      \LARGE\mdseries
   1669   \or % sigchi-a
   1670      \mdseries
   1671   \fi}
   1672 \def\@mktitle@i{\hsize=\textwidth
   1673   \@ACM@title@width=\hsize
   1674   \ifx\@acmBadgeL@image\@empty\else
   1675     \advance\@ACM@title@width by -\@ACM@badge@width
   1676     \advance\@ACM@title@width by -\@ACM@badge@skip
   1677   \fi
   1678   \ifx\@acmBadgeR@image\@empty\else
   1679     \advance\@ACM@title@width by -\@ACM@badge@width
   1680     \advance\@ACM@title@width by -\@ACM@badge@skip
   1681   \fi
   1682   \setbox\mktitle@bx=\vbox{\noindent\@titlefont
   1683     \ifx\@acmBadgeL@image\@empty\else
   1684       \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
   1685           \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
   1686       \hskip\@ACM@badge@skip
   1687     \fi
   1688     \parbox[t]{\@ACM@title@width}{\raggedright
   1689       \@titlefont\noindent
   1690       \@title
   1691   \ifx\@subtitle\@empty\else
   1692     \par\noindent{\@subtitlefont\@subtitle}
   1693   \fi}%
   1694   \ifx\@acmBadgeR@image\@empty\else
   1695     \hskip\@ACM@badge@skip
   1696     \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
   1697         \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
   1698   \fi
   1699   \par\bigskip}}%
   1700 \def\@mktitle@iii{\hsize=\textwidth
   1701     \setbox\mktitle@bx=\vbox{\@titlefont\centering
   1702       \@ACM@title@width=\hsize
   1703       \if@ACM@badge
   1704         \advance\@ACM@title@width by -2\@ACM@badge@width
   1705         \advance\@ACM@title@width by -2\@ACM@badge@skip
   1706         \parbox[b]{\@ACM@badge@width}{\strut
   1707           \ifx\@acmBadgeL@image\@empty\else
   1708             \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
   1709                 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
   1710           \fi}%
   1711         \hskip\@ACM@badge@skip
   1712       \fi
   1713       \parbox[t]{\@ACM@title@width}{\centering\@titlefont
   1714         \@title
   1715         \ifx\@subtitle\@empty\else
   1716           \par\noindent{\@subtitlefont\@subtitle}
   1717         \fi
   1718       }%
   1719       \if@ACM@badge
   1720         \hskip\@ACM@badge@skip
   1721         \parbox[b]{\@ACM@badge@width}{\strut
   1722           \ifx\@acmBadgeR@image\@empty\else
   1723             \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
   1724                 \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
   1725           \fi}%
   1726       \fi
   1727       \par\bigskip}}%
   1728 \def\@mktitle@iv{\hsize=\textwidth
   1729     \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont
   1730       \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par
   1731       \noindent\@title
   1732      \ifx\@subtitle\@empty\else
   1733        \par\noindent\@subtitlefont\@subtitle
   1734      \fi
   1735      \par\bigskip}}%
   1736 \newbox\@ACM@commabox
   1737 \def\@ACM@addtoaddress#1{%
   1738   \ifvmode\else
   1739     \if@ACM@affiliation@obeypunctuation\else
   1740     \setbox\@ACM@commabox=\hbox{, }%
   1741     \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox
   1742   \fi\fi
   1743   #1}
   1744 \if@ACM@journal
   1745   \let\position\@gobble
   1746   \def\institution#1{#1\ignorespaces}%
   1747   \newcommand\department[2][0]{}%
   1748   \let\streetaddress\@gobble
   1749   \let\city\@gobble
   1750   \let\state\@gobble
   1751   \let\postcode\@gobble
   1752   \let\country\@gobble
   1753 \else
   1754   \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
   1755   \def\institution#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
   1756   \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation
   1757     #2\else#2\par\fi}%
   1758   \def\streetaddress#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
   1759   \let\city\@ACM@addtoaddress
   1760   \let\state\@ACM@addtoaddress
   1761   \def\postcode#1{\if@ACM@affiliation@obeypunctuation#1\else\unskip\space#1\fi}%
   1762   \let\country\@ACM@addtoaddress
   1763 \fi
   1764 \def\@mkauthors{\begingroup
   1765   \hsize=\textwidth
   1766   \ifcase\ACM@format@nr
   1767   \relax % manuscript
   1768     \@mkauthors@i
   1769   \or % acmsmall
   1770     \@mkauthors@i
   1771   \or % acmlarge
   1772     \@mkauthors@i
   1773   \or % acmtog
   1774     \@mkauthors@i
   1775   \or % sigconf
   1776     \@mkauthors@iii
   1777   \or % siggraph
   1778     \@mkauthors@iii
   1779   \or % sigplan
   1780     \@mkauthors@iii
   1781   \or % sigchi
   1782     \@mkauthors@iii
   1783   \or % sigchi-a
   1784     \@mkauthors@iv
   1785   \fi
   1786   \endgroup
   1787 }
   1788 \def\@authorfont{\Large\sffamily}
   1789 \def\@affiliationfont{\normalsize\normalfont}
   1790 \ifcase\ACM@format@nr
   1791 \relax % manuscript
   1792 \or % acmsmall
   1793   \def\@authorfont{\large\sffamily}
   1794   \def\@affiliationfont{\small\normalfont}
   1795 \or % acmlarge
   1796 \or % acmtog
   1797   \def\@authorfont{\LARGE\sffamily}
   1798   \def\@affiliationfont{\large}
   1799 \or % sigconf
   1800   \def\@authorfont{\LARGE}
   1801   \def\@affiliationfont{\large}
   1802 \or % siggraph
   1803   \def\@authorfont{\normalsize\normalfont}
   1804   \def\@affiliationfont{\normalsize\normalfont}
   1805 \or % sigplan
   1806   \def\@authorfont{\Large\normalfont}
   1807   \def\@affiliationfont{\normalsize\normalfont}
   1808 \or % sigchi
   1809   \def\@authorfont{\bfseries}
   1810   \def\@affiliationfont{\mdseries}
   1811 \or % sigchi-a
   1812   \def\@authorfont{\bfseries}
   1813   \def\@affiliationfont{\mdseries}
   1814 \fi
   1815 \def\@typeset@author@line{%
   1816   \andify\@currentauthors\par\noindent
   1817   \@currentauthors\def\@currentauthors{}%
   1818   \ifx\@currentaffiliations\@empty\else
   1819     \andify\@currentaffiliations
   1820       \unskip, {\@currentaffiliations}\par
   1821   \fi
   1822   \def\@currentaffiliations{}}
   1823 \def\@mkauthors@i{%
   1824   \def\@currentauthors{}%
   1825   \def\@currentaffiliations{}%
   1826   \global\let\and\@typeset@author@line
   1827   \def\@author##1{%
   1828     \ifx\@currentauthors\@empty
   1829       \gdef\@currentauthors{\@authorfont\MakeUppercase{##1}}%
   1830     \else
   1831        \g@addto@macro{\@currentauthors}{\and\MakeUppercase{##1}}%
   1832     \fi
   1833     \gdef\and{}}%
   1834   \def\email##1##2{}%
   1835   \def\affiliation##1##2{%
   1836     \def\@tempa{##2}\ifx\@tempa\@empty\else
   1837        \ifx\@currentaffiliations\@empty
   1838           \gdef\@currentaffiliations{%
   1839             \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
   1840             \setkeys{@ACM@affiliation@}{##1}%
   1841             \@affiliationfont##2}%
   1842        \else
   1843          \g@addto@macro{\@currentaffiliations}{\and
   1844            \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
   1845            \setkeys{@ACM@affiliation@}{##1}##2}%
   1846       \fi
   1847     \fi
   1848      \global\let\and\@typeset@author@line}%
   1849   \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip
   1850     \noindent\addresses\@typeset@author@line
   1851    \par\medskip}%
   1852 }
   1853 \newbox\author@bx
   1854 \newdimen\author@bx@wd
   1855 \newskip\author@bx@sep
   1856 \author@bx@sep=1pc\relax
   1857 \def\@typeset@author@bx{\bgroup\hsize=\author@bx@wd\def\and{\par}%
   1858   \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi
   1859     \@authorfont\@currentauthors\par\@affiliationfont
   1860     \@currentaffiliation}\egroup
   1861   \box\author@bx\hspace{\author@bx@sep}%
   1862   \gdef\@currentauthors{}%
   1863   \gdef\@currentaffiliation{}}
   1864 \def\@mkauthors@iii{%
   1865   \author@bx@wd=\textwidth\relax
   1866   \advance\author@bx@wd by -\author@bx@sep\relax
   1867   \ifnum\@ACM@authorsperrow>0\relax
   1868     \divide\author@bx@wd by \@ACM@authorsperrow\relax
   1869   \else
   1870     \ifcase\num@authorgroups
   1871     \relax % 0?
   1872     \or  % 1=one author per row
   1873     \or  % 2=two authors per row
   1874        \divide\author@bx@wd by \num@authorgroups\relax
   1875     \or  % 3=three authors per row
   1876        \divide\author@bx@wd by \num@authorgroups\relax
   1877     \or  % 4=two authors per row (!)
   1878        \divide\author@bx@wd by 2\relax
   1879     \else % three authors per row
   1880        \divide\author@bx@wd by 3\relax
   1881     \fi
   1882   \fi
   1883   \advance\author@bx@wd by -\author@bx@sep\relax
   1884   \gdef\@currentauthors{}%
   1885   \gdef\@currentaffiliation{}%
   1886   \def\@author##1{\ifx\@currentauthors\@empty
   1887     \gdef\@currentauthors{\par##1}%
   1888   \else
   1889     \g@addto@macro\@currentauthors{\par##1}%
   1890   \fi
   1891   \gdef\and{}}%
   1892   \def\email##1##2{\ifx\@currentaffiliation\@empty
   1893     \gdef\@currentaffiliation{\nolinkurl{##2}}%
   1894   \else
   1895     \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
   1896   \fi}%
   1897   \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
   1898     \gdef\@currentaffiliation{%
   1899       \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
   1900       \setkeys{@ACM@affiliation@}{##1}##2}%
   1901   \else
   1902     \g@addto@macro\@currentaffiliation{\par
   1903       \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
   1904       \setkeys{@ACM@affiliation@}{##1}##2}%
   1905   \fi
   1906   \global\let\and\@typeset@author@bx
   1907 }%
   1908   \hsize=\textwidth
   1909   \global\setbox\mktitle@bx=\vbox{\noindent
   1910     \box\mktitle@bx\par\medskip\leavevmode
   1911     \lineskip=1pc\relax\centering\hspace*{-1em}%
   1912     \addresses\let\and\@typeset@author@bx\and\par\bigskip}}
   1913 \def\@mkauthors@iv{%
   1914   \author@bx@wd=\columnwidth\relax
   1915   \advance\author@bx@wd by -\author@bx@sep\relax
   1916   \ifnum\@ACM@authorsperrow>0\relax
   1917     \divide\author@bx@wd by \@ACM@authorsperrow\relax
   1918   \else
   1919     \ifcase\num@authorgroups
   1920     \relax % 0?
   1921     \or  % 1=one author per row
   1922     \else  % 2=two authors per row
   1923        \divide\author@bx@wd by 2\relax
   1924     \fi
   1925   \fi
   1926   \advance\author@bx@wd by -\author@bx@sep\relax
   1927   \gdef\@currentauthors{}%
   1928   \gdef\@currentaffiliation{}%
   1929   \def\@author##1{\ifx\@currentauthors\@empty
   1930     \gdef\@currentauthors{\par##1}%
   1931   \else
   1932     \g@addto@macro\@currentauthors{\par##1}%
   1933   \fi
   1934   \gdef\and{}}%
   1935   \def\email##1##2{\ifx\@currentaffiliation\@empty
   1936     \gdef\@currentaffiliation{\nolinkurl{##2}}%
   1937   \else
   1938     \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
   1939   \fi}%
   1940   \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
   1941     \gdef\@currentaffiliation{%
   1942       \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
   1943            \setkeys{@ACM@affiliation@}{##1}##2}%
   1944   \else
   1945     \g@addto@macro\@currentaffiliation{\par
   1946       \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
   1947       \setkeys{@ACM@affiliation@}{##1}##2}%
   1948   \fi
   1949   \global\let\and\@typeset@author@bx}%
   1950     \bgroup\hsize=\columnwidth
   1951     \par\raggedright\leftskip=\z@
   1952     \lineskip=1pc\noindent
   1953     \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup}
   1954 \def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark\relax}}
   1955 \def\@@authornotemark#1{\g@addto@macro\@currentauthors{\footnotemark[#1]}}
   1956 \def\@mkteasers{%
   1957   \ifx\@teaserfigures\@empty\else
   1958     \def\@teaser##1{\par\bigskip\bgroup
   1959       \captionsetup{type=figure}##1\egroup\par}
   1960     \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par
   1961     \noindent\@teaserfigures\par\medskip}%
   1962   \fi}
   1963 \def\@setaddresses{}
   1964 \def\@mkabstract{\bgroup
   1965   \ifx\@abstract\@lempty\else
   1966   {\phantomsection\addcontentsline{toc}{section}{Abstract}%
   1967     \if@ACM@journal
   1968        \small\noindent
   1969     \else
   1970       \section*{Abstract}%
   1971     \fi
   1972    \ignorespaces\@abstract\par}%
   1973   \fi\egroup}
   1974 \def\@mkbibcitation{\bgroup
   1975   \def\footnotemark{}%
   1976   \def\\{\unskip{} \ignorespaces}%
   1977   \def\footnote{\ClassError{\@classname}{Please do note use footnotes
   1978       inside \string\title{} or \string\author{} command! Use
   1979       \string\titlenote{} or \string\authornote{} instead!}}%
   1980   \par\medskip\small\noindent{\bfseries ACM Reference format:}\par\nobreak
   1981   \noindent\authors. \@acmYear. \@title.
   1982   \if@ACM@journal
   1983      \textit{\@journalNameShort}
   1984      \@acmVolume, \@acmNumber, Article~\@acmArticle\ (\@acmPubDate),
   1985      \ref{TotPages}~pages.
   1986   \else
   1987      In \textit{Proceedings of \acmConference@name, \acmConference@venue,
   1988        \acmConference@date
   1989        \ifx\acmConference@name\acmConference@shortname\else
   1990          \ (\acmConference@shortname)\fi
   1991          ,} \ref{TotPages}~pages.
   1992   \fi\par
   1993   \noindent\@formatdoi{\@acmDOI}
   1994 \par\egroup}
   1995 \def\@printendtopmatter{\par\medskip
   1996   \ifcase\ACM@format@nr
   1997   \relax % manuscript
   1998     \noindent\hrulefill\par\medskip
   1999   \or % acmsmall
   2000     \noindent\hrulefill\par\medskip
   2001   \or % acmlarge
   2002     \noindent\hrulefill\par\medskip
   2003   \or % acmtog
   2004     \par\bigskip
   2005   \or % sigconf
   2006     \par\bigskip
   2007   \or % siggraph
   2008     \par\bigskip
   2009   \or % sigplan
   2010     \par\bigskip
   2011   \or % sigchi
   2012     \par\bigskip
   2013   \or % sigchi-a
   2014   \fi
   2015 }
   2016 \def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses}
   2017 \RequirePackage{fancyhdr}
   2018 \if@ACM@review
   2019   \newsavebox{\ACM@linecount@bx}
   2020   \newlength\ACM@linecount@bxht
   2021   \newcount\ACM@linecount
   2022   \ACM@linecount\@ne\relax
   2023   \def\ACM@mk@linecount{%
   2024     \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{%
   2025         \setlength{\ACM@linecount@bxht}{-\baselineskip}%
   2026         \loop{\color{ACMRed}\scriptsize\the\ACM@linecount}\\
   2027         \global\advance\ACM@linecount by \@ne
   2028         \addtolength{\ACM@linecount@bxht}{\baselineskip}%
   2029         \ifdim\ACM@linecount@bxht<\textheight\repeat}}}
   2030 \fi
   2031 \def\ACM@linecountL{%
   2032   \if@ACM@review
   2033   \ACM@mk@linecount
   2034   \begin{picture}(0,0)%
   2035     \put(-26,-22){\usebox{\ACM@linecount@bx}}%
   2036   \end{picture}%
   2037   \fi}
   2038 \def\ACM@linecountR{%
   2039   \if@ACM@review
   2040   \ACM@mk@linecount
   2041   \begin{picture}(0,0)%
   2042     \put(20,-22){\usebox{\ACM@linecount@bx}}%
   2043   \end{picture}%
   2044   \fi}
   2045 \if@ACM@timestamp
   2046   % Subtracting 30 from \time gives us the effect of rounding-down despite
   2047   % \numexpr rounding to nearest
   2048   \newcounter{ACM@time@hours}
   2049   \setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax}
   2050   \newcounter{ACM@time@minutes}
   2051   \setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax}
   2052   \newcommand\ACM@timestamp{%
   2053     \footnotesize%
   2054     \the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }%
   2055     \two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{ }%
   2056     page~\thepage\ (pp. \@startPage-\pageref*{TotPages})%
   2057     \ifx\@acmSubmissionID\@empty\relax\else
   2058     ~Submission~ID: \@acmSubmissionID
   2059     \fi
   2060   }
   2061 \fi
   2062 \def\@shortauthors{\if@ACM@anonymous Anon.\else\shortauthors\fi}
   2063 \def\@headfootfont{%
   2064   \ifcase\ACM@format@nr
   2065   \relax % manuscript
   2066     \sffamily
   2067   \or % acmsmall
   2068     \sffamily
   2069   \or % acmlarge
   2070     \sffamily
   2071   \or % acmtog
   2072     \sffamily
   2073   \or % sigconf
   2074     \sffamily
   2075   \or % siggraph
   2076     \sffamily
   2077   \or % sigplan
   2078     \sffamily
   2079   \or % sigchi
   2080     \sffamily
   2081   \or % sigchi-a
   2082     \sffamily
   2083   \fi}
   2084 \fancypagestyle{standardpagestyle}{%
   2085   \fancyhf{}%
   2086   \renewcommand{\headrulewidth}{\z@}%
   2087   \renewcommand{\footrulewidth}{\z@}%
   2088   \ifcase\ACM@format@nr
   2089   \relax % manuscript
   2090     \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}%
   2091     \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}%
   2092     \fancyhead[RE]{\@shortauthors}%
   2093     \fancyhead[LO]{\ACM@linecountL\shorttitle}%
   2094     \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}%
   2095   \or % acmsmall
   2096     \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
   2097     \fancyhead[RO]{\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
   2098     \fancyhead[RE]{\@headfootfont\@shortauthors}%
   2099     \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
   2100     \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
   2101     \@acmNumber, Article \@acmArticle.  Publication date: \@acmPubDate.}%
   2102   \or % acmlarge
   2103     \fancyhead[LE]{\ACM@linecountL\@headfootfont
   2104       \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}%
   2105     \fancyhead[LO]{\ACM@linecountL}%
   2106     \fancyhead[RO]{\@headfootfont
   2107       \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}%
   2108     \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
   2109     \@acmNumber, Article \@acmArticle.  Publication date: \@acmPubDate.}%
   2110   \or % acmtog
   2111     \fancyhead[LE]{\ACM@linecountL\@headfootfont
   2112       \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}%
   2113     \fancyhead[LO]{\ACM@linecountL}%
   2114     \fancyhead[RE]{\ACM@linecountR}%
   2115     \fancyhead[RO]{\@headfootfont
   2116       \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi\ACM@linecountR}%
   2117     \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
   2118     \@acmNumber, Article \@acmArticle.  Publication date: \@acmPubDate.}%
   2119   \else % Proceedings
   2120     \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
   2121     \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
   2122     \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}%
   2123     \fancyhead[LE]{\ACM@linecountL\@headfootfont\acmConference@shortname,
   2124       \acmConference@date, \acmConference@venue}%
   2125     \fancyhead[RO]{\@headfootfont\acmConference@shortname,
   2126       \acmConference@date, \acmConference@venue\ACM@linecountR}%
   2127   \fi
   2128   \if@ACM@sigchiamode
   2129      \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}%
   2130   \fi
   2131   \if@ACM@timestamp
   2132      \fancyfoot[LO,RE]{\ACM@timestamp}
   2133   \fi
   2134 }
   2135 \pagestyle{standardpagestyle}
   2136 \newdimen\@folio@wd
   2137 \@folio@wd=\z@
   2138 \newdimen\@folio@ht
   2139 \@folio@ht=\z@
   2140 \newdimen\@folio@voffset
   2141 \@folio@voffset=\z@
   2142 \def\@folio@max{1}
   2143 \ifcase\ACM@format@nr
   2144 \relax % manuscript
   2145 \or % acmsmall
   2146   \@folio@wd=45.75pt\relax
   2147   \@folio@ht=1.25in\relax
   2148   \@folio@voffset=.2in\relax
   2149   \def\@folio@max{8}
   2150 \or % acmlarge
   2151   \@folio@wd=43.25pt\relax
   2152   \@folio@ht=79pt\relax
   2153   \@folio@voffset=.55in\relax
   2154   \def\@folio@max{10}
   2155 \fi
   2156 \def\@folioblob{\@tempcnta=\@acmArticleSeq\relax
   2157   \loop
   2158      \ifnum\@tempcnta>\@folio@max\relax
   2159       \advance\@tempcnta by - \@folio@max
   2160    \repeat
   2161     \advance\@tempcnta by -1\relax
   2162     \@tempdima=\@folio@ht\relax
   2163     \multiply\@tempdima by \the\@tempcnta\relax
   2164     \advance\@tempdima by -\@folio@voffset\relax
   2165     \begin{picture}(0,0)
   2166     \makebox[\z@]{\raisebox{-\@tempdima}{%
   2167         \rlap{%
   2168           \raisebox{-0.45\@folio@ht}[\z@][\z@]{%
   2169             \rule{\@folio@wd}{\@folio@ht}}}%
   2170         \parbox{\@folio@wd}{%
   2171           \centering
   2172           \textcolor{white}{\LARGE\bfseries\sffamily\@acmArticle}}}}
   2173   \end{picture}}
   2174 
   2175 \fancypagestyle{firstpagestyle}{%
   2176   \fancyhf{}%
   2177   \renewcommand{\headrulewidth}{\z@}%
   2178   \renewcommand{\footrulewidth}{\z@}%
   2179   \ifcase\ACM@format@nr
   2180   \relax % manuscript
   2181     \fancyhead[L]{\ACM@linecountL}%
   2182     \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}%
   2183     \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}%
   2184   \or % acmsmall
   2185     \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
   2186     \@acmNumber, Article \@acmArticle.  Publication date:
   2187     \@acmPubDate.}%
   2188     \fancyhead[LE]{\ACM@linecountL\@folioblob}%
   2189     \fancyhead[LO]{\ACM@linecountL}%
   2190     \fancyhead[RO]{\@folioblob}%
   2191     \fancyheadoffset[RO,LE]{0.6\@folio@wd}%
   2192   \or % acmlarge
   2193     \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
   2194     \@acmNumber, Article \@acmArticle.  Publication date:
   2195     \@acmPubDate.}%
   2196     \fancyhead[RO]{\@folioblob}%
   2197     \fancyhead[LE]{\ACM@linecountL\@folioblob}%
   2198     \fancyhead[LO]{\ACM@linecountL}%
   2199     \fancyheadoffset[RO,LE]{1.4\@folio@wd}%
   2200   \or % acmtog
   2201     \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
   2202     \@acmNumber, Article \@acmArticle.  Publication date:
   2203     \@acmPubDate.}%
   2204     \fancyhead[L]{\ACM@linecountL}%
   2205     \fancyhead[R]{\ACM@linecountR}%
   2206   \else % Conference proceedings
   2207     \fancyhead[L]{\ACM@linecountL}%
   2208     \fancyhead[R]{\ACM@linecountR}%
   2209     \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
   2210   \fi
   2211   \if@ACM@timestamp
   2212     \ifnum\ACM@format@nr=0\relax % Manuscript
   2213     \fancyfoot[LO,RE]{\ACM@timestamp\quad
   2214       \footnotesize Manuscript submitted to ACM}
   2215     \else
   2216     \fancyfoot[LO,RE]{\ACM@timestamp}
   2217     \fi
   2218   \fi
   2219 }
   2220 \renewcommand\section{\@startsection{section}{1}{\z@}%
   2221   {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
   2222   {.25\baselineskip}%
   2223   {\@secfont}}
   2224 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
   2225   {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
   2226   {.25\baselineskip}%
   2227   {\@subsecfont}}
   2228 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{10pt}%
   2229   {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
   2230   {-3.5\p@}%
   2231   {\@subsubsecfont\@adddotafter}}
   2232 \renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
   2233   {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
   2234   {-3.5\p@}%
   2235   {\@parfont\@adddotafter}}
   2236 \renewcommand\part{\@startsection{part}{9}{\z@}%
   2237   {-10\p@ \@plus -4\p@ \@minus -2\p@}%
   2238   {4\p@}%
   2239   {\@parfont}}
   2240 \def\section@raggedright{\@rightskip\@flushglue
   2241   \rightskip\@rightskip
   2242   \leftskip\z@skip
   2243   \parindent\z@}
   2244 \def\@secfont{\sffamily\bfseries\section@raggedright\MakeUppercase}
   2245 \def\@subsecfont{\sffamily\bfseries\section@raggedright}
   2246 \def\@subsubsecfont{\sffamily\itshape}
   2247 \def\@parfont{\itshape}
   2248 \setcounter{secnumdepth}{3}
   2249 \ifcase\ACM@format@nr
   2250 \relax % manuscript
   2251 \or % acmsmall
   2252 \or % acmlarge
   2253  \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase}
   2254  \def\@subsecfont{\sffamily\large\section@raggedright}
   2255 \or % acmtog
   2256  \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase}
   2257  \def\@subsecfont{\sffamily\large\section@raggedright}
   2258 \or % sigconf
   2259  \def\@secfont{\bfseries\Large\section@raggedright\MakeUppercase}
   2260  \def\@subsecfont{\bfseries\Large\section@raggedright}
   2261 \or % siggraph
   2262  \def\@secfont{\bfseries\sffamily\Large\section@raggedright\MakeUppercase}
   2263  \def\@subsecfont{\bfseries\sffamily\Large\section@raggedright}
   2264 \or % sigplan
   2265  \def\@secfont{\bfseries\Large\section@raggedright}
   2266  \def\@subsecfont{\bfseries\section@raggedright}
   2267  \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
   2268    {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
   2269    {.25\baselineskip}%
   2270    {\@subsubsecfont}}
   2271  \def\@subsubsecfont{\bfseries\section@raggedright}
   2272  \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
   2273    {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
   2274    {-3.5\p@}%
   2275    {\@parfont\@addspaceafter}}
   2276  \def\@parfont{\bfseries\itshape}
   2277  \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
   2278    {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
   2279    {-3.5\p@}%
   2280    {\@subparfont\@addspaceafter}}
   2281  \def\@subparfont{\itshape}
   2282 \or % sigchi
   2283  \setcounter{secnumdepth}{1}
   2284  \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase}
   2285  \def\@subsecfont{\bfseries\sffamily\section@raggedright}
   2286 \or % sigchi-a
   2287  \setcounter{secnumdepth}{0}
   2288  \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase}
   2289  \def\@subsecfont{\bfseries\sffamily\section@raggedright}
   2290 \fi
   2291 \def\@adddotafter#1{#1\@addpunct{.}}
   2292 \def\@addspaceafter#1{#1\@addpunct{\enspace}}
   2293 \providecommand*\@dotsep{4.5}
   2294 \def\@acmplainbodyfont{\itshape}
   2295 \def\@acmplainindent{\parindent}
   2296 \def\@acmplainheadfont{\scshape}
   2297 \def\@acmplainnotefont{\@empty}
   2298 \ifcase\ACM@format@nr
   2299 \relax % manuscript
   2300 \or % acmsmall
   2301 \or % acmlarge
   2302 \or % acmtog
   2303 \or % sigconf
   2304 \or % siggraph
   2305 \or % sigplan
   2306   \def\@acmplainbodyfont{\itshape}
   2307   \def\@acmplainindent{\z@}
   2308   \def\@acmplainheadfont{\bfseries}
   2309   \def\@acmplainnotefont{\normalfont}
   2310 \or % sigchi
   2311 \or % sigchi-a
   2312 \fi
   2313 \newtheoremstyle{acmplain}%
   2314   {.5\baselineskip\@plus.2\baselineskip
   2315     \@minus.2\baselineskip}% space above
   2316   {.5\baselineskip\@plus.2\baselineskip
   2317     \@minus.2\baselineskip}% space below
   2318   {\@acmplainbodyfont}% body font
   2319   {\@acmplainindent}% indent amount
   2320   {\@acmplainheadfont}% head font
   2321   {.}% punctuation after head
   2322   {.5em}% spacing after head
   2323   {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec
   2324 \def\@acmdefinitionbodyfont{\normalfont}
   2325 \def\@acmdefinitionindent{\parindent}
   2326 \def\@acmdefinitionheadfont{\itshape}
   2327 \def\@acmdefinitionnotefont{\@empty}
   2328 \ifcase\ACM@format@nr
   2329 \relax % manuscript
   2330 \or % acmsmall
   2331 \or % acmlarge
   2332 \or % acmtog
   2333 \or % sigconf
   2334 \or % siggraph
   2335 \or % sigplan
   2336   \def\@acmdefinitionbodyfont{\normalfont}
   2337   \def\@acmdefinitionindent{\z@}
   2338   \def\@acmdefinitionheadfont{\bfseries}
   2339   \def\@acmdefinitionnotefont{\normalfont}
   2340 \or % sigchi
   2341 \or % sigchi-a
   2342 \fi
   2343 \newtheoremstyle{acmdefinition}%
   2344   {.5\baselineskip\@plus.2\baselineskip
   2345     \@minus.2\baselineskip}% space above
   2346   {.5\baselineskip\@plus.2\baselineskip
   2347     \@minus.2\baselineskip}% space below
   2348   {\@acmdefinitionbodyfont}% body font
   2349   {\@acmdefinitionindent}% indent amount
   2350   {\@acmdefinitionheadfont}% head font
   2351   {.}% punctuation after head
   2352   {.5em}% spacing after head
   2353   {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec
   2354 \theoremstyle{acmplain}
   2355 \newtheorem{theorem}{Theorem}[section]
   2356 \newtheorem{conjecture}[theorem]{Conjecture}
   2357 \newtheorem{proposition}[theorem]{Proposition}
   2358 \newtheorem{lemma}[theorem]{Lemma}
   2359 \newtheorem{corollary}[theorem]{Corollary}
   2360 \theoremstyle{acmdefinition}
   2361 \newtheorem{example}[theorem]{Example}
   2362 \newtheorem{definition}[theorem]{Definition}
   2363 \theoremstyle{acmplain}
   2364 \def\@proofnamefont{\scshape}
   2365 \def\@proofindent{\indent}
   2366 \ifcase\ACM@format@nr
   2367 \relax % manuscript
   2368 \or % acmsmall
   2369 \or % acmlarge
   2370 \or % acmtog
   2371 \or % sigconf
   2372 \or % siggraph
   2373 \or % sigplan
   2374   \def\@proofnamefont{\itshape}
   2375   \def\@proofindent{\noindent}
   2376 \or % sigchi
   2377 \or % sigchi-a
   2378 \fi
   2379 \renewenvironment{proof}[1][\proofname]{\par
   2380   \pushQED{\qed}%
   2381   \normalfont \topsep6\p@\@plus6\p@\relax
   2382   \trivlist
   2383   \item[\@proofindent\hskip\labelsep
   2384         {\@proofnamefont #1\@addpunct{.}}]\ignorespaces
   2385 }{%
   2386   \popQED\endtrivlist\@endpefalse
   2387 }
   2388 \specialcomment{acks}{%
   2389   \begingroup
   2390   \section*{Acknowledgments}
   2391   \phantomsection\addcontentsline{toc}{section}{Acknowledgments}
   2392 }{%
   2393   \endgroup
   2394 }
   2395 \def\grantsponsor#1#2#3{#2}
   2396 \newcommand\grantnum[3][]{#3%
   2397   \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi}
   2398 \if@ACM@screen
   2399   \includecomment{screenonly}
   2400   \excludecomment{printonly}
   2401 \else
   2402   \excludecomment{screenonly}
   2403   \includecomment{printonly}
   2404 \fi
   2405 \if@ACM@anonymous
   2406   \excludecomment{anonsuppress}
   2407   \excludecomment{acks}
   2408 \else
   2409   \includecomment{anonsuppress}
   2410 \fi
   2411 \newcommand\showeprint[2][arxiv]{%
   2412   \def\@tempa{#1}%
   2413   \ifx\@tempa\@empty\def\@tempa{arxiv}\fi
   2414   \def\@tempb{arxiv}%
   2415   \ifx\@tempa\@tempb
   2416      arXiv:\href{http://arxiv.org/abs/#2}{#2}\else arXiv:#2%
   2417   \fi}
   2418 \normalsize\normalfont\frenchspacing
   2419 \endinput
   2420 %%
   2421 %% End of file `acmart.cls'.