%%
%% This is file `xintbinhex.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xint.dtx  (with options: `xintbinhex')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from xintbinhex.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file xint.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
%% The xint bundle 1.4o 2025/09/06
%% Copyright (C) 2013-2022, 2025 Jean-Francois Burnol
%% xintbinhex: Expandable radix conversions (2, 8, 10, and 16)
%% ---------------------------------------------------------------
\begingroup\catcode61\catcode48\catcode32=10\relax%
  \catcode13=5    % ^^M
  \endlinechar=13 %
  \catcode123=1   % {
  \catcode125=2   % }
  \catcode64=11   % @
  \catcode44=12   % ,
  \catcode46=12   % .
  \catcode58=12   % :
  \catcode94=7    % ^
  \def\empty{}\def\space{ }\newlinechar10
  \def\z{\endgroup}%
  \expandafter\let\expandafter\x\csname ver@xintbinhex.sty\endcsname
  \expandafter\let\expandafter\w\csname ver@xintkernel.sty\endcsname
  \expandafter\ifx\csname numexpr\endcsname\relax
    \expandafter\ifx\csname PackageWarningNoLine\endcsname\relax
      \immediate\write128{^^JPackage xintbinhex Warning:^^J%
                          \space\space\space\space
                          \numexpr not available, aborting input.^^J}%
    \else
      \PackageWarningNoLine{xintbinhex}{\numexpr not available, aborting input}%
    \fi
    \def\z{\endgroup\endinput}%
  \else
    \ifx\x\relax   % plain-TeX, first loading of xintbinhex.sty
      \ifx\w\relax % but xintkernel.sty not yet loaded.
         \def\z{\endgroup\input xintkernel.sty\relax}%
      \fi
    \else
      \ifx\x\empty % LaTeX, first loading,
      % variable is initialized, but \ProvidesPackage not yet seen
          \ifx\w\relax % xintkernel.sty not yet loaded.
            \def\z{\endgroup\RequirePackage{xintkernel}}%
          \fi
      \else
        \def\z{\endgroup\endinput}% xintbinhex already loaded.
      \fi
    \fi
  \fi
\z%
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
  [2025/09/06 v1.4o Expandable radix conversions (2, 8, 10, and 16) (JFB)]%
\def\XINT_tmpa #1{\ifx\relax#1\else
  \expandafter\edef\csname XINT_csdth_#1\endcsname
  {\ifcase #1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or
              8\or 9\or A\or B\or C\or D\or E\or F\fi}%
  \expandafter\XINT_tmpa\fi }%
\XINT_tmpa {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}\relax
\def\XINT_tmpa #1{\ifx\relax#1\else
  \expandafter\edef\csname XINT_csdtb_#1\endcsname
  {\ifcase #1
   0000\or 0001\or 0010\or 0011\or 0100\or 0101\or 0110\or 0111\or
   1000\or 1001\or 1010\or 1011\or 1100\or 1101\or 1110\or 1111\fi}%
  \expandafter\XINT_tmpa\fi }%
