% This file is part of babel. For further details see:
% https://www.ctan.org/pkg/babel
\ifx\BabelBeforeIni\undefined
  \PackageError{babel}%
    {This file is a component of babel and cannot\MessageBreak
     be loaded directly. I'll stop immediately}%
    {Just use babel as documented.}%
  \stop
\fi
\BabelBeforeIni{zh}{%
}

\ifcase\bbl@engine\else % xe/lua

% Shared with zh-*.ini files
\@namedef{bbl@cntr@date.sexagenary@\CurrentOption}#1{%
  \ifcase\fpeval{\bbl@fpmod{(#1-4)}{60}} 甲子\or 乙丑\or
    丙寅\or 丁卯\or 戊辰\or 己巳\or 庚午\or 辛未\or 壬申\or
    癸酉\or 甲戌\or 乙亥\or 丙子\or 丁丑\or 戊寅\or 己卯\or
    庚辰\or 辛巳\or 壬午\or 癸未\or 甲申\or 乙酉\or 丙戌\or
    丁亥\or 戊子\or 己丑\or 庚寅\or 辛卯\or 壬辰\or 癸巳\or
    甲午\or 乙未\or 丙申\or 丁酉\or 戊戌\or 己亥\or 庚子\or
    辛丑\or 壬寅\or 癸卯\or 甲辰\or 乙巳\or 丙午\or 丁未\or
    戊申\or 己酉\or 庚戌\or 辛亥\or 壬子\or 癸丑\or 甲寅\or
    乙卯\or 丙辰\or 丁巳\or 戊午\or 己未\or 庚申\or 辛酉\or
    壬戌\or 癸亥\fi}

\fi

\ifcase\bbl@engine\or\or % xe

\IfBabelIntercharT{linebreak.basic}{%
  \bbl@input@classes
  \bbl@carg\bbl@add{extras\CurrentOption}%
    {\babel@savevariable\XeTeXinterchartokenstate
     \XeTeXinterchartokenstate\@ne}%
%
  \def\BabelCJKGlue{\hskip0pt plus 0.1em\relax}%
  \def\BabelCJKSpace{\hskip0.2em plus 0.2em minus 0.1em\relax}%
% 
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {default}{cjkideogram}%
    {\BabelCJKSpace}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {default}{cjkleftpunctuation}%
    {\BabelCJKSpace}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {default}{cjkrightpunctuation}%
    {\nobreak\BabelCJKSpace}%
%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkideogram}{default}%
    {\BabelCJKSpace}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkleftpunctuation}{default}%
    {\nobreak\BabelCJKSpace}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkrightpunctuation}{default}%
    {\BabelCJKSpace}%
%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkideogram}{cjkideogram}%
    {\BabelCJKGlue}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkideogram}{cjkleftpunctuation}%
    {\BabelCJKGlue}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkideogram}{cjkrightpunctuation}%
    {\nobreak\BabelCJKGlue}%
%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkleftpunctuation}{cjkideogram}%
    {\nobreak\BabelCJKGlue}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkleftpunctuation}{cjkleftpunctuation}%
    {\nobreak\BabelCJKGlue}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkleftpunctuation}{cjkrightpunctuation}%
    {\BabelCJKGlue}%
%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkrightpunctuation}{cjkideogram}%
    {\BabelCJKGlue}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkrightpunctuation}{cjkleftpunctuation}%
    {\BabelCJKGlue}%
  \babelinterchar[label=linebreak.basic]{\CurrentOption}%
    {cjkrightpunctuation}{cjkrightpunctuation}%
    {\nobreak\BabelCJKGlue}%
}
    
\fi

\endinput