<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%%
%% This is file `babel-ca-islamic.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% babel.dtx  (with options: `ca-islamic')
%% 
%%
%% Copyright (C) 2012-2025 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%%           any individual authors listed elsewhere in this file.
%% All rights reserved.
%%
%%
%% This file is part of the Babel system.
%% --------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%   http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% The Current Maintainer of this work is Javier Bezos.
%%
%% The list of derived (unpacked) files belonging to the distribution
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension |.ins|) which are part of the distribution.
%%
\ExplSyntaxOn
\def\bbl@fpmod#1#2{(#1-#2*floor(#1/#2))}
\def\bbl@cs@gregleap#1{%
  (\bbl@fpmod{#1}{4} == 0) &amp;&amp;
    (!((\bbl@fpmod{#1}{100} == 0) &amp;&amp; (\bbl@fpmod{#1}{400} != 0)))}
\def\bbl@cs@jd#1#2#3{% year, month, day
  \fp_eval:n{ 1721424.5   + (365 * (#1 - 1)) +
    floor((#1 - 1) / 4)   + (-floor((#1 - 1) / 100)) +
    floor((#1 - 1) / 400) + floor((((367 * #2) - 362) / 12) +
    ((#2 &lt;= 2) ? 0 : (\bbl@cs@gregleap{#1} ? -1 : -2)) + #3) }}
\def\bbl@ca@islamic#1-#2-#3\@@#4#5#6{}
\def\bbl@cs@isltojd#1#2#3{ % year, month, day
  ((#3 + ceil(29.5 * (#2 - 1)) +
  (#1 - 1) * 354 + floor((3 + (11 * #1)) / 30) +
  1948439.5) - 1) }
\@namedef{bbl@ca@islamic-civil++}{\bbl@ca@islamicvl@x{+2}}
\@namedef{bbl@ca@islamic-civil+}{\bbl@ca@islamicvl@x{+1}}
\@namedef{bbl@ca@islamic-civil}{\bbl@ca@islamicvl@x{}}
\@namedef{bbl@ca@islamic-civil-}{\bbl@ca@islamicvl@x{-1}}
\@namedef{bbl@ca@islamic-civil--}{\bbl@ca@islamicvl@x{-2}}
\def\bbl@ca@islamicvl@x#1#2-#3-#4\@@#5#6#7{%
  \edef\bbl@tempa{%
    \fp_eval:n{ floor(\bbl@cs@jd{#2}{#3}{#4})+0.5 #1}}%
  \edef#5{%
    \fp_eval:n{ floor(((30*(\bbl@tempa-1948439.5)) + 10646)/10631) }}%
  \edef#6{\fp_eval:n{
    min(12,ceil((\bbl@tempa-(29+\bbl@cs@isltojd{#5}{1}{1}))/29.5)+1) }}%
  \edef#7{\fp_eval:n{ \bbl@tempa - \bbl@cs@isltojd{#5}{#6}{1} + 1} }}
\def\bbl@cs@umalqura@data{56660, 56690,56719,56749,56778,56808,%
  56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,%
  57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,%
  57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,%
  57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,%
  58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,%
  58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,%
  58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,%
  58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,%
  59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,%
  59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,%
  59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,%
  60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,%
  60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,%
  60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,%
  60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,%
  61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,%
  61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,%
  61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,%
  62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,%
  62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,%
  62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,%
  63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,%
  63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,%
  63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,%
  63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,%
  64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,%
  64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,%
  64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,%
  65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,%
  65401,65431,65460,65490,65520}
\@namedef{bbl@ca@islamic-umalqura+}{\bbl@ca@islamcuqr@x{+1}}
\@namedef{bbl@ca@islamic-umalqura}{\bbl@ca@islamcuqr@x{}}
\@namedef{bbl@ca@islamic-umalqura-}{\bbl@ca@islamcuqr@x{-1}}
\def\bbl@ca@islamcuqr@x#1#2-#3-#4\@@#5#6#7{%
  \ifnum#2&gt;2014 \ifnum#2&lt;2038
    \bbl@afterfi\expandafter\@gobble
  \fi\fi
    {\bbl@error{year-out-range}{2014-2038}{}{}}%
  \edef\bbl@tempd{\fp_eval:n{ % (Julian) day
    \bbl@cs@jd{#2}{#3}{#4} + 0.5 - 2400000 #1}}%
  \count@\@ne
  \bbl@foreach\bbl@cs@umalqura@data{%
    \advance\count@\@ne
    \ifnum##1&gt;\bbl@tempd\else
      \edef\bbl@tempe{\the\count@}%
      \edef\bbl@tempb{##1}%
    \fi}%
  \edef\bbl@templ{\fp_eval:n{ \bbl@tempe + 16260 + 949 }}% month~lunar
  \edef\bbl@tempa{\fp_eval:n{ floor((\bbl@templ - 1 ) / 12) }}% annus
  \edef#5{\fp_eval:n{ \bbl@tempa + 1  }}%
  \edef#6{\fp_eval:n{ \bbl@templ - (12 * \bbl@tempa) }}%
  \edef#7{\fp_eval:n{ \bbl@tempd - \bbl@tempb + 1 }}}
\ExplSyntaxOff
\bbl@add\bbl@precalendar{%
  \bbl@replace\bbl@ld@calendar{-civil}{}%
  \bbl@replace\bbl@ld@calendar{-umalqura}{}%
  \bbl@replace\bbl@ld@calendar{+}{}%
  \bbl@replace\bbl@ld@calendar{-}{}}
\endinput
%%
%% End of file `babel-ca-islamic.tex'.
</pre></body></html>