\XINT_tmpa {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}\relax
\let\XINT_tmpa\relax
\expandafter\def\csname XINT_csbth_0000\endcsname {0}%
\expandafter\def\csname XINT_csbth_0001\endcsname {1}%
\expandafter\def\csname XINT_csbth_0010\endcsname {2}%
\expandafter\def\csname XINT_csbth_0011\endcsname {3}%
\expandafter\def\csname XINT_csbth_0100\endcsname {4}%
\expandafter\def\csname XINT_csbth_0101\endcsname {5}%
\expandafter\def\csname XINT_csbth_0110\endcsname {6}%
\expandafter\def\csname XINT_csbth_0111\endcsname {7}%
\expandafter\def\csname XINT_csbth_1000\endcsname {8}%
\expandafter\def\csname XINT_csbth_1001\endcsname {9}%
\expandafter\def\csname XINT_csbth_1010\endcsname {A}%
\expandafter\def\csname XINT_csbth_1011\endcsname {B}%
\expandafter\def\csname XINT_csbth_1100\endcsname {C}%
\expandafter\def\csname XINT_csbth_1101\endcsname {D}%
\expandafter\def\csname XINT_csbth_1110\endcsname {E}%
\expandafter\def\csname XINT_csbth_1111\endcsname {F}%
\expandafter\def\csname XINT_csbto_000\endcsname {0}%
\expandafter\def\csname XINT_csbto_001\endcsname {1}%
\expandafter\def\csname XINT_csbto_010\endcsname {2}%
\expandafter\def\csname XINT_csbto_011\endcsname {3}%
\expandafter\def\csname XINT_csbto_100\endcsname {4}%
\expandafter\def\csname XINT_csbto_101\endcsname {5}%
\expandafter\def\csname XINT_csbto_110\endcsname {6}%
\expandafter\def\csname XINT_csbto_111\endcsname {7}%
\expandafter\def\csname XINT_cshtb_0\endcsname {0000}%
\expandafter\def\csname XINT_cshtb_1\endcsname {0001}%
\expandafter\def\csname XINT_cshtb_2\endcsname {0010}%
\expandafter\def\csname XINT_cshtb_3\endcsname {0011}%
\expandafter\def\csname XINT_cshtb_4\endcsname {0100}%
\expandafter\def\csname XINT_cshtb_5\endcsname {0101}%
\expandafter\def\csname XINT_cshtb_6\endcsname {0110}%
\expandafter\def\csname XINT_cshtb_7\endcsname {0111}%
\expandafter\def\csname XINT_cshtb_8\endcsname {1000}%
\expandafter\def\csname XINT_cshtb_9\endcsname {1001}%
\def\XINT_cshtb_A {1010}%
\def\XINT_cshtb_B {1011}%
\def\XINT_cshtb_C {1100}%
\def\XINT_cshtb_D {1101}%
\def\XINT_cshtb_E {1110}%
\def\XINT_cshtb_F {1111}%
\expandafter\def\csname XINT_csotb_0\endcsname {000}%
\expandafter\def\csname XINT_csotb_1\endcsname {001}%
\expandafter\def\csname XINT_csotb_2\endcsname {010}%
\expandafter\def\csname XINT_csotb_3\endcsname {011}%
\expandafter\def\csname XINT_csotb_4\endcsname {100}%
\expandafter\def\csname XINT_csotb_5\endcsname {101}%
\expandafter\def\csname XINT_csotb_6\endcsname {110}%
\expandafter\def\csname XINT_csotb_7\endcsname {111}%
\def\XINT_zeroes_foriv #1#2#3#4#5#6#7#8%
{%
    \xint_gob_til_R #8\XINT_zeroes_foriv_end\R\XINT_zeroes_foriv
}%
\def\XINT_zeroes_foriv_end\R\XINT_zeroes_foriv #1#2\W
   {\XINT_zeroes_foriv_done #1}%
\def\XINT_zeroes_foriv_done #1\R{ #1}%
\def\XINT_zeroes_foriii #1#2#3#4#5#6#7#8#9%
{%
    \xint_gob_til_R #9\XINT_zeroes_foriii_end\R\XINT_zeroes_foriii
}%
\def\XINT_zeroes_foriii_end\R\XINT_zeroes_foriii #1#2\W
   {\XINT_zeroes_foriii_done #1}%
\def\XINT_zeroes_foriii_done #1\R{ #1}%
\def\xintDecToHex {\romannumeral0\xintdectohex }%
\def\xintdectohex #1%
{%
    \expandafter\XINT_dth_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_dth_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_dth_neg
        -{\XINT_dth_main #1}%
     \krof
}%
\def\XINT_dth_neg {\expandafter-\romannumeral0\XINT_dth_main}%
\def\XINT_dth_main #1\xint:
{%
    \expandafter\XINT_dth_finish
    \romannumeral`&&@\expandafter\XINT_dthb_start
    \romannumeral0\XINT_zeroes_foriv
       #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
    #1\xint_bye\XINT_dth_tohex
}%
\def\XINT_dthb_start #1#2#3#4#5%
{%
    \xint_bye#5\XINT_dthb_small\xint_bye\XINT_dthb_start_a #1#2#3#4#5%
}%
\def\XINT_dthb_small\xint_bye\XINT_dthb_start_a #1\xint_bye#2{#2#1!}%
\def\XINT_dthb_start_a #1#2#3#4#5#6#7#8#9%
{%
    \expandafter\XINT_dthb_again
    \the\numexpr\expandafter\XINT_dthb_update
    \the\numexpr#1#2#3#4%
    \xint_bye#9\XINT_dthb_lastpass\xint_bye
    #5#6#7#8!\XINT_dthb_exclam\relax\XINT_dthb_nextfour #9%
}%
\def\XINT_dthb_exclam {!\XINT_dthb_exclam\relax
                       \expandafter\XINT_dthb_update\the\numexpr}%
\def\XINT_dthb_update #1!%
{%
    \expandafter\XINT_dthb_update_a
    \the\numexpr (#1+\xint_c_ii^xv)/\xint_c_ii^xvi-\xint_c_i\xint:
    #1\xint:%
}%
\def\XINT_dthb_update_a #1\xint:#2\xint:#3%
{%
    0000+#1\expandafter#3\the\numexpr#2-#1*\xint_c_ii^xvi
}%
\def\XINT_dthb_nextfour #1#2#3#4#5%
{%
    \xint_bye#5\XINT_dthb_lastpass\xint_bye
    #1#2#3#4!\XINT_dthb_exclam\relax\XINT_dthb_nextfour#5%
}%
\def\XINT_dthb_lastpass\xint_bye #1!#2\xint_bye#3{#1!#3!}%
\def\XINT_dthb_again #1!#2#3%
{%
    \ifx#3\relax
          \expandafter\xint_firstoftwo
      \else
          \expandafter\xint_secondoftwo
    \fi
    {\expandafter\XINT_dthb_again
     \the\numexpr
     \ifnum #1>\xint_c_
        \xint_afterfi{\expandafter\XINT_dthb_update\the\numexpr#1}%
     \fi}%
    {\ifnum #1>\xint_c_ \xint_dothis{#2#1!}\fi\xint_orthat{!#2!}}%
}%
\def\XINT_dth_tohex
{%
    \expandafter\XINT_dth_tohex_a\expanded\XINT_tofourhex
}%
\def\XINT_dth_tohex_a{!\XINT_dth_tohex!}%
\def\XINT_tofourhex #1!%
{%
    {\iffalse}\fi\expandafter\XINT_tofourhex_a
    \the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\xint:
    #1\xint:
}%
\def\XINT_tofourhex_a #1\xint:#2\xint:
{%
    \expandafter\XINT_tofourhex_c
    \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint:
    #1\xint:
    #2-\xint_c_ii^viii*#1!%
}%
\def\XINT_tofourhex_c #1\xint:#2\xint:
{%
    \csname XINT_csdth_#1\endcsname
    \csname XINT_csdth_\the\numexpr #2-\xint_c_xvi*#1\endcsname
    \expandafter\XINT_tofourhex_d\the\numexpr
}%
\def\XINT_tofourhex_d #1!%
{%
    \expandafter\XINT_tofourhex_e
    \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint:
    #1\xint:
}%
\def\XINT_tofourhex_e #1\xint:#2\xint:
{%
    \csname XINT_csdth_#1\endcsname
    \csname XINT_csdth_\the\numexpr #2-\xint_c_xvi*#1\endcsname
    \iffalse{\fi}%
}%
\def\XINT_dth_finish !\XINT_dth_tohex!#1#2#3%
{%
    \unless\if#10\xint_dothis{ #1#2#3}\fi
    \unless\if#20\xint_dothis{ #2#3}\fi
    \unless\if#30\xint_dothis{ #3}\fi
    \xint_orthat{ }%
}%
\def\xintDecToOct {\romannumeral0\xintdectooct }%
\def\xintdectooct #1%
{%
    \expandafter\XINT_dto_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_dto_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_dto_neg
        -{\XINT_dto_main #1}%
     \krof
}%
\def\XINT_dto_neg {\expandafter-\romannumeral0\XINT_dto_main}%
\def\XINT_dto_main #1\xint:
{%
    \expandafter\XINT_dto_finish
    \romannumeral`&&@\expandafter\XINT_dto_start
    \romannumeral0\XINT_zeroes_foriv
       #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
    #1\xint_bye\XINT_dto_tooct
}%
\def\XINT_dto_start #1#2#3#4#5%
{%
    \xint_bye#5\XINT_dto_small\xint_bye\XINT_dto_start_a #1#2#3#4#5%
}%
\def\XINT_dto_small\xint_bye\XINT_dto_start_a #1\xint_bye#2{#2#1!}%
\def\XINT_dto_start_a #1#2#3#4#5#6#7#8#9%
{%
    \expandafter\XINT_dto_again\the\numexpr\expandafter\XINT_dto_update
    \the\numexpr#1#2#3#4%
    \xint_bye#9\XINT_dto_lastpass\xint_bye
    #5#6#7#8!\XINT_dto_exclam\relax\XINT_dto_nextfour #9%
}%
\def\XINT_dto_exclam {!\XINT_dto_exclam\relax
                       \expandafter\XINT_dto_update\the\numexpr}%
\def\XINT_dto_update #1!%
{%
    \expandafter\XINT_dto_update_a
    \the\numexpr (#1+\xint_c_ii^xiv)/\xint_c_ii^xv-\xint_c_i\xint:
    #1\xint:%
}%
\def\XINT_dto_update_a #1\xint:#2\xint:#3%
{%
    0000+#1\expandafter#3\the\numexpr#2-#1*\xint_c_ii^xv
}%
\def\XINT_dto_nextfour #1#2#3#4#5%
{%
    \xint_bye#5\XINT_dto_lastpass\xint_bye
    #1#2#3#4!\XINT_dto_exclam\relax\XINT_dto_nextfour#5%
}%
\def\XINT_dto_lastpass\xint_bye #1!#2\xint_bye#3{#1!#3!}%
\def\XINT_dto_again #1!#2#3%
{%
    \ifx#3\relax
          \expandafter\xint_firstoftwo
      \else
          \expandafter\xint_secondoftwo
    \fi
    {\expandafter\XINT_dto_again
     \the\numexpr
     \ifnum #1>\xint_c_
        \xint_afterfi{\expandafter\XINT_dto_update\the\numexpr#1}%
     \fi}%
    {\ifnum #1>\xint_c_ \xint_dothis{#2#1!}\fi\xint_orthat{!#2!}}%
}%
\def\XINT_dto_tooct
{%
    \expandafter\XINT_dto_tooct_a\expanded\XINT_tofiveoct
}%
\def\XINT_dto_tooct_a{!\XINT_dto_tooct!}%
\def\XINT_tofiveoct #1!%
{%
    {\iffalse}\fi\expandafter\XINT_tofiveoct_a
    \the\numexpr (#1+\xint_c_ii^viii)/\xint_c_ii^ix-\xint_c_i\xint:
    #1\xint:
}%
\def\XINT_tofiveoct_a #1\xint:#2\xint:
{%
    \expandafter\XINT_tofiveoct_c
    \the\numexpr (#1+\xint_c_iv)/\xint_c_viii-\xint_c_i\xint:#1\xint:
    #2-\xint_c_ii^ix*#1!%
}%
\def\XINT_tofiveoct_c #1\xint:#2\xint:
{%
    #1\the\numexpr #2-\xint_c_viii*#1\relax
    \expandafter\XINT_tofiveoct_d\the\numexpr
}%
\def\XINT_tofiveoct_d #1!%
{%
    \expandafter\XINT_tofiveoct_e
    \the\numexpr (#1+\xint_c_ii^v)/\xint_c_ii^vi-\xint_c_i\xint:
    #1\xint:
}%
\def\XINT_tofiveoct_e #1\xint:#2\xint:
{%
    #1\expandafter\XINT_tofiveoct_f\the\numexpr #2-\xint_c_ii^vi*#1!%
}%
\def\XINT_tofiveoct_f #1!%
{%
    \expandafter\XINT_tofiveoct_g
    \the\numexpr (#1+\xint_c_iv)/\xint_c_viii-\xint_c_i\xint:
    #1\xint:
}%
\def\XINT_tofiveoct_g #1\xint:#2\xint:
{%
    #1\the\numexpr #2-\xint_c_viii*#1\iffalse{\fi}%
}%
\def\XINT_dto_finish !\XINT_dto_tooct!#1#2#3#4%
{%
    \unless\if#10\xint_dothis{ #1#2#3#4}\fi
    \unless\if#20\xint_dothis{ #2#3#4}\fi
    \unless\if#30\xint_dothis{ #3#4}\fi
    \unless\if#40\xint_dothis{ #4}\fi
    \xint_orthat{ }%
}%
\def\xintDecToBin {\romannumeral0\xintdectobin }%
\def\xintdectobin #1%
{%
    \expandafter\XINT_dtb_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_dtb_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_dtb_neg
        -{\XINT_dtb_main #1}%
     \krof
}%
\def\XINT_dtb_neg {\expandafter-\romannumeral0\XINT_dtb_main}%
\def\XINT_dtb_main #1\xint:
{%
    \expandafter\XINT_dtb_finish
    \romannumeral`&&@\expandafter\XINT_dthb_start
    \romannumeral0\XINT_zeroes_foriv
       #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
    #1\xint_bye\XINT_dtb_tobin
}%
\def\XINT_dtb_tobin
{%
    \expandafter\XINT_dtb_tobin_a\expanded\XINT_tosixteenbits
}%
\def\XINT_dtb_tobin_a{!\XINT_dtb_tobin!}%
\def\XINT_tosixteenbits #1!%
{%
    {\iffalse}\fi\expandafter\XINT_tosixteenbits_a
    \the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\xint:
    #1\xint:
}%
\def\XINT_tosixteenbits_a #1\xint:#2\xint:
{%
    \expandafter\XINT_tosixteenbits_c
    \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint:
    #1\xint:
    #2-\xint_c_ii^viii*#1!%
}%
\def\XINT_tosixteenbits_c #1\xint:#2\xint:
{%
    \csname XINT_csdtb_#1\endcsname
    \csname XINT_csdtb_\the\numexpr #2-\xint_c_xvi*#1\endcsname
    \expandafter\XINT_tosixteenbits_d\the\numexpr
}%
\def\XINT_tosixteenbits_d #1!%
{%
    \expandafter\XINT_tosixteenbits_e
    \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint:
    #1\xint:
}%
\def\XINT_tosixteenbits_e #1\xint:#2\xint:
{%
    \csname XINT_csdtb_#1\endcsname
    \csname XINT_csdtb_\the\numexpr #2-\xint_c_xvi*#1\endcsname
    \iffalse{\fi}%
}%
\def\XINT_dtb_finish !\XINT_dtb_tobin!#1#2#3#4#5#6#7#8%
{%
    \expandafter\XINT_dtb_finish_a\the\numexpr #1#2#3#4#5#6#7#8\relax
}%
\def\XINT_dtb_finish_a #1{%
\def\XINT_dtb_finish_a ##1##2##3##4##5##6##7##8##9%
{%
    \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8##9\relax
}}\XINT_dtb_finish_a { }%
\def\xintHexToDec {\romannumeral0\xinthextodec }%
\def\xinthextodec #1%
{%
    \expandafter\XINT_htd_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_htd_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_htd_neg
        -{\XINT_htd_main #1}%
     \krof
}%
\def\XINT_htd_neg {\expandafter-\romannumeral0\XINT_htd_main}%
\def\XINT_htd_main #1\xint:
{%
    \expandafter\XINT_htd_startb
    \the\numexpr\expandafter\XINT_htd_starta
    \romannumeral0\XINT_zeroes_foriv
       #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
    #1\xint_bye!2!3!4!5!6!7!8!9!\xint_bye\relax
}%
\def\XINT_htd_starta #1#2#3#4{"#1#2#3#4+\xint_c_x^v!}%
\def\XINT_htd_startb 1#1%
{%
    \if#10\expandafter\XINT_htd_startba\else
          \expandafter\XINT_htd_startbb
    \fi 1#1%
}%
\def\XINT_htd_startba 10#1!{\XINT_htd_again #1%
    \xint_bye!2!3!4!5!6!7!8!9!\xint_bye\XINT_htd_nextfour}%
\def\XINT_htd_startbb 1#1#2!{\XINT_htd_again #1!#2%
    \xint_bye!2!3!4!5!6!7!8!9!\xint_bye\XINT_htd_nextfour}%
\def\XINT_htd_again #1\XINT_htd_nextfour #2%
{%
    \xint_bye #2\XINT_htd_finish\xint_bye
    \expandafter\XINT_htd_A\the\numexpr
    \XINT_htd_a #1\XINT_htd_nextfour #2%
}%
\def\XINT_htd_a #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
    #1\expandafter\XINT_htd_update
    \the\numexpr #2\expandafter\XINT_htd_update
    \the\numexpr #3\expandafter\XINT_htd_update
    \the\numexpr #4\expandafter\XINT_htd_update
    \the\numexpr #5\expandafter\XINT_htd_update
    \the\numexpr #6\expandafter\XINT_htd_update
    \the\numexpr #7\expandafter\XINT_htd_update
    \the\numexpr #8\expandafter\XINT_htd_update
    \the\numexpr #9\expandafter\XINT_htd_update
    \the\numexpr \XINT_htd_a
}%
\def\XINT_htd_nextfour #1#2#3#4%
{%
    *\xint_c_ii^xvi+"#1#2#3#4+\xint_c_x^ix\relax\xint_bye!%
    2!3!4!5!6!7!8!9!\xint_bye\XINT_htd_nextfour
}%
\def\XINT_htd_update 1#1#2#3#4#5%
{%
    *\xint_c_ii^xvi+10000#1#2#3#4#5!%
}%
\def\XINT_htd_A {\XINT_hotd_A\XINT_htd_again}%
\def\XINT_hotd_A #11#2%
{%
    \if#20\expandafter\XINT_hotd_Aa\else
          \expandafter\XINT_hotd_Ab
    \fi #11#2%
}%
\def\XINT_hotd_Aa #110#2#3#4#5{#1#2#3#4#5!}%
\def\XINT_hotd_Ab #11#2#3#4#5#6{#1#2!#3#4#5#6!}%
\def\XINT_htd_finish\xint_bye
    \expandafter\XINT_htd_A\the\numexpr \XINT_htd_a #1\XINT_htd_nextfour
{%
    \expandafter\XINT_htd_finish_cuz\the\numexpr0\XINT_htd_unsep_loop #1%
}%
\def\XINT_htd_unsep_loop #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
    \expandafter\XINT_unsep_clean
    \the\numexpr 1#1#2\expandafter\XINT_unsep_clean
    \the\numexpr 1#3#4\expandafter\XINT_unsep_clean
    \the\numexpr 1#5#6\expandafter\XINT_unsep_clean
    \the\numexpr 1#7#8\expandafter\XINT_unsep_clean
    \the\numexpr 1#9\XINT_htd_unsep_loop_a
}%
\def\XINT_htd_unsep_loop_a #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
    #1\expandafter\XINT_unsep_clean
    \the\numexpr 1#2#3\expandafter\XINT_unsep_clean
    \the\numexpr 1#4#5\expandafter\XINT_unsep_clean
    \the\numexpr 1#6#7\expandafter\XINT_unsep_clean
    \the\numexpr 1#8#9\XINT_htd_unsep_loop
}%
\def\XINT_unsep_clean 1{\relax}% also in xintcore
\def\XINT_htd_finish_cuz #1{%
\def\XINT_htd_finish_cuz ##1##2##3##4##5%
   {\expandafter#1\the\numexpr ##1##2##3##4##5\relax}%
}\XINT_htd_finish_cuz{ }%
\def\xintOctToDec {\romannumeral0\xintocttodec }%
\def\xintocttodec #1%
{%
    \expandafter\XINT_otd_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_otd_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_otd_neg
        -{\XINT_otd_main #1}%
     \krof
}%
\def\XINT_otd_neg {\expandafter-\romannumeral0\XINT_otd_main}%
\def\XINT_otd_main #1\xint:
{%
    \expandafter\XINT_otd_startb
    \the\numexpr\expandafter\XINT_otd_starta_i
                            \romannumeral0\xintlength{#1}\xint:
    #1\xint_bye!2!3!4!5!6!7!8!9!\xint_bye\relax
}%
\def\XINT_otd_starta_i #1\xint:
{%
    \expandafter\XINT_otd_starta
    \romannumeral\xintreplicate{\xint_c_v*((#1+\xint_c_ii)/\xint_c_v)-#1}{0}%
}%
\def\XINT_otd_starta #1#2#3#4#5{'#1#2#3#4#5+\xint_c_x^v!}%
\def\XINT_otd_startb 1#1%
{%
    \if#10\expandafter\XINT_otd_startba\else
          \expandafter\XINT_otd_startbb
    \fi 1#1%
}%
\def\XINT_otd_startba 10#1!{\XINT_otd_again #1%
    \xint_bye!2!3!4!5!6!7!8!9!\xint_bye\XINT_otd_nextfive}%
\def\XINT_otd_startbb 1#1#2!{\XINT_otd_again #1!#2%
    \xint_bye!2!3!4!5!6!7!8!9!\xint_bye\XINT_otd_nextfive}%
\def\XINT_otd_again #1\XINT_otd_nextfive #2%
{%
    \xint_bye #2\XINT_otd_finish\xint_bye
    \expandafter\XINT_otd_A\the\numexpr
    \XINT_otd_a #1\XINT_otd_nextfive #2%
}%
\def\XINT_otd_a #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
    #1\expandafter\XINT_otd_update
    \the\numexpr #2\expandafter\XINT_otd_update
    \the\numexpr #3\expandafter\XINT_otd_update
    \the\numexpr #4\expandafter\XINT_otd_update
    \the\numexpr #5\expandafter\XINT_otd_update
    \the\numexpr #6\expandafter\XINT_otd_update
    \the\numexpr #7\expandafter\XINT_otd_update
    \the\numexpr #8\expandafter\XINT_otd_update
    \the\numexpr #9\expandafter\XINT_otd_update
    \the\numexpr \XINT_otd_a
}%
\def\XINT_otd_nextfive #1#2#3#4#5%
{%
    *\xint_c_ii^xv+'#1#2#3#4#5+\xint_c_x^ix\relax\xint_bye!%
    2!3!4!5!6!7!8!9!\xint_bye\XINT_otd_nextfive
}%
\def\XINT_otd_update 1#1#2#3#4#5%
{%
    *\xint_c_ii^xv+10000#1#2#3#4#5!%
}%
\def\XINT_otd_A {\XINT_hotd_A\XINT_otd_again}%
\def\XINT_otd_finish\xint_bye
    \expandafter\XINT_otd_A\the\numexpr \XINT_otd_a #1\XINT_otd_nextfive
{%
    \expandafter\XINT_htd_finish_cuz\the\numexpr0\XINT_htd_unsep_loop #1%
}%
\def\xintBinToDec {\romannumeral0\xintbintodec }%
\def\xintbintodec #1%
{%
    \expandafter\XINT_btd_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_btd_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_btd_N
        -{\XINT_btd_main #1}%
     \krof
}%
\def\XINT_btd_N {\expandafter-\romannumeral0\XINT_btd_main }%
\def\XINT_btd_main #1\xint:
{%
    \expandafter\XINT_btd_htd
    \expanded{\expandafter\XINT_bth_loop
    \romannumeral0\XINT_zeroes_foriv
       #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
    #1nonenone\xint_bye}\xint:
}%
\def\XINT_btd_htd #1\xint:
{%
    \expandafter\XINT_htd_startb
    \the\numexpr\expandafter\XINT_htd_starta
    \romannumeral0\XINT_zeroes_foriv
       #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
    #1\xint_bye!2!3!4!5!6!7!8!9!\xint_bye\relax
}%
\def\xintHexToOct {\romannumeral0\xinthextooct }%
\def\xinthextooct #1%
{%
    \expandafter\XINT_bto_checkin
    \romannumeral0\expandafter\XINT_htb_checkin\romannumeral`&&@#1.........\xint_bye
    \iffalse{\fi}%
    \xint:
}%
\def\xintHexToBin {\romannumeral0\xinthextobin }%
\def\xinthextobin #1%
{%
    \expandafter\XINT_htb_checkin\romannumeral`&&@#1.........\xint_bye
    \iffalse{\fi}%
}%
\def\XINT_htb_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_htb_N
        -{\XINT_htb_main #1}%
     \krof
}%
\def\XINT_htb_N {\expandafter-\romannumeral0\XINT_htb_main }%
\def\XINT_htb_main
{%
    \expandafter\XINT_htb_cuz
    \expanded{\iffalse}\fi\XINT_htb_loop
}%
\def\XINT_htb_loop #1#2#3#4#5#6#7#8#9%
{%
     \csname XINT_cshtb_#1\endcsname
     \csname XINT_cshtb_#2\endcsname
     \csname XINT_cshtb_#3\endcsname
     \csname XINT_cshtb_#4\endcsname
     \csname XINT_cshtb_#5\endcsname
     \csname XINT_cshtb_#6\endcsname
     \csname XINT_cshtb_#7\endcsname
     \csname XINT_cshtb_#8\endcsname
     \csname XINT_cshtb_#9\endcsname
     \XINT_htb_loop
}%
\expandafter\let\csname XINT_cshtb_.\endcsname\xint_bye
\def\XINT_htb_cuz #1{%
\def\XINT_htb_cuz ##1##2##3##4%
   {\expandafter#1\the\numexpr##1##2##3##4\relax}%
}\XINT_htb_cuz { }%
\def\xintCHexToBin {\romannumeral0\xintchextobin }%
\def\xintchextobin #1%
{%
    \expandafter\XINT_chtb_checkin\romannumeral`&&@#1.........\xint_bye
    \iffalse{\fi}%
}%
\def\XINT_chtb_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_chtb_N
        -{\XINT_chtb_main #1}%
     \krof
}%
\def\XINT_chtb_N {\expandafter-\romannumeral0\XINT_chtb_main }%
\def\XINT_chtb_main {\expanded{ \iffalse}\fi\XINT_htb_loop}%
\def\xintOctToHex {\romannumeral0\xintocttohex }%
\def\xintocttohex #1%
{%
    \expandafter\XINT_bth_checkin
    \romannumeral0\expandafter\XINT_otb_checkin\romannumeral`&&@#1.........\xint_bye
    \iffalse{\fi}%
    \xint:
}%
\def\xintBinToHex {\romannumeral0\xintbintohex }%
\def\xintbintohex #1%
{%
    \expandafter\XINT_bth_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_bth_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_bth_N
        -{\XINT_bth_main #1}%
     \krof
}%
\def\XINT_bth_N {\expandafter-\romannumeral0\XINT_bth_main }%
\def\XINT_bth_main #1\xint:
{%
    \expanded{ \expandafter\XINT_bth_loop
    \romannumeral0\XINT_zeroes_foriv
       #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
    #1%
    nonenone\xint_bye}%
}%
\def\XINT_bth_loop #1#2#3#4#5#6#7#8%
{%
    \csname XINT_csbth_#1#2#3#4\endcsname
    \csname XINT_csbth_#5#6#7#8\endcsname
    \XINT_bth_loop
}%
\let\XINT_csbth_none\xint_bye
\def\xintOctToBin {\romannumeral0\xintocttobin }%
\def\xintocttobin #1%
{%
    \expandafter\XINT_otb_checkin\romannumeral`&&@#1.........\xint_bye
    \iffalse{\fi}%
}%
\def\XINT_otb_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_otb_N
        -{\XINT_otb_main #1}%
     \krof
}%
\def\XINT_otb_N {\expandafter-\romannumeral0\XINT_otb_main }%
\def\XINT_otb_main
{%
    \expandafter\XINT_otb_cuz
    \expanded{\iffalse}\fi \XINT_otb_loop
}%
\def\XINT_otb_loop #1#2#3#4#5#6#7#8#9%
{%
     \csname XINT_csotb_#1\endcsname
     \csname XINT_csotb_#2\endcsname
     \csname XINT_csotb_#3\endcsname
     \csname XINT_csotb_#4\endcsname
     \csname XINT_csotb_#5\endcsname
     \csname XINT_csotb_#6\endcsname
     \csname XINT_csotb_#7\endcsname
     \csname XINT_csotb_#8\endcsname
     \csname XINT_csotb_#9\endcsname
     \XINT_otb_loop
}%
\expandafter\let\csname XINT_csotb_.\endcsname\xint_bye
\def\XINT_otb_cuz #1{%
\def\XINT_otb_cuz ##1##2##3%
   {\expandafter#1\the\numexpr##1##2##3\relax}%
}\XINT_otb_cuz { }%
\def\xintCOctToBin {\romannumeral0\xintcocttobin }%
\def\xintcocttobin #1%
{%
    \expandafter\XINT_cotb_checkin\romannumeral`&&@#1.........\xint_bye
    \iffalse{\fi}%
}%
\def\XINT_cotb_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_cotb_N
        -{\XINT_cotb_main #1}%
     \krof
}%
\def\XINT_cotb_N {\expandafter-\romannumeral0\XINT_cotb_main }%
\def\XINT_cotb_main {\expanded{ \iffalse}\fi\XINT_otb_loop}%
\def\xintBinToOct {\romannumeral0\xintbintooct }%
\def\xintbintooct #1%
{%
    \expandafter\XINT_bto_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_bto_checkin #1%
{%
    \xint_UDsignfork
       #1\XINT_bto_N
        -{\XINT_bto_main #1}%
     \krof
}%
\def\XINT_bto_N {\expandafter-\romannumeral0\XINT_bto_main }%
\def\XINT_bto_main #1\xint:
{%
    \expanded{ \expandafter\XINT_bto_loop
    \romannumeral0\XINT_zeroes_foriii
       #1\R{0\R}{00\R}\R{0\R}{00\R}\R{0\R}{00\R}\R\W
    #1%
    endendend\xint_bye}%
}%
\def\XINT_bto_loop #1#2#3#4#5#6#7#8#9%
{%
    \csname XINT_csbto_#1#2#3\endcsname
    \csname XINT_csbto_#4#5#6\endcsname
    \csname XINT_csbto_#7#8#9\endcsname
    \XINT_bto_loop
}%
\let\XINT_csbto_end\xint_bye
\XINTrestorecatcodesendinput%
\endinput
%%
%% End of file `xintbinhex.sty'.
