@hebcal/core 3.50.4 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v3.50.4 */
1
+ /*! @hebcal/core v4.0.1 */
2
2
  'use strict';
3
3
 
4
4
  /*
@@ -434,7 +434,7 @@ class Locale {
434
434
  /**
435
435
  * Register locale translations.
436
436
  * @param {string} locale Locale name (i.e.: `'he'`, `'fr'`)
437
- * @param {LocaleDate} data parsed data from a `.po` file.
437
+ * @param {LocaleData} data parsed data from a `.po` file.
438
438
  */
439
439
  static addLocale(locale, data) {
440
440
  if (typeof data.contexts !== 'object' || typeof data.contexts[''] !== 'object') {
@@ -597,6 +597,17 @@ const EPOCH = -1373428;
597
597
  // Avg year length in the cycle (19 solar years with 235 lunar months)
598
598
  const AVG_HEBYEAR_DAYS = 365.24682220597794;
599
599
 
600
+ /**
601
+ * @private
602
+ * @param {any} n
603
+ * @param {string} name
604
+ */
605
+ function assertNumber(n, name) {
606
+ if (typeof n !== 'number' || isNaN(n)) {
607
+ throw new TypeError(`invalid parameter '${name}' not a number: ${n}`);
608
+ }
609
+ }
610
+
600
611
  /**
601
612
  * Converts Hebrew date to R.D. (Rata Die) fixed days.
602
613
  * R.D. 1 is the imaginary date Monday, January 1, 1 on the Gregorian
@@ -608,6 +619,9 @@ const AVG_HEBYEAR_DAYS = 365.24682220597794;
608
619
  * @return {number}
609
620
  */
610
621
  function hebrew2abs(year, month, day) {
622
+ assertNumber(year, 'year');
623
+ assertNumber(month, 'month');
624
+ assertNumber(day, 'day');
611
625
  if (year < 1) {
612
626
  throw new RangeError(`hebrew2abs: invalid year ${year}`);
613
627
  }
@@ -643,9 +657,7 @@ function newYear(year) {
643
657
  * @return {SimpleHebrewDate}
644
658
  */
645
659
  function abs2hebrew(abs) {
646
- if (typeof abs !== 'number' || isNaN(abs)) {
647
- throw new TypeError(`invalid parameter to abs2hebrew ${abs}`);
648
- }
660
+ assertNumber(abs, 'abs');
649
661
  abs = Math.trunc(abs);
650
662
  if (abs <= EPOCH) {
651
663
  throw new RangeError(`abs2hebrew: ${abs} is before epoch`);
@@ -720,7 +732,9 @@ function daysInMonth(month, year) {
720
732
  * @return {string}
721
733
  */
722
734
  function getMonthName(month, year) {
723
- if (typeof month !== 'number' || isNaN(month) || month < 1 || month > 14) {
735
+ assertNumber(month, 'month');
736
+ assertNumber(year, 'year');
737
+ if (month < 1 || month > 14) {
724
738
  throw new TypeError(`bad month argument ${month}`);
725
739
  }
726
740
  return monthNames[+isLeapYear(year)][month];
@@ -1703,6 +1717,9 @@ const flags = {
1703
1717
  /** Nach Yomi */
1704
1718
  NACH_YOMI: 0x2000000
1705
1719
  };
1720
+ const flagToCategory = [[flags.MAJOR_FAST, 'holiday', 'major', 'fast'], [flags.CHANUKAH_CANDLES, 'holiday', 'major'], [flags.HEBREW_DATE, 'hebdate'], [flags.MINOR_FAST, 'holiday', 'fast'], [flags.MINOR_HOLIDAY, 'holiday', 'minor'], [flags.MODERN_HOLIDAY, 'holiday', 'modern'], [flags.MOLAD, 'molad'], [flags.OMER_COUNT, 'omer'], [flags.PARSHA_HASHAVUA, 'parashat'],
1721
+ // backwards-compat
1722
+ [flags.ROSH_CHODESH, 'roshchodesh'], [flags.SHABBAT_MEVARCHIM, 'mevarchim'], [flags.SPECIAL_SHABBAT, 'holiday', 'shabbat'], [flags.USER_EVENT, 'user']];
1706
1723
 
1707
1724
  /** Represents an Event with a title, date, and flags */
1708
1725
  class Event {
@@ -1850,8 +1867,21 @@ class Event {
1850
1867
  }
1851
1868
  return ev;
1852
1869
  }
1870
+ /**
1871
+ * Returns a list of event categories
1872
+ * @return {string[]}
1873
+ */
1874
+ getCategories() {
1875
+ const mask = this.getFlags();
1876
+ for (let i = 0; i < flagToCategory.length; i++) {
1877
+ const attrs = flagToCategory[i];
1878
+ if (mask & attrs[0]) {
1879
+ return attrs.slice(1);
1880
+ }
1881
+ }
1882
+ return ['unknown'];
1883
+ }
1853
1884
  }
1854
- const KEYCAP_DIGITS = ['0️⃣', '1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣', '7️⃣', '8️⃣', '9️⃣'];
1855
1885
 
1856
1886
  /** Daily Hebrew date ("11th of Sivan, 5780") */
1857
1887
  class HebrewDateEvent extends Event {
@@ -3101,6 +3131,22 @@ class TimedEvent extends Event {
3101
3131
  renderBrief(locale) {
3102
3132
  return Locale.gettext(this.getDesc(), locale);
3103
3133
  }
3134
+ /** @return {string[]} */
3135
+ getCategories() {
3136
+ const desc = this.getDesc();
3137
+ switch (desc) {
3138
+ // LIGHT_CANDLES or LIGHT_CANDLES_TZEIS
3139
+ case 'Candle lighting':
3140
+ return ['candles'];
3141
+ // YOM_TOV_ENDS
3142
+ case 'Havdalah':
3143
+ return ['havdalah'];
3144
+ // flags.MINOR_FAST or flags.MAJOR_FAST
3145
+ case 'Fast begins':
3146
+ case 'Fast ends':
3147
+ return ['zmanim', 'fast'];
3148
+ }
3149
+ }
3104
3150
  }
3105
3151
 
3106
3152
  /** Havdalah after Shabbat or holiday */
@@ -3525,173 +3571,6 @@ function getTodayIsHe(omer) {
3525
3571
  return str.normalize();
3526
3572
  }
3527
3573
 
3528
- /* eslint-disable no-multi-spaces */
3529
- const osdate = new Date(1923, 8, 11);
3530
- const osday = greg2abs(osdate);
3531
- const nsday = greg2abs(new Date(1975, 5, 24));
3532
- const shas0 = [['Berachot', 64], ['Shabbat', 157], ['Eruvin', 105], ['Pesachim', 121], ['Shekalim', 22], ['Yoma', 88], ['Sukkah', 56], ['Beitzah', 40], ['Rosh Hashana', 35], ['Taanit', 31], ['Megillah', 32], ['Moed Katan', 29], ['Chagigah', 27], ['Yevamot', 122], ['Ketubot', 112], ['Nedarim', 91], ['Nazir', 66], ['Sotah', 49], ['Gitin', 90], ['Kiddushin', 82], ['Baba Kamma', 119], ['Baba Metzia', 119], ['Baba Batra', 176], ['Sanhedrin', 113], ['Makkot', 24], ['Shevuot', 49], ['Avodah Zarah', 76], ['Horayot', 14], ['Zevachim', 120], ['Menachot', 110], ['Chullin', 142], ['Bechorot', 61], ['Arachin', 34], ['Temurah', 34], ['Keritot', 28], ['Meilah', 22], ['Kinnim', 4], ['Tamid', 9], ['Midot', 5], ['Niddah', 73]].map(m => {
3533
- return {
3534
- name: m[0],
3535
- blatt: m[1]
3536
- };
3537
- });
3538
-
3539
- /**
3540
- * Returns the Daf Yomi for given date
3541
- */
3542
- class DafYomi {
3543
- /**
3544
- * Initializes a daf yomi instance
3545
- * @param {Date|HDate|number} date Gregorian or Hebrew date
3546
- */
3547
- constructor(date) {
3548
- const cday = typeof date === 'number' && !isNaN(date) ? date : isDate(date) ? greg2abs(date) : HDate.isHDate(date) ? date.abs() : throwTypeError(`non-date given to dafyomi: ${date}`);
3549
- if (cday < osday) {
3550
- throw new RangeError(`Date ${date} too early; Daf Yomi cycle began on ${osdate}`);
3551
- }
3552
- let cno;
3553
- let dno;
3554
- if (cday >= nsday) {
3555
- // "new" cycle
3556
- cno = 8 + Math.floor((cday - nsday) / 2711);
3557
- dno = (cday - nsday) % 2711;
3558
- } else {
3559
- // old cycle
3560
- cno = 1 + Math.floor((cday - osday) / 2702);
3561
- dno = (cday - osday) % 2702;
3562
- }
3563
-
3564
- // Find the daf taking note that the cycle changed slightly after cycle 7.
3565
-
3566
- let total = 0;
3567
- let blatt = 0;
3568
- let count = -1;
3569
-
3570
- // Fix Shekalim for old cycles
3571
- const shortShekalim = cno <= 7;
3572
- const shas = shortShekalim ? shas0.slice() : shas0;
3573
- if (shortShekalim) {
3574
- shas[4] = {
3575
- name: 'Shekalim',
3576
- blatt: 13
3577
- };
3578
- }
3579
-
3580
- // Find the daf
3581
- let j = 0;
3582
- const dafcnt = 40;
3583
- while (j < dafcnt) {
3584
- count++;
3585
- total = total + shas[j].blatt - 1;
3586
- if (dno < total) {
3587
- blatt = shas[j].blatt + 1 - (total - dno);
3588
- // fiddle with the weird ones near the end
3589
- switch (count) {
3590
- case 36:
3591
- blatt = blatt + 21;
3592
- break;
3593
- case 37:
3594
- blatt = blatt + 24;
3595
- break;
3596
- case 38:
3597
- blatt = blatt + 32;
3598
- break;
3599
- }
3600
- // Bailout
3601
- j = 1 + dafcnt;
3602
- }
3603
- j++;
3604
- }
3605
- this.name = shas[count].name;
3606
- this.blatt = blatt;
3607
- }
3608
- /**
3609
- * @return {number}
3610
- */
3611
- getBlatt() {
3612
- return this.blatt;
3613
- }
3614
- /**
3615
- * @return {string}
3616
- */
3617
- getName() {
3618
- return this.name;
3619
- }
3620
- /**
3621
- * Formats (with translation) the dafyomi result as a string like "Pesachim 34"
3622
- * @param {string} [locale] Optional locale name (defaults to active locale).
3623
- * @return {string}
3624
- */
3625
- render(locale) {
3626
- locale = locale || Locale.getLocaleName();
3627
- if (typeof locale === 'string') {
3628
- locale = locale.toLowerCase();
3629
- }
3630
- if (locale === 'he' || locale === 'he-x-nonikud') {
3631
- return Locale.gettext(this.name, locale) + ' דף ' + gematriya(this.blatt);
3632
- }
3633
- return Locale.gettext(this.name, locale) + ' ' + this.blatt;
3634
- }
3635
- }
3636
- const dafYomiSefaria = {
3637
- 'Berachot': 'Berakhot',
3638
- 'Rosh Hashana': 'Rosh Hashanah',
3639
- 'Gitin': 'Gittin',
3640
- 'Baba Kamma': 'Bava Kamma',
3641
- 'Baba Metzia': 'Bava Metzia',
3642
- 'Baba Batra': 'Bava Batra',
3643
- 'Bechorot': 'Bekhorot',
3644
- 'Arachin': 'Arakhin',
3645
- 'Midot': 'Middot',
3646
- 'Shekalim': 'Jerusalem_Talmud_Shekalim'
3647
- };
3648
-
3649
- /**
3650
- * Event wrapper around a DafYomi instance
3651
- */
3652
- class DafYomiEvent extends Event {
3653
- /**
3654
- * @param {HDate} date
3655
- */
3656
- constructor(date) {
3657
- const daf = new DafYomi(date.greg());
3658
- super(date, daf.render('en'), flags.DAF_YOMI);
3659
- this.daf = daf;
3660
- }
3661
- /**
3662
- * Returns Daf Yomi name including the 'Daf Yomi: ' prefix (e.g. "Daf Yomi: Pesachim 107").
3663
- * @param {string} [locale] Optional locale name (defaults to active locale).
3664
- * @return {string}
3665
- */
3666
- render(locale) {
3667
- return Locale.gettext('Daf Yomi', locale) + ': ' + this.daf.render(locale);
3668
- }
3669
- /**
3670
- * Returns Daf Yomi name without the 'Daf Yomi: ' prefix (e.g. "Pesachim 107").
3671
- * @param {string} [locale] Optional locale name (defaults to active locale).
3672
- * @return {string}
3673
- */
3674
- renderBrief(locale) {
3675
- return this.daf.render(locale);
3676
- }
3677
- /**
3678
- * Returns a link to sefaria.org or dafyomi.org
3679
- * @return {string}
3680
- */
3681
- url() {
3682
- const daf = this.daf;
3683
- const tractate = daf.getName();
3684
- const blatt = daf.getBlatt();
3685
- if (tractate == 'Kinnim' || tractate == 'Midot') {
3686
- return `https://www.dafyomi.org/index.php?masechta=meilah&daf=${blatt}a`;
3687
- } else {
3688
- const name0 = dafYomiSefaria[tractate] || tractate;
3689
- const name = name0.replace(/ /g, '_');
3690
- return `https://www.sefaria.org/${name}.${blatt}a?lang=bi`;
3691
- }
3692
- }
3693
- }
3694
-
3695
3574
  /* eslint-disable new-cap */
3696
3575
  const INCOMPLETE = 0;
3697
3576
  const REGULAR = 1;
@@ -4121,10 +4000,10 @@ class ParshaEvent extends Event {
4121
4000
  }
4122
4001
  }
4123
4002
 
4124
- const SUN$2 = 0;
4003
+ const SUN$1 = 0;
4125
4004
  const TUE$1 = 2;
4126
4005
  const FRI$2 = 5;
4127
- const SAT$3 = 6;
4006
+ const SAT$2 = 6;
4128
4007
  const NISAN$3 = months.NISAN;
4129
4008
  const IYYAR = months.IYYAR;
4130
4009
 
@@ -4146,7 +4025,7 @@ function dateYomHaShoah(year) {
4146
4025
  let nisan27dt = new HDate(27, NISAN$3, year);
4147
4026
  if (nisan27dt.getDay() === FRI$2) {
4148
4027
  nisan27dt = new HDate(26, NISAN$3, year);
4149
- } else if (nisan27dt.getDay() === SUN$2) {
4028
+ } else if (nisan27dt.getDay() === SUN$1) {
4150
4029
  nisan27dt = new HDate(28, NISAN$3, year);
4151
4030
  }
4152
4031
  return nisan27dt;
@@ -4165,9 +4044,9 @@ function dateYomHaZikaron(year) {
4165
4044
  let day;
4166
4045
  const pesach = new HDate(15, NISAN$3, year);
4167
4046
  const pdow = pesach.getDay();
4168
- if (pdow === SUN$2) {
4047
+ if (pdow === SUN$1) {
4169
4048
  day = 2;
4170
- } else if (pdow === SAT$3) {
4049
+ } else if (pdow === SAT$2) {
4171
4050
  day = 3;
4172
4051
  } else if (year < 5764) {
4173
4052
  day = 4;
@@ -4653,6 +4532,29 @@ class HolidayEvent extends Event {
4653
4532
  return '✡️';
4654
4533
  }
4655
4534
  }
4535
+ /** @return {string[]} */
4536
+ getCategories() {
4537
+ const cats = super.getCategories();
4538
+ if (cats[0] !== 'unknown') {
4539
+ return cats;
4540
+ }
4541
+ const desc = this.getDesc();
4542
+ // Don't depend on flags.MINOR_HOLIDAY always being set
4543
+ switch (desc) {
4544
+ case 'Lag BaOmer':
4545
+ case 'Leil Selichot':
4546
+ case 'Pesach Sheni':
4547
+ case 'Erev Purim':
4548
+ case 'Purim Katan':
4549
+ case 'Shushan Purim':
4550
+ case 'Tu B\'Av':
4551
+ case 'Tu BiShvat':
4552
+ case 'Rosh Hashana LaBehemot':
4553
+ return ['holiday', 'minor'];
4554
+ default:
4555
+ return ['holiday', 'major'];
4556
+ }
4557
+ }
4656
4558
  }
4657
4559
  const roshChodeshStr = 'Rosh Chodesh';
4658
4560
 
@@ -4800,13 +4702,13 @@ class YomKippurKatanEvent extends HolidayEvent {
4800
4702
  return undefined;
4801
4703
  }
4802
4704
  }
4803
- const SUN$1 = 0;
4705
+ const SUN = 0;
4804
4706
  // const MON = 1;
4805
4707
  const TUE = 2;
4806
4708
  // const WED = 3;
4807
4709
  const THU = 4;
4808
4710
  const FRI$1 = 5;
4809
- const SAT$2 = 6;
4711
+ const SAT$1 = 6;
4810
4712
  const NISAN$2 = months.NISAN;
4811
4713
  // const IYYAR = months.IYYAR;
4812
4714
  // const SIVAN = months.SIVAN;
@@ -4891,6 +4793,7 @@ const emojiIsraelFlag = {
4891
4793
  };
4892
4794
  const chanukahEmoji = '🕎';
4893
4795
  const yearCache = Object.create(null);
4796
+ const KEYCAP_DIGITS = ['0️⃣', '1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣', '7️⃣', '8️⃣', '9️⃣'];
4894
4797
 
4895
4798
  /**
4896
4799
  * Lower-level holidays interface, which returns a `Map` of `Event`s indexed by
@@ -4944,7 +4847,7 @@ function getHolidaysForYear_(year) {
4944
4847
  // Variable date holidays
4945
4848
  add(new HolidayEvent(new HDate(3 + (RH.getDay() == THU), TISHREI$1, year), 'Tzom Gedaliah', MINOR_FAST$1));
4946
4849
  // first SAT after RH
4947
- add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, 7 + RH.abs())), 'Shabbat Shuva', SPECIAL_SHABBAT$1));
4850
+ add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, 7 + RH.abs())), 'Shabbat Shuva', SPECIAL_SHABBAT$1));
4948
4851
  const rchTevet = HDate.shortKislev(year) ? new HDate(1, TEVET$1, year) : new HDate(30, KISLEV$1, year);
4949
4852
  add(new HolidayEvent(rchTevet, 'Chag HaBanot', MINOR_HOLIDAY$1));
4950
4853
  // yes, we know Kislev 30-32 are wrong
@@ -4962,14 +4865,14 @@ function getHolidaysForYear_(year) {
4962
4865
  }));
4963
4866
  add(new AsaraBTevetEvent(new HDate(10, TEVET$1, year), 'Asara B\'Tevet', MINOR_FAST$1));
4964
4867
  const pesachAbs = pesach.abs();
4965
- add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, pesachAbs - 43)), 'Shabbat Shekalim', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, pesachAbs - 30)), 'Shabbat Zachor', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(pesachAbs - (pesach.getDay() == TUE ? 33 : 31)), 'Ta\'anit Esther', MINOR_FAST$1));
4966
- add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, pesachAbs - 14) - 7), 'Shabbat Parah', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, pesachAbs - 14)), 'Shabbat HaChodesh', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, pesachAbs - 1)), 'Shabbat HaGadol', SPECIAL_SHABBAT$1), new HolidayEvent(
4868
+ add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 43)), 'Shabbat Shekalim', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 30)), 'Shabbat Zachor', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(pesachAbs - (pesach.getDay() == TUE ? 33 : 31)), 'Ta\'anit Esther', MINOR_FAST$1));
4869
+ add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 14) - 7), 'Shabbat Parah', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 14)), 'Shabbat HaChodesh', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 1)), 'Shabbat HaGadol', SPECIAL_SHABBAT$1), new HolidayEvent(
4967
4870
  // if the fast falls on Shabbat, move to Thursday
4968
- pesach.prev().getDay() == SAT$2 ? pesach.onOrBefore(THU) : new HDate(14, NISAN$2, year), 'Ta\'anit Bechorot', MINOR_FAST$1));
4969
- add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, new HDate(1, TISHREI$1, year + 1).abs() - 4)), 'Leil Selichot', MINOR_HOLIDAY$1, {
4871
+ pesach.prev().getDay() == SAT$1 ? pesach.onOrBefore(THU) : new HDate(14, NISAN$2, year), 'Ta\'anit Bechorot', MINOR_FAST$1));
4872
+ add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, new HDate(1, TISHREI$1, year + 1).abs() - 4)), 'Leil Selichot', MINOR_HOLIDAY$1, {
4970
4873
  emoji: '🕍'
4971
4874
  }));
4972
- if (pesach.getDay() == SUN$1) {
4875
+ if (pesach.getDay() == SUN) {
4973
4876
  add(new HolidayEvent(new HDate(16, months.ADAR_II, year), 'Purim Meshulash', MINOR_HOLIDAY$1));
4974
4877
  }
4975
4878
  if (HDate.isLeapYear(year)) {
@@ -4992,11 +4895,11 @@ function getHolidaysForYear_(year) {
4992
4895
  if (year >= h.firstYear) {
4993
4896
  let hd = new HDate(h.dd, h.mm, year);
4994
4897
  const dow = hd.getDay();
4995
- if (h.friSatMovetoThu && (dow === FRI$1 || dow === SAT$2)) {
4898
+ if (h.friSatMovetoThu && (dow === FRI$1 || dow === SAT$1)) {
4996
4899
  hd = hd.onOrBefore(THU);
4997
4900
  } else if (h.friPostponeToSun && dow === FRI$1) {
4998
4901
  hd = new HDate(hd.abs() + 2);
4999
- } else if (h.satPostponeToSun && dow === SAT$2) {
4902
+ } else if (h.satPostponeToSun && dow === SAT$1) {
5000
4903
  hd = hd.next();
5001
4904
  }
5002
4905
  const mask = h.chul ? MODERN_HOLIDAY$1 : MODERN_HOLIDAY$1 | flags.IL_ONLY;
@@ -5009,7 +4912,7 @@ function getHolidaysForYear_(year) {
5009
4912
  });
5010
4913
  let tamuz17 = new HDate(17, TAMUZ, year);
5011
4914
  let tamuz17attrs;
5012
- if (tamuz17.getDay() == SAT$2) {
4915
+ if (tamuz17.getDay() == SAT$1) {
5013
4916
  tamuz17 = new HDate(18, TAMUZ, year);
5014
4917
  tamuz17attrs = {
5015
4918
  observed: true
@@ -5019,7 +4922,7 @@ function getHolidaysForYear_(year) {
5019
4922
  let av9dt = new HDate(9, AV, year);
5020
4923
  let av9title = 'Tish\'a B\'Av';
5021
4924
  let av9attrs;
5022
- if (av9dt.getDay() == SAT$2) {
4925
+ if (av9dt.getDay() == SAT$1) {
5023
4926
  av9dt = av9dt.next();
5024
4927
  av9attrs = {
5025
4928
  observed: true
@@ -5027,7 +4930,7 @@ function getHolidaysForYear_(year) {
5027
4930
  av9title += ' (observed)';
5028
4931
  }
5029
4932
  const av9abs = av9dt.abs();
5030
- add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, av9abs)), 'Shabbat Chazon', SPECIAL_SHABBAT$1), new HolidayEvent(av9dt.prev(), 'Erev Tish\'a B\'Av', EREV$1 | MAJOR_FAST$1, av9attrs), new HolidayEvent(av9dt, av9title, MAJOR_FAST$1, av9attrs), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$2, av9abs + 7)), 'Shabbat Nachamu', SPECIAL_SHABBAT$1));
4933
+ add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, av9abs)), 'Shabbat Chazon', SPECIAL_SHABBAT$1), new HolidayEvent(av9dt.prev(), 'Erev Tish\'a B\'Av', EREV$1 | MAJOR_FAST$1, av9attrs), new HolidayEvent(av9dt, av9title, MAJOR_FAST$1, av9attrs), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, av9abs + 7)), 'Shabbat Nachamu', SPECIAL_SHABBAT$1));
5031
4934
  const monthsInYear = HDate.monthsInYear(year);
5032
4935
  for (let month = 1; month <= monthsInYear; month++) {
5033
4936
  const monthName = HDate.getMonthName(month, year);
@@ -5043,7 +4946,7 @@ function getHolidaysForYear_(year) {
5043
4946
 
5044
4947
  // Don't worry about month overrun; will get "Nisan" for month=14
5045
4948
  const nextMonthName = HDate.getMonthName(month + 1, year);
5046
- add(new MevarchimChodeshEvent(new HDate(29, month, year).onOrBefore(SAT$2), nextMonthName));
4949
+ add(new MevarchimChodeshEvent(new HDate(29, month, year).onOrBefore(SAT$1), nextMonthName));
5047
4950
  }
5048
4951
 
5049
4952
  // Begin: Yom Kippur Katan
@@ -5058,7 +4961,7 @@ function getHolidaysForYear_(year) {
5058
4961
  }
5059
4962
  let ykk = new HDate(29, month, year);
5060
4963
  const dow = ykk.getDay();
5061
- if (dow === FRI$1 || dow === SAT$2) {
4964
+ if (dow === FRI$1 || dow === SAT$1) {
5062
4965
  ykk = ykk.onOrBefore(THU);
5063
4966
  }
5064
4967
  const nextMonthName = HDate.getMonthName(nextMonth, year);
@@ -5108,422 +5011,41 @@ function getBirkatHaChama(year) {
5108
5011
  return 0;
5109
5012
  }
5110
5013
 
5111
- var mishnayot = [{k:"Berakhot",v:[5,8,6,7,5,8,5,8,5]},{k:"Peah",v:[6,8,8,11,8,11,8,9]},{k:"Demai",v:[4,5,6,7,11,12,8]},{k:"Kilayim",v:[9,11,7,9,8,9,8,6,10]},{k:"Sheviit",v:[8,10,10,10,9,6,7,11,9,9]},{k:"Terumot",v:[10,6,9,13,9,6,7,12,7,12,10]},{k:"Maasrot",v:[8,8,10,6,8]},{k:"Maaser Sheni",v:[7,10,13,12,15]},{k:"Challah",v:[9,8,10,11]},{k:"Orlah",v:[9,17,9]},{k:"Bikkurim",v:[11,11,12,5]},{k:"Shabbat",v:[11,7,6,2,4,10,4,7,7,6,6,6,7,4,3,8,8,3,6,5,3,6,5,5]},{k:"Eruvin",v:[10,6,9,11,9,10,11,11,4,15]},{k:"Pesachim",v:[7,8,8,9,10,6,13,8,11,9]},{k:"Shekalim",v:[7,5,4,9,6,6,7,8]},{k:"Yoma",v:[8,7,11,6,7,8,5,9]},{k:"Sukkah",v:[11,9,15,10,8]},{k:"Beitzah",v:[10,10,8,7,7]},{k:"Rosh Hashanah",v:[9,9,8,9]},{k:"Taanit",v:[7,10,9,8]},{k:"Megillah",v:[11,6,6,10]},{k:"Moed Katan",v:[10,5,9]},{k:"Chagigah",v:[8,7,8]},{k:"Yevamot",v:[4,10,10,13,6,6,6,6,6,9,7,6,13,9,10,7]},{k:"Ketubot",v:[10,10,9,12,9,7,10,8,9,6,6,4,11]},{k:"Nedarim",v:[4,5,11,8,6,10,9,7,10,8,12]},{k:"Nazir",v:[7,10,7,7,7,11,4,2,5]},{k:"Sotah",v:[9,6,8,5,5,4,8,7,15]},{k:"Gittin",v:[6,7,8,9,9,7,9,10,10]},{k:"Kiddushin",v:[10,10,13,14]},{k:"Bava Kamma",v:[4,6,11,9,7,6,7,7,12,10]},{k:"Bava Metzia",v:[8,11,12,12,11,8,11,9,13,6]},{k:"Bava Batra",v:[6,14,8,9,11,8,4,8,10,8]},{k:"Sanhedrin",v:[6,5,8,5,5,6,11,7,6,6,6]},{k:"Makkot",v:[10,8,16]},{k:"Shevuot",v:[7,5,11,13,5,7,8,6]},{k:"Eduyot",v:[14,10,12,12,7,3,9,7]},{k:"Avodah Zarah",v:[9,7,10,12,12]},{k:"Avot",v:[18,16,18,22,23,11]},{k:"Horayot",v:[5,7,8]},{k:"Zevachim",v:[4,5,6,6,8,7,6,12,7,8,8,6,8,10]},{k:"Menachot",v:[4,5,7,5,9,7,6,7,9,9,9,5,11]},{k:"Chullin",v:[7,10,7,7,5,7,6,6,8,4,2,5]},{k:"Bekhorot",v:[7,9,4,10,6,12,7,10,8]},{k:"Arakhin",v:[4,6,5,4,6,5,5,7,8]},{k:"Temurah",v:[6,3,5,4,6,5,6]},{k:"Keritot",v:[7,6,10,3,8,9]},{k:"Meilah",v:[4,9,8,6,5,6]},{k:"Tamid",v:[4,5,9,3,6,3,4]},{k:"Middot",v:[9,6,8,7,4]},{k:"Kinnim",v:[4,5,6]},{k:"Kelim",v:[9,8,8,4,11,4,6,11,8,8,9,8,8,8,6,8,17,9,10,7,3,10,5,17,9,9,12,10,8,4]},{k:"Oholot",v:[8,7,7,3,7,7,6,6,16,7,9,8,6,7,10,5,5,10]},{k:"Negaim",v:[6,5,8,11,5,8,5,10,3,10,12,7,12,13]},{k:"Parah",v:[4,5,11,4,9,5,12,11,9,6,9,11]},{k:"Tahorot",v:[9,8,8,13,9,10,9,9,9,8]},{k:"Mikvaot",v:[8,10,4,5,6,11,7,5,7,8]},{k:"Niddah",v:[7,7,7,7,9,14,5,4,11,8]},{k:"Makhshirin",v:[6,11,8,10,11,8]},{k:"Zavim",v:[6,4,3,7,12]},{k:"Tevul Yom",v:[5,8,6,7]},{k:"Yadayim",v:[5,4,5,8]},{k:"Oktzin",v:[6,10,12]}];
5112
-
5113
- const cycleStartDate$1 = new Date(1947, 4, 20);
5114
- const mishnaYomiStart = greg2abs(cycleStartDate$1);
5115
- const numMishnayot = 4192;
5116
- const numDays = numMishnayot / 2;
5117
-
5118
- /**
5119
- * Describes a mishna to be read
5120
- * @typedef {Object} MishnaYomi
5121
- * @property {string} k tractate name in Sephardic transliteration (e.g. "Berakhot", "Moed Katan")
5122
- * @property {string} v verse (e.g. "2:1")
5123
- */
5124
-
5125
- /**
5126
- * A program of daily learning in which participants study two Mishnahs
5127
- * each day in order to finish the entire Mishnah in ~6 years.
5128
- */
5129
- class MishnaYomiIndex {
5130
- /**
5131
- * Initializes a Mishna Yomi instance
5132
- */
5133
- constructor() {
5134
- const tmp = Array(numMishnayot);
5135
- let i = 0;
5136
- for (let j = 0; j < mishnayot.length; j++) {
5137
- const tractate = mishnayot[j];
5138
- const v = tractate.v;
5139
- for (let chap = 1; chap <= v.length; chap++) {
5140
- const numv = v[chap - 1];
5141
- for (let verse = 1; verse <= numv; verse++) {
5142
- tmp[i++] = {
5143
- k: tractate.k,
5144
- v: `${chap}:${verse}`
5145
- };
5146
- }
5147
- }
5148
- }
5149
- const days = Array(numDays);
5150
- for (let j = 0; j < numDays; j++) {
5151
- const k = j * 2;
5152
- days[j] = [tmp[k], tmp[k + 1]];
5153
- }
5154
- /** @type {MishnaYomi[]} */
5155
- this.days = days;
5156
- }
5157
-
5158
- /**
5159
- * Looks up a Mishna Yomi
5160
- * @param {Date|HDate|number} date Gregorian date
5161
- * @return {MishnaYomi[]}
5162
- */
5163
- lookup(date) {
5164
- const abs = typeof date === 'number' && !isNaN(date) ? date : isDate(date) ? greg2abs(date) : HDate.isHDate(date) ? date.abs() : throwTypeError(`Invalid date: ${date}`);
5165
- if (abs < mishnaYomiStart) {
5166
- const dt = abs2greg(abs);
5167
- const s = dt.toISOString().substring(0, 10);
5168
- throw new RangeError(`Date ${s} too early; Mishna Yomi cycle began on 1947-05-20`);
5169
- }
5170
- const dayNum = (abs - mishnaYomiStart) % numDays;
5171
- return this.days[dayNum];
5172
- }
5173
- }
5174
-
5175
- /**
5176
- * @private
5177
- * @param {MishnaYomi[]} mishnaYomi
5178
- * @param {string} locale
5179
- * @return {string}
5180
- */
5181
- function formatMyomi(mishnaYomi, locale) {
5182
- const k1 = mishnaYomi[0].k;
5183
- const cv1 = mishnaYomi[0].v;
5184
- const mishna1 = Locale.gettext(k1, locale) + ' ' + cv1;
5185
- const k2 = mishnaYomi[1].k;
5186
- const cv2 = mishnaYomi[1].v;
5187
- if (k1 !== k2) {
5188
- return mishna1 + '-' + Locale.gettext(k2, locale) + ' ' + cv2;
5189
- }
5190
- const p1 = cv1.split(':');
5191
- const p2 = cv2.split(':');
5192
- if (p1[0] === p2[0]) {
5193
- return mishna1 + '-' + p2[1];
5194
- }
5195
- return mishna1 + '-' + cv2;
5196
- }
5197
-
5198
- /**
5199
- * Event wrapper around a Mishna Yomi instance
5200
- */
5201
- class MishnaYomiEvent extends Event {
5202
- /**
5203
- * @param {HDate} date
5204
- * @param {MishnaYomi[]} mishnaYomi
5205
- */
5206
- constructor(date, mishnaYomi) {
5207
- super(date, formatMyomi(mishnaYomi, null), flags.MISHNA_YOMI);
5208
- this.mishnaYomi = mishnaYomi;
5209
- }
5210
- /**
5211
- * Returns Mishna Yomi name (e.g. "Bava Metzia 10:5-6" or "Berakhot 9:5-Peah 1:1").
5212
- * @param {string} [locale] Optional locale name (defaults to active locale).
5213
- * @return {string}
5214
- */
5215
- render(locale) {
5216
- return formatMyomi(this.mishnaYomi, locale);
5217
- }
5218
- /**
5219
- * Returns a link to sefaria.org
5220
- * @return {string}
5221
- */
5222
- url() {
5223
- const mishnaYomi = this.mishnaYomi;
5224
- const k1 = mishnaYomi[0].k;
5225
- const mishna = k1 === 'Avot' ? 'Pirkei' : 'Mishnah';
5226
- const name = k1.replace(/ /g, '_');
5227
- const prefix = `https://www.sefaria.org/${mishna}_${name}`;
5228
- const cv1 = mishnaYomi[0].v;
5229
- if (k1 !== mishnaYomi[1].k) {
5230
- const verse1 = cv1.replace(':', '.');
5231
- return `${prefix}.${verse1}?lang=bi`;
5232
- }
5233
- const cv2 = mishnaYomi[1].v;
5234
- const p1 = cv1.split(':');
5235
- const p2 = cv2.split(':');
5236
- const verse1 = p1.join('.');
5237
- const verse2 = p1[0] === p2[0] ? p2[1] : p2.join('.');
5238
- return `${prefix}.${verse1}-${verse2}?lang=bi`;
5239
- }
5240
- }
5241
-
5242
- const nach = [['Joshua', 24], ['Judges', 21], ['I Samuel', 31], ['II Samuel', 24], ['I Kings', 22], ['II Kings', 25], ['Isaiah', 66], ['Jeremiah', 52], ['Ezekiel', 48], ['Hosea', 14], ['Joel', 4], ['Amos', 9], ['Obadiah', 1], ['Jonah', 4], ['Micah', 7], ['Nachum', 3], ['Habakkuk', 3], ['Zephaniah', 3], ['Haggai', 2], ['Zechariah', 14], ['Malachi', 3], ['Psalms', 150], ['Proverbs', 31], ['Job', 42], ['Song of Songs', 8], ['Ruth', 4], ['Lamentations', 5], ['Ecclesiastes', 12], ['Esther', 10], ['Daniel', 12], ['Ezra', 10], ['Nehemiah', 13], ['I Chronicles', 29], ['II Chronicles', 36]];
5243
- const cycleStartDate = new Date(2007, 10, 1);
5244
- const nachYomiStart = greg2abs(cycleStartDate);
5245
- const numChapters = 742;
5246
-
5247
- /**
5248
- * Describes a chapter to be read
5249
- * @typedef {Object} NachYomi
5250
- * @property {string} k book name in Sephardic transliteration (e.g. "Berakhot", "Moed Katan")
5251
- * @property {number} v chapter (e.g. "2:1")
5252
- */
5014
+ /** @private */
5015
+ const cals = Object.create(null);
5253
5016
 
5254
5017
  /**
5255
- * A daily regimen of learning the books of Nevi'im (Prophets)
5256
- * and Ketuvim (Writings).
5018
+ * Plug-ins for daily learning calendars such as Daf Yomi, Mishna Yomi, Nach Yomi, etc.
5019
+ *
5020
+ * Learning schedules are provided by the `@hebcal/learning` package.
5257
5021
  */
5258
- class NachYomiIndex {
5259
- /**
5260
- * Initializes a Nach Yomi instance
5261
- */
5262
- constructor() {
5263
- const days = Array(numChapters);
5264
- let i = 0;
5265
- for (let j = 0; j < nach.length; j++) {
5266
- const book = nach[j][0];
5267
- const chapters = nach[j][1];
5268
- for (let chap = 1; chap <= chapters; chap++) {
5269
- days[i++] = {
5270
- k: book,
5271
- v: chap
5272
- };
5273
- }
5274
- }
5275
- this.days = days;
5276
- }
5277
-
5022
+ class DailyLearning {
5278
5023
  /**
5279
- * Looks up a Mishna Yomi
5280
- * @param {Date|HDate|number} date Gregorian date
5281
- * @return {NachYomi}
5024
+ * Register a new learning calendar.
5025
+ * @param {string} name
5026
+ * @param {Function} calendar
5282
5027
  */
5283
- lookup(date) {
5284
- const abs = typeof date === 'number' && !isNaN(date) ? date : isDate(date) ? greg2abs(date) : HDate.isHDate(date) ? date.abs() : throwTypeError(`Invalid date: ${date}`);
5285
- if (abs < nachYomiStart) {
5286
- const dt = abs2greg(abs);
5287
- const s = dt.toISOString().substring(0, 10);
5288
- throw new RangeError(`Date ${s} too early; Nach Yomi cycle began on 2007-11-01`);
5028
+ static addCalendar(name, calendar) {
5029
+ if (typeof calendar !== 'function') {
5030
+ throw new TypeError(`Invalid calendar function: ${calendar}`);
5289
5031
  }
5290
- const dayNum = (abs - nachYomiStart) % numChapters;
5291
- return this.days[dayNum];
5032
+ cals[name] = calendar;
5292
5033
  }
5293
- }
5294
5034
 
5295
- /**
5296
- * Event wrapper around a Nach Yomi instance
5297
- */
5298
- class NachYomiEvent extends Event {
5299
5035
  /**
5300
- * @param {HDate} date
5301
- * @param {NachYomi} nachYomi
5302
- */
5303
- constructor(date, nachYomi) {
5304
- super(date, `${nachYomi.k} ${nachYomi.v}`, flags.NACH_YOMI);
5305
- this.nachYomi = nachYomi;
5306
- }
5307
- /**
5308
- * Returns name of tractate and page (e.g. "Beitzah 21").
5309
- * @param {string} [locale] Optional locale name (defaults to active locale).
5310
- * @return {string}
5036
+ * Returns an event from daily calendar for a given date. Returns `null` if there
5037
+ * is no learning from this calendar on this date.
5038
+ * @param {string} name
5039
+ * @param {HDate} hd
5040
+ * @return {Event}
5311
5041
  */
5312
- render(locale) {
5313
- locale = locale || Locale.getLocaleName();
5314
- if (typeof locale === 'string') {
5315
- locale = locale.toLowerCase();
5316
- }
5317
- const name = Locale.gettext(this.nachYomi.k, locale);
5318
- if (locale === 'he' || locale === 'he-x-nonikud') {
5319
- return name + ' ' + gematriya(this.nachYomi.v);
5042
+ static lookup(name, hd) {
5043
+ const lookup = cals[name];
5044
+ if (typeof lookup === 'function') {
5045
+ return lookup(hd);
5320
5046
  }
5321
- return name + ' ' + this.nachYomi.v;
5322
- }
5323
- /**
5324
- * Returns a link to sefaria.org
5325
- * @return {string}
5326
- */
5327
- url() {
5328
- const name = this.nachYomi.k.replace(/ /g, '_');
5329
- const chapter = this.nachYomi.v;
5330
- return `https://www.sefaria.org/${name}.${chapter}?lang=bi`;
5331
- }
5332
- }
5333
-
5334
- var Berakhot=["1:1:1-2","1:1:7-11","1:1:12-15","1:1:16-19","1:1:23-27","1:1:29-31","1:1:36-2:2","1:2:8-9","1:4:3-5:3","1:5:9-14","1:5:18-6:3","2:1:1-4","2:1:14-19","2:3:4-7","2:3:10-14","2:4:1-3","2:4:8-12","2:5:1-8","2:6:3-7:2","2:8:2-7","2:9:1-4","3:1:4-7","3:1:12-18","3:1:23-2:3","3:2:5-3:8","3:3:11-4:5","3:4:15-5:6","3:5:13-6:1","4:1:1-2","4:1:10-16","4:1:21-25","4:1:28-31","4:1:33-3:2","4:3:11-4:2","4:4:9-5:5","4:6:3-7","5:1:3-11","5:1:18-2:3","5:2:6-10","5:3:2-7","6:1:1-2","6:1:4-6","6:1:8-9","6:1:11-15","6:1:17-23","6:2:1-4","6:4:2-4","6:5:3-5","6:6:3-4","6:6:6-8:2","7:1:1-3","7:1:5-6","7:1:7-2:2","7:2:7-3:1","7:3:4-4:3","7:5:5-11","8:1:6-7","8:2:2-6","8:2:12-3:3","8:4:1-5:6","8:6:4-11","9:1:1-4","9:1:13-22","9:1:33-2:6","9:2:12-20","9:3:3-7","9:5:1-7","9:5:16-22"];var Peah=["1:1:1-3","1:1:6-11","1:1:15-22","1:1:31-39","1:1:47-56","1:3:1-3","1:3:5-4:1","1:4:3-7","1:5:1-2",null,"2:1:4-9","2:1:11-3:2","2:4:3-5:1","3:1:1-7","3:1:10-2:4","3:4:3-5:4","3:7:1-3","3:7:7-13","3:7:18","4:1:1-3","4:2:1-5","4:2:7-5:3","4:6:6-9","4:7:1-5","5:1:3-2:2","5:2:5-7","5:3:5-5:3","6:1:1-7","6:2:1-3:1","6:3:4-5:3","6:6:7-8:4","7:2:1-6","7:3:5-4:2","7:5:3-11","8:1:1-2:1","8:3:2-5:4","8:7:1-8:5"];var Demai=["1:1:1-5","1:1:10-2:1","1:2:4-5","1:3:6-16","1:3:21-4:1","1:4:7-8","2:1:1-3","2:1:6-12","2:1:19-2:4","2:3:4-4:2","2:4:4-5:4","3:1:5-7","3:2:1-4","3:3:5-4:3","3:4:5-7","3:4:9-5:1","4:1:4-8","4:2:2-3:4","4:3:8-5:4","5:1:2-2:1","5:2:5-8","5:3:3-5:1","5:6:2-8:4","5:8:8-11","6:1:1-6","6:1:9-2:5","6:2:9-3:1","6:5:3-6","6:8:1-7","7:1:4-2:4","7:4:2-4","7:4:5-6:1","7:6:6-7:1","7:8:1-3"];var Kilayim=["1:1:1-4","1:2:1-4:3","1:6:3-7:3","1:7:6-9:2","1:9:4-5","2:1:1-5","2:1:9-11","2:3:2-4","2:3:4-4:3","2:5:3-6:2","2:6:5-7:1","2:8:2-7","3:1:1-2","3:1:2-3","3:1:6-2:3","3:3:1-4:1","3:4:3-5:1","3:6:1-6","4:1:2-5","4:1:7-8","4:2:4-9","4:3:2-5:1","4:6:3-5","5:1:4-5","5:1:5-2:2","5:3:1-4:1","5:5:2-6:3","6:1:1-3","6:1:4-2:2","6:2:5-3:4","6:4:4-9","7:1:3-2:3","7:2:6-3:2","7:3:4-4:2","7:6:2-5","8:1:3-4","8:1:6-8","8:2:1-3:2","8:3:6-4:5","9:1:2-7","9:1:12-2:5","9:3:3-8","9:3:13-4:5","9:5:2-6:3"];var Sheviit=["1:1:1-2:2","1:2:4-3:6","2:1:1-2","2:2:2-3:2","2:4:6-5:3","2:5:8-7:6","3:1:3-2:3","3:3:4-4:5","3:6:2-7:4","4:1:6-2:4","4:2:10-4:4","4:6:3-7:1","5:1:1-4","5:2:3-9","5:3:3-4:3","6:1:4-10","6:1:17-2:4","6:4:1-7","7:1:9-15","7:2:3-5","7:2:5-7","8:1:4-2:3","8:4:3-5:3","8:7:1-8:4","9:1:5-12","9:2:9-5:1","9:6:1-5","10:1:5-9","10:1:16-2:1","10:3:2-10","10:4:6"];var Terumot=["1:1:1-4","1:1:8-12","1:1:15-16","1:1:19-21","1:1:23-2:3","1:3:1-4:3","1:5:1-3","1:5:5-9","2:1:3-9","2:1:12-13","2:1:15-17","2:1:19-21","2:2:2-4","2:3:2-6","3:1:4-2:2","3:2:3-8","3:3:5-11","4:1:1-2","4:1:4-2:3","4:3:3-7","4:4:3-6","4:5:2-7:3","4:7:6-10","4:8:1-4","5:1:1-2","5:1:4-8","5:1:10-12","5:1:14-2:3","5:2:3-4","5:2:6-3:2","6:1:1-5","6:1:10","6:2:2","6:2:5-3:3","7:1:3-7","7:1:10-12","7:2:2-6","7:3:4-6","8:1:2","8:1:3","8:1:6-9","8:2:2-3:6","8:3:15-21","8:3:29-36","8:4:3-4","8:4:6-7","8:4:11-15","9:1:11-14","9:2:1-3","9:2:7-3:4","10:1:6-2:2","10:2:6-4:2","10:5:2-6:1","10:6:4-12","11:1:6-2:4","11:2:7-3:3","11:4:5-9","11:5:2-5","11:5:12-13"];var Maasrot=["1:1:1-3","1:1:5-9","1:2:5-13","1:3:4-4:2","1:4:6-7","1:4:10-5:3","2:1:1-4","2:1:6-8","2:1:9-2:2","2:3:2-4","2:3:8-4:5","2:4:10-14","3:1:3-4","3:1:6-10","3:1:12-2:1","3:2:4-3:2","3:4:1-7","3:4:10-14","4:1:5-2:3","4:3:1-4:4","5:1:1-3","5:1:5-7","5:2:1-5","5:2:6-3:1","5:3:4","5:3:8-11"];var Challah=["1:1:1-3","1:1:9-13","1:1:16-20","1:1:21-25","1:1:27-2:2","1:3:4-7","1:3:12-16","1:4:2-5:1","1:5:6-6:1","2:1:1-3","2:1:5-7","2:1:8-12","2:2:1-3:2","2:3:4-7","3:1:2-5","3:1:8","3:2:2-4:2","3:4:6-7","3:5:2-3","3:5:4-5","3:5:8-9","3:5:11-13","4:1:4-2:2","4:2:5-3:2","4:3:4-4:1","4:4:5-6","4:4:9-15","4:5:1-7"];var Orlah=["1:1:1-6","1:1:10-14","1:1:18-2:2","1:2:7-9","1:3:3-6","1:3:9-13","1:4:1-6","1:5:2-9","2:1:4-6","2:1:10-14","2:1:19-21","2:2:2","2:3:5-4:2","2:4:5-5:4","2:6:2-7:4","2:9:1-4","3:1:6-12","3:1:16-2:3","3:3:1-5:2","3:6:4-7:7"];var Bikkurim=["1:1:1-4","1:2:2-3","1:3:6-4:3","1:5:5-8","1:6:4-7:1","1:8:1-9:3","2:1:9-15","2:2:2-8","2:2:10-3:2","2:4:2-6:2","3:1:4-3:8","3:3:20-4:10","3:6:1-4"];var Shabbat=["1:1:1-2","1:1:3-7","1:1:9-10","1:1:14-17","1:1:20-23","1:1:26-2:2","1:2:6-11","1:3:3-7","1:3:11-4:4","1:4:6-9","1:4:15-5:1","1:5:4-7:3","1:8:3-10:2","1:11:2-8","2:1:9-13","2:1:17-2:1","2:3:3-6","2:5:1-6","2:5:8-6:1","2:6:9-7:3","3:1:1-8","3:1:10-13","3:3:2-6","3:3:8-14","3:4:4-6:2","3:7:2-6","3:7:9-13","4:1:1-2","4:1:3-7","4:2:4-9","5:1:1-7","5:2:5-4:2","6:1:1-2","6:1:7-10","6:2:2-8","6:2:11-3:2","6:4:4-5:3","6:6:2-8:2","6:9:6-14","7:1:1-3","7:1:4-6","7:1:7-9","7:1:12-15","7:2:1-6","7:2:9-12","7:2:14-16","7:2:17-19","7:2:20-22","7:2:27-32","7:2:35-37","7:2:41-45","7:2:49-54","7:2:59-4:2","8:1:1-5","8:1:9-2:3","8:3:5-6:1","9:1:1-2","9:1:4","9:2:3-3:2","9:3:4-4:2","9:6:2-7:7","10:2:1-3","10:4:2-5:2","10:5:4-6:2","11:1:3-7","11:2:3-3:2","11:5:2-6","12:1:1-4","12:1:7-3:2","12:3:5-4:3","13:1:1-2","13:1:4-3:3","13:5:1-3","14:1:1-2","14:2:3-3:5","14:4:2-6","15:1:1-2","15:2:3-3:3","16:1:2-4","16:1:9-3:3","16:5:1-7:2","17:1:1-6","17:2:4-5:1","18:1:1-5","18:1:6-2:1","19:1:1-3","19:1:8-2:1","19:3:1-4:2","19:4:2-5:2","19:5:2-6:3","20:1:4-3:2","23:1:1"];var Eruvin=["1:1:1-2","1:1:2-4","1:1:7-9","1:1:12-13","1:1:14-18","1:1:22-26","1:2:3-3:4","1:4:4-5:4","1:6:3-6","1:7:4-8:3","1:9:3-5","1:10:2-3","1:10:5-6","2:1:3-4","2:1:6-8","2:2:2-4:2","2:5:2-6:1","3:1:1-2","3:1:5-7","3:1:10-2:3","3:3:1-2","3:3:4-4:1","3:4:4-5","3:5:2-4","3:7:1-3","3:8:3-9:3","4:1:2-4","4:1:7-3:3","4:5:3-7:1","4:9:2-10:2","5:1:4-5","5:1:10-13","5:1:15-17","5:2:1-3","5:3:3-4:2","5:5:2-7:1","5:7:4-8:2","6:1:1-2:2","6:2:5-3:2","6:4:1-4","6:5:2-6:3","6:7:2-3","6:8:2-6","6:8:8-10:1","7:1:1-3","7:1:5-2:1","7:2:4-3:1","7:5:1-6:1","7:6:3-7:2","7:10:1-4","8:1:2-2:3","8:3:3-7","8:4:3-6:4","8:8:1-3","8:8:6-9:2","9:1:1-3","9:1:8-3:2","9:4:4-5:3","10:1:3-6","10:2:1-3:2","10:5:1-6:2","10:7:1-8:4","10:9:2-10:3","10:12:2-13:3","10:14:2-5"];var Pesachim=["1:1:1-4","1:1:9-12","1:1:17-2:2","1:3:4-4:4","1:4:6-5:2","1:5:5-6:2","1:7:2-8:2","1:8:3-6","1:8:7-9","1:8:12-13","2:1:4-7","2:1:11-16","2:2:2-9","2:2:12-13","2:2:16-3:1","2:3:4-6","2:4:4-9","2:4:10-5:4","2:7:3-6","3:1:11-12","3:2:3-3:2","3:3:5-9","3:4:3-6:3","3:7:4-8:3","4:1:1-4","4:1:10-13","4:3:2-5","4:4:1-4","4:8:1-9:1","4:9:5-9","5:1:2-6","5:2:1-6","5:2:8-10","5:3:1-3","5:3:7-4:1","5:4:5-9","5:4:12-6:1","5:7:2-8:3","6:1:1-4","6:1:8-13","6:1:15-19","6:2:2-3:3","6:4:4-5:2","6:5:4-5","6:5:5-6:2","7:1:1-5","7:1:7-2:3","7:2:8-4:3","7:5:4-6","7:6:2","7:6:5-7:4","7:7:5-8","7:8:2-9:3","7:10:1-2","7:11:2-5","7:12:2-13:2","7:13:4-7","8:1:2-5","8:1:7-10","8:3:2-3","8:4:3-5:2","8:6:4-8:3","8:8:6-9","9:1:4-2:1","9:3:2-4:3","9:6:1-6","9:7:1-9:1","10:1:1-2","10:1:7-14","10:3:1-4:1","10:5:4-7:1"];var Beitzah=["1:1:1-3","1:1:5-7","1:1:9-11","1:3:2-3","1:3:5-4:2","1:5:1-4","1:6:3-8:1","1:9:3-10:3","1:11:2-12:4","2:1:3-7","2:3:2-4:5","2:6:1-8:1","3:1:1-2","3:3:1-4:2","3:5:1-6:3","4:1:1-2","4:1:6-3:1","4:3:10-4:5","5:1:1-6","5:2:2-7","5:2:12-16","5:4:3-7:2"];var Yoma=["1:1:1-4","1:1:5-8","1:1:11-13","1:1:13-16","1:1:20-25","1:2:2-5","1:4:1-5:5","2:1:1-3","2:1:5-8","2:1:10-16","2:2:2-3","2:2:4-8","2:4:1-4","3:2:1-3:1","3:3:4-4:3","3:5:3-6:2","3:6:4-6","3:7:1-5","3:8:3-9","4:1:1-4","4:1:7-9","4:2:1-3:4","4:4:9-5:5","4:6:3-6","5:1:3-5","5:1:7-9","5:2:2-4:1","5:4:5-8","5:5:1-2","5:6:3-7","5:6:9-7:2","6:1:1-7","6:1:13-3:2","6:4:1-5:2","6:6:3-5","6:6:7-7:1","7:1:4-2:3","7:3:2-6","8:1:3-9","8:3:2-11","8:3:15-5:2","8:6:3-7:4"];var Sukkah=["1:1:1-2","1:1:4-5","1:1:7-10","1:1:14-2:1","1:3:2-4:3","1:5:4-7:2","1:8:2-10:2","2:1:1-2","2:2:2-4:2","2:4:5-5:6","2:7:2-8:3","3:1:1-4","3:1:8-3:2","3:4:2-3","3:6:2-7:2","3:9:2-10:4","3:11:2-12:1","4:1:2-2:2","4:3:4-4:2","4:5:4-6:2","4:6:5-6","5:1:1-2","5:1:3-2:2","5:3:4-5:1","5:6:2-7:1","5:8:1-6"];var Taanit=["1:1:1-2","1:1:5-9","1:1:13-17","1:2:4-3:3","1:3:8-4:6","1:5:1-6:4","1:6:9-8:2","2:1:2-8","2:1:13-2:3","2:2:11-3:2","2:6:2-10:1","2:11:4-12:3","2:13:2-14:2","3:1:3-3:1","3:4:3-5:2","3:7:1-9:3","3:10:3-11:4","4:1:2-6","4:1:10-15","4:2:3-8","4:2:14-3:2","4:3:4-4:2","4:5:2-6","4:5:9-13","4:5:16-22","4:6:4-7:2"];var Shekalim=["1:1:1-4","1:1:6-8","1:1:14-2:3","1:3:1-4","1:4:1-4","1:4:5-7","1:4:7","2:1:3-2:1","2:2:4-3:2","2:4:1-3","2:5:3-6","3:1:3-4","3:2:2-6","3:2:10-3:4","4:1:1-3","4:2:1-3","4:2:6-3:1","4:3:3-4:1","4:4:2-5","4:4:6-10","5:1:1-6","5:1:12-21","5:3:1-4:1","6:1:1-5","6:1:9-14","6:2:3-7","6:3:3-4:2","6:4:5-7","7:1:3-2:6","7:3:1-3","7:3:8-10","8:1:2-2:1","8:3:2-4:4"];var Megillah=["1:1:1-2","1:1:4","1:1:8-10","1:3:2-3","1:4:2-6","1:4:9-12","1:5:3-7","1:6:3-5","1:7:3-8:3","1:8:4-9:4","1:9:6-9","1:9:10-12","1:9:17-10:1","1:10:4-8","1:11:3-5","1:11:6-7","1:12:3-4","2:1:1-3","2:2:1-6","2:3:2-4:4","2:5:2-6:1","2:7:2-5","3:1:3-5","3:1:10-2:5","3:3:1-4:3","3:5:3-7:1","3:7:3-6","4:1:4-8","4:1:11-13","4:2:2-4:1","4:4:6-5:2","4:5:6-7:2","4:10:3-11:2","4:12:3-6"];var Chagigah=["1:1:1-3","1:1:8-9","1:1:9-18","1:1:20-2:3","1:2:4-4:2","1:6:2-7:3","1:8:4-10","2:1:1-2","2:1:6-9","2:1:11-15","2:2:4-6","2:3:3-4:3","2:5:2-5","2:6:3-7:3","3:1:1-3","3:1:4-7","3:2:4-5","3:2:7","3:2:10-3:3","3:4:1-3","3:5:1-7:1","3:8:2-4"];var Yevamot=["1:1:1-6","1:1:7-10","1:1:14-17","1:1:18-20","1:1:21-24","1:2:2-5","1:2:10-5:2","1:6:2-5","1:6:8-9","2:1:6-2:3","2:2:4-3:1","2:4:2-7","2:4:10-6:5","2:8:3-10:3","2:11:2-12:2","3:1:3-4","3:1:5-6","3:1:8-10","3:2:1-3:2","3:3:4-4:3","3:8:2-9:4","4:1:1-2","4:1:4-6","4:2:3-4","4:2:7-4:2","4:7:3-8:3","4:11:1-4","4:11:6-8","4:12:3-15:3","5:1:1-5","5:1:7-10","5:2:3-4:1","5:4:3-6:1","5:8:1-2","6:1:3-7","6:3:1-2","6:4:5-5:2","6:6:3-6","7:1:3-4","7:1:8-3:2","7:3:3-5","7:4:2-5:4","8:1:1-2","8:1:6-8","8:1:12-15","8:1:18-2:2","8:2:4-6","8:2:9-12","8:3:5-8","8:4:1-6:2","9:1:1-2:2","9:4:4-5:1","10:1:1-2","10:1:5-11","10:1:12-2:2","10:3:2-4","10:5:3-6:4","10:6:7-7:3","10:7:6-8","11:1:1-2","11:1:5-7","11:1:11-2:2","11:2:6-3:1","11:5:5-6:3","11:7:3-8","12:1:8-14","12:1:17-2:4","12:2:6-4:2","12:6:1-6","13:1:2-6","13:1:13-2:6","13:2:8-9","13:6:1-4","13:7:3-8:2","13:14:1-3","14:1:4-2:3","15:1:1-4","15:2:2-3:7","15:3:9-4:4","15:5:2-4","15:8:2-9:3","16:1:2-2:3","16:3:5-4:2","16:5:5-6:4","16:9:2"];var Ketubot=["1:1:1-4","1:1:6-9","1:1:14-17","1:2:5-3:1","1:3:5-4:5","1:5:3-6:3","1:8:2-9:3","1:10:3-4","2:1:1-4","2:2:1-4","2:2:4-3:3","2:4:5-6","2:5:4-7:2","2:7:4-9:4","2:10:3-8","3:1:4-7","3:1:12-13","3:1:16-18","3:3:3-5:1","3:5:4-6:2","3:6:3-7:2","3:8:1-9:3","4:1:1-4","4:1:6-2:1","4:2:3-3:2","4:4:3-7","4:4:8-9","4:4:12-7:1","4:8:4-12","4:9:1-11:3","4:12:2-14:3","5:1:3-4","5:1:6-2:2","5:3:1-4:1","5:5:2-3","5:5:4-6:3","5:6:5-7:5","5:8:3-10:1","6:1:2-3","6:3:2-4:2","6:5:2-6:3","6:7:1-4","7:1:1-3","7:2:1-5:1","7:6:6-7","7:7:3-5","7:8:2-9:3","8:2:2-4:2","8:6:2-9:1","8:10:3","9:1:1-2","9:1:5-7","9:1:12","9:3:1-4:2","9:5:3-6:2","9:7:6-8:1","9:9:1-10:1","10:1:1-6","10:2:3-4:1","10:4:4-5:2","11:1:1-5","11:2:4-3:2","11:4:2-6:2","11:7:1-8","12:2:2-3:3","12:3:8-10","12:3:14-5:2","13:1:2-5","13:2:3-3:1","13:3:4-4:3","13:7:1-8:2","13:10:2-11:3"];var Sotah=["1:1:1-6","1:1:9-10","1:2:1-5","1:2:7-10","1:3:2-4:3","1:5:1-6:1","1:7:4-8:5","1:8:11-10:4","2:1:2-4","2:1:9-2:5","2:2:9-4:1","2:5:1-5","2:5:6-6:1","3:1:4-2:1","3:3:2-4:1","3:4:6-11","3:5:3-6:5","3:6:6-8:2","4:1:3-2:2","4:4:1-5:3","5:1:5","5:2:3-5","5:2:6-8","5:2:11-3:2","5:4:3-5:6","6:1:1-2","6:2:4-3:1","6:3:2-4:4","7:1:1-5","7:2:2-3:2","7:4:4-7","7:4:9-5:3","7:5:6-6:3","8:1:1-2","8:2:2-3:3","8:3:6-9","8:3:12-4:3","8:5:5-8:1","8:9:2-10:1","9:1:2-6","9:2:1-7","9:4:2-5:4","9:5:7-6:3","9:8:1-11:2","9:11:8-13:2","9:14:1-15:6","9:16:1-4"];var Nedarim=["1:1:1-3","1:1:7-10","1:1:14-2:2","1:3:1-9","2:1:1-2","2:2:2-3:2","2:4:2-4","3:1:2-4","3:2:1-5","3:2:9-3:2","3:4:3-5:3","3:7:1-9:1","4:1:1-3","4:2:4-3:3","4:5:2-7:2","4:10:2-3","5:1:1-2","5:1:5-3:3","5:5:1-6:1","6:1:2-2:2","6:4:2-3","6:8:1-6","6:8:10-14","7:1:1-5","7:3:2-6:2","8:1:1-5","8:2:2-4:2","8:6:1-7:3","9:1:2-6","9:2:3-4:2","9:5:2-8:1","10:1:3-4","10:2:3-4:2","10:6:1-7:2","10:8:4-9","11:1:2-4","11:1:8-2:3","11:3:5-4:3","11:7:1-11:1","11:12:6"];var Nazir=["1:1:1-3","1:1:7-9","1:2:5-7","1:2:9-3:2","2:1:1-2","2:1:4-2:2","2:4:1-5:1","2:5:3-7:2","2:9:1-2","2:10:2-3","3:1:1-3","3:2:2","3:4:1-2","3:5:3-5","3:5:7-6:1","4:1:1-2","4:2:2-3:5","4:4:3-7","4:5:1-6:1","5:1:1-3","5:1:6-7","5:1:9-12","5:2:3-3:3","6:1:1-2","6:1:4-6","6:1:7-9","6:1:11-14","6:2:5-3:2","6:3:5-4:3","6:6:2-7:2","6:9:1-5","6:9:9-11:2","7:1:2-6","7:1:11-20","7:2:1-4","7:2:7-11","7:3:4-6","7:4:2-3","8:1:2-3","8:1:5-9","8:2:2-8","9:1:1-3","9:1:4-6","9:2:3-6","9:2:10-3:2","9:3:7-4:2","9:5:2-6:1"];var Gittin=["1:1:1-3","1:1:3-4","1:1:5-6","1:1:7-8","1:2:2-5","1:3:2-4:1","1:4:3-5","1:5:2-4","2:1:1-2","2:1:4-6","2:2:2-3:1","2:3:3-7","2:3:8-4:3","2:6:1-7:3","3:1:3-6","3:2:2-3:1","3:4:1-5:3","3:6:3-7:2","3:8:1-4","4:1:2-2:3","4:2:5-3:1","4:3:4-4:2","4:4:5-6","4:4:7-6:2","4:7:1-8:3","5:1:1-5","5:1:7-11","5:3:3-6","5:4:1-4","5:5:2-4","5:6:4-7:2","5:7:5-9:2","5:9:6-10:3","6:1:1-5","6:1:6-9","6:2:3-4","6:4:2-5:4","6:6:2-7:2","7:1:3-7","7:1:10-3:2","7:3:4-6","7:4:2-5","7:5:1-6:3","8:1:1-3","8:1:3-2:1","8:3:3-9","8:4:3-6:2","8:8:2-10:2","8:10:4-6","9:1:4-6","9:3:2-5","9:5:2-6:2","9:7:2-4","9:8:5-11:1"];var Kiddushin=["1:1:1-7","1:1:13-18","1:1:18-19","1:1:21-25","1:1:30-2:1","1:2:3-6","1:2:7","1:2:10-13","1:2:15-20","1:2:23-24","1:2:27-29","1:3:1-6","1:3:8-11","1:3:13-4:3","1:4:6-9","1:4:11-5:3","1:5:8-11","1:5:14-6:3","1:6:4-7:2","1:7:4-8","1:7:14-18","1:8:2-6","2:1:1-2","2:1:5-8","2:1:10-11","2:1:14-2:1","2:4:2-5","2:5:2-6:3","2:7:4-7","2:7:9-8:3","3:1:1-4","3:1:6-8","3:1:11-2:1","3:2:5-6","3:3:2-3","3:4:4-7","3:5:3-7","3:6:3-8:1","3:8:4-10:1","3:12:1-5","3:12:9-13:3","4:1:4-7","4:1:8-12","4:2:3-3:3","4:4:2-5:1","4:6:3-7:1","4:8:1-11:1","4:11:3-12:2"];var Shevuot=["1:1:1-2","1:1:3-5","1:1:5-2:1","1:2:3-7","1:3:2-4:2","1:4:3-5","1:6:3-8","1:7:2-3","2:1:4-7","2:1:9-11","2:3:2-5:1","3:1:2-3","3:2:2-3:2","3:4:2-4","3:4:8-5:2","3:5:3-7:2","3:7:7-8:4","3:8:9-9:5","4:1:1-20","4:2:3-3:1","4:3:4-5:2","4:7:1-9:2","5:1:1-2","5:1:4-2:4","5:3:4-4:2","5:4:4","5:5:1-6:1","6:1:2-4","6:1:7-2:4","6:3:2-4:2","6:5:1-3","6:6:3-7:2","6:8:4","7:1:3-4","7:1:6-8","7:2:4-4:2","7:5:4-6:2","7:7:2-4","7:7:9-8:3","8:1:2-5","8:1:9","8:1:12-2:3","8:3:2-4","8:3:5-6"];var Makkot=["1:1:1-4","1:2:2-4","1:3:2-4:2","1:6:2-7:3","2:1:1-3:1","2:5:1-6:1","2:6:7-11","3:1:1-3:1","3:7:1-11:1"];var Sanhedrin=["1:1:1-6","1:1:11-17","1:1:29-2:1","1:2:8-13","1:2:19-26","1:2:33-38","1:2:45-3:4","1:3:7-4:2","1:4:7-10","2:1:3-6","2:2:4-3:7","2:4:2-5:3","2:6:4-12","3:2:1-3:2","3:4:2-5:4","3:5:7-11","3:6:3-7:1","3:9:1-11","3:9:19-21","3:10:2-12:1","4:1:2-2:2","4:5:2-7:1","4:7:6-9:1","5:1:1-8","5:2:3-4","5:3:4-4:2","6:1:1-2","6:3:2-5:2","6:6:5-7:3","7:1:1-2","7:1:4-2:4","7:5:2-3","7:5:5-6","7:6:3-5","7:6:6-7:1","7:7:4-8:2","7:8:7-9:3","7:9:7-10:2","7:10:4-8","7:11:2-12:1","7:13:3-7","8:2:4-3:4","8:6:5-7:1","8:8:3-9:3","9:1:5-9","9:1:14-2:1","9:3:2-3","9:5:1-6:3","10:1:1-8","10:1:13-22","10:2:3-7","10:2:15-19","10:2:23-4:2","10:6:1-7:2","11:1:2-3:2","11:4:3-4","11:5:4-6:2"];var Horayot=["1:1:1-3","1:1:4-7","1:1:8-2:1","1:2:3-5","1:2:8-3:3","1:4:2-6:2","1:6:2-8:2","2:1:1-2","2:2:2-4:2","2:4:2-5:4","2:7:1-3","3:1:2-2:3","3:2:7-11","3:2:11-13","3:2:15-19","3:2:25-30","3:2:35-3:4","3:4:3-9","3:5:7-9"];var Niddah=["1:1:1-4","1:1:7-2:2","1:3:4-7","1:4:5-5:2","1:5:4-6:2","2:1:1-5","2:2:3-4:2","2:6:1-7:2","3:1:1-2:1","3:2:5-9","3:4:1-5","3:4:7-5:3"];var vilnaMap = {Berakhot:Berakhot,Peah:Peah,Demai:Demai,Kilayim:Kilayim,Sheviit:Sheviit,Terumot:Terumot,Maasrot:Maasrot,"Maaser Sheni":["1:1:1-3","1:1:5-10","1:1:13-16","1:1:19-20","1:2:2-5","1:2:8-3:1","1:3:2-4","2:1:1-2","2:1:8-10","2:1:14-16","2:2:3-6","2:3:2-6","2:3:9-4:1","3:1:1-4","3:2:2-5","3:2:6-3:1","3:3:7-9","3:4:3-5:3","3:5:7-6:4","3:6:5-9","4:1:4-7","4:1:10-2:3","4:2:7-3:4","4:3:8-4:2","4:4:6-5:1","4:5:2-6:1","4:6:5-9","5:1:1-4","5:1:10-2:1","5:2:9-3:1","5:3:5-9","5:4:5-5:1","5:5:8-12"],Challah:Challah,Orlah:Orlah,Bikkurim:Bikkurim,Shabbat:Shabbat,Eruvin:Eruvin,Pesachim:Pesachim,Beitzah:Beitzah,"Rosh Hashanah":["1:1:1-2","1:1:3-5","1:1:8","1:1:10-11","1:1:12-15","1:2:1-4","1:2:6-3:4","1:3:6-4:3","1:7:1-6","1:8:4","2:1:3-7","2:1:8-4:1","2:4:6-5:3","2:6:1-8:4","3:1:3-5","3:1:10-3:4","3:5:4-6:2","4:1:1-2","4:2:2-4:2","4:6:3-7:3","4:8:3-10:2","4:10:5"],Yoma:Yoma,Sukkah:Sukkah,Taanit:Taanit,Shekalim:Shekalim,Megillah:Megillah,Chagigah:Chagigah,"Moed Katan":["1:1:1-2","1:1:4-2:2","1:2:3-3:1","1:4:4-5:2","1:5:2-4","1:7:2-8:1","1:9:2-10:5","2:1:5-2:3","2:3:3-4:3","3:1:1-6","3:1:10-14","3:1:16-3:1","3:5:1-4","3:5:6-10","3:5:14-16","3:5:19-23","3:6:1-7:5","3:7:12-17","3:8:3-9:2"],Yevamot:Yevamot,Ketubot:Ketubot,Sotah:Sotah,Nedarim:Nedarim,Nazir:Nazir,Gittin:Gittin,Kiddushin:Kiddushin,"Bava Kamma":["1:1:1","1:1:3-7","1:1:8","1:1:10-2:2","1:2:3-4","1:2:5-3:1","2:1:1-2","2:1:5-2:2","2:2:2-3:2","2:4:2-5:3","2:5:3-6:3","3:1:2-4","3:1:7-2:2","3:3:4-4:4","3:4:5-5:2","3:6:2-9:1","3:10:1-11:2","4:1:2-5","4:1:6-2:3","4:4:3-5","4:5:2-3","4:5:3-6:3","5:1:1-2","5:2:1-5:1","5:6:1-7:1","5:7:6-8:3","6:1:3-2:4","6:2:5-4:2","6:5:2-7:2","7:1:1-2","7:2:1-3:2","7:3:2-4:1","7:4:3-5:2","8:1:1-4","8:2:2-3:3","8:5:1-6:1","8:8:1-2","9:1:3-3:1","9:5:1-4","9:5:5-6:2","9:8:1-9:2","10:1:1-2","10:1:5-2:3","10:6:1-8:2"],"Bava Metzia":["1:1:1-2","1:1:3-3:2","1:4:2","1:5:1-6:2","1:6:3-7:3","2:1:1-3","2:3:2-4:3","2:5:2-7","2:8:2-10:2","3:1:1-2","3:2:1-3:2","3:4:2-6:2","3:7:1-9:3","4:1:2-5","4:2:1-4","4:2:7-3:2","4:3:4-5:1","4:6:1-7:2","5:1:3-7","5:2:2-3:1","5:3:7-8","5:4:7-5:4","5:5:9-6:2","5:6:4-7:1","6:1:1-3","6:2:2-3:3","6:4:2-6:2","7:1:4-3:1","7:6:1-7:2","8:2:1-3:2","8:4:2-7:1","9:1:1-3:1","9:5:2-7:2","9:8:2-10:2","9:12:2-13:2","10:2:1-4:1","10:5:2-6:3"],"Bava Batra":["1:1:1-2","1:3:2-4:2","1:5:3-6","2:1:4-2:2","2:3:5-4:2","2:5:2-7:1","2:10:1-11:2","3:1:3-5","3:1:6-3:2","3:4:1-5:1","3:5:6-8:1","3:8:4-10:2","4:1:1-2:1","4:4:2-8:1","4:8:4","5:1:3-4","5:1:7-4:1","6:1:1-2","6:1:6-2:1","7:1:1-2","7:2:2-4:2","8:1:2-2:1","8:2:7-4:1","8:5:2-3","8:7:1-4","8:8:3-5","9:1:4-5","9:3:1-4:1","9:5:3-6:3","9:7:2-9:1","10:1:6-9","10:4:1-5:1","10:6:4-9:2","10:10:2-4"],Shevuot:Shevuot,Makkot:Makkot,Sanhedrin:Sanhedrin,"Avodah Zarah":["1:1:1-3","1:1:8-11","1:2:3-9","1:3:3-4:2","1:4:3-5:1","1:6:1-5","1:7:1-9:1","1:9:5-10:2","2:1:2-5","2:1:11-2:4","2:2:9-14","2:3:7-15","2:3:19-4:3","2:4:10-7:1","2:7:3-10","2:8:4-10","2:9:2-4","3:1:1-9","3:2:2-3:3","3:4:2-5:3","3:5:5-8","3:6:2-4","3:6:4-7:2","3:8:4-11:2","4:1:1-3","4:1:7-3:1","4:4:4-9","4:5:2-7:3","4:8:3-9:1","4:10:1-11:2","5:1:1-3","5:1:5-3:1","5:3:5-4:3","5:4:8-7:1","5:8:3-10:4","5:11:4-12:1","5:13:2-15:1"],Horayot:Horayot,Niddah:Niddah};
5335
-
5336
- const vilnaStartDate = new Date(1980, 1, 2);
5337
- /**
5338
- * Yerushalmi Yomi configuration for Vilna Edition
5339
- * @readonly
5340
- */
5341
- const vilna = {
5342
- ed: 'vilna',
5343
- startDate: vilnaStartDate,
5344
- startAbs: greg2abs(vilnaStartDate),
5345
- skipYK9Av: true,
5346
- shas: [['Berakhot', 68], ['Peah', 37], ['Demai', 34], ['Kilayim', 44], ['Sheviit', 31], ['Terumot', 59], ['Maasrot', 26], ['Maaser Sheni', 33], ['Challah', 28], ['Orlah', 20], ['Bikkurim', 13], ['Shabbat', 92], ['Eruvin', 65], ['Pesachim', 71], ['Beitzah', 22], ['Rosh Hashanah', 22], ['Yoma', 42], ['Sukkah', 26], ['Taanit', 26], ['Shekalim', 33], ['Megillah', 34], ['Chagigah', 22], ['Moed Katan', 19], ['Yevamot', 85], ['Ketubot', 72], ['Sotah', 47], ['Nedarim', 40], ['Nazir', 47], ['Gittin', 54], ['Kiddushin', 48], ['Bava Kamma', 44], ['Bava Metzia', 37], ['Bava Batra', 34], ['Shevuot', 44], ['Makkot', 9], ['Sanhedrin', 57], ['Avodah Zarah', 37], ['Horayot', 19], ['Niddah', 13]]
5347
- };
5348
- const schottensteinStartDate = new Date(2022, 10, 14);
5349
- /**
5350
- * Yerushalmi Yomi configuration for Schottenstein Edition
5351
- * @readonly
5352
- */
5353
- const schottenstein = {
5354
- ed: 'schottenstein',
5355
- startDate: schottensteinStartDate,
5356
- startAbs: greg2abs(schottensteinStartDate),
5357
- skipYK9Av: false,
5358
- shas: [['Berakhot', 94], ['Peah', 73], ['Demai', 77], ['Kilayim', 84], ['Sheviit', 87], ['Terumot', 107], ['Maasrot', 46], ['Maaser Sheni', 59], ['Challah', 49], ['Orlah', 42], ['Bikkurim', 26], ['Shabbat', 113], ['Eruvin', 71], ['Pesachim', 86], ['Shekalim', 61], ['Yoma', 57], ['Sukkah', 33], ['Beitzah', 49], ['Rosh Hashanah', 27], ['Taanit', 31], ['Megillah', 41], ['Chagigah', 28], ['Moed Katan', 23], ['Yevamot', 88], ['Ketubot', 77], ['Nedarim', 42], ['Nazir', 53], ['Sotah', 52], ['Gittin', 53], ['Kiddushin', 53], ['Bava Kamma', 40], ['Bava Metzia', 35], ['Bava Batra', 39], ['Sanhedrin', 75], ['Shevuot', 49], ['Avodah Zarah', 34], ['Makkot', 11], ['Horayot', 18], ['Niddah', 11]]
5359
- };
5360
- const SUN = 0;
5361
- const SAT$1 = 6;
5362
-
5363
- /**
5364
- * Using the Vilna edition, the Yerushalmi Daf Yomi program takes
5365
- * ~4.25 years or 51 months.
5366
- * Unlike the Daf Yomi Bavli cycle, this Yerushalmi cycle skips both
5367
- * Yom Kippur and Tisha B'Av (returning `null`).
5368
- * The page numbers are according to the Vilna
5369
- * Edition which is used since 1900.
5370
- *
5371
- * The Schottenstein edition uses different page numbers and takes
5372
- * ~6 years to complete.
5373
- *
5374
- * Throws an exception if the date is before Daf Yomi Yerushalmi
5375
- * cycle began (2 February 1980 for Vilna,
5376
- * 14 November 2022 for Schottenstein).
5377
- *
5378
- * @param {HDate|Date|number} date - Hebrew or Gregorian date
5379
- * @param {any} config - either vilna or schottenstein
5380
- * @return {any}
5381
- */
5382
- function yerushalmiYomi(date, config) {
5383
- if (typeof config !== 'object' || !Array.isArray(config.shas)) {
5384
- throw new Error('invalid yerushalmi config');
5385
- }
5386
- const cday = typeof date === 'number' && !isNaN(date) ? date : isDate(date) ? greg2abs(date) : HDate.isHDate(date) ? date.abs() : throwTypeError(`non-date given to dafyomi: ${date}`);
5387
- const startAbs = config.startAbs;
5388
- if (cday < startAbs) {
5389
- throw new RangeError(`Date ${date} too early; Yerushalmi Yomi cycle began on ${config.startDate}`);
5390
- }
5391
- const hd = new HDate(cday);
5392
- // No Daf for Yom Kippur and Tisha B'Av
5393
- if (config.skipYK9Av && skipDay(hd)) {
5394
5047
  return null;
5395
5048
  }
5396
- const shas = config.shas;
5397
- let numDapim = 0;
5398
- for (let j = 0; j < shas.length; j++) {
5399
- numDapim += shas[j][1];
5400
- }
5401
- let prevCycle = startAbs;
5402
- let nextCycle = startAbs;
5403
- while (cday >= nextCycle) {
5404
- prevCycle = nextCycle;
5405
- nextCycle += numDapim;
5406
- nextCycle += numSpecialDays(config, prevCycle, nextCycle);
5407
- }
5408
- let total = cday - prevCycle - numSpecialDays(config, prevCycle, cday);
5409
- for (let j = 0; j < shas.length; j++) {
5410
- const masechet = shas[j];
5411
- if (total < masechet[1]) {
5412
- return {
5413
- name: masechet[0],
5414
- blatt: total + 1,
5415
- ed: config.ed
5416
- };
5417
- }
5418
- total -= masechet[1];
5419
- }
5420
- throw new Error('Interal error, this code should be unreachable');
5421
- }
5422
-
5423
- /**
5424
- * @private
5425
- * @param {HDate} hd
5426
- * @return {boolean}
5427
- */
5428
- function skipDay(hd) {
5429
- if (hd.getMonth() === months.TISHREI && hd.getDate() === 10 || hd.getMonth() === months.AV && (hd.getDate() === 9 && hd.getDay() !== SAT$1 || hd.getDate() === 10 && hd.getDay() === SUN)) {
5430
- return true;
5431
- }
5432
- return false;
5433
- }
5434
-
5435
- /**
5436
- * @private
5437
- * @param {any} config
5438
- * @param {number} startAbs
5439
- * @param {number} endAbs
5440
- * @return {number}
5441
- */
5442
- function numSpecialDays(config, startAbs, endAbs) {
5443
- if (!config.skipYK9Av) {
5444
- return 0;
5445
- }
5446
- const startYear = new HDate(startAbs).getFullYear();
5447
- const endYear = new HDate(endAbs).getFullYear();
5448
- let specialDays = 0;
5449
- for (let year = startYear; year <= endYear; year++) {
5450
- const ykAbs = new HDate(10, months.TISHREI, year).abs();
5451
- if (ykAbs >= startAbs && ykAbs <= endAbs) {
5452
- specialDays++;
5453
- }
5454
- let av9dt = new HDate(9, months.AV, year);
5455
- if (av9dt.getDay() == SAT$1) {
5456
- av9dt = av9dt.next();
5457
- }
5458
- const av9abs = av9dt.abs();
5459
- if (av9abs >= startAbs && av9abs <= endAbs) {
5460
- specialDays++;
5461
- }
5462
- }
5463
- return specialDays;
5464
- }
5465
-
5466
- /**
5467
- * Event wrapper around a Yerushalmi Yomi result
5468
- */
5469
- class YerushalmiYomiEvent extends Event {
5470
- /**
5471
- * @param {HDate} date
5472
- * @param {any} daf
5473
- */
5474
- constructor(date, daf) {
5475
- super(date, `${daf.name} ${daf.blatt}`, flags.YERUSHALMI_YOMI);
5476
- this.daf = daf;
5477
- }
5478
- /**
5479
- * Returns name of tractate and page (e.g. "Yerushalmi Beitzah 21").
5480
- * @param {string} [locale] Optional locale name (defaults to active locale).
5481
- * @return {string}
5482
- */
5483
- render(locale) {
5484
- const prefix = Locale.gettext('Yerushalmi', locale);
5485
- return prefix + ' ' + this.renderBrief(locale);
5486
- }
5487
- /**
5488
- * Returns name of tractate and page (e.g. "Beitzah 21").
5489
- * @param {string} [locale] Optional locale name (defaults to active locale).
5490
- * @return {string}
5491
- */
5492
- renderBrief(locale) {
5493
- locale = locale || Locale.getLocaleName();
5494
- if (typeof locale === 'string') {
5495
- locale = locale.toLowerCase();
5496
- }
5497
- const name = Locale.gettext(this.daf.name, locale);
5498
- if (locale === 'he' || locale === 'he-x-nonikud') {
5499
- return name + ' דף ' + gematriya(this.daf.blatt);
5500
- }
5501
- return name + ' ' + this.daf.blatt;
5502
- }
5503
- /**
5504
- * Returns a link to sefaria.org
5505
- * @return {string}
5506
- */
5507
- url() {
5508
- const daf = this.daf;
5509
- if (daf.ed !== 'vilna') {
5510
- return undefined;
5511
- }
5512
- const tractate = daf.name;
5513
- const pageMap = vilnaMap[tractate];
5514
- if (!Array.isArray(pageMap)) {
5515
- return undefined;
5516
- }
5517
- const idx = daf.blatt - 1;
5518
- const verses0 = pageMap[idx];
5519
- if (typeof verses0 !== 'string') {
5520
- return undefined;
5521
- }
5522
- const name0 = 'Jerusalem Talmud ' + tractate;
5523
- const name = name0.replace(/ /g, '_');
5524
- const verses = verses0.replace(/:/g, '.');
5525
- return `https://www.sefaria.org/${name}.${verses}?lang=bi`;
5526
- }
5527
5049
  }
5528
5050
 
5529
5051
  const NISAN$1 = months.NISAN;
@@ -5614,14 +5136,14 @@ function getBirthdayOrAnniversary_(hyear, gdate) {
5614
5136
  return new HDate(day, month, hyear);
5615
5137
  }
5616
5138
 
5617
- var version="3.50.4";
5139
+ var version="4.0.1";
5618
5140
 
5619
5141
  var headers$1={"plural-forms":"nplurals=2; plural=(n > 1);"};var contexts$1={"":{Berachot:["Berachos"],Shabbat:["Shabbos"],Taanit:["Taanis"],Yevamot:["Yevamos"],Ketubot:["Kesubos"],"Baba Batra":["Baba Basra"],Makkot:["Makkos"],Shevuot:["Shevuos"],Horayot:["Horayos"],Menachot:["Menachos"],Bechorot:["Bechoros"],Keritot:["Kerisos"],Midot:["Midos"],"Achrei Mot":["Achrei Mos"],Bechukotai:["Bechukosai"],"Beha'alotcha":["Beha'aloscha"],Bereshit:["Bereshis"],Chukat:["Chukas"],"Erev Shavuot":["Erev Shavuos"],"Erev Sukkot":["Erev Sukkos"],"Ki Tavo":["Ki Savo"],"Ki Teitzei":["Ki Seitzei"],"Ki Tisa":["Ki Sisa"],Matot:["Matos"],"Purim Katan":["Purim Koton"],Tazria:["Sazria"],"Shabbat Chazon":["Shabbos Chazon"],"Shabbat HaChodesh":["Shabbos HaChodesh"],"Shabbat HaGadol":["Shabbos HaGadol"],"Shabbat Nachamu":["Shabbos Nachamu"],"Shabbat Parah":["Shabbos Parah"],"Shabbat Shekalim":["Shabbos Shekalim"],"Shabbat Shuva":["Shabbos Shuvah"],"Shabbat Zachor":["Shabbos Zachor"],Shavuot:["Shavuos"],"Shavuot I":["Shavuos I"],"Shavuot II":["Shavuos II"],Shemot:["Shemos"],"Shmini Atzeret":["Shmini Atzeres"],"Simchat Torah":["Simchas Torah"],Sukkot:["Sukkos"],"Sukkot I":["Sukkos I"],"Sukkot II":["Sukkos II"],"Sukkot II (CH''M)":["Sukkos II (CH''M)"],"Sukkot III (CH''M)":["Sukkos III (CH''M)"],"Sukkot IV (CH''M)":["Sukkos IV (CH''M)"],"Sukkot V (CH''M)":["Sukkos V (CH''M)"],"Sukkot VI (CH''M)":["Sukkos VI (CH''M)"],"Sukkot VII (Hoshana Raba)":["Sukkos VII (Hoshana Raba)"],"Ta'anit Bechorot":["Ta'anis Bechoros"],"Ta'anit Esther":["Ta'anis Esther"],Toldot:["Toldos"],Vaetchanan:["Vaeschanan"],Yitro:["Yisro"],"Vezot Haberakhah":["Vezos Haberakhah"],Parashat:["Parshas"],"Leil Selichot":["Leil Selichos"],"Shabbat Mevarchim Chodesh":["Shabbos Mevorchim Chodesh"],"Shabbat Shirah":["Shabbos Shirah"],Tevet:["Teves"],"Asara B'Tevet":["Asara B'Teves"],Berakhot:["Berakhos"],Sheviit:["Sheviis"],Terumot:["Terumos"],Maasrot:["Maasros"],Eduyot:["Eduyos"],Avot:["Avos"],Bekhorot:["Bekhoros"],Middot:["Middos"],Oholot:["Oholos"],Tahorot:["Tahoros"],Mikvaot:["Mikvaos"],"Alot HaShachar":["Alos HaShachar"],"Kriat Shema, sof zeman":["Krias Shema, sof zman"],"Tefilah, sof zeman":["Tefilah, sof zman"],"Kriat Shema, sof zeman (MGA)":["Krias Shema, sof zman (MGA)"],"Tefilah, sof zeman (MGA)":["Tefilah, sof zman (MGA)"],"Chatzot HaLailah":["Chatzos HaLailah"],"Chatzot hayom":["Chatzos"],"Tzeit HaKochavim":["Tzeis HaKochavim"],"Birkat Hachamah":["Birkas Hachamah"],"Shushan Purim Katan":["Shushan Purim Koton"]}};var poAshkenazi = {headers:headers$1,contexts:contexts$1};
5620
5142
 
5621
5143
  Locale.addLocale('ashkenazi', poAshkenazi);
5622
5144
  Locale.addLocale('a', poAshkenazi);
5623
5145
 
5624
- var headers={"plural-forms":"nplurals=2; plural=(n > 1);"};var contexts={"":{Berachot:["ברכות"],Shabbat:["שַׁבָּת"],Eruvin:["עירובין"],Pesachim:["פסחים"],Shekalim:["שקלים"],Yoma:["יומא"],Sukkah:["סוכה"],Beitzah:["ביצה"],Taanit:["תענית"],Megillah:["מגילה"],"Moed Katan":["מועד קטן"],Chagigah:["חגיגה"],Yevamot:["יבמות"],Ketubot:["כתובות"],Nedarim:["נדרים"],Nazir:["נזיר"],Sotah:["סוטה"],Gitin:["גיטין"],Kiddushin:["קידושין"],"Baba Kamma":["בבא קמא"],"Baba Metzia":["בבא מציעא"],"Baba Batra":["בבא בתרא"],Sanhedrin:["סנהדרין"],Makkot:["מכות"],Shevuot:["שבועות"],"Avodah Zarah":["עבודה זרה"],Horayot:["הוריות"],Zevachim:["זבחים"],Menachot:["מנחות"],Chullin:["חולין"],Bechorot:["בכורות"],Arachin:["ערכין"],Temurah:["תמורה"],Keritot:["כריתות"],Meilah:["מעילה"],Kinnim:["קינים"],Tamid:["תמיד"],Midot:["מדות"],Niddah:["נדה"],"Daf Yomi":["דַף יוֹמִי"],Parashat:["פָּרָשַׁת"],"Achrei Mot":["אַחֲרֵי מוֹת"],Balak:["בָּלָק"],Bamidbar:["בְּמִדְבַּר"],Bechukotai:["בְּחֻקֹּתַי"],"Beha'alotcha":["בְּהַעֲלֹתְךָ"],Behar:["בְּהַר"],Bereshit:["בְּרֵאשִׁית"],Beshalach:["בְּשַׁלַּח"],Bo:["בֹּא"],"Chayei Sara":["חַיֵּי שָֹרָה"],Chukat:["חֻקַּת"],Devarim:["דְּבָרִים"],Eikev:["עֵקֶב"],Emor:["אֱמוֹר"],"Ha'Azinu":["הַאֲזִינוּ"],Kedoshim:["קְדשִׁים"],"Ki Tavo":["כִּי־תָבוֹא"],"Ki Teitzei":["כִּי־תֵצֵא"],"Ki Tisa":["כִּי תִשָּׂא"],Korach:["קוֹרַח"],"Lech-Lecha":["לֶךְ־לְךָ"],Masei:["מַסְעֵי"],Matot:["מַּטּוֹת"],Metzora:["מְּצֹרָע"],Miketz:["מִקֵּץ"],Mishpatim:["מִּשְׁפָּטִים"],Nasso:["נָשׂא"],Nitzavim:["נִצָּבִים"],Noach:["נֹחַ"],Pekudei:["פְקוּדֵי"],Pinchas:["פִּינְחָס"],"Re'eh":["רְאֵה"],"Sh'lach":["שְׁלַח־לְךָ"],Shemot:["שְׁמוֹת"],Shmini:["שְּׁמִינִי"],Shoftim:["שׁוֹפְטִים"],Tazria:["תַזְרִיעַ"],Terumah:["תְּרוּמָה"],Tetzaveh:["תְּצַוֶּה"],Toldot:["תּוֹלְדוֹת"],Tzav:["צַו"],Vaera:["וָאֵרָא"],Vaetchanan:["וָאֶתְחַנַּן"],Vayakhel:["וַיַּקְהֵל"],Vayechi:["וַיְחִי"],Vayeilech:["וַיֵּלֶךְ"],Vayera:["וַיֵּרָא"],Vayeshev:["וַיֵּשֶׁב"],Vayetzei:["וַיֵּצֵא"],Vayigash:["וַיִּגַּשׁ"],Vayikra:["וַיִּקְרָא"],Vayishlach:["וַיִּשְׁלַח"],"Vezot Haberakhah":["וְזֹאת הַבְּרָכָה"],Yitro:["יִתְרוֹ"],"Asara B'Tevet":["עֲשָׂרָה בְּטֵבֵת"],"Candle lighting":["הַדלָקָת נֵרוֹת"],Chanukah:["חֲנוּכָּה"],"Chanukah: 1 Candle":["חֲנוּכָּה: א׳ נֵר"],"Chanukah: 2 Candles":["חֲנוּכָּה: ב׳ נֵרוֹת"],"Chanukah: 3 Candles":["חֲנוּכָּה: ג׳ נֵרוֹת"],"Chanukah: 4 Candles":["חֲנוּכָּה: ד׳ נֵרוֹת"],"Chanukah: 5 Candles":["חֲנוּכָּה: ה׳ נֵרוֹת"],"Chanukah: 6 Candles":["חֲנוּכָּה: ו׳ נֵרוֹת"],"Chanukah: 7 Candles":["חֲנוּכָּה: ז׳ נֵרוֹת"],"Chanukah: 8 Candles":["חֲנוּכָּה: ח׳ נֵרוֹת"],"Chanukah: 8th Day":["חֲנוּכָּה: יוֹם ח׳"],"Days of the Omer":["סְפִירַת הָעוֹמֶר"],Omer:["עוֹמֶר"],"day of the Omer":["בָּעוֹמֶר"],"Erev Pesach":["עֶרֶב פֶּסַח"],"Erev Purim":["עֶרֶב פּוּרִים"],"Erev Rosh Hashana":["עֶרֶב רֹאשׁ הַשָּׁנָה"],"Erev Shavuot":["עֶרֶב שָׁבוּעוֹת"],"Erev Simchat Torah":["עֶרֶב שִׂמְחַת תּוֹרָה"],"Erev Sukkot":["עֶרֶב סוּכּוֹת"],"Erev Tish'a B'Av":["עֶרֶב תִּשְׁעָה בְּאָב"],"Erev Yom Kippur":["עֶרֶב יוֹם כִּפּוּר"],Havdalah:["הַבדָלָה"],"Lag BaOmer":["ל״ג בָּעוֹמֶר"],"Leil Selichot":["סליחות"],Pesach:["פֶּסַח"],"Pesach I":["פֶּסַח א׳"],"Pesach II":["פֶּסַח ב׳"],"Pesach II (CH''M)":["פֶּסַח ב׳ (חוה״מ)"],"Pesach III (CH''M)":["פֶּסַח ג׳ (חוה״מ)"],"Pesach IV (CH''M)":["פֶּסַח ד׳ (חוה״מ)"],"Pesach Sheni":["פֶּסַח שני"],"Pesach V (CH''M)":["פֶּסַח ה׳ (חוה״מ)"],"Pesach VI (CH''M)":["פֶּסַח ו׳ (חוה״מ)"],"Pesach VII":["פֶּסַח ז׳"],"Pesach VIII":["פֶּסַח ח׳"],Purim:["פּוּרִים"],"Purim Katan":["פּוּרִים קָטָן"],"Rosh Chodesh %s":["רֹאשׁ חוֹדֶשׁ %s"],"Rosh Chodesh":["רֹאשׁ חוֹדֶשׁ"],Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"],"Rosh Hashana":["רֹאשׁ הַשָּׁנָה"],"Rosh Hashana I":["רֹאשׁ הַשָּׁנָה א׳"],"Rosh Hashana II":["רֹאשׁ הַשָּׁנָה ב׳"],"Shabbat Chazon":["שַׁבָּת חֲזוֹן"],"Shabbat HaChodesh":["שַׁבָּת הַחֹדֶשׁ"],"Shabbat HaGadol":["שַׁבָּת הַגָּדוֹל"],"Shabbat Machar Chodesh":["שַׁבָּת מָחָר חוֹדֶשׁ"],"Shabbat Nachamu":["שַׁבָּת נַחֲמוּ"],"Shabbat Parah":["שַׁבָּת פּרה"],"Shabbat Rosh Chodesh":["שַׁבָּת רֹאשׁ חוֹדֶשׁ"],"Shabbat Shekalim":["שַׁבָּת שְׁקָלִים"],"Shabbat Shuva":["שַׁבָּת שׁוּבָה"],"Shabbat Zachor":["שַׁבָּת זָכוֹר"],Shavuot:["שָׁבוּעוֹת"],"Shavuot I":["שָׁבוּעוֹת א׳"],"Shavuot II":["שָׁבוּעוֹת ב׳"],"Shmini Atzeret":["שְׁמִינִי עֲצֶרֶת"],"Shushan Purim":["שׁוּשָׁן פּוּרִים"],Sigd:["סיגד"],"Simchat Torah":["שִׂמְחַת תּוֹרָה"],Sukkot:["סוּכּוֹת"],"Sukkot I":["סוּכּוֹת א׳"],"Sukkot II":["סוּכּוֹת ב׳"],"Sukkot II (CH''M)":["סוּכּוֹת ב׳ (חוה״מ)"],"Sukkot III (CH''M)":["סוּכּוֹת ג׳ (חוה״מ)"],"Sukkot IV (CH''M)":["סוּכּוֹת ד׳ (חוה״מ)"],"Sukkot V (CH''M)":["סוּכּוֹת ה׳ (חוה״מ)"],"Sukkot VI (CH''M)":["סוּכּוֹת ו׳ (חוה״מ)"],"Sukkot VII (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Ta'anit Bechorot":["תַּעֲנִית בְּכוֹרוֹת"],"Ta'anit Esther":["תַּעֲנִית אֶסְתֵּר"],"Tish'a B'Av":["תִּשְׁעָה בְּאָב"],"Tu B'Av":["טוּ בְּאָב"],"Tu BiShvat":["טוּ בִּשְׁבָט"],"Tu B'Shvat":["טוּ בִּשְׁבָט"],"Tzom Gedaliah":["צוֹם גְּדַלְיָה"],"Tzom Tammuz":["צוֹם תָּמוּז"],"Yom HaAtzma'ut":["יוֹם הָעַצְמָאוּת"],"Yom HaShoah":["יוֹם הַשּׁוֹאָה"],"Yom HaZikaron":["יוֹם הַזִּכָּרוֹן"],"Yom Kippur":["יוֹם כִּפּוּר"],"Yom Yerushalayim":["יוֹם יְרוּשָׁלַיִם"],"Yom HaAliyah":["יוֹם הַעֲלִיָּה"],"Yom HaAliyah School Observance":["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"],"Pesach I (on Shabbat)":["פֶּסַח יוֹם א׳ (בְּשַׁבָּת)"],"Pesach Chol ha-Moed Day 1":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם א׳"],"Pesach Chol ha-Moed Day 2":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ב׳"],"Pesach Chol ha-Moed Day 3":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ג׳"],"Pesach Chol ha-Moed Day 4":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ד׳"],"Pesach Chol ha-Moed Day 5":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ה׳"],"Pesach Shabbat Chol ha-Moed":["פֶּסַח שַׁבָּת חוֹל הַמּוֹעֵד"],"Shavuot II (on Shabbat)":["שָׁבוּעוֹת יוֹם ב׳ (בְּשַׁבָּת)"],"Rosh Hashana I (on Shabbat)":["רֹאשׁ הַשָּׁנָה יוֹם א׳ (בְּשַׁבָּת)"],"Yom Kippur (on Shabbat)":["יוֹם כִּפּוּר (בְּשַׁבָּת)"],"Yom Kippur (Mincha, Traditional)":["יוֹם כִּפּוּר מִנחָה"],"Yom Kippur (Mincha, Alternate)":["יוֹם כִּפּוּר מִנחָה"],"Sukkot I (on Shabbat)":["סוּכּוֹת יוֹם א׳ (בְּשַׁבָּת)"],"Sukkot Chol ha-Moed Day 1":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם א׳"],"Sukkot Chol ha-Moed Day 2":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ב׳"],"Sukkot Chol ha-Moed Day 3":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ג׳"],"Sukkot Chol ha-Moed Day 4":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ד׳"],"Sukkot Chol ha-Moed Day 5":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ה׳"],"Sukkot Shabbat Chol ha-Moed":["סוּכּוֹת שַׁבָּת חוֹל הַמּוֹעֵד"],"Sukkot Final Day (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Rosh Chodesh Adar":["רֹאשׁ חוֹדֶשׁ אַדָר"],"Rosh Chodesh Adar I":["רֹאשׁ חוֹדֶשׁ אַדָר א׳"],"Rosh Chodesh Adar II":["רֹאשׁ חוֹדֶשׁ אַדָר ב׳"],"Rosh Chodesh Av":["רֹאשׁ חוֹדֶשׁ אָב"],"Rosh Chodesh Cheshvan":["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"],"Rosh Chodesh Elul":["רֹאשׁ חוֹדֶשׁ אֱלוּל"],"Rosh Chodesh Iyyar":["רֹאשׁ חוֹדֶשׁ אִיָיר"],"Rosh Chodesh Kislev":["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"],"Rosh Chodesh Nisan":["רֹאשׁ חוֹדֶשׁ נִיסָן"],"Rosh Chodesh Sh'vat":["רֹאשׁ חוֹדֶשׁ שְׁבָט"],"Rosh Chodesh Sivan":["רֹאשׁ חוֹדֶשׁ סִיוָן"],"Rosh Chodesh Tamuz":["רֹאשׁ חוֹדֶשׁ תָּמוּז"],"Rosh Chodesh Tevet":["רֹאשׁ חוֹדֶשׁ טֵבֵת"],min:["דקות"],"Fast begins":["תחילת הַצוֹם"],"Fast ends":["סִיּוּם הַצוֹם"],"Rosh Hashana LaBehemot":["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"],"Tish'a B'Av (observed)":["תִּשְׁעָה בְּאָב נִדחֶה"],"Shabbat Mevarchim Chodesh":["שַׁבָּת מְבָרְכִים חוֹדֶשׁ"],"Shabbat Shirah":["שַׁבָּת שִׁירָה"],"Chatzot HaLailah":["חֲצוֹת הַלַיְלָה"],"Alot haShachar":["עֲלוֹת הַשַּׁחַר"],Misheyakir:["מִשֶּׁיַּכִּיר"],"Misheyakir Machmir":["מִשֶּׁיַּכִּיר מַחמִיר"],Dawn:["דִּימְדּוּמֵי בּוֹקֵר"],Sunrise:["הַנֵץ הַחַמָּה"],"Kriat Shema, sof zeman":["סוֹף זְמַן קְרִיאַת שְׁמַע גר״א"],"Tefilah, sof zeman":["סוֹף זְמַן תְּפִלָּה גר״א"],"Kriat Shema, sof zeman (MGA)":["סוֹף זְמַן קְרִיאַת שְׁמַע מג״א"],"Tefilah, sof zeman (MGA)":["סוֹף זְמַן תְּפִלָּה מג״א"],"Chatzot hayom":["חֲצוֹת הַיּוֹם"],"Mincha Gedolah":["מִנְחָה גְּדוֹלָה"],"Mincha Ketanah":["מִנְחָה קְטַנָּה"],"Plag HaMincha":["פְּלַג הַמִּנְחָה"],Dusk:["דִּימְדּוּמֵי עֶרֶב"],Sunset:["שְׁקִיעָה"],"Nightfall - End of ordained fasts":["לַיְלָה - גמר תעניות דרבנן"],"Tzeit HaKochavim":["צֵאת כוכבים"],Lovingkindness:["חֶֽסֶד"],Might:["גְבוּרָה"],Beauty:["תִּפאֶרֶת"],Eternity:["נֶּֽצַח"],Splendor:["הוֹד"],Foundation:["יְּסוֹד"],Majesty:["מַּלְכוּת"],day:["יוֹם"],"Chanukah Day 1":["חֲנוּכָּה יוֹם א׳"],"Chanukah Day 2":["חֲנוּכָּה יוֹם ב׳"],"Chanukah Day 3":["חֲנוּכָּה יוֹם ג׳"],"Chanukah Day 4":["חֲנוּכָּה יוֹם ד׳"],"Chanukah Day 5":["חֲנוּכָּה יוֹם ה׳"],"Chanukah Day 6":["חֲנוּכָּה יוֹם ו׳"],"Chanukah Day 7":["חֲנוּכָּה יוֹם ז׳"],"Chanukah Day 7 (on Rosh Chodesh)":["חֲנוּכָּה יוֹם ז׳ (רֹאשׁ חוֹדֶשׁ)"],"Chanukah Day 8":["חֲנוּכָּה יוֹם ח׳"],"Chanukah Day 1 (on Shabbat)":["חֲנוּכָּה יוֹם א׳ (בְּשַׁבָּת)"],"Chanukah Day 2 (on Shabbat)":["חֲנוּכָּה יוֹם ב׳ (בְּשַׁבָּת)"],"Chanukah Day 3 (on Shabbat)":["חֲנוּכָּה יוֹם ג׳ (בְּשַׁבָּת)"],"Chanukah Day 4 (on Shabbat)":["חֲנוּכָּה יוֹם ד׳ (בְּשַׁבָּת)"],"Chanukah Day 5 (on Shabbat)":["חֲנוּכָּה יוֹם ה׳ (בְּשַׁבָּת)"],"Chanukah Day 7 (on Shabbat)":["חֲנוּכָּה יוֹם ז׳ (בְּשַׁבָּת)"],"Chanukah Day 8 (on Shabbat)":["חֲנוּכָּה יוֹם ח׳ (בְּשַׁבָּת)"],"Shabbat Rosh Chodesh Chanukah":["שַׁבָּת רֹאשׁ חוֹדֶשׁ חֲנוּכָּה"],Berakhot:["ברכות"],Peah:["פאה"],Demai:["דמאי"],Kilayim:["כלאים"],Sheviit:["שביעית"],Terumot:["תרומות"],Maasrot:["מעשרות"],"Maaser Sheni":["מעשר שני"],Challah:["חלה"],Orlah:["ערלה"],Bikkurim:["ביכורים"],"Rosh Hashanah":["ראש השנה"],Gittin:["גיטין"],"Bava Kamma":["בבא קמא"],"Bava Metzia":["בבא מציעא"],"Bava Batra":["בבא בתרא"],Eduyot:["עדיות"],Avot:["אבות"],Bekhorot:["בכורות"],Arakhin:["ערכין"],Middot:["מדות"],Kelim:["כלים"],Oholot:["אהלות"],Negaim:["נגעים"],Parah:["פרה"],Tahorot:["טהרות"],Mikvaot:["מקואות"],Makhshirin:["מכשירין"],Zavim:["זבים"],"Tevul Yom":["טבול יום"],Yadayim:["ידים"],Oktzin:["עוקצים"],"Yom Kippur Katan":["יוֹם כִּפּוּר קָטָן"],"Family Day":["יוֹם הַמִּשׁפָּחָה"],"Yitzhak Rabin Memorial Day":["יוֹם הַזִּכָּרוֹן ליצחק רבין"],"Jabotinsky Day":["יוֹם ז׳בוטינסקי"],"Herzl Day":["יוֹם הרצל"],"Ben-Gurion Day":["יוֹם בן־גוריון"],"Birkat Hachamah":["בִרְכַּת הַחַמָּה"],"Shushan Purim Katan":["שׁוּשָׁן פּוּרִים קָטָן"],"Purim Meshulash":["פּוּרִים מְשׁוּלָּשׁ"],"after sunset":["אחרי השקיעה"],Yerushalmi:["יְרוּשַׁלְמִי"],"Chag HaBanot":["חַג הַבָּנוֹת"],Joshua:["יְהוֹשׁוּעַ"],Judges:["שׁוֹפְטִים"],"I Samuel":["שְׁמוּאֵל רִאשׁוֹן"],"II Samuel":["שְׁמוּאֵל שֵׁנִי"],"I Kings":["מְלָכִים רִאשׁוֹן"],"II Kings":["מְלָכִים שֵׁנִי"],Isaiah:["יְשַׁעְיָהוּ"],Jeremiah:["יִרְמְיָהוּ"],Ezekiel:["יְחֶזְקֵאל"],Hosea:["הוֹשֵׁעַ"],Joel:["יוֹאֵל"],Amos:["עָמוּס"],Obadiah:["עוֹבַדְיָה"],Jonah:["יוֹנָה"],Micah:["מִיכָה"],Nachum:["נַחוּם"],Habakkuk:["חֲבַקּוּק"],Zephaniah:["צְפַנְיָה"],Haggai:["חַגַּי"],Zechariah:["זְכַרְיָה"],Malachi:["מַלְאָכִי"],Psalms:["תְּהִלִּים"],Proverbs:["מִשְׁלֵי"],Job:["אִיּוֹב"],"Song of Songs":["שִׁיר הַשִּׁירִים"],Ruth:["רוּת"],Lamentations:["אֵיכָה"],Ecclesiastes:["קֹהֶלֶת"],Esther:["אֶסְתֵּר"],Daniel:["דָּנִיֵּאל"],Ezra:["עֶזְרָא"],Nehemiah:["נְחֶמְיָה"],"I Chronicles":["דִברֵי הַיָמִים רִאשׁוֹן"],"II Chronicles":["דִברֵי הַיָמִים שֵׁנִי"],"Yom Kippur (Mincha)":["יוֹם כִּפּוּר מִנחָה"],"Tish'a B'Av (Mincha)":["תִּשְׁעָה בְּאָב מִנחָה"],"Asara B'Tevet (Mincha)":["עֲשָׂרָה בְּטֵבֵת מִנחָה"],"Ta'anit Bechorot (Mincha)":["תַּעֲנִית בְּכוֹרוֹת מִנחָה"],"Ta'anit Esther (Mincha)":["תַּעֲנִית אֶסְתֵּר מִנחָה"],"Tzom Gedaliah (Mincha)":["צוֹם גְּדַלְיָה מִנחָה"],"Tzom Tammuz (Mincha)":["צוֹם תָּמוּז מִנחָה"]}};var poHe = {headers:headers,contexts:contexts};
5146
+ var headers={"plural-forms":"nplurals=2; plural=(n > 1);"};var contexts={"":{Berachot:["ברכות"],Shabbat:["שַׁבָּת"],Eruvin:["עירובין"],Pesachim:["פסחים"],Shekalim:["שקלים"],Yoma:["יומא"],Sukkah:["סוכה"],Beitzah:["ביצה"],Taanit:["תענית"],Megillah:["מגילה"],"Moed Katan":["מועד קטן"],Chagigah:["חגיגה"],Yevamot:["יבמות"],Ketubot:["כתובות"],Nedarim:["נדרים"],Nazir:["נזיר"],Sotah:["סוטה"],Gitin:["גיטין"],Kiddushin:["קידושין"],"Baba Kamma":["בבא קמא"],"Baba Metzia":["בבא מציעא"],"Baba Batra":["בבא בתרא"],Sanhedrin:["סנהדרין"],Makkot:["מכות"],Shevuot:["שבועות"],"Avodah Zarah":["עבודה זרה"],Horayot:["הוריות"],Zevachim:["זבחים"],Menachot:["מנחות"],Chullin:["חולין"],Bechorot:["בכורות"],Arachin:["ערכין"],Temurah:["תמורה"],Keritot:["כריתות"],Meilah:["מעילה"],Kinnim:["קינים"],Tamid:["תמיד"],Midot:["מדות"],Niddah:["נדה"],"Daf Yomi":["דַף יוֹמִי"],Parashat:["פָּרָשַׁת"],"Achrei Mot":["אַחֲרֵי מוֹת"],Balak:["בָּלָק"],Bamidbar:["בְּמִדְבַּר"],Bechukotai:["בְּחֻקֹּתַי"],"Beha'alotcha":["בְּהַעֲלֹתְךָ"],Behar:["בְּהַר"],Bereshit:["בְּרֵאשִׁית"],Beshalach:["בְּשַׁלַּח"],Bo:["בֹּא"],"Chayei Sara":["חַיֵּי שָֹרָה"],Chukat:["חֻקַּת"],Devarim:["דְּבָרִים"],Eikev:["עֵקֶב"],Emor:["אֱמוֹר"],"Ha'Azinu":["הַאֲזִינוּ"],Kedoshim:["קְדשִׁים"],"Ki Tavo":["כִּי־תָבוֹא"],"Ki Teitzei":["כִּי־תֵצֵא"],"Ki Tisa":["כִּי תִשָּׂא"],Korach:["קוֹרַח"],"Lech-Lecha":["לֶךְ־לְךָ"],Masei:["מַסְעֵי"],Matot:["מַּטּוֹת"],Metzora:["מְּצֹרָע"],Miketz:["מִקֵּץ"],Mishpatim:["מִּשְׁפָּטִים"],Nasso:["נָשׂא"],Nitzavim:["נִצָּבִים"],Noach:["נֹחַ"],Pekudei:["פְקוּדֵי"],Pinchas:["פִּינְחָס"],"Re'eh":["רְאֵה"],"Sh'lach":["שְׁלַח־לְךָ"],Shemot:["שְׁמוֹת"],Shmini:["שְּׁמִינִי"],Shoftim:["שׁוֹפְטִים"],Tazria:["תַזְרִיעַ"],Terumah:["תְּרוּמָה"],Tetzaveh:["תְּצַוֶּה"],Toldot:["תּוֹלְדוֹת"],Tzav:["צַו"],Vaera:["וָאֵרָא"],Vaetchanan:["וָאֶתְחַנַּן"],Vayakhel:["וַיַּקְהֵל"],Vayechi:["וַיְחִי"],Vayeilech:["וַיֵּלֶךְ"],Vayera:["וַיֵּרָא"],Vayeshev:["וַיֵּשֶׁב"],Vayetzei:["וַיֵּצֵא"],Vayigash:["וַיִּגַּשׁ"],Vayikra:["וַיִּקְרָא"],Vayishlach:["וַיִּשְׁלַח"],"Vezot Haberakhah":["וְזֹאת הַבְּרָכָה"],Yitro:["יִתְרוֹ"],"Asara B'Tevet":["עֲשָׂרָה בְּטֵבֵת"],"Candle lighting":["הַדלָקָת נֵרוֹת"],Chanukah:["חֲנוּכָּה"],"Chanukah: 1 Candle":["חֲנוּכָּה: א׳ נֵר"],"Chanukah: 2 Candles":["חֲנוּכָּה: ב׳ נֵרוֹת"],"Chanukah: 3 Candles":["חֲנוּכָּה: ג׳ נֵרוֹת"],"Chanukah: 4 Candles":["חֲנוּכָּה: ד׳ נֵרוֹת"],"Chanukah: 5 Candles":["חֲנוּכָּה: ה׳ נֵרוֹת"],"Chanukah: 6 Candles":["חֲנוּכָּה: ו׳ נֵרוֹת"],"Chanukah: 7 Candles":["חֲנוּכָּה: ז׳ נֵרוֹת"],"Chanukah: 8 Candles":["חֲנוּכָּה: ח׳ נֵרוֹת"],"Chanukah: 8th Day":["חֲנוּכָּה: יוֹם ח׳"],"Days of the Omer":["סְפִירַת הָעוֹמֶר"],Omer:["עוֹמֶר"],"day of the Omer":["בָּעוֹמֶר"],"Erev Pesach":["עֶרֶב פֶּסַח"],"Erev Purim":["עֶרֶב פּוּרִים"],"Erev Rosh Hashana":["עֶרֶב רֹאשׁ הַשָּׁנָה"],"Erev Shavuot":["עֶרֶב שָׁבוּעוֹת"],"Erev Simchat Torah":["עֶרֶב שִׂמְחַת תּוֹרָה"],"Erev Sukkot":["עֶרֶב סוּכּוֹת"],"Erev Tish'a B'Av":["עֶרֶב תִּשְׁעָה בְּאָב"],"Erev Yom Kippur":["עֶרֶב יוֹם כִּפּוּר"],Havdalah:["הַבדָלָה"],"Lag BaOmer":["ל״ג בָּעוֹמֶר"],"Leil Selichot":["סליחות"],Pesach:["פֶּסַח"],"Pesach I":["פֶּסַח א׳"],"Pesach II":["פֶּסַח ב׳"],"Pesach II (CH''M)":["פֶּסַח ב׳ (חוה״מ)"],"Pesach III (CH''M)":["פֶּסַח ג׳ (חוה״מ)"],"Pesach IV (CH''M)":["פֶּסַח ד׳ (חוה״מ)"],"Pesach Sheni":["פֶּסַח שני"],"Pesach V (CH''M)":["פֶּסַח ה׳ (חוה״מ)"],"Pesach VI (CH''M)":["פֶּסַח ו׳ (חוה״מ)"],"Pesach VII":["פֶּסַח ז׳"],"Pesach VIII":["פֶּסַח ח׳"],Purim:["פּוּרִים"],"Purim Katan":["פּוּרִים קָטָן"],"Rosh Chodesh %s":["רֹאשׁ חוֹדֶשׁ %s"],"Rosh Chodesh":["רֹאשׁ חוֹדֶשׁ"],Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"],"Rosh Hashana":["רֹאשׁ הַשָּׁנָה"],"Rosh Hashana I":["רֹאשׁ הַשָּׁנָה א׳"],"Rosh Hashana II":["רֹאשׁ הַשָּׁנָה ב׳"],"Shabbat Chazon":["שַׁבָּת חֲזוֹן"],"Shabbat HaChodesh":["שַׁבָּת הַחֹדֶשׁ"],"Shabbat HaGadol":["שַׁבָּת הַגָּדוֹל"],"Shabbat Machar Chodesh":["שַׁבָּת מָחָר חוֹדֶשׁ"],"Shabbat Nachamu":["שַׁבָּת נַחֲמוּ"],"Shabbat Parah":["שַׁבָּת פּרה"],"Shabbat Rosh Chodesh":["שַׁבָּת רֹאשׁ חוֹדֶשׁ"],"Shabbat Shekalim":["שַׁבָּת שְׁקָלִים"],"Shabbat Shuva":["שַׁבָּת שׁוּבָה"],"Shabbat Zachor":["שַׁבָּת זָכוֹר"],Shavuot:["שָׁבוּעוֹת"],"Shavuot I":["שָׁבוּעוֹת א׳"],"Shavuot II":["שָׁבוּעוֹת ב׳"],"Shmini Atzeret":["שְׁמִינִי עֲצֶרֶת"],"Shushan Purim":["שׁוּשָׁן פּוּרִים"],Sigd:["סיגד"],"Simchat Torah":["שִׂמְחַת תּוֹרָה"],Sukkot:["סוּכּוֹת"],"Sukkot I":["סוּכּוֹת א׳"],"Sukkot II":["סוּכּוֹת ב׳"],"Sukkot II (CH''M)":["סוּכּוֹת ב׳ (חוה״מ)"],"Sukkot III (CH''M)":["סוּכּוֹת ג׳ (חוה״מ)"],"Sukkot IV (CH''M)":["סוּכּוֹת ד׳ (חוה״מ)"],"Sukkot V (CH''M)":["סוּכּוֹת ה׳ (חוה״מ)"],"Sukkot VI (CH''M)":["סוּכּוֹת ו׳ (חוה״מ)"],"Sukkot VII (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Ta'anit Bechorot":["תַּעֲנִית בְּכוֹרוֹת"],"Ta'anit Esther":["תַּעֲנִית אֶסְתֵּר"],"Tish'a B'Av":["תִּשְׁעָה בְּאָב"],"Tu B'Av":["טוּ בְּאָב"],"Tu BiShvat":["טוּ בִּשְׁבָט"],"Tu B'Shvat":["טוּ בִּשְׁבָט"],"Tzom Gedaliah":["צוֹם גְּדַלְיָה"],"Tzom Tammuz":["צוֹם תָּמוּז"],"Yom HaAtzma'ut":["יוֹם הָעַצְמָאוּת"],"Yom HaShoah":["יוֹם הַשּׁוֹאָה"],"Yom HaZikaron":["יוֹם הַזִּכָּרוֹן"],"Yom Kippur":["יוֹם כִּפּוּר"],"Yom Yerushalayim":["יוֹם יְרוּשָׁלַיִם"],"Yom HaAliyah":["יוֹם הַעֲלִיָּה"],"Yom HaAliyah School Observance":["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"],"Pesach I (on Shabbat)":["פֶּסַח יוֹם א׳ (בְּשַׁבָּת)"],"Pesach Chol ha-Moed Day 1":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם א׳"],"Pesach Chol ha-Moed Day 2":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ב׳"],"Pesach Chol ha-Moed Day 3":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ג׳"],"Pesach Chol ha-Moed Day 4":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ד׳"],"Pesach Chol ha-Moed Day 5":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ה׳"],"Pesach Shabbat Chol ha-Moed":["פֶּסַח שַׁבָּת חוֹל הַמּוֹעֵד"],"Shavuot II (on Shabbat)":["שָׁבוּעוֹת יוֹם ב׳ (בְּשַׁבָּת)"],"Rosh Hashana I (on Shabbat)":["רֹאשׁ הַשָּׁנָה יוֹם א׳ (בְּשַׁבָּת)"],"Yom Kippur (on Shabbat)":["יוֹם כִּפּוּר (בְּשַׁבָּת)"],"Yom Kippur (Mincha, Traditional)":["יוֹם כִּפּוּר מִנחָה"],"Yom Kippur (Mincha, Alternate)":["יוֹם כִּפּוּר מִנחָה"],"Sukkot I (on Shabbat)":["סוּכּוֹת יוֹם א׳ (בְּשַׁבָּת)"],"Sukkot Chol ha-Moed Day 1":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם א׳"],"Sukkot Chol ha-Moed Day 2":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ב׳"],"Sukkot Chol ha-Moed Day 3":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ג׳"],"Sukkot Chol ha-Moed Day 4":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ד׳"],"Sukkot Chol ha-Moed Day 5":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ה׳"],"Sukkot Shabbat Chol ha-Moed":["סוּכּוֹת שַׁבָּת חוֹל הַמּוֹעֵד"],"Sukkot Final Day (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Rosh Chodesh Adar":["רֹאשׁ חוֹדֶשׁ אַדָר"],"Rosh Chodesh Adar I":["רֹאשׁ חוֹדֶשׁ אַדָר א׳"],"Rosh Chodesh Adar II":["רֹאשׁ חוֹדֶשׁ אַדָר ב׳"],"Rosh Chodesh Av":["רֹאשׁ חוֹדֶשׁ אָב"],"Rosh Chodesh Cheshvan":["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"],"Rosh Chodesh Elul":["רֹאשׁ חוֹדֶשׁ אֱלוּל"],"Rosh Chodesh Iyyar":["רֹאשׁ חוֹדֶשׁ אִיָיר"],"Rosh Chodesh Kislev":["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"],"Rosh Chodesh Nisan":["רֹאשׁ חוֹדֶשׁ נִיסָן"],"Rosh Chodesh Sh'vat":["רֹאשׁ חוֹדֶשׁ שְׁבָט"],"Rosh Chodesh Sivan":["רֹאשׁ חוֹדֶשׁ סִיוָן"],"Rosh Chodesh Tamuz":["רֹאשׁ חוֹדֶשׁ תָּמוּז"],"Rosh Chodesh Tevet":["רֹאשׁ חוֹדֶשׁ טֵבֵת"],min:["דקות"],"Fast begins":["תחילת הַצוֹם"],"Fast ends":["סִיּוּם הַצוֹם"],"Rosh Hashana LaBehemot":["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"],"Tish'a B'Av (observed)":["תִּשְׁעָה בְּאָב נִדחֶה"],"Shabbat Mevarchim Chodesh":["שַׁבָּת מְבָרְכִים חוֹדֶשׁ"],"Shabbat Shirah":["שַׁבָּת שִׁירָה"],"Chatzot HaLailah":["חֲצוֹת הַלַיְלָה"],"Alot haShachar":["עֲלוֹת הַשַּׁחַר"],Misheyakir:["מִשֶּׁיַּכִּיר"],"Misheyakir Machmir":["מִשֶּׁיַּכִּיר מַחמִיר"],Dawn:["דִּימְדּוּמֵי בּוֹקֵר"],Sunrise:["הַנֵץ הַחַמָּה"],"Kriat Shema, sof zeman":["סוֹף זְמַן קְרִיאַת שְׁמַע גר״א"],"Tefilah, sof zeman":["סוֹף זְמַן תְּפִלָּה גר״א"],"Kriat Shema, sof zeman (MGA)":["סוֹף זְמַן קְרִיאַת שְׁמַע מג״א"],"Tefilah, sof zeman (MGA)":["סוֹף זְמַן תְּפִלָּה מג״א"],"Chatzot hayom":["חֲצוֹת הַיּוֹם"],"Mincha Gedolah":["מִנְחָה גְּדוֹלָה"],"Mincha Ketanah":["מִנְחָה קְטַנָּה"],"Plag HaMincha":["פְּלַג הַמִּנְחָה"],Dusk:["דִּימְדּוּמֵי עֶרֶב"],Sunset:["שְׁקִיעָה"],"Nightfall - End of ordained fasts":["לַיְלָה - גמר תעניות דרבנן"],"Tzeit HaKochavim":["צֵאת כוכבים"],Lovingkindness:["חֶֽסֶד"],Might:["גְבוּרָה"],Beauty:["תִּפאֶרֶת"],Eternity:["נֶּֽצַח"],Splendor:["הוֹד"],Foundation:["יְּסוֹד"],Majesty:["מַּלְכוּת"],day:["יוֹם"],"Chanukah Day 1":["חֲנוּכָּה יוֹם א׳"],"Chanukah Day 2":["חֲנוּכָּה יוֹם ב׳"],"Chanukah Day 3":["חֲנוּכָּה יוֹם ג׳"],"Chanukah Day 4":["חֲנוּכָּה יוֹם ד׳"],"Chanukah Day 5":["חֲנוּכָּה יוֹם ה׳"],"Chanukah Day 6":["חֲנוּכָּה יוֹם ו׳"],"Chanukah Day 7":["חֲנוּכָּה יוֹם ז׳"],"Chanukah Day 7 (on Rosh Chodesh)":["חֲנוּכָּה יוֹם ז׳ (רֹאשׁ חוֹדֶשׁ)"],"Chanukah Day 8":["חֲנוּכָּה יוֹם ח׳"],"Chanukah Day 1 (on Shabbat)":["חֲנוּכָּה יוֹם א׳ (בְּשַׁבָּת)"],"Chanukah Day 2 (on Shabbat)":["חֲנוּכָּה יוֹם ב׳ (בְּשַׁבָּת)"],"Chanukah Day 3 (on Shabbat)":["חֲנוּכָּה יוֹם ג׳ (בְּשַׁבָּת)"],"Chanukah Day 4 (on Shabbat)":["חֲנוּכָּה יוֹם ד׳ (בְּשַׁבָּת)"],"Chanukah Day 5 (on Shabbat)":["חֲנוּכָּה יוֹם ה׳ (בְּשַׁבָּת)"],"Chanukah Day 7 (on Shabbat)":["חֲנוּכָּה יוֹם ז׳ (בְּשַׁבָּת)"],"Chanukah Day 8 (on Shabbat)":["חֲנוּכָּה יוֹם ח׳ (בְּשַׁבָּת)"],"Shabbat Rosh Chodesh Chanukah":["שַׁבָּת רֹאשׁ חוֹדֶשׁ חֲנוּכָּה"],Berakhot:["ברכות"],Peah:["פאה"],Demai:["דמאי"],Kilayim:["כלאים"],Sheviit:["שביעית"],Terumot:["תרומות"],Maasrot:["מעשרות"],"Maaser Sheni":["מעשר שני"],Challah:["חלה"],Orlah:["ערלה"],Bikkurim:["ביכורים"],"Rosh Hashanah":["ראש השנה"],Gittin:["גיטין"],"Bava Kamma":["בבא קמא"],"Bava Metzia":["בבא מציעא"],"Bava Batra":["בבא בתרא"],Eduyot:["עדיות"],Avot:["אבות"],Bekhorot:["בכורות"],Arakhin:["ערכין"],Middot:["מדות"],Kelim:["כלים"],Oholot:["אהלות"],Negaim:["נגעים"],Parah:["פרה"],Tahorot:["טהרות"],Mikvaot:["מקואות"],Makhshirin:["מכשירין"],Zavim:["זבים"],"Tevul Yom":["טבול יום"],Yadayim:["ידים"],Oktzin:["עוקצים"],"Yom Kippur Katan":["יוֹם כִּפּוּר קָטָן"],"Family Day":["יוֹם הַמִּשׁפָּחָה"],"Yitzhak Rabin Memorial Day":["יוֹם הַזִּכָּרוֹן ליצחק רבין"],"Jabotinsky Day":["יוֹם ז׳בוטינסקי"],"Herzl Day":["יוֹם הרצל"],"Ben-Gurion Day":["יוֹם בן־גוריון"],"Birkat Hachamah":["בִרְכַּת הַחַמָּה"],"Shushan Purim Katan":["שׁוּשָׁן פּוּרִים קָטָן"],"Purim Meshulash":["פּוּרִים מְשׁוּלָּשׁ"],"after sunset":["אחרי השקיעה"],Yerushalmi:["יְרוּשַׁלְמִי"],"Chag HaBanot":["חַג הַבָּנוֹת"],Joshua:["יְהוֹשׁוּעַ"],Judges:["שׁוֹפְטִים"],"I Samuel":["שְׁמוּאֵל רִאשׁוֹן"],"II Samuel":["שְׁמוּאֵל שֵׁנִי"],"I Kings":["מְלָכִים רִאשׁוֹן"],"II Kings":["מְלָכִים שֵׁנִי"],Isaiah:["יְשַׁעְיָהוּ"],Jeremiah:["יִרְמְיָהוּ"],Ezekiel:["יְחֶזְקֵאל"],Hosea:["הוֹשֵׁעַ"],Joel:["יוֹאֵל"],Amos:["עָמוּס"],Obadiah:["עוֹבַדְיָה"],Jonah:["יוֹנָה"],Micah:["מִיכָה"],Nachum:["נַחוּם"],Habakkuk:["חֲבַקּוּק"],Zephaniah:["צְפַנְיָה"],Haggai:["חַגַּי"],Zechariah:["זְכַרְיָה"],Malachi:["מַלְאָכִי"],Psalms:["תְּהִלִּים"],Proverbs:["מִשְׁלֵי"],Job:["אִיּוֹב"],"Song of Songs":["שִׁיר הַשִּׁירִים"],Ruth:["רוּת"],Lamentations:["אֵיכָה"],Ecclesiastes:["קֹהֶלֶת"],Esther:["אֶסְתֵּר"],Daniel:["דָּנִיֵּאל"],Ezra:["עֶזְרָא"],Nehemiah:["נְחֶמְיָה"],"I Chronicles":["דִברֵי הַיָמִים רִאשׁוֹן"],"II Chronicles":["דִברֵי הַיָמִים שֵׁנִי"],"Yom Kippur (Mincha)":["יוֹם כִּפּוּר מִנחָה"],"Tish'a B'Av (Mincha)":["תִּשְׁעָה בְּאָב מִנחָה"],"Asara B'Tevet (Mincha)":["עֲשָׂרָה בְּטֵבֵת מִנחָה"],"Ta'anit Bechorot (Mincha)":["תַּעֲנִית בְּכוֹרוֹת מִנחָה"],"Ta'anit Esther (Mincha)":["תַּעֲנִית אֶסְתֵּר מִנחָה"],"Tzom Gedaliah (Mincha)":["צוֹם גְּדַלְיָה מִנחָה"],"Tzom Tammuz (Mincha)":["צוֹם תָּמוּז מִנחָה"],"Transmission of the Oral Law":["מסירת תורה שבעל פה"],"Positive Mitzvot":["מצוות עשה"],"Negative Mitzvot":["מצוות לא תעשה"],"Overview of Mishneh Torah Contents":["תוכן החיבור"],"Foundations of the Torah":["הלכות יסודי התורה"],"Human Dispositions":["הלכות דעות"],"Torah Study":["הלכות תלמוד תורה"],"Foreign Worship and Customs of the Nations":["הלכות עבודה זרה וחוקות הגויים"],Repentance:["הלכות תשובה"],"Reading the Shema":["הלכות קריאת שמע"],"Prayer and the Priestly Blessing":["הלכות תפילה וברכת כהנים"],"Tefillin, Mezuzah and the Torah Scroll":["הלכות תפילין ומזוזה וספר תורה"],Fringes:["הלכות ציצית"],Blessings:["הלכות ברכות"],Circumcision:["הלכות מילה"],"The Order of Prayer":["סדר התפילה"],Sabbath:["הלכות שבת"],"Rest on the Tenth of Tishrei":["הלכות שביתת עשור"],"Rest on a Holiday":["הלכות שביתת יום טוב"],"Leavened and Unleavened Bread":["הלכות חמץ ומצה"],"Shofar, Sukkah and Lulav":["הלכות שופר וסוכה ולולב"],"Sheqel Dues":["הלכות שקלים"],"Sanctification of the New Month":["הלכות קידוש החודש"],Fasts:["הלכות תעניות"],"Scroll of Esther and Hanukkah":["הלכות מגילה וחנוכה"],Marriage:["הלכות אישות"],Divorce:["הלכות גירושין"],"Levirate Marriage and Release":["הלכות יבום וחליצה"],"Virgin Maiden":["הלכות נערה בתולה"],"Woman Suspected of Infidelity":["הלכות סוטה"],"Forbidden Intercourse":["הלכות איסורי ביאה"],"Forbidden Foods":["הלכות מאכלות אסורות"],"Ritual Slaughter":["הלכות שחיטה"],Oaths:["הלכות שבועות"],Vows:["הלכות נדרים"],Nazariteship:["הלכות נזירות"],"Appraisals and Devoted Property":["הלכות ערכים וחרמין"],"Diverse Species":["הלכות כלאים"],"Gifts to the Poor":["הלכות מתנות עניים"],"Heave Offerings":["הלכות תרומות"],Tithes:["הלכות מעשרות"],"Second Tithes and Fourth Year's Fruit":["הלכות מעשר שני ונטע רבעי"],"First Fruits and other Gifts to Priests Outside the Sanctuary":["הלכות ביכורים ושאר מתנות כהונה שבגבולין"],"Sabbatical Year and the Jubilee":["הלכות שמיטה ויובל"],"The Chosen Temple":["הלכות בית הבחירה"],"Vessels of the Sanctuary and Those who Serve Therein":["הלכות כלי המקדש והעובדין בו"],"Admission into the Sanctuary":["הלכות ביאת מקדש"],"Things Forbidden on the Altar":["הלכות איסורי המזבח"],"Sacrificial Procedure":["הלכות מעשה הקרבנות"],"Daily Offerings and Additional Offerings":["הלכות תמידים ומוספין"],"Sacrifices Rendered Unfit":["הלכות פסולי המוקדשין"],"Service on the Day of Atonement":["הלכות עבודת יום הכפורים"],Trespass:["הלכות מעילה"],"Paschal Offering":["הלכות קרבן פסח"],"Festival Offering":["הלכות חגיגה"],Firstlings:["הלכות בכורות"],"Offerings for Unintentional Transgressions":["הלכות שגגות"],"Offerings for Those with Incomplete Atonement":["הלכות מחוסרי כפרה"],Substitution:["הלכות תמורה"],"Defilement by a Corpse":["הלכות טומאת מת"],"Red Heifer":["הלכות פרה אדומה"],"Defilement by Leprosy":["הלכות טומאת צרעת"],"Those Who Defile Bed or Seat":["הלכות מטמאי משכב ומושב"],"Other Sources of Defilement":["הלכות שאר אבות הטומאות"],"Defilement of Foods":["הלכות טומאת אוכלים"],Vessels:["הלכות כלים"],"Immersion Pools":["הלכות מקואות"],"Damages to Property":["הלכות נזקי ממון"],Theft:["הלכות גניבה"],"Robbery and Lost Property":["הלכות גזילה ואבידה"],"One Who Injures a Person or Property":["הלכות חובל ומזיק"],"Murderer and the Preservation of Life":["הלכות רוצח ושמירת נפש"],Sales:["הלכות מכירה"],"Ownerless Property and Gifts":["הלכות זכייה ומתנה"],Neighbors:["הלכות שכנים"],"Agents and Partners":["הלכות שלוחין ושותפין"],Slaves:["הלכות עבדים"],Hiring:["הלכות שכירות"],"Borrowing and Deposit":["הלכות שאלה ופיקדון"],"Creditor and Debtor":["הלכות מלווה ולווה"],"Plaintiff and Defendant":["הלכות טוען ונטען"],Inheritances:["הלכות נחלות"],"The Sanhedrin and the Penalties within their Jurisdiction":["הלכות סנהדרין והעונשין המסורין להם"],Testimony:["הלכות עדות"],Rebels:["הלכות ממרים"],Mourning:["הלכות אבל"],"Kings and Wars":["הלכות מלכים ומלחמות"]}};var poHe = {headers:headers,contexts:contexts};
5625
5147
 
5626
5148
  Locale.addLocale('he', poHe);
5627
5149
  Locale.addLocale('h', poHe);
@@ -5883,9 +5405,6 @@ const RECOGNIZED_OPTIONS = {
5883
5405
  noRoshChodesh: 1,
5884
5406
  noSpecialShabbat: 1,
5885
5407
  noHolidays: 1,
5886
- dafyomi: 1,
5887
- mishnaYomi: 1,
5888
- nachYomi: 1,
5889
5408
  omer: 1,
5890
5409
  molad: 1,
5891
5410
  ashkenazi: 1,
@@ -5897,8 +5416,7 @@ const RECOGNIZED_OPTIONS = {
5897
5416
  userMask: 1,
5898
5417
  yomKippurKatan: 1,
5899
5418
  hour12: 1,
5900
- yerushalmi: 1,
5901
- yerushalmiEdition: 1
5419
+ dailyLearning: 1
5902
5420
  };
5903
5421
 
5904
5422
  /**
@@ -6007,11 +5525,6 @@ function checkCandleOptions(options) {
6007
5525
  * @property {boolean} shabbatMevarchim - add Shabbat Mevarchim
6008
5526
  * @property {boolean} noSpecialShabbat - suppress Special Shabbat
6009
5527
  * @property {boolean} noHolidays - suppress regular holidays
6010
- * @property {boolean} dafyomi - Babylonian Talmud Daf Yomi
6011
- * @property {boolean} yerushalmi - Jerusalem Talmud (Yerushalmi) Yomi
6012
- * @property {number} yerushalmiEdition - Use 1 for Vilna, 2 for Schottenstein
6013
- * @property {boolean} mishnaYomi - include Mishna Yomi
6014
- * @property {boolean} nachYomi - include Nach Yomi
6015
5528
  * @property {boolean} omer - include Days of the Omer
6016
5529
  * @property {boolean} molad - include event announcing the molad
6017
5530
  * @property {boolean} ashkenazi - use Ashkenazi transliterations for event titles (default Sephardi transliterations)
@@ -6031,6 +5544,9 @@ function checkCandleOptions(options) {
6031
5544
  * See {@link https://en.wikipedia.org/wiki/Yom_Kippur_Katan#Practices Wikipedia Yom Kippur Katan practices}
6032
5545
  * @property {boolean} hour12 - Whether to use 12-hour time (as opposed to 24-hour time).
6033
5546
  * Possible values are `true` and `false`; the default is locale dependent.
5547
+ * @property {Object<string,any>} dailyLearning - map of options to enable daily study calendars
5548
+ * such as `dafYomi`, `mishnaYomi`, `nachYomi` with value `true`. For `yerushalmi`
5549
+ * the value should be a `number` for edition (`1` for Vilna, `2` for Schottenstein).
6034
5550
  */
6035
5551
 
6036
5552
  /**
@@ -6128,13 +5644,25 @@ function getMaskFromOptions(options) {
6128
5644
  if (m & MINOR_FAST) delete options.noMinorFast;
6129
5645
  if (m & SPECIAL_SHABBAT) delete options.noSpecialShabbat;
6130
5646
  if (m & PARSHA_HASHAVUA) options.sedrot = true;
6131
- if (m & DAF_YOMI) options.dafyomi = true;
5647
+ if (m & DAF_YOMI) {
5648
+ options.dailyLearning = options.dailyLearning || {};
5649
+ options.dailyLearning.dafYomi = true;
5650
+ }
6132
5651
  if (m & OMER_COUNT) options.omer = true;
6133
5652
  if (m & SHABBAT_MEVARCHIM) options.shabbatMevarchim = true;
6134
- if (m & flags.MISHNA_YOMI) options.mishnaYomi = true;
6135
- if (m & flags.NACH_YOMI) options.nachYomi = true;
5653
+ if (m & flags.MISHNA_YOMI) {
5654
+ options.dailyLearning = options.dailyLearning || {};
5655
+ options.dailyLearning.mishnaYomi = true;
5656
+ }
5657
+ if (m & flags.NACH_YOMI) {
5658
+ options.dailyLearning = options.dailyLearning || {};
5659
+ options.dailyLearning.nachYomi = true;
5660
+ }
6136
5661
  if (m & flags.YOM_KIPPUR_KATAN) options.yomKippurKatan = true;
6137
- if (m & flags.YERUSHALMI_YOMI) options.yerushalmi = true;
5662
+ if (m & flags.YERUSHALMI_YOMI) {
5663
+ options.dailyLearning = options.dailyLearning || {};
5664
+ options.dailyLearning.yerushalmi = 1;
5665
+ }
6138
5666
  options.userMask = true;
6139
5667
  return m;
6140
5668
  }
@@ -6171,15 +5699,6 @@ function getMaskFromOptions(options) {
6171
5699
  if (options.sedrot) {
6172
5700
  mask |= PARSHA_HASHAVUA;
6173
5701
  }
6174
- if (options.dafyomi) {
6175
- mask |= DAF_YOMI;
6176
- }
6177
- if (options.mishnaYomi) {
6178
- mask |= flags.MISHNA_YOMI;
6179
- }
6180
- if (options.nachYomi) {
6181
- mask |= flags.NACH_YOMI;
6182
- }
6183
5702
  if (options.omer) {
6184
5703
  mask |= OMER_COUNT;
6185
5704
  }
@@ -6189,8 +5708,20 @@ function getMaskFromOptions(options) {
6189
5708
  if (options.yomKippurKatan) {
6190
5709
  mask |= flags.YOM_KIPPUR_KATAN;
6191
5710
  }
6192
- if (options.yerushalmi) {
6193
- mask |= flags.YERUSHALMI_YOMI;
5711
+ if (options.dailyLearning) {
5712
+ const dailyLearning = options.dailyLearning;
5713
+ if (dailyLearning.dafYomi) {
5714
+ mask |= DAF_YOMI;
5715
+ }
5716
+ if (dailyLearning.mishnaYomi) {
5717
+ mask |= flags.MISHNA_YOMI;
5718
+ }
5719
+ if (dailyLearning.nachYomi) {
5720
+ mask |= flags.NACH_YOMI;
5721
+ }
5722
+ if (dailyLearning.yerushalmi) {
5723
+ mask |= flags.YERUSHALMI_YOMI;
5724
+ }
6194
5725
  }
6195
5726
  return mask;
6196
5727
  }
@@ -6268,14 +5799,16 @@ class HebrewCalendar {
6268
5799
  * Additional non-default event types can be specified:
6269
5800
  * * Parashat HaShavua - weekly Torah Reading on Saturdays (`options.sedrot`)
6270
5801
  * * Counting of the Omer (`options.omer`)
6271
- * * Babylonian Talmud Daf Yomi (`options.dafyomi`)
6272
- * * Jerusalem Talmud (Yerushalmi) Yomi (`options.yerushalmi`)
6273
- * * Mishna Yomi (`options.mishnaYomi`)
6274
- * * Nach Yomi (`options.nachYomi`)
6275
5802
  * * Shabbat Mevarchim HaChodesh on Saturday before Rosh Chodesh (`options.shabbatMevarchim`)
6276
5803
  * * Molad announcement on Saturday before Rosh Chodesh (`options.molad`)
6277
5804
  * * Yom Kippur Katan (`options.yomKippurKatan`)
6278
5805
  *
5806
+ * Daily Study of texts:
5807
+ * * Babylonian Talmud Daf Yomi (`options.dailyLearning.dafYomi`)
5808
+ * * Jerusalem Talmud (Yerushalmi) Yomi (`options.dailyLearning.yerushalmi`)
5809
+ * * Mishna Yomi (`options.dailyLearning.mishnaYomi`)
5810
+ * * Nach Yomi (`options.dailyLearning.nachYomi`)
5811
+ *
6279
5812
  * Candle-lighting and Havdalah times are approximated using latitude and longitude
6280
5813
  * specified by the {@link Location} class. The `Location` class contains a small
6281
5814
  * database of cities with their associated geographic information and time-zone information.
@@ -6373,15 +5906,6 @@ class HebrewCalendar {
6373
5906
  if (startGreg.getFullYear() < 100) {
6374
5907
  options.candlelighting = false;
6375
5908
  }
6376
- let mishnaYomiIndex;
6377
- if (options.mishnaYomi) {
6378
- mishnaYomiIndex = new MishnaYomiIndex();
6379
- }
6380
- let nachYomiIndex;
6381
- if (options.nachYomi) {
6382
- nachYomiIndex = new NachYomiIndex();
6383
- }
6384
- const yerushalmiCfg = options.yerushalmiEdition === 2 ? schottenstein : vilna;
6385
5909
  for (let abs = startAbs; abs <= endAbs; abs++) {
6386
5910
  const hd = new HDate(abs);
6387
5911
  const hyear = hd.getFullYear();
@@ -6409,23 +5933,19 @@ class HebrewCalendar {
6409
5933
  evts.push(new ParshaEvent(hd, parsha0.parsha, il, parsha0.num));
6410
5934
  }
6411
5935
  }
6412
- if (options.dafyomi && hyear >= 5684) {
6413
- evts.push(new DafYomiEvent(hd));
6414
- }
6415
- if (options.yerushalmi && abs >= yerushalmiCfg.startAbs) {
6416
- const daf = yerushalmiYomi(abs, yerushalmiCfg);
6417
- // daf will be null to signal no Yerushalmi Yomi on YK and 9Av
6418
- if (daf != null) {
6419
- evts.push(new YerushalmiYomiEvent(hd, daf));
6420
- }
6421
- }
6422
- if (options.mishnaYomi && abs >= mishnaYomiStart) {
6423
- const mishnaYomi = mishnaYomiIndex.lookup(abs);
6424
- evts.push(new MishnaYomiEvent(hd, mishnaYomi));
6425
- }
6426
- if (options.nachYomi && abs >= nachYomiStart) {
6427
- const nachYomi = nachYomiIndex.lookup(abs);
6428
- evts.push(new NachYomiEvent(hd, nachYomi));
5936
+ const dailyLearning = options.dailyLearning;
5937
+ if (typeof dailyLearning === 'object') {
5938
+ Object.entries(dailyLearning).forEach(kv => {
5939
+ const key = kv[0];
5940
+ const val = kv[1];
5941
+ if (val) {
5942
+ const name = key === 'yerushalmi' ? val === 2 ? 'yerushalmi-schottenstein' : 'yerushalmi-vilna' : key;
5943
+ const learningEv = DailyLearning.lookup(name, hd);
5944
+ if (learningEv) {
5945
+ evts.push(learningEv);
5946
+ }
5947
+ }
5948
+ });
6429
5949
  }
6430
5950
  if (options.omer && abs >= beginOmer && abs <= endOmer) {
6431
5951
  const omer = abs - beginOmer + 1;
@@ -6754,8 +6274,7 @@ function appendHolidayAndRelated(events, ev, options, candlesEv, dow) {
6754
6274
 
6755
6275
  exports.AsaraBTevetEvent = AsaraBTevetEvent;
6756
6276
  exports.CandleLightingEvent = CandleLightingEvent;
6757
- exports.DafYomi = DafYomi;
6758
- exports.DafYomiEvent = DafYomiEvent;
6277
+ exports.DailyLearning = DailyLearning;
6759
6278
  exports.Event = Event;
6760
6279
  exports.HDate = HDate;
6761
6280
  exports.HavdalahEvent = HavdalahEvent;
@@ -6765,12 +6284,8 @@ exports.HolidayEvent = HolidayEvent;
6765
6284
  exports.Locale = Locale;
6766
6285
  exports.Location = Location;
6767
6286
  exports.MevarchimChodeshEvent = MevarchimChodeshEvent;
6768
- exports.MishnaYomiEvent = MishnaYomiEvent;
6769
- exports.MishnaYomiIndex = MishnaYomiIndex;
6770
6287
  exports.Molad = Molad;
6771
6288
  exports.MoladEvent = MoladEvent;
6772
- exports.NachYomiEvent = NachYomiEvent;
6773
- exports.NachYomiIndex = NachYomiIndex;
6774
6289
  exports.OmerEvent = OmerEvent;
6775
6290
  exports.ParshaEvent = ParshaEvent;
6776
6291
  exports.RoshChodeshEvent = RoshChodeshEvent;
@@ -6778,14 +6293,10 @@ exports.RoshHashanaEvent = RoshHashanaEvent;
6778
6293
  exports.Sedra = Sedra;
6779
6294
  exports.SolarCalc = SolarCalc;
6780
6295
  exports.TimedEvent = TimedEvent;
6781
- exports.YerushalmiYomiEvent = YerushalmiYomiEvent;
6782
6296
  exports.Zmanim = Zmanim;
6783
6297
  exports.flags = flags;
6784
6298
  exports.gematriya = gematriya;
6785
6299
  exports.greg = greg;
6786
6300
  exports.months = months;
6787
6301
  exports.parshiot = parshiot;
6788
- exports.schottenstein = schottenstein;
6789
6302
  exports.version = version;
6790
- exports.vilna = vilna;
6791
- exports.yerushalmiYomi = yerushalmiYomi;