diff --git a/calendarium/fasting.py b/calendarium/fasting.py new file mode 100644 index 00000000..da0efca2 --- /dev/null +++ b/calendarium/fasting.py @@ -0,0 +1,336 @@ +"""How a day's dietary allowance is decided. + +Two cycles contribute to any given day -- the Paschal cycle and the festal one +-- and something has to combine them. That used to be `max()` over +`Day.fast_exception`, an integer that simultaneously encoded a dietary rung, a +precedence claim and a sentinel, followed by a run of weekday and season special +cases patching whatever the comparison got wrong. See +docs/fasting-refactor-scope.md for why that could not be arithmetic. + +This says the rule out loud instead: + + a SEASON gives a floor per weekday, and a cap on how far a claim may lift it + a DATA ROW either CLAIMS a rung ("this date allows wine and oil") or CAPS + one ("this day is strict whatever else falls on it") + a RANK RULE may grant more, where a source states one + the answer is the most lenient claim, with every cap applied + +Each season's numbers are sourced, not fitted; the citations are on the +definitions below and collected in docs/fasting-refactor-scope.md. +""" +from dataclasses import dataclass, field + +from .datetools import ( + DietaryAllowance as D, FastLevels, Weekday, + FAST_EXCEPTION_TO_DIETARY_ALLOWANCE as RUNG, +) + +SUN, MON, TUE, WED, THU, FRI, SAT = ( + Weekday.Sunday, Weekday.Monday, Weekday.Tuesday, Weekday.Wednesday, + Weekday.Thursday, Weekday.Friday, Weekday.Saturday) + +FAST_FREE = 11 +# Rows that assert strictness rather than leniency. 9 and 10 are the strict eves +# and Clean/Holy Week's "no overrides"; 5 is Holy Saturday, which allows wine +# but *not* oil -- "on this one Saturday, alone among Saturdays of the year, +# olive oil is not permitted" -- so it must beat a saint's wine-and-oil claim +# rather than lose to it. 5 both claims and caps: it lifts the strict floor too. +CAP_INDICES = (5, 9, 10) +CLAIMLESS_INDICES = (0, 9, 10) +# Indices 3 and 4 duplicate 1 and 2 in their wording, and the duplication was +# the old scale's way of saying "this claim outranks the season's cap": every +# index-3 row is a wine-and-oil grant inside Lent, every index-4 row a fish +# grant inside a fast. That meaning is NOT read off the index here, because it +# is not universal -- the Dormition fast caps index-4 claims deliberately, the +# Leavetaking of the Transfiguration being a full abstention day in practice. +# `Day.fast_cap_exempt` says it per row instead, which is the same thought +# without the ambiguity. + +# What to report as `fast_exception` when the season decided the outcome rather +# than any particular row: one canonical legacy index per rung. The field is +# published by calendarium/api.py, which is the only reason it still exists. +CANONICAL = { + D.Strict: 0, D.WineOnly: 5, D.WineAndOil: 1, D.WineOilCaviar: 6, + D.FishWineOil: 2, D.MeatFast: 7, D.FastFree: 11, +} + + +@dataclass(frozen=True) +class Grant: + """A rank rule: a saint of `min_rank` on these weekdays may eat `rung`.""" + min_rank: int + weekdays: tuple + rung: D + + +@dataclass(frozen=True) +class Season: + name: str + floor: dict = field(default_factory=dict) + default_floor: D = D.Strict + cap: dict = field(default_factory=dict) + default_cap: D = D.FastFree + cap_exempt_rank: int = 99 + grants: tuple = () + # Ch. 33's rank clause is stated but has never been implemented; see + # docs/fasting-refactor-scope.md. Kept off so this refactor changes nothing. + apply_grants: bool = False + # Clamps fish away in the days before Nativity -- Ch. 33: "from the 20th of + # December until the 25th, even if it be Saturday or Sunday, we do not allow + # fish." Slavic only; Greek expresses the same tightening as a second season. + no_fish_before_nativity: bool = False + + def floor_for(self, weekday): + return self.floor.get(weekday, self.default_floor) + + def cap_for(self, weekday, feast_level): + if feast_level >= self.cap_exempt_rank: + return D.FastFree + return self.cap.get(weekday, self.default_cap) + + +# --- the seasons ------------------------------------------------------------ + +# Ordinary time is mostly Wednesdays and Fridays, but a few fixed feasts are +# fast days in their own right -- the Exaltation and the Beheading of the +# Forerunner -- and those take wine and oil when they fall at the weekend. +# goarch.org is unambiguous across ten years: both are strict on all five +# weekdays and wine and oil on both Saturday and Sunday, without exception. +# Ordinary Saturdays and Sundays are not fasts at all, so they never reach this +# season and the weekend floor cannot leak onto them. +ORDINARY = Season('ordinary Wed/Fri', + floor={SAT: D.WineAndOil, SUN: D.WineAndOil}, + default_floor=D.Strict) + +# Not a fasting season, but a day still carries an allowance label: a feast row +# on a free day says "Fish, Wine and Oil are Allowed" and that is what gets +# shown. `fast_abstentions_for` short-circuits on NoFast, so the rung is unused. +NO_FAST = Season('no fast', default_floor=D.Strict) + +# Ware, *The Lenten Triodion*, via OCA: weekdays strict, weekend wine and oil +# (supplied by the Paschal-cycle rows), fish only on the Annunciation and Palm +# Sunday, which are ranks 7 and 8. +LENT = Season('Great Lent', default_floor=D.Strict, + default_cap=D.WineAndOil, cap_exempt_rank=7) + +# OCA: "wine and oil are allowed only on Saturdays and Sundays (and sometimes on +# a few feast days and vigils)" -- in practice the Transfiguration, rank 8. +DORMITION = Season('Dormition', floor={SAT: D.WineAndOil, SUN: D.WineAndOil}, + default_floor=D.Strict, + default_cap=D.Strict, cap_exempt_rank=7) + +# Typikon Ch. 33: "on Tuesday and Thursday we do not eat fish, but only oil or +# wine. On Monday, Wednesday and Friday, we eat neither oil nor wine.... On +# Saturday and Sunday we eat fish." +_CH33_FLOOR = {MON: D.Strict, TUE: D.WineAndOil, WED: D.Strict, + THU: D.WineAndOil, FRI: D.Strict, + SAT: D.FishWineOil, SUN: D.FishWineOil} +_CH33_CAP = {WED: D.WineAndOil, FRI: D.WineAndOil, + SAT: D.FishWineOil, SUN: D.FishWineOil} +# The rest of Ch. 33, which the app has never applied: "If there occur on +# Tuesday or Thursday a Saint who has a [Great] Doxology, we eat fish; if on +# Monday, the same; but if on Wednesday or Friday, we allow only oil and wine.... +# If it be a Saint who has a Vigil on Wednesday or Friday ... we allow oil and +# wine and fish." Doxology is feast level 3, Vigil is 5. +_CH33_GRANTS = ( + Grant(min_rank=3, weekdays=(MON, TUE, THU), rung=D.FishWineOil), + Grant(min_rank=3, weekdays=(WED, FRI), rung=D.WineAndOil), + Grant(min_rank=5, weekdays=(WED, FRI), rung=D.FishWineOil), +) + +APOSTLES = Season('Apostles', floor=_CH33_FLOOR, cap=_CH33_CAP, + cap_exempt_rank=4, grants=_CH33_GRANTS) +NATIVITY = Season('Nativity', floor=_CH33_FLOOR, cap=_CH33_CAP, + cap_exempt_rank=4, grants=_CH33_GRANTS, + no_fish_before_nativity=True) + +# Greek practice keeps a much lighter Apostles' fast than Ch. 33 prescribes, and +# than Slavic practice: fish every day except Wednesday and Friday, which stay +# strict. Measured from goarch.org across 2026 and 2028, where the fast runs +# three weeks and every day matches on both -- see data/goarch_fasting.json. +# (2027's fast is one day long, so it says nothing either way.) +# +# This is the same shape as the Nativity fast's first phase below, so the floor +# and cap are shared. +_GREEK_FISH_FLOOR = {WED: D.Strict, FRI: D.Strict} +_GREEK_FISH_CAP = {WED: D.WineAndOil, FRI: D.WineAndOil} + +APOSTLES_GREEK = Season( + "Apostles (Greek)", + floor=_GREEK_FISH_FLOOR, default_floor=D.FishWineOil, + cap=_GREEK_FISH_CAP, default_cap=D.FishWineOil, + cap_exempt_rank=4) + +# The Nativity fast splits in two: +# through Dec 11 everything but Wednesday and Friday is a fish day, and from +# Dec 12 it tightens further than Slavic practice does -- fish goes entirely and +# Monday, Tuesday and Thursday drop to full strictness rather than merely +# losing fish. +# +# The boundary is measured from goarch.org's own published calendar rather than +# from a summary of it, and three Decembers pin it exactly: in 2027 Dec 11 is a +# Saturday and still a fish day while Dec 12 is a Sunday and only wine and oil. +# See docs/greek-fasting.md and data/goarch_fasting.json. +NATIVITY_GREEK_EARLY = Season( + 'Nativity (Greek, to Dec 11)', + floor=_GREEK_FISH_FLOOR, default_floor=D.FishWineOil, + cap=_GREEK_FISH_CAP, default_cap=D.FishWineOil, + # 7, not 4: the Wednesday/Friday no-fish cap holds inside this fast exactly + # as it does in ordinary time, and holds against high-ranking saints. + # St Matthew (6), St Andrew (4) and St Nicholas (5) all fall here and all + # get wine and oil rather than fish when they land on a Wednesday or Friday. + cap_exempt_rank=7) +NATIVITY_GREEK_STRICT = Season( + 'Nativity (Greek, from Dec 12)', + floor={SAT: D.WineAndOil, SUN: D.WineAndOil}, default_floor=D.Strict, + cap={SAT: D.WineAndOil, SUN: D.WineAndOil}, default_cap=D.WineAndOil, + cap_exempt_rank=4) + +_BY_LEVEL = { + FastLevels.NoFast: NO_FAST, + FastLevels.Fast: ORDINARY, + FastLevels.LentenFast: LENT, + FastLevels.DormitionFast: DORMITION, + FastLevels.ApostlesFast: APOSTLES, + FastLevels.NativityFast: NATIVITY, +} + + +# Chapter X: "Fish is permitted on Wednesday or Friday if it is a feast of the +# Lord even during fasting seasons." GOA applies that as a *cap* -- a saint's +# fish grant falls back to wine and oil on a Wednesday or Friday, however highly +# ranked the saint. Ten years of data give fourteen such saints, at feast levels +# 4, 5 and 6: Anthony the Great, Euthymius, the Three Hierarchs, John the +# Theologian (twice a year), Constantine and Helen, Elijah, Thomas, Demetrius, +# the Archangel Michael, Chrysostom, Matthew, Andrew and Nicholas. +# +# Note GOA does *not* honour Chapter X's "or one of the 12 Apostles" clause: +# John the Theologian, Thomas, Matthew and Andrew are all capped. +# +# `cap_exempt_rank=7` lets the fixed Lord and Theotokos feasts through, levels 7 +# and 8 being exactly "Major feast Theotokos" and "Major feast Lord". The days +# our own reckoning ranks lower say so on the row, via `Day.fast_cap_exempt`. + +# Cheesefare week needs its own season purely so ORDINARY_GREEK's Wednesday and +# Friday cap does not reach it. That cap means "no fish for a saint"; the week +# before Lent is a different thing entirely -- a season-wide dispensation in +# which meat is the only thing given up -- and clamping it to wine and oil +# turned all seven days into a fast stricter than the week they precede. +# goarch.org marks the whole week `fast-day`, Wednesday and Friday included. +CHEESEFARE_GREEK = Season('Cheesefare (Greek)', default_floor=D.MeatFast) + +ORDINARY_GREEK = Season('ordinary Wed/Fri (Greek)', + floor={SAT: D.WineAndOil, SUN: D.WineAndOil}, + default_floor=D.Strict, + cap={WED: D.WineAndOil, FRI: D.WineAndOil}, + cap_exempt_rank=7) + + +def slavic_season(day): + return _BY_LEVEL.get(day.fast_level) + + +def greek_season(day): + if day.fast_level == FastLevels.Fast: + # Cheesefare week: Clean Monday is pdist -48, so the week runs -55..-49. + if -55 <= day.pdist <= -49: + return CHEESEFARE_GREEK + return ORDINARY_GREEK + if day.fast_level == FastLevels.ApostlesFast: + return APOSTLES_GREEK + if day.fast_level == FastLevels.NativityFast: + # Dec 12 is `nativity - 13`; see NATIVITY_GREEK_EARLY for the citation. + return (NATIVITY_GREEK_STRICT if day.pdist >= day.pyear.nativity - 13 + else NATIVITY_GREEK_EARLY) + return _BY_LEVEL.get(day.fast_level) + + +# --- the rule --------------------------------------------------------------- + +def resolve(season, weekday, feast_level, rows, no_fish=False, + eve_on_weekend=False, festal=None, cap_exempt_rows=False): + """Combine a day's contributing rows into (rung, legacy fast_exception).""" + claims = [(i, RUNG[i]) for i in rows if i not in CLAIMLESS_INDICES] + caps = [(i, RUNG[i]) for i in rows if i in CAP_INDICES] + + for index, rung in claims: + if rung is D.FastFree: # a fast-free row ends the question + return D.FastFree, index + + allowance = season.floor_for(weekday) + winner = None # the row that set the current answer + season_cap = season.cap_for(weekday, feast_level) + + festal = festal if festal is not None else {i: True for i, _ in claims} + for index, claim in claims: + # A season cap means "no fish", and caviar is not fish -- dietarily + # WineOilCaviar excludes exactly what WineAndOil does -- so a caviar + # claim survives the cap rather than being clamped below it. + # The Wednesday/Friday cap says "no fish for a saint". Two things are + # not a saint: the Paschal cycle's own claims (the Midfeast, the + # Leavetaking of Pascha), and a claim the data has explicitly marked as + # outranking a cap. + exempt = cap_exempt_rows or not festal.get(index, True) + cap = D.FastFree if exempt else season_cap + clamped = (claim if claim is D.WineOilCaviar and cap >= D.WineAndOil + else min(claim, cap)) + if clamped > allowance: + # A clamped claim no longer speaks for itself; the season does. + allowance, winner = clamped, (index if clamped == claim else None) + + if season.apply_grants: + for grant in season.grants: + if feast_level >= grant.min_rank and weekday in grant.weekdays: + if grant.rung > allowance: + allowance, winner = grant.rung, None + + for index, cap in caps: + if cap < allowance: + allowance, winner = cap, index + elif cap == allowance and winner is None: + winner = index # it agrees, and has the better label + + if no_fish: + allowance = min(allowance, D.WineAndOil) + winner = None + if eve_on_weekend and weekday in (SAT, SUN) and allowance < D.WineAndOil: + allowance, winner = D.WineAndOil, None + + return allowance, (winner if winner is not None else CANONICAL[allowance]) + + +def apply(day, season_for): + """Set `day.fast_level` and `day.fast_exception` for one day. + + A jurisdiction's own fixed-date departures -- the saints GOA relaxes a fast + for, and the ones it declines to -- are deliberately not here. They are + sparse tradition `Day` rows overriding `fast_exception` on the slot, merged + in by `_merge_tradition_days` before this ever sees them. They therefore + arrive as ordinary claims, and the season's cap still applies to them: they + lift a fast, they do not escape one. + """ + rows = [d.fast_exception for d in day.days] + festal = {d.fast_exception: bool(d.month) for d in day.days} + cap_exempt_rows = any(d.fast_cap_exempt for d in day.days) + + if FAST_FREE in rows: + day.fast_level = FastLevels.NoFast + day.fast_exception = FAST_FREE + return + + # The Apostles' fast cannot be read off the database: the feast of Sts Peter + # and Paul belongs to the festal cycle while the fast's start is Paschal. + if 56 < day.pdist < day.pyear.peter_and_paul: + day.fast_level = FastLevels.ApostlesFast + if day.pdist == 57: + day.service_notes.append("Beginning of Apostles' Fast") + + season = season_for(day) + no_fish = bool(season and season.no_fish_before_nativity + and day.pyear.nativity - 6 < day.pdist < day.pyear.nativity - 1) + eve = day.pdist in (day.pyear.nativity - 1, day.pyear.theophany - 1) + + _, day.fast_exception = resolve( + season, day.weekday, day.feast_level, rows, + no_fish=no_fish, eve_on_weekend=eve, festal=festal, + cap_exempt_rows=cap_exempt_rows) diff --git a/calendarium/liturgics/day.py b/calendarium/liturgics/day.py index dff15468..4c0b7523 100644 --- a/calendarium/liturgics/day.py +++ b/calendarium/liturgics/day.py @@ -1,4 +1,5 @@ import collections +import copy import logging from datetime import date, timedelta @@ -9,6 +10,7 @@ from django.utils.html import strip_tags from .. import datetools, models +from .. import fasting from ..datetools import Calendar, Tradition, Weekday, FastLevels, FastLevelDesc, FastExceptions, FeastLevels, FloatIndex # FloatIndex values start at 1001, well above any Pascha-distance, so a reading @@ -106,25 +108,66 @@ def _speech_worthy(dc): return _has_story(dc) or dc.tradition != 'greek' -def _prefer_tradition_days(rows, tradition): - """Like _prefer_tradition, but for Day rows, which have no - source/ordering/desc -- the slot is just (pdist, month, day).""" +def _merge_tradition_days(rows, tradition): + """Reduce the rows for a day to one per `(pdist, month, day)` slot. - kept = [] - slot_index = {} + Two shapes exist in the data and they mean different things. + + A slot carrying a `slavic` row and a `greek` row is a genuine disagreement + about *what is commemorated* -- Oct 1 is the Protection for Slavs and not + for Greeks -- so the tradition's own row is taken whole. + A slot carrying a `common` row plus a tradition row is an **override**: the + same commemoration, kept differently. There the common row is the base and + the tradition row contributes only the fields it actually sets, which is why + `Day.OVERRIDABLE` is nullable. NULL means "inherit"; 0 means "explicitly + zero", and the difference is load-bearing -- the Exaltation's Greek override + is `fast_exception=0`, an explicit "make no claim" that must not be mistaken + for an absence. + + Fields outside `OVERRIDABLE` are taken from the common row and the override + row's copies are ignored, so an override should leave them blank rather than + duplicate them. That is what keeps a shadow row from silently serving stale + feast names when the common row is later edited; enforced by + `test_day_overrides_are_sparse`. + """ + + groups = {} + order = [] for row in rows: if row.tradition not in (tradition, 'common'): continue - slot = (row.pdist, row.month, row.day) + if slot not in groups: + groups[slot] = {} + order.append(slot) + groups[slot][row.tradition] = row - if slot in slot_index: - if row.tradition != 'common': - kept[slot_index[slot]] = row + kept = [] + for slot in order: + group = groups[slot] + base, override = group.get('common'), group.get(tradition) + + if override is None: + row = base + elif base is None: + row = override else: - slot_index[slot] = len(kept) - kept.append(row) + row = copy.copy(base) + for field in models.Day.OVERRIDABLE: + value = getattr(override, field) + if value is not None: + setattr(row, field, value) + # full_title is a cached_property; the copy must not inherit a value + # computed on the base before the overlay. + row.__dict__.pop('full_title', None) + + # A row with no common counterpart may still be sparse; nothing further + # is going to fill it in, so treat NULL as the field's zero. + for field in models.Day.OVERRIDABLE: + if getattr(row, field) is None: + setattr(row, field, 0) + kept.append(row) return kept @@ -266,7 +309,7 @@ async def _collect_commemorations(self): tag, not just the ones tagged for self.tradition/common -- feast- level facts (feast_level/fast/fast_exception/feast_name/titles/ service_notes) still come only from whichever single row wins via - _prefer_tradition_days (a tradition-specific row is a genuine + _merge_tradition_days (a tradition-specific row is a genuine whole-day replacement for those facts, e.g. Greek observing a lower/zero feast_level on a day Slavic elevates). But the full, untradition-filtered id list is also kept (self._commemoration_day_ids) @@ -295,7 +338,7 @@ async def _collect_commemorations(self): # Bake the multiple "days" down into a single composite day for # feast-level facts only -- this part keeps the original # tradition-filtered, single-winner selection. - self.days = _prefer_tradition_days( + self.days = _merge_tradition_days( [d for d in all_days if d.tradition in (self.tradition, 'common')], self.tradition, ) @@ -332,7 +375,7 @@ async def _add_supplemental_commemorations(self): commemoration supplements the day's common ones rather than replacing them, which is why the query below filters by tradition directly rather than scoping to self.days (the - _prefer_tradition_days-selected winner). self._commemoration_day_ids + _merge_tradition_days-selected winner). self._commemoration_day_ids (Stage 9) deliberately includes every Day row matching this slot regardless of tradition tag, so a saint can be shared via its own DayCommemoration.tradition even when attached to a Day row tagged @@ -382,7 +425,7 @@ async def _add_supplemental_commemorations(self): additive.append(dc) elif dc.day_id not in winning_day_ids: # ordering < 0 (feast_name-matched, day_native or not), but - # its own Day row lost _prefer_tradition_days's preference + # its own Day row lost _merge_tradition_days's preference # for this request -- e.g. a saint shared via # DayCommemoration.tradition='common' whose entry lives on a # different tradition's Day row than the one whose @@ -929,155 +972,18 @@ def gospel_pdist(self): class SlavicDay(Day): def _apply_fasting_adjustments(self): - # Adjust for fast free days - if self.fast_exception == 11: - self.fast_level = FastLevels.NoFast - return - - # Are we in the Apostles fast? This can't be gleaned from the database - # because the feast of Sts. Peter and Paul is part of the Festal cycle, - # but the beginning of this fast is defined by the Paschal cycle. - if 56 < self.pdist < self.pyear.peter_and_paul: - self.fast_level = FastLevels.ApostlesFast - if self.pdist == 57: - self.service_notes.append("Beginning of Apostles' Fast") - - match self.fast_level: - case FastLevels.LentenFast: - # Remove fish for minor feast days in Lent - if self.fast_exception == 2: - self.fast_exception -= 1 - case FastLevels.DormitionFast: - # Unlike the Apostles' and Nativity fasts, the Dormition Fast - # has no rank-based exception at all -- the Typikon's - # Vigil-rank fish rule (Ch. 32-33) is scoped to those two - # fasts only, and no source found extends even a wine-and-oil - # floor to a lower-ranked commemoration during Dormition - # (confirmed directly against antiochian.org/liturgicday for - # 8/13, 2026: Leavetaking of Transfiguration, feast_level 4, - # is listed as a full abstention day -- no wine or oil). - # Every source checked treats Dormition as strict as Great - # Lent with exactly one dated exception: the Transfiguration - # itself (Aug 6, feast_level 8, "Major feast Lord"). Zero out - # anything baked onto a lower-ranked row -- e.g. a Vigil-rank - # saint's own commemoration, which would grant an exception - # during the other two fasts but not here. - if self.feast_level < 7 and self.fast_exception > 0: - self.fast_exception = 0 - - # Allow wine and oil on weekends during the Dormition fast -- - # a day-of-week exception, independent of feast rank. - if self.weekday in (Weekday.Sunday, Weekday.Saturday) and self.fast_exception == 0: - self.fast_exception += 1 - case FastLevels.ApostlesFast | FastLevels.NativityFast: - match self.weekday: - case Weekday.Tuesday | Weekday.Thursday: - if self.fast_exception == 0: - self.fast_exception += 1 - case Weekday.Wednesday | Weekday.Friday: - if self.feast_level < 4 and self.fast_exception > 1: - self.fast_exception = 1 - case Weekday.Sunday | Weekday.Saturday: - self.fast_exception = 2 - - # Disallow fish for the week before Nativity - if self.pyear.nativity-6 < self.pdist < self.pyear.nativity-1 and self.fast_exception > 1: - self.fast_exception = 1 - - # The days before Nativity and Theophany are wine and oil days - if self.pdist in (self.pyear.nativity-1, self.pyear.theophany-1) and self.weekday in (Weekday.Sunday, Weekday.Saturday): - self.fast_exception = 1 + """Slavic dietary rules. The seasons, and the rule combining them with + the festal cycle, live in calendarium/fasting.py -- this used to be a + run of weekday and season special cases patching a `max()` over an + overloaded integer. See docs/fasting-refactor-scope.md.""" + fasting.apply(self, fasting.slavic_season) class GreekDay(Day): def _apply_fasting_adjustments(self): - """Confirmed via docs/greek-fasting.md: the Apostles Fast, Lenten - Fast, and Dormition Fast all follow the identical weekly pattern as - Slavic practice. Only the Nativity Fast differs -- Greek practice - treats every day but Wednesday/Friday as a fish day for the first - four weeks (Nov 15 - Dec 12), then tightens for the final 12 days - (Dec 13 - 24) more than Slavic practice does: no fish at all, and - only Saturday/Sunday keep any wine-and-oil allowance (Monday/ - Tuesday/Thursday drop to the same strictness as Wednesday/Friday, - rather than just losing fish the way Slavic's ~5-day-shorter - stricter period does).""" - - # Adjust for fast free days - if self.fast_exception == 11: - self.fast_level = FastLevels.NoFast - return - - # Are we in the Apostles fast? This can't be gleaned from the database - # because the feast of Sts. Peter and Paul is part of the Festal cycle, - # but the beginning of this fast is defined by the Paschal cycle. - if 56 < self.pdist < self.pyear.peter_and_paul: - self.fast_level = FastLevels.ApostlesFast - if self.pdist == 57: - self.service_notes.append("Beginning of Apostles' Fast") - - match self.fast_level: - case FastLevels.LentenFast: - # Remove fish for minor feast days in Lent - if self.fast_exception == 2: - self.fast_exception -= 1 - case FastLevels.DormitionFast: - # Unlike the Apostles' and Nativity fasts, the Dormition Fast - # has no rank-based exception at all -- the Typikon's - # Vigil-rank fish rule (Ch. 32-33) is scoped to those two - # fasts only, and no source found extends even a wine-and-oil - # floor to a lower-ranked commemoration during Dormition - # (confirmed directly against antiochian.org/liturgicday for - # 8/13, 2026: Leavetaking of Transfiguration, feast_level 4, - # is listed as a full abstention day -- no wine or oil). - # Every source checked treats Dormition as strict as Great - # Lent with exactly one dated exception: the Transfiguration - # itself (Aug 6, feast_level 8, "Major feast Lord"). Zero out - # anything baked onto a lower-ranked row -- e.g. a Vigil-rank - # saint's own commemoration, which would grant an exception - # during the other two fasts but not here. - if self.feast_level < 7 and self.fast_exception > 0: - self.fast_exception = 0 - - # Allow wine and oil on weekends during the Dormition fast -- - # a day-of-week exception, independent of feast rank. - if self.weekday in (Weekday.Sunday, Weekday.Saturday) and self.fast_exception == 0: - self.fast_exception += 1 - case FastLevels.ApostlesFast: - match self.weekday: - case Weekday.Tuesday | Weekday.Thursday: - if self.fast_exception == 0: - self.fast_exception += 1 - case Weekday.Wednesday | Weekday.Friday: - if self.feast_level < 4 and self.fast_exception > 1: - self.fast_exception = 1 - case Weekday.Sunday | Weekday.Saturday: - self.fast_exception = 2 - case FastLevels.NativityFast: - stricter_period = self.pdist >= self.pyear.nativity - 12 - - match self.weekday: - case Weekday.Wednesday | Weekday.Friday: - if self.feast_level < 4 and self.fast_exception > 1: - self.fast_exception = 1 - case Weekday.Sunday | Weekday.Saturday: - if stricter_period: - # Force wine-and-oil, but never loosen a - # deliberately stricter override (7+, e.g. the - # "Strict Fast" baseline on Nativity Eve itself). - if self.fast_exception == 0 or 1 < self.fast_exception <= 6: - self.fast_exception = 1 - else: - self.fast_exception = 2 - case _: # Monday, Tuesday, Thursday - if stricter_period: - if self.feast_level < 4 and 1 < self.fast_exception <= 6: - self.fast_exception = 1 - else: - self.fast_exception = 2 - - # The days before Nativity and Theophany are wine and oil days - if self.pdist in (self.pyear.nativity-1, self.pyear.theophany-1) and self.weekday in (Weekday.Sunday, Weekday.Saturday): - self.fast_exception = 1 + """Greek dietary rules, which differ from Slavic only in the Nativity + fast -- see calendarium/fasting.py and docs/greek-fasting.md.""" + fasting.apply(self, fasting.greek_season) _DAY_CLASSES = { diff --git a/calendarium/migrations/0011_alter_day_fast_alter_day_fast_exception_and_more.py b/calendarium/migrations/0011_alter_day_fast_alter_day_fast_exception_and_more.py new file mode 100644 index 00000000..91f09bd0 --- /dev/null +++ b/calendarium/migrations/0011_alter_day_fast_alter_day_fast_exception_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 6.1 on 2026-09-10 19:57 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('calendarium', '0010_ordoreading'), + ] + + operations = [ + migrations.AlterField( + model_name='day', + name='fast', + field=models.SmallIntegerField(blank=True, null=True), + ), + migrations.AlterField( + model_name='day', + name='fast_exception', + field=models.SmallIntegerField(blank=True, null=True), + ), + migrations.AlterField( + model_name='day', + name='feast_level', + field=models.SmallIntegerField(blank=True, null=True), + ), + ] diff --git a/calendarium/migrations/0012_day_fast_cap_exempt.py b/calendarium/migrations/0012_day_fast_cap_exempt.py new file mode 100644 index 00000000..df5294f9 --- /dev/null +++ b/calendarium/migrations/0012_day_fast_cap_exempt.py @@ -0,0 +1,18 @@ +# Generated by Django 6.1 on 2026-09-10 21:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('calendarium', '0011_alter_day_fast_alter_day_fast_exception_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='day', + name='fast_cap_exempt', + field=models.BooleanField(blank=True, null=True), + ), + ] diff --git a/calendarium/models.py b/calendarium/models.py index 5471c1d0..34adaf43 100644 --- a/calendarium/models.py +++ b/calendarium/models.py @@ -12,19 +12,50 @@ class Day(models.Model): + """One day's commemorations and fasting, for one tradition. + + A row is keyed by the slot `(pdist, month, day)`. Where two traditions + genuinely commemorate different things, the slot carries a `slavic` row and + a `greek` row and no `common` one. Where they commemorate the *same* thing + but keep it differently, the slot carries a `common` row plus a sparse + tradition row that overrides only what differs -- see + `_merge_tradition_days` in liturgics/day.py. + + `feast_level`, `fast` and `fast_exception` are nullable for that reason, and + the distinction matters: **NULL means "inherit from the common row", 0 means + "explicitly zero"**. The Exaltation's `greek` override is `fast_exception=0` + -- an explicit "make no claim", not an absence. Everything else on an + override row is ignored when a common row exists, so leave those fields + blank; `test_day_overrides_are_sparse` enforces it. + """ + + OVERRIDABLE = ('feast_level', 'fast', 'fast_exception', 'fast_cap_exempt') + pdist = models.SmallIntegerField(db_index=True) month = models.SmallIntegerField() day = models.SmallIntegerField() title = models.CharField(max_length=255) subtitle = models.CharField(max_length=128) feast_name = models.CharField(max_length=255) - feast_level = models.SmallIntegerField() + feast_level = models.SmallIntegerField(null=True, blank=True) service = models.SmallIntegerField() service_note = models.CharField(max_length=64) story = models.TextField(null=True, blank=True) # feast-level narrative, non-saint content - fast = models.SmallIntegerField() - fast_exception = models.SmallIntegerField() + fast = models.SmallIntegerField(null=True, blank=True) + fast_exception = models.SmallIntegerField(null=True, blank=True) flag = models.SmallIntegerField() + # "This commemoration's claim outranks the season's cap." A season that caps + # fish away on a Wednesday means "no fish for a saint", and is not aimed at + # a feast of the Lord -- but `feast_level` cannot always tell the two apart, + # because it follows the Slavic reckoning. The Synaxis of the Forerunner is + # level 3 here and keeps its fish in Greek practice; St Matthew is level 6 + # and does not. + # + # The old scale said this positionally: indices 3 and 4 duplicate 1 and 2 in + # wording precisely because they were the cap-outranking variants. That is + # not read off the index, because it is not universal -- the Dormition fast + # caps index-4 claims deliberately. Saying it per row removes the ambiguity. + fast_cap_exempt = models.BooleanField(null=True, blank=True) tradition = models.CharField(max_length=16, choices=[ ('common', 'Common'), # shared by all traditions (the default) ('slavic', 'Slavic-specific'), diff --git a/calendarium/tests/data/fasting-characterization.txt b/calendarium/tests/data/fasting-characterization.txt new file mode 100644 index 00000000..3150e609 --- /dev/null +++ b/calendarium/tests/data/fasting-characterization.txt @@ -0,0 +1,3652 @@ +2025-01-01 slavic w3 feast6 fast0 exc11 rows=0,11 -> - +2025-01-02 slavic w4 feast4 fast0 exc11 rows=0,11 -> - +2025-01-03 slavic w5 feast0 fast0 exc11 rows=0,0,11 -> - +2025-01-04 slavic w6 feast0 fast0 exc11 rows=0,0,11 -> - +2025-01-05 slavic w0 feast0 fast1 exc1 rows=0,0,9 -> meat,fish,dairy,eggs +2025-01-06 slavic w1 feast8 fast0 exc11 rows=0,11 -> - +2025-01-07 slavic w2 feast3 fast0 exc2 rows=0,2 -> - +2025-01-08 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-09 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2025-01-10 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-11 slavic w6 feast4 fast0 exc0 rows=0,0,0 -> - +2025-01-12 slavic w0 feast3 fast0 exc0 rows=0,0,0 -> - +2025-01-13 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-01-14 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2025-01-15 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-16 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2025-01-17 slavic w5 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-01-18 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2025-01-19 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2025-01-20 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2025-01-21 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-01-22 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-23 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-01-24 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-25 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2025-01-26 slavic w0 feast5 fast0 exc0 rows=0,0,0 -> - +2025-01-27 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2025-01-28 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2025-01-29 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-30 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2025-01-31 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-01 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2025-02-02 slavic w0 feast8 fast0 exc2 rows=0,2 -> - +2025-02-03 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2025-02-04 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-02-05 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-06 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-02-07 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-08 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2025-02-09 slavic w0 feast4 fast0 exc11 rows=0,11 -> - +2025-02-10 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2025-02-11 slavic w2 feast3 fast0 exc11 rows=0,11 -> - +2025-02-12 slavic w3 feast4 fast0 exc11 rows=0,11 -> - +2025-02-13 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2025-02-14 slavic w5 feast4 fast0 exc11 rows=0,11 -> - +2025-02-15 slavic w6 feast0 fast0 exc11 rows=0,11 -> - +2025-02-16 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2025-02-17 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2025-02-18 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-02-19 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-20 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-02-21 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-22 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2025-02-23 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2025-02-24 slavic w1 feast4 fast1 exc7 rows=1,7 -> meat +2025-02-25 slavic w2 feast0 fast1 exc7 rows=0,7 -> meat +2025-02-26 slavic w3 feast0 fast1 exc7 rows=0,7 -> meat +2025-02-27 slavic w4 feast5 fast1 exc7 rows=2,7 -> meat +2025-02-28 slavic w5 feast0 fast1 exc7 rows=0,7 -> meat +2025-03-01 slavic w6 feast0 fast1 exc7 rows=0,7 -> meat +2025-03-02 slavic w0 feast3 fast1 exc7 rows=0,7 -> meat +2025-03-03 slavic w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-04 slavic w2 feast4 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-05 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-06 slavic w4 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-07 slavic w5 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-08 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-09 slavic w0 feast4 fast2 exc3 rows=1,3 -> meat,fish,dairy,eggs +2025-03-10 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-11 slavic w2 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-12 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-13 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-14 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-15 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-16 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-17 slavic w1 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-18 slavic w2 feast2 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-19 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-20 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-21 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-22 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-23 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-24 slavic w1 feast2 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-25 slavic w2 feast7 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2025-03-26 slavic w3 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-27 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-28 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-29 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-30 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-31 slavic w1 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-04-01 slavic w2 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-02 slavic w3 feast1 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-03 slavic w4 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-04 slavic w5 feast1 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-05 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-06 slavic w0 feast4 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-07 slavic w1 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-04-08 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-09 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-10 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-11 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-12 slavic w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2025-04-13 slavic w0 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2025-04-14 slavic w1 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-04-15 slavic w2 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-04-16 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-04-17 slavic w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-18 slavic w5 feast0 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2025-04-19 slavic w6 feast3 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2025-04-20 slavic w0 feast8 fast0 exc11 rows=0,11 -> - +2025-04-21 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2025-04-22 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2025-04-23 slavic w3 feast5 fast0 exc11 rows=1,11 -> - +2025-04-24 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2025-04-25 slavic w5 feast4 fast0 exc11 rows=1,11 -> - +2025-04-26 slavic w6 feast3 fast0 exc11 rows=0,11 -> - +2025-04-27 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2025-04-28 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-04-29 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-04-30 slavic w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-01 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2025-05-02 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-03 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2025-05-04 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2025-05-05 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-05-06 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-05-07 slavic w3 feast5 fast1 exc2 rows=1,2 -> meat,dairy,eggs +2025-05-08 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2025-05-09 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-10 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2025-05-11 slavic w0 feast5 fast0 exc2 rows=0,2 -> - +2025-05-12 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-05-13 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-05-14 slavic w3 feast2 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-05-15 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2025-05-16 slavic w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-17 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2025-05-18 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2025-05-19 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2025-05-20 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2025-05-21 slavic w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-22 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-05-23 slavic w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-24 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2025-05-25 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2025-05-26 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2025-05-27 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2025-05-28 slavic w3 feast2 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-05-29 slavic w4 feast8 fast0 exc0 rows=0,0 -> - +2025-05-30 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-31 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2025-06-01 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2025-06-02 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-06-03 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-06-04 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-06-05 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-06-06 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-06-07 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2025-06-08 slavic w0 feast8 fast0 exc0 rows=0,0 -> - +2025-06-09 slavic w1 feast3 fast0 exc11 rows=0,11 -> - +2025-06-10 slavic w2 feast4 fast0 exc11 rows=0,11 -> - +2025-06-11 slavic w3 feast4 fast0 exc11 rows=0,11 -> - +2025-06-12 slavic w4 feast2 fast0 exc11 rows=0,11 -> - +2025-06-13 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2025-06-14 slavic w6 feast0 fast0 exc11 rows=0,11 -> - +2025-06-15 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2025-06-16 slavic w1 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-17 slavic w2 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-06-18 slavic w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-19 slavic w4 feast4 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-06-20 slavic w5 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-21 slavic w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-22 slavic w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-23 slavic w1 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-24 slavic w2 feast6 fast3 exc2 rows=0,2 -> meat,dairy,eggs +2025-06-25 slavic w3 feast3 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-26 slavic w4 feast4 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-06-27 slavic w5 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-28 slavic w6 feast2 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-29 slavic w0 feast6 fast0 exc2 rows=0,2 -> - +2025-06-30 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2025-07-01 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2025-07-02 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-03 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2025-07-04 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-05 slavic w6 feast4 fast0 exc2 rows=0,2 -> - +2025-07-06 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2025-07-07 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-07-08 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2025-07-09 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-10 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2025-07-11 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-12 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2025-07-13 slavic w0 feast2 fast0 exc0 rows=0,0,0 -> - +2025-07-14 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2025-07-15 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2025-07-16 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-17 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2025-07-18 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-19 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2025-07-20 slavic w0 feast5 fast0 exc2 rows=0,2 -> - +2025-07-21 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-07-22 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2025-07-23 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-24 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2025-07-25 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-26 slavic w6 feast4 fast0 exc2 rows=0,2 -> - +2025-07-27 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2025-07-28 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-07-29 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-07-30 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-31 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2025-08-01 slavic w5 feast3 fast4 exc0 rows=0,1 -> meat,fish,dairy,eggs,wine,oil +2025-08-02 slavic w6 feast3 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-08-03 slavic w0 feast3 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-08-04 slavic w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-05 slavic w2 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-06 slavic w3 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2025-08-07 slavic w4 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-08 slavic w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-09 slavic w6 feast5 fast4 exc1 rows=0,4 -> meat,fish,dairy,eggs +2025-08-10 slavic w0 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-08-11 slavic w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-12 slavic w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-13 slavic w3 feast4 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2025-08-14 slavic w4 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-15 slavic w5 feast7 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-08-16 slavic w6 feast5 fast0 exc1 rows=0,1 -> - +2025-08-17 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2025-08-18 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-08-19 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-08-20 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-21 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2025-08-22 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-23 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2025-08-24 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2025-08-25 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2025-08-26 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2025-08-27 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-28 slavic w4 feast4 fast0 exc1 rows=0,1 -> - +2025-08-29 slavic w5 feast6 fast1 exc8 rows=0,8 -> meat,fish,dairy,eggs +2025-08-30 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2025-08-31 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2025-09-01 slavic w1 feast4 fast0 exc1 rows=0,1 -> - +2025-09-02 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-09-03 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-04 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-09-05 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-06 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2025-09-07 slavic w0 feast3 fast0 exc0 rows=0,0,0 -> - +2025-09-08 slavic w1 feast7 fast0 exc2 rows=0,2 -> - +2025-09-09 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2025-09-10 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-11 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2025-09-12 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-09-13 slavic w6 feast3 fast0 exc1 rows=0,0,1 -> - +2025-09-14 slavic w0 feast8 fast1 exc1 rows=0,8 -> meat,fish,dairy,eggs +2025-09-15 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2025-09-16 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2025-09-17 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-18 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-09-19 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-20 slavic w6 feast3 fast0 exc0 rows=0,0,0 -> - +2025-09-21 slavic w0 feast4 fast0 exc0 rows=0,0,0 -> - +2025-09-22 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2025-09-23 slavic w2 feast3 fast0 exc1 rows=0,1 -> - +2025-09-24 slavic w3 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-09-25 slavic w4 feast4 fast0 exc2 rows=0,2 -> - +2025-09-26 slavic w5 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-09-27 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2025-09-28 slavic w0 feast4 fast0 exc1 rows=0,1 -> - +2025-09-29 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2025-09-30 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2025-10-01 slavic w3 feast6 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-10-02 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2025-10-03 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-04 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2025-10-05 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2025-10-06 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2025-10-07 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2025-10-08 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-09 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2025-10-10 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-11 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2025-10-12 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2025-10-13 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-10-14 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2025-10-15 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-16 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-10-17 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-18 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2025-10-19 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2025-10-20 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2025-10-21 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2025-10-22 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-23 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2025-10-24 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-25 slavic w6 feast0 fast0 exc0 rows=0,0,0 -> - +2025-10-26 slavic w0 feast4 fast0 exc2 rows=0,2 -> - +2025-10-27 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-10-28 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2025-10-29 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-30 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2025-10-31 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-01 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2025-11-02 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2025-11-03 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-11-04 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-11-05 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-06 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2025-11-07 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-08 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2025-11-09 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2025-11-10 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2025-11-11 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2025-11-12 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-13 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2025-11-14 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-11-15 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-16 slavic w0 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-11-17 slavic w1 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-18 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-11-19 slavic w3 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-20 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-11-21 slavic w5 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-11-22 slavic w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-23 slavic w0 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-24 slavic w1 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-25 slavic w2 feast0 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-11-26 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-27 slavic w4 feast2 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-11-28 slavic w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-29 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-30 slavic w0 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-12-01 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-02 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-12-03 slavic w3 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-04 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-12-05 slavic w5 feast4 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-06 slavic w6 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-12-07 slavic w0 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-12-08 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-09 slavic w2 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-12-10 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-11 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-12-12 slavic w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-13 slavic w6 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-12-14 slavic w0 feast0 fast5 exc2 rows=0,0,0 -> meat,dairy,eggs +2025-12-15 slavic w1 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-16 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-12-17 slavic w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-18 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-12-19 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-20 slavic w6 feast4 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2025-12-21 slavic w0 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2025-12-22 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-23 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-12-24 slavic w3 feast0 fast5 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2025-12-25 slavic w4 feast8 fast0 exc11 rows=0,11 -> - +2025-12-26 slavic w5 feast3 fast0 exc11 rows=0,11 -> - +2025-12-27 slavic w6 feast2 fast0 exc11 rows=0,0,11 -> - +2025-12-28 slavic w0 feast0 fast0 exc11 rows=0,0,11 -> - +2025-12-29 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2025-12-30 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2025-12-31 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2026-01-01 slavic w4 feast6 fast0 exc11 rows=0,11 -> - +2026-01-02 slavic w5 feast4 fast0 exc11 rows=0,11 -> - +2026-01-03 slavic w6 feast0 fast0 exc11 rows=0,0,11 -> - +2026-01-04 slavic w0 feast0 fast0 exc11 rows=0,0,11 -> - +2026-01-05 slavic w1 feast0 fast1 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2026-01-06 slavic w2 feast8 fast0 exc11 rows=0,11 -> - +2026-01-07 slavic w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-01-08 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-01-09 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-10 slavic w6 feast4 fast0 exc0 rows=0,0,0 -> - +2026-01-11 slavic w0 feast4 fast0 exc0 rows=0,0,0 -> - +2026-01-12 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2026-01-13 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-01-14 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-15 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2026-01-16 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-17 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2026-01-18 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2026-01-19 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2026-01-20 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2026-01-21 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-22 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-01-23 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-24 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2026-01-25 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2026-01-26 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-01-27 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2026-01-28 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-29 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2026-01-30 slavic w5 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-01-31 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2026-02-01 slavic w0 feast2 fast0 exc11 rows=0,11 -> - +2026-02-02 slavic w1 feast8 fast0 exc11 rows=2,11 -> - +2026-02-03 slavic w2 feast2 fast0 exc11 rows=0,11 -> - +2026-02-04 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2026-02-05 slavic w4 feast4 fast0 exc11 rows=0,11 -> - +2026-02-06 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2026-02-07 slavic w6 feast0 fast0 exc11 rows=0,11 -> - +2026-02-08 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2026-02-09 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2026-02-10 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-02-11 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-02-12 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2026-02-13 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-02-14 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2026-02-15 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2026-02-16 slavic w1 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-17 slavic w2 feast4 fast1 exc7 rows=0,7 -> meat +2026-02-18 slavic w3 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-19 slavic w4 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-20 slavic w5 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-21 slavic w6 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-22 slavic w0 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-23 slavic w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-24 slavic w2 feast4 fast2 exc10 rows=1,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-25 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-26 slavic w4 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-27 slavic w5 feast5 fast2 exc10 rows=2,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-28 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-01 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-02 slavic w1 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-03 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-04 slavic w3 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-05 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-06 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-07 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-08 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-09 slavic w1 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-03-10 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-11 slavic w3 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-12 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-13 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-14 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-15 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-16 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-17 slavic w2 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-18 slavic w3 feast2 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-19 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-20 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-21 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-22 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-23 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-24 slavic w2 feast2 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-25 slavic w3 feast7 fast2 exc4 rows=3,4 -> meat,dairy,eggs +2026-03-26 slavic w4 feast3 fast2 exc3 rows=3,3 -> meat,fish,dairy,eggs +2026-03-27 slavic w5 feast1 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-28 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-29 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-30 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-31 slavic w2 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-04-01 slavic w3 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-04-02 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-04-03 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-04-04 slavic w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2026-04-05 slavic w0 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2026-04-06 slavic w1 feast4 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-04-07 slavic w2 feast4 fast2 exc10 rows=1,10 -> meat,fish,dairy,eggs,wine,oil +2026-04-08 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-04-09 slavic w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-04-10 slavic w5 feast0 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2026-04-11 slavic w6 feast3 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2026-04-12 slavic w0 feast8 fast0 exc11 rows=0,11 -> - +2026-04-13 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2026-04-14 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2026-04-15 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2026-04-16 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2026-04-17 slavic w5 feast3 fast0 exc11 rows=0,11 -> - +2026-04-18 slavic w6 feast0 fast0 exc11 rows=0,11 -> - +2026-04-19 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2026-04-20 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-04-21 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-04-22 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-04-23 slavic w4 feast5 fast0 exc1 rows=0,1 -> - +2026-04-24 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-04-25 slavic w6 feast4 fast0 exc1 rows=0,1 -> - +2026-04-26 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2026-04-27 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2026-04-28 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-04-29 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-04-30 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2026-05-01 slavic w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-02 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2026-05-03 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2026-05-04 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-05-05 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-05-06 slavic w3 feast0 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-05-07 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2026-05-08 slavic w5 feast5 fast1 exc2 rows=1,2 -> meat,dairy,eggs +2026-05-09 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2026-05-10 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2026-05-11 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2026-05-12 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-05-13 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-14 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2026-05-15 slavic w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-16 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2026-05-17 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2026-05-18 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-05-19 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2026-05-20 slavic w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-05-21 slavic w4 feast8 fast0 exc0 rows=0,0 -> - +2026-05-22 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-23 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2026-05-24 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2026-05-25 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2026-05-26 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2026-05-27 slavic w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-28 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2026-05-29 slavic w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-30 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2026-05-31 slavic w0 feast8 fast0 exc0 rows=0,0 -> - +2026-06-01 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2026-06-02 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2026-06-03 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2026-06-04 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2026-06-05 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2026-06-06 slavic w6 feast0 fast0 exc11 rows=0,11 -> - +2026-06-07 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2026-06-08 slavic w1 feast2 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-09 slavic w2 feast3 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-06-10 slavic w3 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-11 slavic w4 feast4 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-06-12 slavic w5 feast2 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-13 slavic w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-14 slavic w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-15 slavic w1 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-16 slavic w2 feast4 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-06-17 slavic w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-18 slavic w4 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-06-19 slavic w5 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-20 slavic w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-21 slavic w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-22 slavic w1 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-23 slavic w2 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-06-24 slavic w3 feast6 fast3 exc2 rows=0,2 -> meat,dairy,eggs +2026-06-25 slavic w4 feast3 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-06-26 slavic w5 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-27 slavic w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-28 slavic w0 feast2 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-29 slavic w1 feast6 fast0 exc2 rows=0,2 -> - +2026-06-30 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2026-07-01 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-02 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2026-07-03 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-04 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2026-07-05 slavic w0 feast4 fast0 exc2 rows=0,2 -> - +2026-07-06 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-07-07 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-07-08 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-09 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-07-10 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-11 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2026-07-12 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2026-07-13 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2026-07-14 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2026-07-15 slavic w3 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-07-16 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-07-17 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-18 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2026-07-19 slavic w0 feast4 fast0 exc0 rows=0,0,0 -> - +2026-07-20 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2026-07-21 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-07-22 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-23 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-07-24 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-25 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2026-07-26 slavic w0 feast4 fast0 exc2 rows=0,2 -> - +2026-07-27 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2026-07-28 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-07-29 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-30 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-07-31 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-01 slavic w6 feast3 fast4 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-08-02 slavic w0 feast3 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-08-03 slavic w1 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-04 slavic w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-05 slavic w3 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-06 slavic w4 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2026-08-07 slavic w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-08 slavic w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-08-09 slavic w0 feast5 fast4 exc1 rows=0,4 -> meat,fish,dairy,eggs +2026-08-10 slavic w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-11 slavic w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-12 slavic w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-13 slavic w4 feast4 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2026-08-14 slavic w5 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-15 slavic w6 feast7 fast0 exc2 rows=0,2 -> - +2026-08-16 slavic w0 feast5 fast0 exc1 rows=0,1 -> - +2026-08-17 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-08-18 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-08-19 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-20 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-08-21 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-22 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2026-08-23 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2026-08-24 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2026-08-25 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2026-08-26 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-27 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-08-28 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-08-29 slavic w6 feast6 fast1 exc1 rows=0,8 -> meat,fish,dairy,eggs +2026-08-30 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2026-08-31 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2026-09-01 slavic w2 feast4 fast0 exc1 rows=0,1 -> - +2026-09-02 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-03 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-09-04 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-05 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2026-09-06 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2026-09-07 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2026-09-08 slavic w2 feast7 fast0 exc2 rows=0,2 -> - +2026-09-09 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-10 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-09-11 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-12 slavic w6 feast0 fast0 exc1 rows=0,0,1 -> - +2026-09-13 slavic w0 feast3 fast0 exc1 rows=0,0,1 -> - +2026-09-14 slavic w1 feast8 fast1 exc8 rows=0,8 -> meat,fish,dairy,eggs +2026-09-15 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2026-09-16 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-17 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-09-18 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-19 slavic w6 feast3 fast0 exc0 rows=0,0,0 -> - +2026-09-20 slavic w0 feast3 fast0 exc0 rows=0,0,0 -> - +2026-09-21 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2026-09-22 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2026-09-23 slavic w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-09-24 slavic w4 feast4 fast0 exc2 rows=0,2 -> - +2026-09-25 slavic w5 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-09-26 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2026-09-27 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2026-09-28 slavic w1 feast4 fast0 exc1 rows=0,1 -> - +2026-09-29 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2026-09-30 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-01 slavic w4 feast6 fast0 exc2 rows=0,2 -> - +2026-10-02 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-03 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2026-10-04 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2026-10-05 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2026-10-06 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2026-10-07 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-08 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-10-09 slavic w5 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-10-10 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2026-10-11 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2026-10-12 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-10-13 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-10-14 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-15 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-10-16 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-17 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2026-10-18 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2026-10-19 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2026-10-20 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2026-10-21 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-22 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2026-10-23 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-24 slavic w6 feast0 fast0 exc0 rows=0,0,0 -> - +2026-10-25 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2026-10-26 slavic w1 feast4 fast0 exc2 rows=0,2 -> - +2026-10-27 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-10-28 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-29 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2026-10-30 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-31 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2026-11-01 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2026-11-02 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-11-03 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-11-04 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-05 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2026-11-06 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-07 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2026-11-08 slavic w0 feast5 fast0 exc2 rows=0,0,2 -> - +2026-11-09 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2026-11-10 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2026-11-11 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-12 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2026-11-13 slavic w5 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-11-14 slavic w6 feast4 fast0 exc1 rows=0,1 -> - +2026-11-15 slavic w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-16 slavic w1 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2026-11-17 slavic w2 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-11-18 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-19 slavic w4 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-11-20 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-21 slavic w6 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2026-11-22 slavic w0 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-23 slavic w1 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-24 slavic w2 feast2 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-11-25 slavic w3 feast0 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-11-26 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-11-27 slavic w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-28 slavic w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-29 slavic w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-30 slavic w1 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2026-12-01 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-12-02 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-03 slavic w4 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-12-04 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-05 slavic w6 feast4 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-12-06 slavic w0 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2026-12-07 slavic w1 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-08 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-12-09 slavic w3 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-10 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-12-11 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-12 slavic w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-12-13 slavic w0 feast5 fast5 exc2 rows=0,0,2 -> meat,dairy,eggs +2026-12-14 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-15 slavic w2 feast2 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-12-16 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-17 slavic w4 feast2 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-12-18 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-19 slavic w6 feast0 fast5 exc2 rows=0,0,0 -> meat,dairy,eggs +2026-12-20 slavic w0 feast4 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2026-12-21 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-22 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-12-23 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-24 slavic w4 feast0 fast5 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2026-12-25 slavic w5 feast8 fast0 exc11 rows=0,11 -> - +2026-12-26 slavic w6 feast3 fast0 exc11 rows=0,0,11 -> - +2026-12-27 slavic w0 feast2 fast0 exc11 rows=0,0,11 -> - +2026-12-28 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2026-12-29 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2026-12-30 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2026-12-31 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2027-01-01 slavic w5 feast6 fast0 exc11 rows=0,11 -> - +2027-01-02 slavic w6 feast4 fast0 exc11 rows=0,0,11 -> - +2027-01-03 slavic w0 feast0 fast0 exc11 rows=0,0,11 -> - +2027-01-04 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2027-01-05 slavic w2 feast0 fast1 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2027-01-06 slavic w3 feast8 fast0 exc11 rows=0,11 -> - +2027-01-07 slavic w4 feast3 fast0 exc2 rows=0,2 -> - +2027-01-08 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-09 slavic w6 feast4 fast0 exc0 rows=0,0,0 -> - +2027-01-10 slavic w0 feast4 fast0 exc0 rows=0,0,0 -> - +2027-01-11 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2027-01-12 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2027-01-13 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-14 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2027-01-15 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-16 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2027-01-17 slavic w0 feast5 fast0 exc2 rows=0,2 -> - +2027-01-18 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2027-01-19 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2027-01-20 slavic w3 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-01-21 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-01-22 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-23 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-01-24 slavic w0 feast5 fast0 exc0 rows=0,0,0 -> - +2027-01-25 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2027-01-26 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-01-27 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-28 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2027-01-29 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-30 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2027-01-31 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2027-02-01 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2027-02-02 slavic w2 feast8 fast0 exc2 rows=0,2 -> - +2027-02-03 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-04 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-02-05 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-06 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-02-07 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-02-08 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2027-02-09 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2027-02-10 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-11 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2027-02-12 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-13 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-02-14 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2027-02-15 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-02-16 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-02-17 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-18 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-02-19 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-20 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-02-21 slavic w0 feast0 fast0 exc11 rows=0,11 -> - +2027-02-22 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2027-02-23 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2027-02-24 slavic w3 feast4 fast0 exc11 rows=1,11 -> - +2027-02-25 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2027-02-26 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2027-02-27 slavic w6 feast5 fast0 exc11 rows=2,11 -> - +2027-02-28 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-03-01 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-03-02 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2027-03-03 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-04 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2027-03-05 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-06 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-03-07 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-03-08 slavic w1 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-09 slavic w2 feast4 fast1 exc7 rows=1,7 -> meat +2027-03-10 slavic w3 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-11 slavic w4 feast3 fast1 exc7 rows=0,7 -> meat +2027-03-12 slavic w5 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-13 slavic w6 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-14 slavic w0 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-15 slavic w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-16 slavic w2 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-17 slavic w3 feast3 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-18 slavic w4 feast2 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-19 slavic w5 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-20 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-21 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-22 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-23 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-24 slavic w3 feast2 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-25 slavic w4 feast7 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2027-03-26 slavic w5 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-27 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-28 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-29 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-30 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-31 slavic w3 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-04-01 slavic w4 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-02 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-03 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-04 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-05 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-06 slavic w2 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-07 slavic w3 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-04-08 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-09 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-10 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-11 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-12 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-13 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-14 slavic w3 feast1 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-15 slavic w4 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-16 slavic w5 feast1 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-17 slavic w6 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-18 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-19 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-20 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-21 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-22 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-23 slavic w5 feast5 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-04-24 slavic w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2027-04-25 slavic w0 feast8 fast2 exc4 rows=1,4 -> meat,dairy,eggs +2027-04-26 slavic w1 feast3 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-04-27 slavic w2 feast2 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-04-28 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-04-29 slavic w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-30 slavic w5 feast4 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2027-05-01 slavic w6 feast3 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2027-05-02 slavic w0 feast8 fast0 exc11 rows=0,11 -> - +2027-05-03 slavic w1 feast4 fast0 exc11 rows=0,11 -> - +2027-05-04 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2027-05-05 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2027-05-06 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2027-05-07 slavic w5 feast5 fast0 exc11 rows=2,11 -> - +2027-05-08 slavic w6 feast5 fast0 exc11 rows=2,11 -> - +2027-05-09 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2027-05-10 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2027-05-11 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2027-05-12 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-13 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-05-14 slavic w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-15 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2027-05-16 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2027-05-17 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-05-18 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-05-19 slavic w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-20 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2027-05-21 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-22 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-05-23 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2027-05-24 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2027-05-25 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2027-05-26 slavic w3 feast2 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-05-27 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2027-05-28 slavic w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-29 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2027-05-30 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-05-31 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-06-01 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-06-02 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-03 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-06-04 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-05 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-06-06 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-06-07 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-06-08 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2027-06-09 slavic w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-06-10 slavic w4 feast8 fast0 exc0 rows=0,0 -> - +2027-06-11 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-12 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2027-06-13 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-06-14 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-06-15 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2027-06-16 slavic w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-17 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-06-18 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-19 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2027-06-20 slavic w0 feast8 fast0 exc0 rows=0,0 -> - +2027-06-21 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2027-06-22 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2027-06-23 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2027-06-24 slavic w4 feast6 fast0 exc11 rows=2,11 -> - +2027-06-25 slavic w5 feast3 fast0 exc11 rows=0,11 -> - +2027-06-26 slavic w6 feast4 fast0 exc11 rows=0,11 -> - +2027-06-27 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-06-28 slavic w1 feast2 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-06-29 slavic w2 feast6 fast0 exc2 rows=0,2 -> - +2027-06-30 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-01 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2027-07-02 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-03 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2027-07-04 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-07-05 slavic w1 feast4 fast0 exc2 rows=0,2 -> - +2027-07-06 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-07-07 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-08 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2027-07-09 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-10 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2027-07-11 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2027-07-12 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-07-13 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2027-07-14 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-15 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2027-07-16 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-17 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2027-07-18 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2027-07-19 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2027-07-20 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2027-07-21 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-22 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2027-07-23 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-24 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2027-07-25 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2027-07-26 slavic w1 feast4 fast0 exc2 rows=0,2 -> - +2027-07-27 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2027-07-28 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-29 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-07-30 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-31 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2027-08-01 slavic w0 feast3 fast4 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-08-02 slavic w1 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-03 slavic w2 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-04 slavic w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-05 slavic w4 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-06 slavic w5 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2027-08-07 slavic w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-08-08 slavic w0 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-08-09 slavic w1 feast5 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2027-08-10 slavic w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-11 slavic w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-12 slavic w4 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-13 slavic w5 feast4 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2027-08-14 slavic w6 feast2 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-08-15 slavic w0 feast7 fast0 exc2 rows=0,2 -> - +2027-08-16 slavic w1 feast5 fast0 exc1 rows=0,1 -> - +2027-08-17 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-08-18 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-19 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-08-20 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-21 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2027-08-22 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-08-23 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-08-24 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2027-08-25 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-26 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2027-08-27 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-28 slavic w6 feast4 fast0 exc1 rows=0,1 -> - +2027-08-29 slavic w0 feast6 fast1 exc1 rows=0,8 -> meat,fish,dairy,eggs +2027-08-30 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2027-08-31 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2027-09-01 slavic w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-09-02 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-09-03 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-04 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-09-05 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2027-09-06 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2027-09-07 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2027-09-08 slavic w3 feast7 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-09-09 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2027-09-10 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-11 slavic w6 feast4 fast0 exc0 rows=0,0,0 -> - +2027-09-12 slavic w0 feast0 fast0 exc1 rows=0,0,1 -> - +2027-09-13 slavic w1 feast3 fast0 exc1 rows=0,1 -> - +2027-09-14 slavic w2 feast8 fast1 exc8 rows=0,8 -> meat,fish,dairy,eggs +2027-09-15 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-16 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2027-09-17 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-18 slavic w6 feast0 fast0 exc0 rows=0,0,0 -> - +2027-09-19 slavic w0 feast3 fast0 exc0 rows=0,0,0 -> - +2027-09-20 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2027-09-21 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2027-09-22 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-23 slavic w4 feast3 fast0 exc1 rows=0,1 -> - +2027-09-24 slavic w5 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-09-25 slavic w6 feast4 fast0 exc2 rows=0,2 -> - +2027-09-26 slavic w0 feast5 fast0 exc2 rows=0,2 -> - +2027-09-27 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2027-09-28 slavic w2 feast4 fast0 exc1 rows=0,1 -> - +2027-09-29 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-30 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2027-10-01 slavic w5 feast6 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-10-02 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2027-10-03 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2027-10-04 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2027-10-05 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2027-10-06 slavic w3 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-10-07 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2027-10-08 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-09 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2027-10-10 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-10-11 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-10-12 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-10-13 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-14 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2027-10-15 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-16 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-10-17 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2027-10-18 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2027-10-19 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2027-10-20 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-21 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2027-10-22 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-23 slavic w6 feast3 fast0 exc0 rows=0,0,0 -> - +2027-10-24 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-10-25 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2027-10-26 slavic w2 feast4 fast0 exc2 rows=0,2 -> - +2027-10-27 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-28 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2027-10-29 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-30 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2027-10-31 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2027-11-01 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2027-11-02 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-11-03 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-04 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-11-05 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-06 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2027-11-07 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2027-11-08 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2027-11-09 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2027-11-10 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-11 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2027-11-12 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-13 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2027-11-14 slavic w0 feast4 fast0 exc1 rows=0,1 -> - +2027-11-15 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-16 slavic w2 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-11-17 slavic w3 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-18 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-11-19 slavic w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-20 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-21 slavic w0 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-11-22 slavic w1 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-23 slavic w2 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-11-24 slavic w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-25 slavic w4 feast0 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-11-26 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-27 slavic w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-28 slavic w0 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-29 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-30 slavic w2 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-12-01 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-02 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-12-03 slavic w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-04 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-12-05 slavic w0 feast4 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-12-06 slavic w1 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-12-07 slavic w2 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-12-08 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-09 slavic w4 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-12-10 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-11 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-12-12 slavic w0 feast2 fast5 exc2 rows=0,0,0 -> meat,dairy,eggs +2027-12-13 slavic w1 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-12-14 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-12-15 slavic w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-16 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-12-17 slavic w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-18 slavic w6 feast0 fast5 exc2 rows=0,0,0 -> meat,dairy,eggs +2027-12-19 slavic w0 feast0 fast5 exc2 rows=0,0,0 -> meat,dairy,eggs +2027-12-20 slavic w1 feast4 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-21 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-12-22 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-23 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-12-24 slavic w5 feast0 fast5 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2027-12-25 slavic w6 feast8 fast0 exc11 rows=0,11 -> - +2027-12-26 slavic w0 feast3 fast0 exc11 rows=0,0,11 -> - +2027-12-27 slavic w1 feast2 fast0 exc11 rows=0,11 -> - +2027-12-28 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2027-12-29 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2027-12-30 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2027-12-31 slavic w5 feast0 fast0 exc11 rows=0,0,11 -> - +2028-01-01 slavic w6 feast6 fast0 exc11 rows=0,0,11 -> - +2028-01-02 slavic w0 feast4 fast0 exc11 rows=0,0,11 -> - +2028-01-03 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2028-01-04 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2028-01-05 slavic w3 feast0 fast1 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2028-01-06 slavic w4 feast8 fast0 exc11 rows=0,11 -> - +2028-01-07 slavic w5 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-01-08 slavic w6 feast0 fast0 exc0 rows=0,0,0 -> - +2028-01-09 slavic w0 feast4 fast0 exc0 rows=0,0,0 -> - +2028-01-10 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2028-01-11 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2028-01-12 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-13 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-01-14 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-15 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2028-01-16 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2028-01-17 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2028-01-18 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2028-01-19 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-20 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2028-01-21 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-22 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-01-23 slavic w0 feast5 fast0 exc0 rows=0,0,0 -> - +2028-01-24 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2028-01-25 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2028-01-26 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-27 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2028-01-28 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-29 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2028-01-30 slavic w0 feast5 fast0 exc2 rows=0,2 -> - +2028-01-31 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2028-02-01 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2028-02-02 slavic w3 feast8 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-02-03 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2028-02-04 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-02-05 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2028-02-06 slavic w0 feast0 fast0 exc11 rows=0,11 -> - +2028-02-07 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2028-02-08 slavic w2 feast2 fast0 exc11 rows=0,11 -> - +2028-02-09 slavic w3 feast4 fast0 exc11 rows=0,11 -> - +2028-02-10 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2028-02-11 slavic w5 feast3 fast0 exc11 rows=0,11 -> - +2028-02-12 slavic w6 feast4 fast0 exc11 rows=0,11 -> - +2028-02-13 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-02-14 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2028-02-15 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-02-16 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-02-17 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2028-02-18 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-02-19 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-02-20 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-02-21 slavic w1 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-22 slavic w2 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-23 slavic w3 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-24 slavic w4 feast4 fast1 exc7 rows=1,7 -> meat +2028-02-25 slavic w5 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-26 slavic w6 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-27 slavic w0 feast5 fast1 exc7 rows=2,7 -> meat +2028-02-28 slavic w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-02-29 slavic w2 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-03-01 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-03-02 slavic w4 feast3 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-03-03 slavic w5 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-03-04 slavic w6 feast4 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-05 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-06 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-07 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-08 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-09 slavic w4 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-03-10 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-11 slavic w6 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-12 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-13 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-14 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-15 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-16 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-17 slavic w5 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-18 slavic w6 feast2 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-19 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-20 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-21 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-22 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-23 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-24 slavic w5 feast2 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-25 slavic w6 feast7 fast2 exc4 rows=3,4 -> meat,dairy,eggs +2028-03-26 slavic w0 feast3 fast2 exc3 rows=3,3 -> meat,fish,dairy,eggs +2028-03-27 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-28 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-29 slavic w3 feast1 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-30 slavic w4 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-31 slavic w5 feast4 fast2 exc3 rows=1,3 -> meat,fish,dairy,eggs +2028-04-01 slavic w6 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-04-02 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-04-03 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-04 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-05 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-06 slavic w4 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-07 slavic w5 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-04-08 slavic w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2028-04-09 slavic w0 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2028-04-10 slavic w1 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-04-11 slavic w2 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-04-12 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-04-13 slavic w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-04-14 slavic w5 feast0 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2028-04-15 slavic w6 feast3 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2028-04-16 slavic w0 feast8 fast0 exc11 rows=0,11 -> - +2028-04-17 slavic w1 feast3 fast0 exc11 rows=0,11 -> - +2028-04-18 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2028-04-19 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2028-04-20 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2028-04-21 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2028-04-22 slavic w6 feast0 fast0 exc11 rows=0,11 -> - +2028-04-23 slavic w0 feast5 fast0 exc1 rows=0,1 -> - +2028-04-24 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2028-04-25 slavic w2 feast4 fast0 exc1 rows=0,1 -> - +2028-04-26 slavic w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-04-27 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2028-04-28 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-04-29 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-04-30 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2028-05-01 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2028-05-02 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2028-05-03 slavic w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-04 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-05-05 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-06 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-05-07 slavic w0 feast5 fast0 exc2 rows=0,2 -> - +2028-05-08 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2028-05-09 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2028-05-10 slavic w3 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-05-11 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2028-05-12 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-13 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-05-14 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2028-05-15 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2028-05-16 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2028-05-17 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-18 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-05-19 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-20 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2028-05-21 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2028-05-22 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2028-05-23 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2028-05-24 slavic w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-05-25 slavic w4 feast8 fast0 exc0 rows=0,0 -> - +2028-05-26 slavic w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-27 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2028-05-28 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2028-05-29 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2028-05-30 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-05-31 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-06-01 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-06-02 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-06-03 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-06-04 slavic w0 feast8 fast0 exc0 rows=0,0 -> - +2028-06-05 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2028-06-06 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2028-06-07 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2028-06-08 slavic w4 feast2 fast0 exc11 rows=0,11 -> - +2028-06-09 slavic w5 feast3 fast0 exc11 rows=0,11 -> - +2028-06-10 slavic w6 feast4 fast0 exc11 rows=0,11 -> - +2028-06-11 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2028-06-12 slavic w1 feast2 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-13 slavic w2 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-06-14 slavic w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-15 slavic w4 feast4 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-06-16 slavic w5 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-17 slavic w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-18 slavic w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-19 slavic w1 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-20 slavic w2 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-06-21 slavic w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-22 slavic w4 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-06-23 slavic w5 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-24 slavic w6 feast6 fast3 exc2 rows=0,2 -> meat,dairy,eggs +2028-06-25 slavic w0 feast3 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-26 slavic w1 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-27 slavic w2 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-06-28 slavic w3 feast2 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-29 slavic w4 feast6 fast0 exc2 rows=0,2 -> - +2028-06-30 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-01 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2028-07-02 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2028-07-03 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2028-07-04 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-07-05 slavic w3 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-07-06 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-07-07 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-08 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2028-07-09 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-07-10 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2028-07-11 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2028-07-12 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-13 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2028-07-14 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-15 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2028-07-16 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2028-07-17 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2028-07-18 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-07-19 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-20 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2028-07-21 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-22 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2028-07-23 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-07-24 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2028-07-25 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2028-07-26 slavic w3 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-07-27 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2028-07-28 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-29 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-07-30 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-07-31 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2028-08-01 slavic w2 feast3 fast4 exc0 rows=0,1 -> meat,fish,dairy,eggs,wine,oil +2028-08-02 slavic w3 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-03 slavic w4 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-04 slavic w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-05 slavic w6 feast2 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-08-06 slavic w0 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2028-08-07 slavic w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-08 slavic w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-09 slavic w3 feast5 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2028-08-10 slavic w4 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-11 slavic w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-12 slavic w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-08-13 slavic w0 feast4 fast4 exc1 rows=0,4 -> meat,fish,dairy,eggs +2028-08-14 slavic w1 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-15 slavic w2 feast7 fast0 exc2 rows=0,2 -> - +2028-08-16 slavic w3 feast5 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-08-17 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-08-18 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-19 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-08-20 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-08-21 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2028-08-22 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-08-23 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-24 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2028-08-25 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-26 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2028-08-27 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-08-28 slavic w1 feast4 fast0 exc1 rows=0,1 -> - +2028-08-29 slavic w2 feast6 fast1 exc8 rows=0,8 -> meat,fish,dairy,eggs +2028-08-30 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-31 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2028-09-01 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-09-02 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-09-03 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-09-04 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2028-09-05 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2028-09-06 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-07 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2028-09-08 slavic w5 feast7 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-09-09 slavic w6 feast3 fast0 exc0 rows=0,0,0 -> - +2028-09-10 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2028-09-11 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2028-09-12 slavic w2 feast0 fast0 exc1 rows=0,1 -> - +2028-09-13 slavic w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-09-14 slavic w4 feast8 fast1 exc8 rows=0,8 -> meat,fish,dairy,eggs +2028-09-15 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-16 slavic w6 feast2 fast0 exc0 rows=0,0,0 -> - +2028-09-17 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2028-09-18 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2028-09-19 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2028-09-20 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-21 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2028-09-22 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-23 slavic w6 feast3 fast0 exc1 rows=0,1 -> - +2028-09-24 slavic w0 feast4 fast0 exc2 rows=0,2 -> - +2028-09-25 slavic w1 feast4 fast0 exc2 rows=0,2 -> - +2028-09-26 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2028-09-27 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-28 slavic w4 feast4 fast0 exc1 rows=0,1 -> - +2028-09-29 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-30 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2028-10-01 slavic w0 feast6 fast0 exc2 rows=0,2 -> - +2028-10-02 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2028-10-03 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2028-10-04 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-05 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2028-10-06 slavic w5 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-10-07 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2028-10-08 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-10-09 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2028-10-10 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-10-11 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-12 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-10-13 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-14 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2028-10-15 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2028-10-16 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2028-10-17 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-10-18 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-19 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2028-10-20 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-21 slavic w6 feast2 fast0 exc0 rows=0,0,0 -> - +2028-10-22 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2028-10-23 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2028-10-24 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-10-25 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-26 slavic w4 feast4 fast0 exc2 rows=0,2 -> - +2028-10-27 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-28 slavic w6 feast3 fast0 exc0 rows=0,0 -> - +2028-10-29 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2028-10-30 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2028-10-31 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-11-01 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-02 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-11-03 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-04 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-11-05 slavic w0 feast3 fast0 exc0 rows=0,0,0 -> - +2028-11-06 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2028-11-07 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2028-11-08 slavic w3 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-11-09 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2028-11-10 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-11 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2028-11-12 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2028-11-13 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2028-11-14 slavic w2 feast4 fast0 exc1 rows=0,1 -> - +2028-11-15 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-16 slavic w4 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2028-11-17 slavic w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-18 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-19 slavic w0 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-20 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-21 slavic w2 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2028-11-22 slavic w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-23 slavic w4 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-11-24 slavic w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-25 slavic w6 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2028-11-26 slavic w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-27 slavic w1 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-28 slavic w2 feast2 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-11-29 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-30 slavic w4 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2028-12-01 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-02 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-03 slavic w0 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-04 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-05 slavic w2 feast4 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-12-06 slavic w3 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2028-12-07 slavic w4 feast3 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-12-08 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-09 slavic w6 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-10 slavic w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-11 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-12 slavic w2 feast2 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-12-13 slavic w3 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2028-12-14 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-12-15 slavic w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-16 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-17 slavic w0 feast2 fast5 exc2 rows=0,0,0 -> meat,dairy,eggs +2028-12-18 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-19 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-12-20 slavic w3 feast4 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-21 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-12-22 slavic w5 feast0 fast5 exc0 rows=0,0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-23 slavic w6 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2028-12-24 slavic w0 feast0 fast5 exc1 rows=0,0,9 -> meat,fish,dairy,eggs +2028-12-25 slavic w1 feast8 fast0 exc11 rows=0,11 -> - +2028-12-26 slavic w2 feast3 fast0 exc11 rows=0,11 -> - +2028-12-27 slavic w3 feast2 fast0 exc11 rows=0,11 -> - +2028-12-28 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2028-12-29 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2028-12-30 slavic w6 feast0 fast0 exc11 rows=0,0,11 -> - +2028-12-31 slavic w0 feast0 fast0 exc11 rows=0,0,11 -> - +2029-01-01 slavic w1 feast6 fast0 exc11 rows=0,0,11 -> - +2029-01-02 slavic w2 feast4 fast0 exc11 rows=0,11 -> - +2029-01-03 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2029-01-04 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2029-01-05 slavic w5 feast0 fast1 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2029-01-06 slavic w6 feast8 fast0 exc11 rows=0,11 -> - +2029-01-07 slavic w0 feast3 fast0 exc2 rows=0,0,2 -> - +2029-01-08 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-01-09 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2029-01-10 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-11 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2029-01-12 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-13 slavic w6 feast0 fast0 exc0 rows=0,0,0 -> - +2029-01-14 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2029-01-15 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2029-01-16 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2029-01-17 slavic w3 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-01-18 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2029-01-19 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-20 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2029-01-21 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-01-22 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-01-23 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2029-01-24 slavic w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-25 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2029-01-26 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-27 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2029-01-28 slavic w0 feast2 fast0 exc11 rows=0,11 -> - +2029-01-29 slavic w1 feast2 fast0 exc11 rows=0,11 -> - +2029-01-30 slavic w2 feast5 fast0 exc11 rows=2,11 -> - +2029-01-31 slavic w3 feast3 fast0 exc11 rows=0,11 -> - +2029-02-01 slavic w4 feast2 fast0 exc11 rows=0,11 -> - +2029-02-02 slavic w5 feast8 fast0 exc11 rows=2,11 -> - +2029-02-03 slavic w6 feast2 fast0 exc11 rows=0,11 -> - +2029-02-04 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-02-05 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2029-02-06 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2029-02-07 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-02-08 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2029-02-09 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-02-10 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-02-11 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2029-02-12 slavic w1 feast4 fast1 exc7 rows=0,7 -> meat +2029-02-13 slavic w2 feast0 fast1 exc7 rows=0,7 -> meat +2029-02-14 slavic w3 feast4 fast1 exc7 rows=0,7 -> meat +2029-02-15 slavic w4 feast0 fast1 exc7 rows=0,7 -> meat +2029-02-16 slavic w5 feast0 fast1 exc7 rows=0,7 -> meat +2029-02-17 slavic w6 feast4 fast1 exc7 rows=0,7 -> meat +2029-02-18 slavic w0 feast0 fast1 exc7 rows=0,7 -> meat +2029-02-19 slavic w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-20 slavic w2 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-21 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-22 slavic w4 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-23 slavic w5 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-24 slavic w6 feast4 fast2 exc3 rows=1,3 -> meat,fish,dairy,eggs +2029-02-25 slavic w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-02-26 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-02-27 slavic w2 feast5 fast2 exc1 rows=0,2 -> meat,fish,dairy,eggs +2029-02-28 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-01 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-02 slavic w5 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-03 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-04 slavic w0 feast4 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-05 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-06 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-07 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-08 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-09 slavic w5 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-03-10 slavic w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-11 slavic w0 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-12 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-13 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-14 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-15 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-16 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-17 slavic w6 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-18 slavic w0 feast2 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-19 slavic w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-20 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-21 slavic w3 feast1 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-22 slavic w4 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-23 slavic w5 feast1 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-24 slavic w6 feast2 fast2 exc3 rows=3,3 -> meat,fish,dairy,eggs +2029-03-25 slavic w0 feast7 fast2 exc4 rows=3,4 -> meat,dairy,eggs +2029-03-26 slavic w1 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-27 slavic w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-28 slavic w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-29 slavic w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-30 slavic w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-31 slavic w6 feast4 fast2 exc6 rows=1,6 -> meat,fish,dairy,eggs +2029-04-01 slavic w0 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2029-04-02 slavic w1 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-04-03 slavic w2 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-04-04 slavic w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-04-05 slavic w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-04-06 slavic w5 feast4 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2029-04-07 slavic w6 feast4 fast2 exc5 rows=1,5 -> meat,fish,dairy,eggs,oil +2029-04-08 slavic w0 feast8 fast0 exc11 rows=0,11 -> - +2029-04-09 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2029-04-10 slavic w2 feast0 fast0 exc11 rows=0,11 -> - +2029-04-11 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2029-04-12 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2029-04-13 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2029-04-14 slavic w6 feast0 fast0 exc11 rows=0,11 -> - +2029-04-15 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-04-16 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-04-17 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2029-04-18 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-04-19 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2029-04-20 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-04-21 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-04-22 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-04-23 slavic w1 feast5 fast0 exc1 rows=0,1 -> - +2029-04-24 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2029-04-25 slavic w3 feast4 fast1 exc1 rows=1,1 -> meat,fish,dairy,eggs +2029-04-26 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2029-04-27 slavic w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-04-28 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-04-29 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-04-30 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2029-05-01 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2029-05-02 slavic w3 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-05-03 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2029-05-04 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-05 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-05-06 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-05-07 slavic w1 feast5 fast0 exc2 rows=0,2 -> - +2029-05-08 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2029-05-09 slavic w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-10 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2029-05-11 slavic w5 feast5 fast1 exc2 rows=1,2 -> meat,dairy,eggs +2029-05-12 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-05-13 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-05-14 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2029-05-15 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2029-05-16 slavic w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-05-17 slavic w4 feast8 fast0 exc0 rows=0,0 -> - +2029-05-18 slavic w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-19 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2029-05-20 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2029-05-21 slavic w1 feast4 fast0 exc0 rows=0,0 -> - +2029-05-22 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2029-05-23 slavic w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-24 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2029-05-25 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-26 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2029-05-27 slavic w0 feast8 fast0 exc0 rows=0,0 -> - +2029-05-28 slavic w1 feast2 fast0 exc11 rows=0,11 -> - +2029-05-29 slavic w2 feast2 fast0 exc11 rows=0,11 -> - +2029-05-30 slavic w3 feast0 fast0 exc11 rows=0,11 -> - +2029-05-31 slavic w4 feast0 fast0 exc11 rows=0,11 -> - +2029-06-01 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2029-06-02 slavic w6 feast0 fast0 exc11 rows=0,11 -> - +2029-06-03 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-06-04 slavic w1 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-05 slavic w2 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-06-06 slavic w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-07 slavic w4 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-06-08 slavic w5 feast2 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-09 slavic w6 feast3 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-10 slavic w0 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-11 slavic w1 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-12 slavic w2 feast2 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-06-13 slavic w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-14 slavic w4 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-06-15 slavic w5 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-16 slavic w6 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-17 slavic w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-18 slavic w1 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-19 slavic w2 feast4 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-06-20 slavic w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-21 slavic w4 feast0 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-06-22 slavic w5 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-23 slavic w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-24 slavic w0 feast6 fast3 exc2 rows=0,2 -> meat,dairy,eggs +2029-06-25 slavic w1 feast3 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-26 slavic w2 feast4 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-06-27 slavic w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-28 slavic w4 feast2 fast3 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-06-29 slavic w5 feast6 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-06-30 slavic w6 feast4 fast0 exc0 rows=0,0 -> - +2029-07-01 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2029-07-02 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2029-07-03 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2029-07-04 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-05 slavic w4 feast4 fast0 exc2 rows=0,2 -> - +2029-07-06 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-07 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-07-08 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2029-07-09 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-07-10 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2029-07-11 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-12 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2029-07-13 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-14 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2029-07-15 slavic w0 feast5 fast0 exc2 rows=0,0,2 -> - +2029-07-16 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-07-17 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2029-07-18 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-19 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2029-07-20 slavic w5 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-07-21 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-07-22 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2029-07-23 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-07-24 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2029-07-25 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-26 slavic w4 feast4 fast0 exc2 rows=0,2 -> - +2029-07-27 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-28 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-07-29 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-07-30 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-07-31 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2029-08-01 slavic w3 feast3 fast4 exc0 rows=0,1 -> meat,fish,dairy,eggs,wine,oil +2029-08-02 slavic w4 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-03 slavic w5 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-04 slavic w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-08-05 slavic w0 feast2 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-08-06 slavic w1 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2029-08-07 slavic w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-08 slavic w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-09 slavic w4 feast5 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2029-08-10 slavic w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-11 slavic w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-08-12 slavic w0 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-08-13 slavic w1 feast4 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2029-08-14 slavic w2 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-15 slavic w3 feast7 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-08-16 slavic w4 feast5 fast0 exc1 rows=0,1 -> - +2029-08-17 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-18 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-08-19 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-08-20 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-08-21 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2029-08-22 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-23 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2029-08-24 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-25 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2029-08-26 slavic w0 feast4 fast0 exc0 rows=0,0 -> - +2029-08-27 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-08-28 slavic w2 feast4 fast0 exc1 rows=0,1 -> - +2029-08-29 slavic w3 feast6 fast1 exc8 rows=0,8 -> meat,fish,dairy,eggs +2029-08-30 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2029-08-31 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-01 slavic w6 feast4 fast0 exc1 rows=0,1 -> - +2029-09-02 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-09-03 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-09-04 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2029-09-05 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-06 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2029-09-07 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-08 slavic w6 feast7 fast0 exc2 rows=0,2 -> - +2029-09-09 slavic w0 feast3 fast0 exc0 rows=0,0,0 -> - +2029-09-10 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-09-11 slavic w2 feast4 fast0 exc0 rows=0,0 -> - +2029-09-12 slavic w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-09-13 slavic w4 feast3 fast0 exc1 rows=0,0,1 -> - +2029-09-14 slavic w5 feast8 fast1 exc8 rows=0,8 -> meat,fish,dairy,eggs +2029-09-15 slavic w6 feast2 fast0 exc0 rows=0,0,0 -> - +2029-09-16 slavic w0 feast2 fast0 exc0 rows=0,0,0 -> - +2029-09-17 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-09-18 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2029-09-19 slavic w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-20 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2029-09-21 slavic w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-22 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2029-09-23 slavic w0 feast3 fast0 exc1 rows=0,1 -> - +2029-09-24 slavic w1 feast4 fast0 exc2 rows=0,2 -> - +2029-09-25 slavic w2 feast4 fast0 exc2 rows=0,2 -> - +2029-09-26 slavic w3 feast5 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-09-27 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2029-09-28 slavic w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-09-29 slavic w6 feast2 fast0 exc0 rows=0,0 -> - +2029-09-30 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2029-10-01 slavic w1 feast6 fast0 exc2 rows=0,2 -> - +2029-10-02 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2029-10-03 slavic w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-04 slavic w4 feast3 fast0 exc0 rows=0,0 -> - +2029-10-05 slavic w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-06 slavic w6 feast5 fast0 exc2 rows=0,2 -> - +2029-10-07 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2029-10-08 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-10-09 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2029-10-10 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-11 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2029-10-12 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-13 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-10-14 slavic w0 feast2 fast0 exc0 rows=0,0,0 -> - +2029-10-15 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-10-16 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2029-10-17 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-18 slavic w4 feast4 fast0 exc0 rows=0,0 -> - +2029-10-19 slavic w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-20 slavic w6 feast2 fast0 exc0 rows=0,0,0 -> - +2029-10-21 slavic w0 feast2 fast0 exc0 rows=0,0 -> - +2029-10-22 slavic w1 feast0 fast0 exc0 rows=0,0 -> - +2029-10-23 slavic w2 feast3 fast0 exc0 rows=0,0 -> - +2029-10-24 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-25 slavic w4 feast0 fast0 exc0 rows=0,0 -> - +2029-10-26 slavic w5 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-10-27 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-10-28 slavic w0 feast3 fast0 exc0 rows=0,0 -> - +2029-10-29 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2029-10-30 slavic w2 feast0 fast0 exc0 rows=0,0 -> - +2029-10-31 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-01 slavic w4 feast2 fast0 exc0 rows=0,0 -> - +2029-11-02 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-03 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-11-04 slavic w0 feast0 fast0 exc0 rows=0,0,0 -> - +2029-11-05 slavic w1 feast3 fast0 exc0 rows=0,0 -> - +2029-11-06 slavic w2 feast2 fast0 exc0 rows=0,0 -> - +2029-11-07 slavic w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-08 slavic w4 feast5 fast0 exc2 rows=0,2 -> - +2029-11-09 slavic w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-10 slavic w6 feast0 fast0 exc0 rows=0,0 -> - +2029-11-11 slavic w0 feast0 fast0 exc0 rows=0,0 -> - +2029-11-12 slavic w1 feast2 fast0 exc0 rows=0,0 -> - +2029-11-13 slavic w2 feast5 fast0 exc2 rows=0,2 -> - +2029-11-14 slavic w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-11-15 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-11-16 slavic w5 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2029-11-17 slavic w6 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-18 slavic w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-19 slavic w1 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-20 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-11-21 slavic w3 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2029-11-22 slavic w4 feast2 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-11-23 slavic w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-24 slavic w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-25 slavic w0 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2029-11-26 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-27 slavic w2 feast2 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-11-28 slavic w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-29 slavic w4 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-11-30 slavic w5 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2029-12-01 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-02 slavic w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-03 slavic w1 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-04 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-12-05 slavic w3 feast4 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-06 slavic w4 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2029-12-07 slavic w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-08 slavic w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-09 slavic w0 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-10 slavic w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-11 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-12-12 slavic w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-13 slavic w4 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2029-12-14 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-15 slavic w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-16 slavic w0 feast0 fast5 exc2 rows=0,0,0 -> meat,dairy,eggs +2029-12-17 slavic w1 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-18 slavic w2 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-12-19 slavic w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-20 slavic w4 feast4 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-12-21 slavic w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-22 slavic w6 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2029-12-23 slavic w0 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2029-12-24 slavic w1 feast0 fast5 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2029-12-25 slavic w2 feast8 fast0 exc11 rows=0,11 -> - +2029-12-26 slavic w3 feast3 fast0 exc11 rows=0,11 -> - +2029-12-27 slavic w4 feast2 fast0 exc11 rows=0,11 -> - +2029-12-28 slavic w5 feast0 fast0 exc11 rows=0,11 -> - +2029-12-29 slavic w6 feast0 fast0 exc11 rows=0,0,11 -> - +2029-12-30 slavic w0 feast0 fast0 exc11 rows=0,0,11 -> - +2029-12-31 slavic w1 feast0 fast0 exc11 rows=0,11 -> - +2025-01-01 greek w3 feast6 fast0 exc11 rows=0,11 -> - +2025-01-02 greek w4 feast4 fast0 exc11 rows=0,11 -> - +2025-01-03 greek w5 feast0 fast0 exc11 rows=0,0,11 -> - +2025-01-04 greek w6 feast0 fast0 exc11 rows=0,0,11 -> - +2025-01-05 greek w0 feast0 fast1 exc1 rows=0,0,9 -> meat,fish,dairy,eggs +2025-01-06 greek w1 feast8 fast0 exc11 rows=0,11 -> - +2025-01-07 greek w2 feast3 fast0 exc2 rows=0,2 -> - +2025-01-08 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-09 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2025-01-10 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-11 greek w6 feast4 fast0 exc1 rows=0,0,1 -> - +2025-01-12 greek w0 feast3 fast0 exc0 rows=0,0,0 -> - +2025-01-13 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-01-14 greek w2 feast4 fast0 exc1 rows=0,1 -> - +2025-01-15 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-16 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2025-01-17 greek w5 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2025-01-18 greek w6 feast2 fast0 exc1 rows=0,1 -> - +2025-01-19 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2025-01-20 greek w1 feast5 fast0 exc2 rows=0,2 -> - +2025-01-21 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-01-22 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-01-23 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-01-24 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-25 greek w6 feast4 fast0 exc1 rows=0,1 -> - +2025-01-26 greek w0 feast5 fast0 exc0 rows=0,0,0 -> - +2025-01-27 greek w1 feast4 fast0 exc1 rows=0,1 -> - +2025-01-28 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2025-01-29 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-01-30 greek w4 feast5 fast0 exc2 rows=0,2 -> - +2025-01-31 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-01 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2025-02-02 greek w0 feast8 fast0 exc2 rows=0,2 -> - +2025-02-03 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2025-02-04 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-02-05 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-06 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-02-07 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-08 greek w6 feast2 fast0 exc1 rows=0,1 -> - +2025-02-09 greek w0 feast4 fast0 exc11 rows=0,11 -> - +2025-02-10 greek w1 feast0 fast0 exc11 rows=1,11 -> - +2025-02-11 greek w2 feast3 fast0 exc11 rows=1,11 -> - +2025-02-12 greek w3 feast4 fast0 exc11 rows=0,11 -> - +2025-02-13 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2025-02-14 greek w5 feast4 fast0 exc11 rows=0,11 -> - +2025-02-15 greek w6 feast0 fast0 exc11 rows=0,11 -> - +2025-02-16 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2025-02-17 greek w1 feast4 fast0 exc1 rows=0,1 -> - +2025-02-18 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-02-19 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-20 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-02-21 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-02-22 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-02-23 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2025-02-24 greek w1 feast4 fast1 exc7 rows=1,7 -> meat +2025-02-25 greek w2 feast0 fast1 exc7 rows=0,7 -> meat +2025-02-26 greek w3 feast0 fast1 exc7 rows=0,7 -> meat +2025-02-27 greek w4 feast0 fast1 exc7 rows=7 -> meat +2025-02-28 greek w5 feast0 fast1 exc7 rows=0,7 -> meat +2025-03-01 greek w6 feast0 fast1 exc7 rows=0,7 -> meat +2025-03-02 greek w0 feast3 fast1 exc7 rows=0,7 -> meat +2025-03-03 greek w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-04 greek w2 feast4 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-05 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-06 greek w4 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-07 greek w5 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-03-08 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-09 greek w0 feast4 fast2 exc3 rows=1,3 -> meat,fish,dairy,eggs +2025-03-10 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-11 greek w2 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-12 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-13 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-14 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-15 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-16 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-17 greek w1 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-18 greek w2 feast2 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-19 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-20 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-21 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-22 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-23 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-24 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-25 greek w2 feast7 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2025-03-26 greek w3 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-27 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-28 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-03-29 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-30 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-03-31 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-01 greek w2 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-02 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-03 greek w4 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-04 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-05 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-06 greek w0 feast4 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-07 greek w1 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-08 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-09 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-10 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-11 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-04-12 greek w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2025-04-13 greek w0 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2025-04-14 greek w1 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-04-15 greek w2 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-04-16 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2025-04-17 greek w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2025-04-18 greek w5 feast0 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2025-04-19 greek w6 feast3 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2025-04-20 greek w0 feast8 fast0 exc11 rows=0,11 -> - +2025-04-21 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2025-04-22 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2025-04-23 greek w3 feast5 fast0 exc11 rows=0,11 -> - +2025-04-24 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2025-04-25 greek w5 feast4 fast0 exc11 rows=1,11 -> - +2025-04-26 greek w6 feast3 fast0 exc11 rows=0,11 -> - +2025-04-27 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2025-04-28 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-04-29 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-04-30 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-01 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2025-05-02 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-03 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-05-04 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2025-05-05 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-05-06 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-05-07 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-08 greek w4 feast5 fast0 exc2 rows=0,2 -> - +2025-05-09 greek w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-10 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2025-05-11 greek w0 feast0 fast0 exc1 rows=0,1 -> - +2025-05-12 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-05-13 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-05-14 greek w3 feast2 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-05-15 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2025-05-16 greek w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-17 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-05-18 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2025-05-19 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2025-05-20 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2025-05-21 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-22 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-05-23 greek w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-24 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2025-05-25 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2025-05-26 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2025-05-27 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2025-05-28 greek w3 feast2 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-05-29 greek w4 feast8 fast0 exc0 rows=0,0 -> - +2025-05-30 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-05-31 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-06-01 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2025-06-02 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-06-03 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-06-04 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-06-05 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-06-06 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-06-07 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-06-08 greek w0 feast8 fast0 exc1 rows=0,1 -> - +2025-06-09 greek w1 feast3 fast0 exc11 rows=0,11 -> - +2025-06-10 greek w2 feast4 fast0 exc11 rows=0,11 -> - +2025-06-11 greek w3 feast4 fast0 exc11 rows=1,11 -> - +2025-06-12 greek w4 feast2 fast0 exc11 rows=0,11 -> - +2025-06-13 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2025-06-14 greek w6 feast0 fast0 exc11 rows=0,11 -> - +2025-06-15 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2025-06-16 greek w1 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-17 greek w2 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-18 greek w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-19 greek w4 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-20 greek w5 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-21 greek w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-22 greek w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-23 greek w1 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-24 greek w2 feast6 fast3 exc2 rows=0,2 -> meat,dairy,eggs +2025-06-25 greek w3 feast3 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-26 greek w4 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-27 greek w5 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-06-28 greek w6 feast2 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2025-06-29 greek w0 feast6 fast0 exc2 rows=0,2 -> - +2025-06-30 greek w1 feast4 fast0 exc1 rows=0,1 -> - +2025-07-01 greek w2 feast2 fast0 exc1 rows=0,1 -> - +2025-07-02 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-07-03 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2025-07-04 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-05 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-07-06 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2025-07-07 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-07-08 greek w2 feast2 fast0 exc1 rows=0,1 -> - +2025-07-09 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-10 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-07-11 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-12 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-07-13 greek w0 feast2 fast0 exc0 rows=0,0,0 -> - +2025-07-14 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2025-07-15 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-07-16 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-17 greek w4 feast4 fast0 exc1 rows=0,1 -> - +2025-07-18 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-19 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-07-20 greek w0 feast5 fast0 exc2 rows=0,2 -> - +2025-07-21 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-07-22 greek w2 feast2 fast0 exc1 rows=0,1 -> - +2025-07-23 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-24 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-07-25 greek w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-07-26 greek w6 feast0 fast0 exc1 rows=0,1 -> - +2025-07-27 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2025-07-28 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-07-29 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-07-30 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-07-31 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2025-08-01 greek w5 feast3 fast4 exc0 rows=0,1 -> meat,fish,dairy,eggs,wine,oil +2025-08-02 greek w6 feast3 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-08-03 greek w0 feast3 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-08-04 greek w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-05 greek w2 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-06 greek w3 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2025-08-07 greek w4 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-08 greek w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-09 greek w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-08-10 greek w0 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-08-11 greek w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-12 greek w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-13 greek w3 feast4 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2025-08-14 greek w4 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-15 greek w5 feast7 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-08-16 greek w6 feast5 fast0 exc0 rows=0,0 -> - +2025-08-17 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2025-08-18 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-08-19 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-08-20 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-21 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2025-08-22 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-23 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-08-24 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2025-08-25 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2025-08-26 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2025-08-27 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-28 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-08-29 greek w5 feast6 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-08-30 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2025-08-31 greek w0 feast3 fast0 exc1 rows=0,1 -> - +2025-09-01 greek w1 feast4 fast0 exc1 rows=0,1 -> - +2025-09-02 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-09-03 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-04 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-09-05 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-06 greek w6 feast2 fast0 exc1 rows=0,1 -> - +2025-09-07 greek w0 feast3 fast0 exc0 rows=0,0,0 -> - +2025-09-08 greek w1 feast7 fast0 exc2 rows=0,2 -> - +2025-09-09 greek w2 feast3 fast0 exc1 rows=0,1 -> - +2025-09-10 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-11 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2025-09-12 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-13 greek w6 feast3 fast0 exc1 rows=0,0,1 -> - +2025-09-14 greek w0 feast8 fast1 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-09-15 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2025-09-16 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2025-09-17 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-18 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-09-19 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-20 greek w6 feast3 fast0 exc1 rows=0,0,1 -> - +2025-09-21 greek w0 feast4 fast0 exc0 rows=0,0,0 -> - +2025-09-22 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2025-09-23 greek w2 feast3 fast0 exc1 rows=0,1 -> - +2025-09-24 greek w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-09-25 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-09-26 greek w5 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2025-09-27 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2025-09-28 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2025-09-29 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2025-09-30 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2025-10-01 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-10-02 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2025-10-03 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-04 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2025-10-05 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2025-10-06 greek w1 feast5 fast0 exc2 rows=0,2 -> - +2025-10-07 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2025-10-08 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-09 greek w4 feast5 fast0 exc0 rows=0,0 -> - +2025-10-10 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-11 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2025-10-12 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2025-10-13 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-10-14 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2025-10-15 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-16 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-10-17 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-18 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2025-10-19 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2025-10-20 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2025-10-21 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2025-10-22 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-23 greek w4 feast3 fast0 exc1 rows=0,1 -> - +2025-10-24 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-25 greek w6 feast0 fast0 exc0 rows=0,0,0 -> - +2025-10-26 greek w0 feast4 fast0 exc2 rows=0,2 -> - +2025-10-27 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-10-28 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2025-10-29 greek w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-10-30 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2025-10-31 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-01 greek w6 feast5 fast0 exc2 rows=0,1,2 -> - +2025-11-02 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2025-11-03 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-11-04 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-11-05 greek w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-06 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2025-11-07 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-08 greek w6 feast5 fast0 exc2 rows=0,2 -> - +2025-11-09 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2025-11-10 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2025-11-11 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2025-11-12 greek w3 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-11-13 greek w4 feast5 fast0 exc2 rows=0,2 -> - +2025-11-14 greek w5 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2025-11-15 greek w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-16 greek w0 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-11-17 greek w1 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-18 greek w2 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-19 greek w3 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-20 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-21 greek w5 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-11-22 greek w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-23 greek w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-24 greek w1 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-25 greek w2 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2025-11-26 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-27 greek w4 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-28 greek w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-11-29 greek w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-11-30 greek w0 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-12-01 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-12-02 greek w2 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-12-03 greek w3 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-04 greek w4 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2025-12-05 greek w5 feast4 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-12-06 greek w6 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2025-12-07 greek w0 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-12-08 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-12-09 greek w2 feast3 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2025-12-10 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-11 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2025-12-12 greek w5 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-12-13 greek w6 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2025-12-14 greek w0 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2025-12-15 greek w1 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-12-16 greek w2 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-17 greek w3 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2025-12-18 greek w4 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-19 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-20 greek w6 feast0 fast5 exc1 rows=0,0,1 -> meat,fish,dairy,eggs +2025-12-21 greek w0 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2025-12-22 greek w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-23 greek w2 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2025-12-24 greek w3 feast0 fast5 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2025-12-25 greek w4 feast8 fast0 exc11 rows=0,11 -> - +2025-12-26 greek w5 feast3 fast0 exc11 rows=0,11 -> - +2025-12-27 greek w6 feast2 fast0 exc11 rows=0,0,11 -> - +2025-12-28 greek w0 feast0 fast0 exc11 rows=0,0,11 -> - +2025-12-29 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2025-12-30 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2025-12-31 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2026-01-01 greek w4 feast6 fast0 exc11 rows=0,11 -> - +2026-01-02 greek w5 feast4 fast0 exc11 rows=0,11 -> - +2026-01-03 greek w6 feast0 fast0 exc11 rows=0,0,11 -> - +2026-01-04 greek w0 feast0 fast0 exc11 rows=0,0,11 -> - +2026-01-05 greek w1 feast0 fast1 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2026-01-06 greek w2 feast8 fast0 exc11 rows=0,11 -> - +2026-01-07 greek w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-01-08 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-01-09 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-10 greek w6 feast0 fast0 exc0 rows=0,0,0 -> - +2026-01-11 greek w0 feast4 fast0 exc1 rows=0,0,1 -> - +2026-01-12 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2026-01-13 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-01-14 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-01-15 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2026-01-16 greek w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-01-17 greek w6 feast5 fast0 exc2 rows=0,2 -> - +2026-01-18 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2026-01-19 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2026-01-20 greek w2 feast5 fast0 exc2 rows=0,2 -> - +2026-01-21 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-22 greek w4 feast0 fast0 exc1 rows=0,1 -> - +2026-01-23 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-24 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2026-01-25 greek w0 feast4 fast0 exc1 rows=0,1 -> - +2026-01-26 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-01-27 greek w2 feast4 fast0 exc1 rows=0,1 -> - +2026-01-28 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-01-29 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2026-01-30 greek w5 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2026-01-31 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2026-02-01 greek w0 feast2 fast0 exc11 rows=0,11 -> - +2026-02-02 greek w1 feast8 fast0 exc11 rows=2,11 -> - +2026-02-03 greek w2 feast2 fast0 exc11 rows=0,11 -> - +2026-02-04 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2026-02-05 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2026-02-06 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2026-02-07 greek w6 feast0 fast0 exc11 rows=0,11 -> - +2026-02-08 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2026-02-09 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2026-02-10 greek w2 feast0 fast0 exc1 rows=0,1 -> - +2026-02-11 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-02-12 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2026-02-13 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-02-14 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2026-02-15 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-02-16 greek w1 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-17 greek w2 feast4 fast1 exc7 rows=1,7 -> meat +2026-02-18 greek w3 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-19 greek w4 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-20 greek w5 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-21 greek w6 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-22 greek w0 feast0 fast1 exc7 rows=0,7 -> meat +2026-02-23 greek w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-24 greek w2 feast4 fast2 exc10 rows=1,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-25 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-26 greek w4 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-02-27 greek w5 feast1 fast2 exc10 rows=10 -> meat,fish,dairy,eggs,wine,oil +2026-02-28 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-01 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-02 greek w1 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-03 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-04 greek w3 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-05 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-06 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-07 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-08 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-09 greek w1 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-03-10 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-11 greek w3 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-12 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-13 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-14 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-15 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-16 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-17 greek w2 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-18 greek w3 feast2 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-19 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-20 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-21 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-22 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-23 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-24 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-25 greek w3 feast7 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2026-03-26 greek w4 feast3 fast2 exc3 rows=3,3 -> meat,fish,dairy,eggs +2026-03-27 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-28 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-29 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-03-30 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-03-31 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-04-01 greek w3 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-04-02 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-04-03 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-04-04 greek w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2026-04-05 greek w0 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2026-04-06 greek w1 feast4 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-04-07 greek w2 feast4 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-04-08 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2026-04-09 greek w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2026-04-10 greek w5 feast0 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2026-04-11 greek w6 feast3 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2026-04-12 greek w0 feast8 fast0 exc11 rows=0,11 -> - +2026-04-13 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2026-04-14 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2026-04-15 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2026-04-16 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2026-04-17 greek w5 feast3 fast0 exc11 rows=0,11 -> - +2026-04-18 greek w6 feast0 fast0 exc11 rows=0,11 -> - +2026-04-19 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-04-20 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-04-21 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-04-22 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-04-23 greek w4 feast5 fast0 exc0 rows=0,0 -> - +2026-04-24 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-04-25 greek w6 feast4 fast0 exc1 rows=0,1 -> - +2026-04-26 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2026-04-27 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2026-04-28 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-04-29 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-04-30 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2026-05-01 greek w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-02 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2026-05-03 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-05-04 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-05-05 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-05-06 greek w3 feast0 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-05-07 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-05-08 greek w5 feast5 fast1 exc1 rows=1,2 -> meat,fish,dairy,eggs +2026-05-09 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2026-05-10 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2026-05-11 greek w1 feast0 fast0 exc1 rows=0,1 -> - +2026-05-12 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-05-13 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-14 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2026-05-15 greek w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-16 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2026-05-17 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-05-18 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-05-19 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2026-05-20 greek w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2026-05-21 greek w4 feast8 fast0 exc0 rows=0,0 -> - +2026-05-22 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-23 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2026-05-24 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2026-05-25 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2026-05-26 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2026-05-27 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-28 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2026-05-29 greek w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-05-30 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2026-05-31 greek w0 feast8 fast0 exc0 rows=0,0 -> - +2026-06-01 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2026-06-02 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2026-06-03 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2026-06-04 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2026-06-05 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2026-06-06 greek w6 feast0 fast0 exc11 rows=0,11 -> - +2026-06-07 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-06-08 greek w1 feast2 fast3 exc2 rows=0,1 -> meat,dairy,eggs +2026-06-09 greek w2 feast3 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-10 greek w3 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-11 greek w4 feast4 fast3 exc2 rows=0,1 -> meat,dairy,eggs +2026-06-12 greek w5 feast2 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-13 greek w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-14 greek w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-15 greek w1 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-16 greek w2 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-17 greek w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-18 greek w4 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-19 greek w5 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-20 greek w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-21 greek w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-22 greek w1 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-23 greek w2 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-24 greek w3 feast6 fast3 exc2 rows=0,2 -> meat,dairy,eggs +2026-06-25 greek w4 feast3 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-26 greek w5 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-06-27 greek w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-28 greek w0 feast2 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2026-06-29 greek w1 feast6 fast0 exc2 rows=0,2 -> - +2026-06-30 greek w2 feast4 fast0 exc1 rows=0,1 -> - +2026-07-01 greek w3 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-07-02 greek w4 feast3 fast0 exc1 rows=0,1 -> - +2026-07-03 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-04 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2026-07-05 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-07-06 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-07-07 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-07-08 greek w3 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-07-09 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-07-10 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-11 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2026-07-12 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-07-13 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2026-07-14 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2026-07-15 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-16 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-07-17 greek w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-07-18 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2026-07-19 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2026-07-20 greek w1 feast5 fast0 exc2 rows=0,2 -> - +2026-07-21 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-07-22 greek w3 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-07-23 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-07-24 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-25 greek w6 feast3 fast0 exc1 rows=0,1 -> - +2026-07-26 greek w0 feast0 fast0 exc1 rows=0,1 -> - +2026-07-27 greek w1 feast2 fast0 exc1 rows=0,1 -> - +2026-07-28 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-07-29 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-07-30 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-07-31 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-01 greek w6 feast3 fast4 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-08-02 greek w0 feast3 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-08-03 greek w1 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-04 greek w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-05 greek w3 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-06 greek w4 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2026-08-07 greek w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-08 greek w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-08-09 greek w0 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-08-10 greek w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-11 greek w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-12 greek w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-13 greek w4 feast4 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2026-08-14 greek w5 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-15 greek w6 feast7 fast0 exc2 rows=0,2 -> - +2026-08-16 greek w0 feast5 fast0 exc0 rows=0,0 -> - +2026-08-17 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-08-18 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-08-19 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-20 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-08-21 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-22 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2026-08-23 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-08-24 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2026-08-25 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2026-08-26 greek w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-27 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-08-28 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-08-29 greek w6 feast6 fast1 exc1 rows=0,0 -> meat,fish,dairy,eggs +2026-08-30 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2026-08-31 greek w1 feast3 fast0 exc1 rows=0,1 -> - +2026-09-01 greek w2 feast4 fast0 exc1 rows=0,1 -> - +2026-09-02 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-03 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-09-04 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-05 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2026-09-06 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2026-09-07 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2026-09-08 greek w2 feast7 fast0 exc2 rows=0,2 -> - +2026-09-09 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-09-10 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-09-11 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-12 greek w6 feast0 fast0 exc0 rows=0,0,0 -> - +2026-09-13 greek w0 feast3 fast0 exc1 rows=0,0,1 -> - +2026-09-14 greek w1 feast8 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-15 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2026-09-16 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-17 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-09-18 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-19 greek w6 feast3 fast0 exc0 rows=0,0,0 -> - +2026-09-20 greek w0 feast3 fast0 exc1 rows=0,0,1 -> - +2026-09-21 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2026-09-22 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2026-09-23 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-09-24 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2026-09-25 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-09-26 greek w6 feast5 fast0 exc2 rows=0,2 -> - +2026-09-27 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2026-09-28 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2026-09-29 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2026-09-30 greek w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-01 greek w4 feast0 fast0 exc1 rows=0,1 -> - +2026-10-02 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-03 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2026-10-04 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2026-10-05 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2026-10-06 greek w2 feast5 fast0 exc2 rows=0,2 -> - +2026-10-07 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-08 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-10-09 greek w5 feast5 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-10 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2026-10-11 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2026-10-12 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-10-13 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-10-14 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-15 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-10-16 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-17 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2026-10-18 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2026-10-19 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2026-10-20 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2026-10-21 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-22 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2026-10-23 greek w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-10-24 greek w6 feast0 fast0 exc0 rows=0,0,0 -> - +2026-10-25 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2026-10-26 greek w1 feast4 fast0 exc2 rows=0,2 -> - +2026-10-27 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-10-28 greek w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-29 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2026-10-30 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-10-31 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2026-11-01 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2026-11-02 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-11-03 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-11-04 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-05 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2026-11-06 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-07 greek w6 feast5 fast0 exc2 rows=0,0,2 -> - +2026-11-08 greek w0 feast5 fast0 exc2 rows=0,0,2 -> - +2026-11-09 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2026-11-10 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2026-11-11 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-12 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2026-11-13 greek w5 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2026-11-14 greek w6 feast4 fast0 exc2 rows=0,2 -> - +2026-11-15 greek w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-16 greek w1 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2026-11-17 greek w2 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-18 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-19 greek w4 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-20 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-21 greek w6 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2026-11-22 greek w0 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-23 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-24 greek w2 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-25 greek w3 feast0 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-11-26 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-27 greek w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-11-28 greek w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-29 greek w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-11-30 greek w1 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2026-12-01 greek w2 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-12-02 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-03 greek w4 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-12-04 greek w5 feast0 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-12-05 greek w6 feast4 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2026-12-06 greek w0 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2026-12-07 greek w1 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-12-08 greek w2 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-12-09 greek w3 feast3 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-12-10 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2026-12-11 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-12 greek w6 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-12-13 greek w0 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2026-12-14 greek w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-15 greek w2 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-12-16 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-17 greek w4 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2026-12-18 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-19 greek w6 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2026-12-20 greek w0 feast0 fast5 exc1 rows=0,0,1 -> meat,fish,dairy,eggs +2026-12-21 greek w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-22 greek w2 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-23 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2026-12-24 greek w4 feast0 fast5 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2026-12-25 greek w5 feast8 fast0 exc11 rows=0,11 -> - +2026-12-26 greek w6 feast3 fast0 exc11 rows=0,0,11 -> - +2026-12-27 greek w0 feast2 fast0 exc11 rows=0,0,11 -> - +2026-12-28 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2026-12-29 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2026-12-30 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2026-12-31 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2027-01-01 greek w5 feast6 fast0 exc11 rows=0,11 -> - +2027-01-02 greek w6 feast4 fast0 exc11 rows=0,0,11 -> - +2027-01-03 greek w0 feast0 fast0 exc11 rows=0,0,11 -> - +2027-01-04 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2027-01-05 greek w2 feast0 fast1 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2027-01-06 greek w3 feast8 fast0 exc11 rows=0,11 -> - +2027-01-07 greek w4 feast3 fast0 exc2 rows=0,2 -> - +2027-01-08 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-09 greek w6 feast4 fast0 exc0 rows=0,0,0 -> - +2027-01-10 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2027-01-11 greek w1 feast4 fast0 exc1 rows=0,1 -> - +2027-01-12 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2027-01-13 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-14 greek w4 feast4 fast0 exc1 rows=0,1 -> - +2027-01-15 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-16 greek w6 feast2 fast0 exc1 rows=0,1 -> - +2027-01-17 greek w0 feast5 fast0 exc2 rows=0,2 -> - +2027-01-18 greek w1 feast2 fast0 exc1 rows=0,1 -> - +2027-01-19 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2027-01-20 greek w3 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2027-01-21 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-01-22 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-01-23 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-01-24 greek w0 feast5 fast0 exc0 rows=0,0,0 -> - +2027-01-25 greek w1 feast4 fast0 exc1 rows=0,1 -> - +2027-01-26 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-01-27 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-01-28 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2027-01-29 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-01-30 greek w6 feast5 fast0 exc2 rows=0,2 -> - +2027-01-31 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2027-02-01 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2027-02-02 greek w2 feast8 fast0 exc2 rows=0,2 -> - +2027-02-03 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-04 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-02-05 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-06 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-02-07 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-02-08 greek w1 feast2 fast0 exc1 rows=0,1 -> - +2027-02-09 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2027-02-10 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-02-11 greek w4 feast3 fast0 exc1 rows=0,1 -> - +2027-02-12 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-13 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-02-14 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2027-02-15 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-02-16 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-02-17 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-02-18 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-02-19 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-02-20 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-02-21 greek w0 feast0 fast0 exc11 rows=0,11 -> - +2027-02-22 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2027-02-23 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2027-02-24 greek w3 feast4 fast0 exc11 rows=1,11 -> - +2027-02-25 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2027-02-26 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2027-02-27 greek w6 feast0 fast0 exc11 rows=11 -> - +2027-02-28 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-03-01 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-03-02 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2027-03-03 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-04 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2027-03-05 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-06 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-03-07 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-03-08 greek w1 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-09 greek w2 feast4 fast1 exc7 rows=1,7 -> meat +2027-03-10 greek w3 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-11 greek w4 feast3 fast1 exc7 rows=0,7 -> meat +2027-03-12 greek w5 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-13 greek w6 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-14 greek w0 feast0 fast1 exc7 rows=0,7 -> meat +2027-03-15 greek w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-16 greek w2 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-17 greek w3 feast3 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-18 greek w4 feast2 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-19 greek w5 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-03-20 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-21 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-22 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-23 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-24 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-25 greek w4 feast7 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2027-03-26 greek w5 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-27 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-28 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-03-29 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-30 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-03-31 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-01 greek w4 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-02 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-03 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-04 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-05 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-06 greek w2 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-07 greek w3 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-08 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-09 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-10 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-11 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-12 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-13 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-14 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-15 greek w4 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-16 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-17 greek w6 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-18 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-19 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-20 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-21 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-22 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-23 greek w5 feast5 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-04-24 greek w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2027-04-25 greek w0 feast8 fast2 exc4 rows=1,4 -> meat,dairy,eggs +2027-04-26 greek w1 feast3 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-04-27 greek w2 feast2 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-04-28 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2027-04-29 greek w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2027-04-30 greek w5 feast4 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2027-05-01 greek w6 feast3 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2027-05-02 greek w0 feast8 fast0 exc11 rows=0,11 -> - +2027-05-03 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2027-05-04 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2027-05-05 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2027-05-06 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2027-05-07 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2027-05-08 greek w6 feast5 fast0 exc11 rows=2,11 -> - +2027-05-09 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2027-05-10 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2027-05-11 greek w2 feast0 fast0 exc1 rows=0,1 -> - +2027-05-12 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-13 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-05-14 greek w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-15 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2027-05-16 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2027-05-17 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-05-18 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-05-19 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-20 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2027-05-21 greek w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-22 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-05-23 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2027-05-24 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2027-05-25 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2027-05-26 greek w3 feast2 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-05-27 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2027-05-28 greek w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-05-29 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2027-05-30 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-05-31 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-06-01 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-06-02 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-03 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-06-04 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-05 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-06-06 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-06-07 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-06-08 greek w2 feast2 fast0 exc1 rows=0,1 -> - +2027-06-09 greek w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-06-10 greek w4 feast8 fast0 exc0 rows=0,0 -> - +2027-06-11 greek w5 feast4 fast1 exc1 rows=1,1 -> meat,fish,dairy,eggs +2027-06-12 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2027-06-13 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-06-14 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-06-15 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2027-06-16 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-17 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-06-18 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-06-19 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2027-06-20 greek w0 feast8 fast0 exc0 rows=0,0 -> - +2027-06-21 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2027-06-22 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2027-06-23 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2027-06-24 greek w4 feast6 fast0 exc11 rows=2,11 -> - +2027-06-25 greek w5 feast3 fast0 exc11 rows=0,11 -> - +2027-06-26 greek w6 feast4 fast0 exc11 rows=0,11 -> - +2027-06-27 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-06-28 greek w1 feast2 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2027-06-29 greek w2 feast6 fast0 exc2 rows=0,2 -> - +2027-06-30 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-07-01 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2027-07-02 greek w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-07-03 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2027-07-04 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-07-05 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-07-06 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-07-07 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-08 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2027-07-09 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-10 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-07-11 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2027-07-12 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-07-13 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2027-07-14 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-15 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-07-16 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-17 greek w6 feast4 fast0 exc1 rows=0,1 -> - +2027-07-18 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2027-07-19 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-07-20 greek w2 feast5 fast0 exc2 rows=0,2 -> - +2027-07-21 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-22 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2027-07-23 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-24 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-07-25 greek w0 feast3 fast0 exc1 rows=0,1 -> - +2027-07-26 greek w1 feast0 fast0 exc1 rows=0,1 -> - +2027-07-27 greek w2 feast2 fast0 exc1 rows=0,1 -> - +2027-07-28 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-29 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-07-30 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-07-31 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2027-08-01 greek w0 feast3 fast4 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-08-02 greek w1 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-03 greek w2 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-04 greek w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-05 greek w4 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-06 greek w5 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2027-08-07 greek w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-08-08 greek w0 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-08-09 greek w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-10 greek w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-11 greek w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-12 greek w4 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-13 greek w5 feast4 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2027-08-14 greek w6 feast2 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-08-15 greek w0 feast7 fast0 exc2 rows=0,2 -> - +2027-08-16 greek w1 feast5 fast0 exc0 rows=0,0 -> - +2027-08-17 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-08-18 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-19 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-08-20 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-21 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2027-08-22 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-08-23 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-08-24 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2027-08-25 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-26 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2027-08-27 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-08-28 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-08-29 greek w0 feast6 fast1 exc1 rows=0,0 -> meat,fish,dairy,eggs +2027-08-30 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2027-08-31 greek w2 feast3 fast0 exc1 rows=0,1 -> - +2027-09-01 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-09-02 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-09-03 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-04 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-09-05 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2027-09-06 greek w1 feast2 fast0 exc1 rows=0,1 -> - +2027-09-07 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2027-09-08 greek w3 feast7 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2027-09-09 greek w4 feast3 fast0 exc1 rows=0,1 -> - +2027-09-10 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-11 greek w6 feast4 fast0 exc0 rows=0,0,0 -> - +2027-09-12 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2027-09-13 greek w1 feast3 fast0 exc1 rows=0,1 -> - +2027-09-14 greek w2 feast8 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-15 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-16 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2027-09-17 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-18 greek w6 feast0 fast0 exc0 rows=0,0,0 -> - +2027-09-19 greek w0 feast3 fast0 exc0 rows=0,0,0 -> - +2027-09-20 greek w1 feast3 fast0 exc1 rows=0,1 -> - +2027-09-21 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2027-09-22 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-23 greek w4 feast3 fast0 exc1 rows=0,1 -> - +2027-09-24 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-25 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-09-26 greek w0 feast5 fast0 exc2 rows=0,2 -> - +2027-09-27 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2027-09-28 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2027-09-29 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-09-30 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2027-10-01 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-10-02 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2027-10-03 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2027-10-04 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2027-10-05 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2027-10-06 greek w3 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2027-10-07 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2027-10-08 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-09 greek w6 feast5 fast0 exc0 rows=0,0 -> - +2027-10-10 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-10-11 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-10-12 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-10-13 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-14 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2027-10-15 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-16 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-10-17 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2027-10-18 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2027-10-19 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2027-10-20 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-21 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2027-10-22 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-23 greek w6 feast3 fast0 exc1 rows=0,0,1 -> - +2027-10-24 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-10-25 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2027-10-26 greek w2 feast4 fast0 exc2 rows=0,2 -> - +2027-10-27 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-28 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2027-10-29 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-10-30 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2027-10-31 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2027-11-01 greek w1 feast2 fast0 exc1 rows=0,1 -> - +2027-11-02 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-11-03 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-04 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-11-05 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-06 greek w6 feast5 fast0 exc2 rows=0,0,2 -> - +2027-11-07 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2027-11-08 greek w1 feast5 fast0 exc2 rows=0,2 -> - +2027-11-09 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2027-11-10 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-11 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2027-11-12 greek w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-11-13 greek w6 feast5 fast0 exc2 rows=0,2 -> - +2027-11-14 greek w0 feast4 fast0 exc2 rows=0,2 -> - +2027-11-15 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-16 greek w2 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-11-17 greek w3 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-18 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-19 greek w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-20 greek w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-21 greek w0 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-11-22 greek w1 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-23 greek w2 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-24 greek w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-25 greek w4 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2027-11-26 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-11-27 greek w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-28 greek w0 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-29 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-11-30 greek w2 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-12-01 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-02 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-12-03 greek w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-04 greek w6 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2027-12-05 greek w0 feast4 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2027-12-06 greek w1 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2027-12-07 greek w2 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-12-08 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-09 greek w4 feast3 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2027-12-10 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-11 greek w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2027-12-12 greek w0 feast2 fast5 exc1 rows=0,0,1 -> meat,fish,dairy,eggs +2027-12-13 greek w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-14 greek w2 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-15 greek w3 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-12-16 greek w4 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-17 greek w5 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-12-18 greek w6 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2027-12-19 greek w0 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2027-12-20 greek w1 feast0 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2027-12-21 greek w2 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-22 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-23 greek w4 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2027-12-24 greek w5 feast0 fast5 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2027-12-25 greek w6 feast8 fast0 exc11 rows=0,11 -> - +2027-12-26 greek w0 feast3 fast0 exc11 rows=0,0,11 -> - +2027-12-27 greek w1 feast2 fast0 exc11 rows=0,11 -> - +2027-12-28 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2027-12-29 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2027-12-30 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2027-12-31 greek w5 feast0 fast0 exc11 rows=0,0,11 -> - +2028-01-01 greek w6 feast6 fast0 exc11 rows=0,0,11 -> - +2028-01-02 greek w0 feast4 fast0 exc11 rows=0,0,11 -> - +2028-01-03 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2028-01-04 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2028-01-05 greek w3 feast0 fast1 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2028-01-06 greek w4 feast8 fast0 exc11 rows=0,11 -> - +2028-01-07 greek w5 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-01-08 greek w6 feast0 fast0 exc0 rows=0,0,0 -> - +2028-01-09 greek w0 feast4 fast0 exc0 rows=0,0,0 -> - +2028-01-10 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-01-11 greek w2 feast4 fast0 exc1 rows=0,1 -> - +2028-01-12 greek w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-13 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-01-14 greek w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-01-15 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2028-01-16 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2028-01-17 greek w1 feast5 fast0 exc2 rows=0,2 -> - +2028-01-18 greek w2 feast2 fast0 exc1 rows=0,1 -> - +2028-01-19 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-20 greek w4 feast5 fast0 exc2 rows=0,2 -> - +2028-01-21 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-22 greek w6 feast0 fast0 exc1 rows=0,1 -> - +2028-01-23 greek w0 feast5 fast0 exc0 rows=0,0,0 -> - +2028-01-24 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2028-01-25 greek w2 feast4 fast0 exc1 rows=0,1 -> - +2028-01-26 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-27 greek w4 feast4 fast0 exc1 rows=0,1 -> - +2028-01-28 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-01-29 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2028-01-30 greek w0 feast5 fast0 exc2 rows=0,2 -> - +2028-01-31 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2028-02-01 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2028-02-02 greek w3 feast8 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-02-03 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2028-02-04 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-02-05 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-02-06 greek w0 feast0 fast0 exc11 rows=0,11 -> - +2028-02-07 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2028-02-08 greek w2 feast2 fast0 exc11 rows=1,11 -> - +2028-02-09 greek w3 feast4 fast0 exc11 rows=0,11 -> - +2028-02-10 greek w4 feast0 fast0 exc11 rows=1,11 -> - +2028-02-11 greek w5 feast3 fast0 exc11 rows=1,11 -> - +2028-02-12 greek w6 feast4 fast0 exc11 rows=0,11 -> - +2028-02-13 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-02-14 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2028-02-15 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-02-16 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-02-17 greek w4 feast4 fast0 exc1 rows=0,1 -> - +2028-02-18 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-02-19 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-02-20 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-02-21 greek w1 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-22 greek w2 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-23 greek w3 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-24 greek w4 feast4 fast1 exc7 rows=1,7 -> meat +2028-02-25 greek w5 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-26 greek w6 feast0 fast1 exc7 rows=0,7 -> meat +2028-02-27 greek w0 feast0 fast1 exc7 rows=7 -> meat +2028-02-28 greek w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-02-29 greek w2 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-03-01 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-03-02 greek w4 feast3 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-03-03 greek w5 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-03-04 greek w6 feast4 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-05 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-06 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-07 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-08 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-09 greek w4 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-03-10 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-11 greek w6 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-12 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-13 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-14 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-15 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-16 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-17 greek w5 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-18 greek w6 feast2 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-19 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-20 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-21 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-22 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-23 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-24 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-25 greek w6 feast7 fast2 exc4 rows=3,4 -> meat,dairy,eggs +2028-03-26 greek w0 feast3 fast2 exc3 rows=3,3 -> meat,fish,dairy,eggs +2028-03-27 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-28 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-29 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-03-30 greek w4 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-03-31 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-01 greek w6 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-04-02 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-04-03 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-04 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-05 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-06 greek w4 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-07 greek w5 feast4 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-04-08 greek w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2028-04-09 greek w0 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2028-04-10 greek w1 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-04-11 greek w2 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-04-12 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2028-04-13 greek w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2028-04-14 greek w5 feast0 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2028-04-15 greek w6 feast3 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2028-04-16 greek w0 feast8 fast0 exc11 rows=0,11 -> - +2028-04-17 greek w1 feast3 fast0 exc11 rows=0,11 -> - +2028-04-18 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2028-04-19 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2028-04-20 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2028-04-21 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2028-04-22 greek w6 feast0 fast0 exc11 rows=0,11 -> - +2028-04-23 greek w0 feast5 fast0 exc0 rows=0,0 -> - +2028-04-24 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-04-25 greek w2 feast4 fast0 exc1 rows=0,1 -> - +2028-04-26 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-04-27 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2028-04-28 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-04-29 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-04-30 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2028-05-01 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2028-05-02 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-05-03 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-04 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-05-05 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-06 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-05-07 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-05-08 greek w1 feast5 fast0 exc2 rows=0,2 -> - +2028-05-09 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2028-05-10 greek w3 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-05-11 greek w4 feast0 fast0 exc1 rows=0,1 -> - +2028-05-12 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-13 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-05-14 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2028-05-15 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2028-05-16 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2028-05-17 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-18 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-05-19 greek w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-20 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2028-05-21 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2028-05-22 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-05-23 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2028-05-24 greek w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-05-25 greek w4 feast8 fast0 exc0 rows=0,0 -> - +2028-05-26 greek w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-05-27 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2028-05-28 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2028-05-29 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2028-05-30 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-05-31 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-06-01 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-06-02 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-06-03 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-06-04 greek w0 feast8 fast0 exc0 rows=0,0 -> - +2028-06-05 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2028-06-06 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2028-06-07 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2028-06-08 greek w4 feast2 fast0 exc11 rows=1,11 -> - +2028-06-09 greek w5 feast3 fast0 exc11 rows=0,11 -> - +2028-06-10 greek w6 feast4 fast0 exc11 rows=0,11 -> - +2028-06-11 greek w0 feast4 fast0 exc1 rows=0,1 -> - +2028-06-12 greek w1 feast2 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-13 greek w2 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-14 greek w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-15 greek w4 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-16 greek w5 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-17 greek w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-18 greek w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-19 greek w1 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-20 greek w2 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-21 greek w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-22 greek w4 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-23 greek w5 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-24 greek w6 feast6 fast3 exc2 rows=0,2 -> meat,dairy,eggs +2028-06-25 greek w0 feast3 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-26 greek w1 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-27 greek w2 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2028-06-28 greek w3 feast2 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-06-29 greek w4 feast6 fast0 exc2 rows=0,2 -> - +2028-06-30 greek w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-07-01 greek w6 feast2 fast0 exc1 rows=0,1 -> - +2028-07-02 greek w0 feast3 fast0 exc1 rows=0,1 -> - +2028-07-03 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2028-07-04 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-07-05 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-06 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-07-07 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-08 greek w6 feast2 fast0 exc1 rows=0,1 -> - +2028-07-09 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-07-10 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-07-11 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2028-07-12 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-13 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2028-07-14 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-15 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-07-16 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2028-07-17 greek w1 feast4 fast0 exc1 rows=0,1 -> - +2028-07-18 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-07-19 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-20 greek w4 feast5 fast0 exc2 rows=0,2 -> - +2028-07-21 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-22 greek w6 feast2 fast0 exc1 rows=0,1 -> - +2028-07-23 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-07-24 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-07-25 greek w2 feast3 fast0 exc1 rows=0,1 -> - +2028-07-26 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-07-27 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2028-07-28 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-07-29 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-07-30 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-07-31 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2028-08-01 greek w2 feast3 fast4 exc0 rows=0,1 -> meat,fish,dairy,eggs,wine,oil +2028-08-02 greek w3 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-03 greek w4 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-04 greek w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-05 greek w6 feast2 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-08-06 greek w0 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2028-08-07 greek w1 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-08 greek w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-09 greek w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-10 greek w4 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-11 greek w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-12 greek w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-08-13 greek w0 feast4 fast4 exc1 rows=0,4 -> meat,fish,dairy,eggs +2028-08-14 greek w1 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-15 greek w2 feast7 fast0 exc2 rows=0,2 -> - +2028-08-16 greek w3 feast5 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-17 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-08-18 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-19 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-08-20 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-08-21 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2028-08-22 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-08-23 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-24 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2028-08-25 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-26 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2028-08-27 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-08-28 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-08-29 greek w2 feast6 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-30 greek w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-08-31 greek w4 feast3 fast0 exc1 rows=0,1 -> - +2028-09-01 greek w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-09-02 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-09-03 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-09-04 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-09-05 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2028-09-06 greek w3 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-09-07 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2028-09-08 greek w5 feast7 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2028-09-09 greek w6 feast3 fast0 exc1 rows=0,0,1 -> - +2028-09-10 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2028-09-11 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2028-09-12 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-09-13 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-09-14 greek w4 feast8 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-15 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-16 greek w6 feast2 fast0 exc0 rows=0,0,0 -> - +2028-09-17 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2028-09-18 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-09-19 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2028-09-20 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-09-21 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2028-09-22 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-23 greek w6 feast3 fast0 exc1 rows=0,1 -> - +2028-09-24 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2028-09-25 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-09-26 greek w2 feast5 fast0 exc2 rows=0,2 -> - +2028-09-27 greek w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-28 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2028-09-29 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-09-30 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2028-10-01 greek w0 feast0 fast0 exc1 rows=0,1 -> - +2028-10-02 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2028-10-03 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2028-10-04 greek w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-05 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2028-10-06 greek w5 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2028-10-07 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2028-10-08 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-10-09 greek w1 feast5 fast0 exc0 rows=0,0 -> - +2028-10-10 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-10-11 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-12 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-10-13 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-14 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2028-10-15 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2028-10-16 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-10-17 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-10-18 greek w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-19 greek w4 feast2 fast0 exc0 rows=0,0 -> - +2028-10-20 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-21 greek w6 feast2 fast0 exc0 rows=0,0,0 -> - +2028-10-22 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2028-10-23 greek w1 feast3 fast0 exc1 rows=0,1 -> - +2028-10-24 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-10-25 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-26 greek w4 feast4 fast0 exc2 rows=0,2 -> - +2028-10-27 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-10-28 greek w6 feast3 fast0 exc0 rows=0,0 -> - +2028-10-29 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2028-10-30 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2028-10-31 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-11-01 greek w3 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-11-02 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-11-03 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-04 greek w6 feast5 fast0 exc2 rows=0,0,2 -> - +2028-11-05 greek w0 feast3 fast0 exc0 rows=0,0,0 -> - +2028-11-06 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2028-11-07 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2028-11-08 greek w3 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2028-11-09 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2028-11-10 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-11 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2028-11-12 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2028-11-13 greek w1 feast5 fast0 exc2 rows=0,2 -> - +2028-11-14 greek w2 feast4 fast0 exc2 rows=0,2 -> - +2028-11-15 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-16 greek w4 feast6 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2028-11-17 greek w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-18 greek w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-19 greek w0 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-20 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-21 greek w2 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2028-11-22 greek w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-23 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-24 greek w5 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-25 greek w6 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2028-11-26 greek w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-27 greek w1 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-28 greek w2 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-11-29 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-11-30 greek w4 feast4 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2028-12-01 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-02 greek w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-03 greek w0 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-04 greek w1 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2028-12-05 greek w2 feast4 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2028-12-06 greek w3 feast5 fast5 exc1 rows=0,2 -> meat,fish,dairy,eggs +2028-12-07 greek w4 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-08 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-09 greek w6 feast3 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2028-12-10 greek w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-11 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2028-12-12 greek w2 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-12-13 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-14 greek w4 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-15 greek w5 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-12-16 greek w6 feast0 fast5 exc1 rows=0,0 -> meat,fish,dairy,eggs +2028-12-17 greek w0 feast2 fast5 exc1 rows=0,0,1 -> meat,fish,dairy,eggs +2028-12-18 greek w1 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-19 greek w2 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-20 greek w3 feast0 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2028-12-21 greek w4 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-22 greek w5 feast0 fast5 exc0 rows=0,0,0 -> meat,fish,dairy,eggs,wine,oil +2028-12-23 greek w6 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2028-12-24 greek w0 feast0 fast5 exc1 rows=0,0,9 -> meat,fish,dairy,eggs +2028-12-25 greek w1 feast8 fast0 exc11 rows=0,11 -> - +2028-12-26 greek w2 feast3 fast0 exc11 rows=0,11 -> - +2028-12-27 greek w3 feast2 fast0 exc11 rows=0,11 -> - +2028-12-28 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2028-12-29 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2028-12-30 greek w6 feast0 fast0 exc11 rows=0,0,11 -> - +2028-12-31 greek w0 feast0 fast0 exc11 rows=0,0,11 -> - +2029-01-01 greek w1 feast6 fast0 exc11 rows=0,0,11 -> - +2029-01-02 greek w2 feast4 fast0 exc11 rows=0,11 -> - +2029-01-03 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2029-01-04 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2029-01-05 greek w5 feast0 fast1 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2029-01-06 greek w6 feast8 fast0 exc11 rows=0,11 -> - +2029-01-07 greek w0 feast3 fast0 exc2 rows=0,0,2 -> - +2029-01-08 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-01-09 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2029-01-10 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-11 greek w4 feast4 fast0 exc1 rows=0,1 -> - +2029-01-12 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-13 greek w6 feast0 fast0 exc0 rows=0,0,0 -> - +2029-01-14 greek w0 feast4 fast0 exc1 rows=0,1 -> - +2029-01-15 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2029-01-16 greek w2 feast2 fast0 exc1 rows=0,1 -> - +2029-01-17 greek w3 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2029-01-18 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2029-01-19 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-20 greek w6 feast5 fast0 exc2 rows=0,2 -> - +2029-01-21 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-01-22 greek w1 feast0 fast0 exc1 rows=0,1 -> - +2029-01-23 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-01-24 greek w3 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-25 greek w4 feast4 fast0 exc1 rows=0,1 -> - +2029-01-26 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-01-27 greek w6 feast4 fast0 exc1 rows=0,1 -> - +2029-01-28 greek w0 feast2 fast0 exc11 rows=0,11 -> - +2029-01-29 greek w1 feast2 fast0 exc11 rows=0,11 -> - +2029-01-30 greek w2 feast5 fast0 exc11 rows=2,11 -> - +2029-01-31 greek w3 feast3 fast0 exc11 rows=0,11 -> - +2029-02-01 greek w4 feast2 fast0 exc11 rows=0,11 -> - +2029-02-02 greek w5 feast8 fast0 exc11 rows=2,11 -> - +2029-02-03 greek w6 feast2 fast0 exc11 rows=0,11 -> - +2029-02-04 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-02-05 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-02-06 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-02-07 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-02-08 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2029-02-09 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-02-10 greek w6 feast0 fast0 exc1 rows=0,1 -> - +2029-02-11 greek w0 feast3 fast0 exc1 rows=0,1 -> - +2029-02-12 greek w1 feast4 fast1 exc7 rows=0,7 -> meat +2029-02-13 greek w2 feast0 fast1 exc7 rows=0,7 -> meat +2029-02-14 greek w3 feast4 fast1 exc7 rows=0,7 -> meat +2029-02-15 greek w4 feast0 fast1 exc7 rows=0,7 -> meat +2029-02-16 greek w5 feast0 fast1 exc7 rows=0,7 -> meat +2029-02-17 greek w6 feast4 fast1 exc7 rows=1,7 -> meat +2029-02-18 greek w0 feast0 fast1 exc7 rows=0,7 -> meat +2029-02-19 greek w1 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-20 greek w2 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-21 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-22 greek w4 feast0 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-23 greek w5 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-02-24 greek w6 feast4 fast2 exc3 rows=1,3 -> meat,fish,dairy,eggs +2029-02-25 greek w0 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-02-26 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-02-27 greek w2 feast-1 fast2 exc0 rows=0 -> meat,fish,dairy,eggs,wine,oil +2029-02-28 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-01 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-02 greek w5 feast3 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-03 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-04 greek w0 feast4 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-05 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-06 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-07 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-08 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-09 greek w5 feast4 fast2 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-03-10 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-11 greek w0 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-12 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-13 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-14 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-15 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-16 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-17 greek w6 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-18 greek w0 feast2 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-19 greek w1 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-20 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-21 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-22 greek w4 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-23 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-24 greek w6 feast0 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-25 greek w0 feast7 fast2 exc4 rows=3,4 -> meat,dairy,eggs +2029-03-26 greek w1 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-03-27 greek w2 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-28 greek w3 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-29 greek w4 feast0 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-30 greek w5 feast1 fast2 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-03-31 greek w6 feast0 fast2 exc6 rows=0,6 -> meat,fish,dairy,eggs +2029-04-01 greek w0 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs +2029-04-02 greek w1 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-04-03 greek w2 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-04-04 greek w3 feast1 fast2 exc10 rows=0,10 -> meat,fish,dairy,eggs,wine,oil +2029-04-05 greek w4 feast3 fast2 exc3 rows=0,3 -> meat,fish,dairy,eggs +2029-04-06 greek w5 feast4 fast2 exc9 rows=0,9 -> meat,fish,dairy,eggs,wine,oil +2029-04-07 greek w6 feast4 fast2 exc5 rows=0,5 -> meat,fish,dairy,eggs,oil +2029-04-08 greek w0 feast8 fast0 exc11 rows=0,11 -> - +2029-04-09 greek w1 feast0 fast0 exc11 rows=0,11 -> - +2029-04-10 greek w2 feast0 fast0 exc11 rows=0,11 -> - +2029-04-11 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2029-04-12 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2029-04-13 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2029-04-14 greek w6 feast0 fast0 exc11 rows=0,11 -> - +2029-04-15 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-04-16 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-04-17 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2029-04-18 greek w3 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-04-19 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2029-04-20 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-04-21 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-04-22 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-04-23 greek w1 feast5 fast0 exc0 rows=0,0 -> - +2029-04-24 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-04-25 greek w3 feast4 fast1 exc1 rows=1,1 -> meat,fish,dairy,eggs +2029-04-26 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2029-04-27 greek w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-04-28 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-04-29 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-04-30 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2029-05-01 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2029-05-02 greek w3 feast0 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-05-03 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2029-05-04 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-05 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-05-06 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-05-07 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-05-08 greek w2 feast5 fast0 exc2 rows=0,2 -> - +2029-05-09 greek w3 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-10 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2029-05-11 greek w5 feast0 fast1 exc1 rows=1,1 -> meat,fish,dairy,eggs +2029-05-12 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-05-13 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-05-14 greek w1 feast2 fast0 exc0 rows=0,0 -> - +2029-05-15 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2029-05-16 greek w3 feast3 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-05-17 greek w4 feast8 fast0 exc0 rows=0,0 -> - +2029-05-18 greek w5 feast0 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-19 greek w6 feast4 fast0 exc0 rows=0,0 -> - +2029-05-20 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2029-05-21 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2029-05-22 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-05-23 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-24 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2029-05-25 greek w5 feast4 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-05-26 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2029-05-27 greek w0 feast8 fast0 exc0 rows=0,0 -> - +2029-05-28 greek w1 feast2 fast0 exc11 rows=0,11 -> - +2029-05-29 greek w2 feast2 fast0 exc11 rows=0,11 -> - +2029-05-30 greek w3 feast0 fast0 exc11 rows=0,11 -> - +2029-05-31 greek w4 feast0 fast0 exc11 rows=0,11 -> - +2029-06-01 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2029-06-02 greek w6 feast0 fast0 exc11 rows=0,11 -> - +2029-06-03 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-06-04 greek w1 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-05 greek w2 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-06 greek w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-07 greek w4 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-08 greek w5 feast2 fast3 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-06-09 greek w6 feast3 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-10 greek w0 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-11 greek w1 feast4 fast3 exc2 rows=0,1 -> meat,dairy,eggs +2029-06-12 greek w2 feast2 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-13 greek w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-14 greek w4 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-15 greek w5 feast4 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-16 greek w6 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-17 greek w0 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-18 greek w1 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-19 greek w2 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-20 greek w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-21 greek w4 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-22 greek w5 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-23 greek w6 feast0 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-24 greek w0 feast6 fast3 exc2 rows=0,2 -> meat,dairy,eggs +2029-06-25 greek w1 feast3 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-26 greek w2 feast4 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-27 greek w3 feast0 fast3 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-06-28 greek w4 feast2 fast3 exc2 rows=0,0 -> meat,dairy,eggs +2029-06-29 greek w5 feast6 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-06-30 greek w6 feast4 fast0 exc1 rows=0,1 -> - +2029-07-01 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2029-07-02 greek w1 feast3 fast0 exc1 rows=0,1 -> - +2029-07-03 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2029-07-04 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-05 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2029-07-06 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-07 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-07-08 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2029-07-09 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-07-10 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-07-11 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-12 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2029-07-13 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-14 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2029-07-15 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2029-07-16 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-07-17 greek w2 feast4 fast0 exc1 rows=0,1 -> - +2029-07-18 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-07-19 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2029-07-20 greek w5 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2029-07-21 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-07-22 greek w0 feast2 fast0 exc1 rows=0,1 -> - +2029-07-23 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-07-24 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-07-25 greek w3 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-07-26 greek w4 feast0 fast0 exc1 rows=0,1 -> - +2029-07-27 greek w5 feast2 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-07-28 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-07-29 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-07-30 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-07-31 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2029-08-01 greek w3 feast3 fast4 exc0 rows=0,1 -> meat,fish,dairy,eggs,wine,oil +2029-08-02 greek w4 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-03 greek w5 feast3 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-04 greek w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-08-05 greek w0 feast2 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-08-06 greek w1 feast8 fast4 exc4 rows=0,4 -> meat,dairy,eggs +2029-08-07 greek w2 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-08 greek w3 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-09 greek w4 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-10 greek w5 feast0 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-11 greek w6 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-08-12 greek w0 feast0 fast4 exc1 rows=0,0 -> meat,fish,dairy,eggs +2029-08-13 greek w1 feast4 fast4 exc0 rows=0,4 -> meat,fish,dairy,eggs,wine,oil +2029-08-14 greek w2 feast2 fast4 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-15 greek w3 feast7 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-08-16 greek w4 feast5 fast0 exc0 rows=0,0 -> - +2029-08-17 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-18 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-08-19 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-08-20 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-08-21 greek w2 feast3 fast0 exc0 rows=0,0 -> - +2029-08-22 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-23 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2029-08-24 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-25 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2029-08-26 greek w0 feast4 fast0 exc0 rows=0,0 -> - +2029-08-27 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-08-28 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-08-29 greek w3 feast6 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-08-30 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2029-08-31 greek w5 feast3 fast1 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-09-01 greek w6 feast4 fast0 exc1 rows=0,1 -> - +2029-09-02 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-09-03 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-09-04 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-09-05 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-06 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2029-09-07 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-08 greek w6 feast7 fast0 exc2 rows=0,2 -> - +2029-09-09 greek w0 feast3 fast0 exc1 rows=0,0,1 -> - +2029-09-10 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-09-11 greek w2 feast4 fast0 exc0 rows=0,0 -> - +2029-09-12 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-13 greek w4 feast3 fast0 exc1 rows=0,0,1 -> - +2029-09-14 greek w5 feast8 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-15 greek w6 feast2 fast0 exc0 rows=0,0,0 -> - +2029-09-16 greek w0 feast2 fast0 exc0 rows=0,0,0 -> - +2029-09-17 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-09-18 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-09-19 greek w3 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-20 greek w4 feast3 fast0 exc1 rows=0,1 -> - +2029-09-21 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-22 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2029-09-23 greek w0 feast3 fast0 exc1 rows=0,1 -> - +2029-09-24 greek w1 feast4 fast0 exc0 rows=0,0 -> - +2029-09-25 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-09-26 greek w3 feast5 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2029-09-27 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2029-09-28 greek w5 feast4 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-09-29 greek w6 feast2 fast0 exc0 rows=0,0 -> - +2029-09-30 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2029-10-01 greek w1 feast0 fast0 exc1 rows=0,1 -> - +2029-10-02 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2029-10-03 greek w3 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-04 greek w4 feast3 fast0 exc0 rows=0,0 -> - +2029-10-05 greek w5 feast3 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-06 greek w6 feast5 fast0 exc2 rows=0,2 -> - +2029-10-07 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2029-10-08 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-10-09 greek w2 feast5 fast0 exc0 rows=0,0 -> - +2029-10-10 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-11 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2029-10-12 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-13 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-10-14 greek w0 feast2 fast0 exc0 rows=0,0,0 -> - +2029-10-15 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-10-16 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-10-17 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-18 greek w4 feast4 fast0 exc0 rows=0,0 -> - +2029-10-19 greek w5 feast2 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-20 greek w6 feast2 fast0 exc0 rows=0,0,0 -> - +2029-10-21 greek w0 feast2 fast0 exc0 rows=0,0 -> - +2029-10-22 greek w1 feast0 fast0 exc0 rows=0,0 -> - +2029-10-23 greek w2 feast3 fast0 exc1 rows=0,1 -> - +2029-10-24 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-10-25 greek w4 feast0 fast0 exc0 rows=0,0 -> - +2029-10-26 greek w5 feast4 fast1 exc1 rows=0,2 -> meat,fish,dairy,eggs +2029-10-27 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-10-28 greek w0 feast3 fast0 exc0 rows=0,0 -> - +2029-10-29 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2029-10-30 greek w2 feast0 fast0 exc0 rows=0,0 -> - +2029-10-31 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-01 greek w4 feast2 fast0 exc1 rows=0,1 -> - +2029-11-02 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-03 greek w6 feast5 fast0 exc2 rows=0,0,2 -> - +2029-11-04 greek w0 feast0 fast0 exc0 rows=0,0,0 -> - +2029-11-05 greek w1 feast3 fast0 exc0 rows=0,0 -> - +2029-11-06 greek w2 feast2 fast0 exc0 rows=0,0 -> - +2029-11-07 greek w3 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-08 greek w4 feast5 fast0 exc2 rows=0,2 -> - +2029-11-09 greek w5 feast0 fast1 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-10 greek w6 feast0 fast0 exc0 rows=0,0 -> - +2029-11-11 greek w0 feast0 fast0 exc0 rows=0,0 -> - +2029-11-12 greek w1 feast2 fast0 exc1 rows=0,1 -> - +2029-11-13 greek w2 feast5 fast0 exc2 rows=0,2 -> - +2029-11-14 greek w3 feast4 fast1 exc2 rows=0,2 -> meat,dairy,eggs +2029-11-15 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-16 greek w5 feast6 fast5 exc1 rows=0,2 -> meat,fish,dairy,eggs +2029-11-17 greek w6 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-18 greek w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-19 greek w1 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-20 greek w2 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-21 greek w3 feast7 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2029-11-22 greek w4 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-23 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-24 greek w6 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-25 greek w0 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2029-11-26 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-27 greek w2 feast2 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-28 greek w3 feast2 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-11-29 greek w4 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-11-30 greek w5 feast4 fast5 exc1 rows=0,2 -> meat,fish,dairy,eggs +2029-12-01 greek w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-02 greek w0 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-03 greek w1 feast3 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-04 greek w2 feast0 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2029-12-05 greek w3 feast4 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-12-06 greek w4 feast5 fast5 exc2 rows=0,2 -> meat,dairy,eggs +2029-12-07 greek w5 feast3 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-08 greek w6 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-09 greek w0 feast3 fast5 exc2 rows=0,1 -> meat,dairy,eggs +2029-12-10 greek w1 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-11 greek w2 feast0 fast5 exc2 rows=0,0 -> meat,dairy,eggs +2029-12-12 greek w3 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-12-13 greek w4 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-14 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-15 greek w6 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-12-16 greek w0 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2029-12-17 greek w1 feast2 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-12-18 greek w2 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-19 greek w3 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-20 greek w4 feast0 fast5 exc1 rows=0,1 -> meat,fish,dairy,eggs +2029-12-21 greek w5 feast0 fast5 exc0 rows=0,0 -> meat,fish,dairy,eggs,wine,oil +2029-12-22 greek w6 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2029-12-23 greek w0 feast0 fast5 exc1 rows=0,0,0 -> meat,fish,dairy,eggs +2029-12-24 greek w1 feast0 fast5 exc9 rows=0,0,9 -> meat,fish,dairy,eggs,wine,oil +2029-12-25 greek w2 feast8 fast0 exc11 rows=0,11 -> - +2029-12-26 greek w3 feast3 fast0 exc11 rows=0,11 -> - +2029-12-27 greek w4 feast2 fast0 exc11 rows=0,11 -> - +2029-12-28 greek w5 feast0 fast0 exc11 rows=0,11 -> - +2029-12-29 greek w6 feast0 fast0 exc11 rows=0,0,11 -> - +2029-12-30 greek w0 feast0 fast0 exc11 rows=0,0,11 -> - +2029-12-31 greek w1 feast0 fast0 exc11 rows=0,11 -> - diff --git a/calendarium/tests/test_fasting_characterization.py b/calendarium/tests/test_fasting_characterization.py new file mode 100644 index 00000000..f57b78c6 --- /dev/null +++ b/calendarium/tests/test_fasting_characterization.py @@ -0,0 +1,69 @@ +from datetime import date, timedelta +from pathlib import Path + +from django.test import TestCase + +from .. import datetools +from ..datetools import Tradition +from ..liturgics import Day + +BASE_DIR = Path(__file__).resolve().parent +GOLDEN = BASE_DIR / 'data/fasting-characterization.txt' + +# Must match tools/fasting/characterize.py, which regenerates the golden file. +YEARS = (2025, 2026, 2027, 2028, 2029) + + +class TestFastingCharacterization(TestCase): + """Pins the fasting output so a refactor can prove it changed nothing. + + There is no spec to assert against here. `Day.fast_exception` is `max()` + over an integer that encodes a dietary rung, a precedence claim and a + sentinel at once, and `_apply_fasting_adjustments` patches whatever that + gets wrong -- a combination rule nobody wrote down. Only current behaviour + exists to preserve, so it is pinned verbatim and any drift shows up as a + readable diff naming the date, tradition, rank and contributing rows. + + Regenerate deliberately, never to make a red test green: + + docker compose run --rm local python tools/fasting/characterize.py --write + + See docs/fasting-refactor-scope.md. + """ + + fixtures = ['calendarium.json'] + + def render(self): + lines = [] + for tradition, name in ((Tradition.Slavic, 'slavic'), (Tradition.Greek, 'greek')): + for year in YEARS: + day_date = date(year, 1, 1) + while day_date.year == year: + day = Day(day_date.year, day_date.month, day_date.day, + tradition=tradition) + day.initialize() + rows = ','.join( + str(e) for e in sorted(d.fast_exception for d in day.days)) + abstain = ','.join( + datetools.fast_abstentions_for(day.fast_level, day.fast_exception)) + lines.append( + f'{day_date.isoformat()} {name} w{day.weekday} ' + f'feast{day.feast_level} fast{day.fast_level} ' + f'exc{day.fast_exception} rows={rows} -> {abstain or "-"}' + ) + day_date += timedelta(days=1) + return lines + + def test_fasting_output_is_unchanged(self): + expected = GOLDEN.read_text().splitlines() + actual = self.render() + + self.assertEqual(len(expected), len(actual)) + + # Report the first few differing days rather than a wall of diff. + differences = [(e, a) for e, a in zip(expected, actual) if e != a] + if differences: + report = '\n'.join(f' expected: {e}\n actual: {a}' for e, a in differences[:10]) + self.fail( + f'{len(differences)} of {len(expected)} days changed. First few:\n{report}' + ) diff --git a/calendarium/tests/test_liturgics.py b/calendarium/tests/test_liturgics.py index db46062a..76792718 100644 --- a/calendarium/tests/test_liturgics.py +++ b/calendarium/tests/test_liturgics.py @@ -377,33 +377,44 @@ async def test_nativity_fast_phase_one_monday_differs(self): self.assertEqual(slavic.fast_exception_desc, '') self.assertEqual(greek.fast_exception_desc, 'Fish, Wine and Oil are Allowed') - async def test_nativity_fast_phase_two_starts_a_week_earlier_for_greek(self): - """Dec 15, 2026 is an ordinary Tuesday. Slavic's stricter period - doesn't start until ~Dec 20, so it still gets the ordinary - Tuesday/Thursday wine-and-oil allowance; Greek's stricter period - starts Dec 13, a full week earlier, and drops Monday/Tuesday/ - Thursday to full strictness (not just losing fish).""" + async def test_nativity_fast_greek_first_phase_is_a_fish_day(self): + """Dec 10, 2026 is an ordinary Thursday in Greek's first phase, which + runs through Dec 11: everything but Wednesday and Friday is a fish day. + Slavic gets only the ordinary Tuesday/Thursday wine-and-oil allowance, + its own stricter period not starting until ~Dec 20. - slavic = liturgics.Day(2026, 12, 15, tradition=Tradition.Slavic) - greek = liturgics.Day(2026, 12, 15, tradition=Tradition.Greek) + goarch.org marks that date `fasting-fish`; see data/goarch_fasting.json. + """ + + slavic = liturgics.Day(2026, 12, 10, tradition=Tradition.Slavic) + greek = liturgics.Day(2026, 12, 10, tradition=Tradition.Greek) await slavic.ainitialize() await greek.ainitialize() self.assertEqual(slavic.fast_exception_desc, 'Wine and Oil are Allowed') - self.assertEqual(greek.fast_exception_desc, '') + self.assertEqual(greek.fast_exception_desc, 'Fish, Wine and Oil are Allowed') - async def test_nativity_fast_phase_two_weekend_loses_fish_earlier_for_greek(self): - """Dec 13, 2026 is a Sunday -- the first day of Greek's stricter - period, but still well inside Slavic's ordinary-weekend-gets-fish - window (Slavic's stricter period doesn't start until ~Dec 20).""" + async def test_nativity_fast_greek_second_phase_starts_december_12(self): + """December 2027 pins the boundary exactly, because it falls across a + weekend: Dec 11 is a Saturday and still a fish day, Dec 12 is a Sunday + and only wine and oil. Both are weekend days, so nothing but the phase + boundary separates them. + + Measured from goarch.org's own calendar (data/goarch_fasting.json), + which marks Dec 11 `fasting-fish` and Dec 12 `grapes`. This test has + twice been wrong about this date -- Dec 13 from Antiochian parish + sources, then Dec 18 from a summary of the GOA Yearbook -- so it is now + pinned to the Archdiocese's published calendar rather than to prose + about it. + """ - slavic = liturgics.Day(2026, 12, 13, tradition=Tradition.Slavic) - greek = liturgics.Day(2026, 12, 13, tradition=Tradition.Greek) - await slavic.ainitialize() - await greek.ainitialize() + before = liturgics.Day(2027, 12, 11, tradition=Tradition.Greek) + after = liturgics.Day(2027, 12, 12, tradition=Tradition.Greek) + await before.ainitialize() + await after.ainitialize() - self.assertEqual(slavic.fast_exception_desc, 'Fish, Wine and Oil are Allowed') - self.assertEqual(greek.fast_exception_desc, 'Wine and Oil are Allowed') + self.assertEqual(before.fast_exception_desc, 'Fish, Wine and Oil are Allowed') + self.assertEqual(after.fast_exception_desc, 'Wine and Oil are Allowed') async def test_nativity_eve_strict_baseline_not_weakened_by_greek_stricter_period(self): """Regression test for a bug caught during implementation: Dec 24, @@ -425,13 +436,17 @@ async def test_nativity_eve_strict_baseline_not_weakened_by_greek_stricter_perio self.assertEqual(slavic.fast_exception_desc, greek.fast_exception_desc) - async def test_holy_week_apostles_dormition_fasts_are_identical_between_traditions(self): - """Holy Week, the Apostles' Fast, and the Dormition Fast were all - confirmed (via dedicated Antiochian sources) to follow the same - weekly pattern as Slavic practice -- this is a regression guard - against that accidentally changing. Ordinary weeks of Great Lent - are NOT covered here -- see the wine-and-oil exception tests below - for three confirmed exceptions that do differ. + async def test_holy_week_and_dormition_fasts_are_identical_between_traditions(self): + """Holy Week and the Dormition Fast follow the same weekly pattern in + both traditions -- a regression guard against that changing. Ordinary + weeks of Great Lent are NOT covered here; see the wine-and-oil + exception tests below for three confirmed exceptions that do differ. + + The Apostles' Fast used to be covered here too, on the strength of a + dedicated Antiochian source. **goarch.org disproves that** -- GOA keeps + a far lighter Apostles' fast than Slavic practice, fish every day + except Wednesday and Friday, identical across the whole fast in 2026 + and 2028. It has its own test below. Aug 9 (St Herman of Alaska's Vigil-rank feast, Slavic tradition) needs no exclusion here: see @@ -441,7 +456,6 @@ async def test_holy_week_apostles_dormition_fasts_are_identical_between_traditio dates = ( [date(2026, 4, d) for d in range(5, 13)] # Holy Week - + [date(2026, 6, d) for d in range(9, 15)] # Apostles' Fast + [date(2026, 8, d) for d in range(1, 15)] # Dormition Fast ) @@ -455,6 +469,103 @@ async def test_holy_week_apostles_dormition_fasts_are_identical_between_traditio self.assertEqual(slavic.fast_level_desc, greek.fast_level_desc) self.assertEqual(slavic.fast_exception_desc, greek.fast_exception_desc) + async def test_apostles_fast_is_lighter_for_greek(self): + """GOA keeps fish through the Apostles' fast except on Wednesday and + Friday, where it is strict. Slavic practice follows Typikon Ch. 33 + instead -- Monday strict, Tuesday and Thursday wine and oil, weekends + fish. + + Measured from goarch.org across the whole of the 2026 and 2028 fasts, + which agree on every day; see data/goarch_fasting.json. June 2026 is + used here because the 2027 fast is a single day long.""" + + expected = { + 8: ('Fish, Wine and Oil are Allowed', ''), # Monday + 9: ('Fish, Wine and Oil are Allowed', 'Wine and Oil are Allowed'), + 10: ('', ''), # Wednesday + 11: ('Fish, Wine and Oil are Allowed', 'Wine and Oil are Allowed'), + 12: ('', ''), # Friday + 13: ('Fish, Wine and Oil are Allowed', 'Fish, Wine and Oil are Allowed'), + } + + for day_of_month, (greek_desc, slavic_desc) in expected.items(): + with self.subTest(day_of_month): + greek = liturgics.Day(2026, 6, day_of_month, tradition=Tradition.Greek) + slavic = liturgics.Day(2026, 6, day_of_month, tradition=Tradition.Slavic) + await greek.ainitialize() + await slavic.ainitialize() + + self.assertEqual(greek.fast_exception_desc, greek_desc) + self.assertEqual(slavic.fast_exception_desc, slavic_desc) + + async def test_greek_fixed_date_wine_oil_grants(self): + """GOA relaxes a fast to wine and oil on a fixed list of saints' days + that our own feast ranks do not pick out -- St Eleutherius (Dec 15) is + feast_level 2 here, and St Barbara (Dec 4) is level 0. + + Dec 15 2026 is a Tuesday inside the Nativity fast's second phase, where + the season floor is strict; goarch.org marks it `grapes`. Slavic + practice has no such grant and stays on the season's own pattern. + See fasting.GREEK_WINE_OIL_DATES.""" + + greek = liturgics.Day(2026, 12, 15, tradition=Tradition.Greek) + slavic = liturgics.Day(2026, 12, 15, tradition=Tradition.Slavic) + await greek.ainitialize() + await slavic.ainitialize() + + self.assertEqual(greek.fast_exception_desc, 'Wine and Oil are Allowed') + self.assertEqual(slavic.fast_exception_desc, 'Wine and Oil are Allowed') + + async def test_greek_caps_a_saints_fish_on_wednesday_and_friday(self): + """Typikon Chapter X allows fish on a Wednesday or Friday only for a + feast of the Lord. GOA applies that as a cap: St Nicholas carries a + fish grant, but on Dec 6 2028, a Wednesday, goarch.org gives only + `grapes`. Rank does not save him -- he is feast_level 5, above several + days that do keep fish.""" + + greek = liturgics.Day(2028, 12, 6, tradition=Tradition.Greek) + await greek.ainitialize() + + self.assertEqual(greek.feast_level, 5) + self.assertEqual(greek.fast_exception_desc, 'Wine and Oil are Allowed') + + async def test_greek_beheading_is_strict_except_at_the_weekend(self): + """Our data relaxes the Beheading of the Forerunner to wine and oil. + goarch.org keeps it strict on all five weekdays -- seven observations + across ten years, never once relaxed -- while allowing wine and oil + when it falls at the weekend, which is the ordinary weekend relief + rather than anything about the feast. + + Aug 29 2028 is a Tuesday; Aug 29 2026 is a Saturday.""" + + weekday = liturgics.Day(2028, 8, 29, tradition=Tradition.Greek) + weekend = liturgics.Day(2026, 8, 29, tradition=Tradition.Greek) + slavic = liturgics.Day(2028, 8, 29, tradition=Tradition.Slavic) + await weekday.ainitialize() + await weekend.ainitialize() + await slavic.ainitialize() + + self.assertEqual(weekday.fast_exception_desc, '') + self.assertEqual(weekend.fast_exception_desc, 'Wine and Oil are Allowed') + # Slavic keeps the row's own label, "Strict Fast (Wine and Oil)" -- a + # fast day that nonetheless allows wine and oil, which is the same rung + # the Greek weekend reaches by a different route. + self.assertEqual(slavic.fast_exception_desc, 'Strict Fast (Wine and Oil)') + + async def test_greek_cheesefare_week_is_a_meat_fast_throughout(self): + """Cheesefare week needs its own Greek season only so that the + Wednesday/Friday no-fish cap does not reach it: that cap means "no fish + for a saint", and clamping a week whose whole point is that only meat is + given up turned it into a stricter fast than the Lent it precedes. + goarch.org marks all seven days `fast-day`, Wednesday and Friday + included. 2026's Cheesefare week is Feb 16-22.""" + + for day_of_month in range(16, 23): + with self.subTest(day_of_month): + greek = liturgics.Day(2026, 2, day_of_month, tradition=Tradition.Greek) + await greek.ainitialize() + self.assertEqual(greek.fast_exception_desc, 'Meat Fast') + async def test_dormition_fast_grants_no_rank_based_exception(self): """Regression test for a data bug reported directly against production: Aug 9, 2026 (St Herman of Alaska's Vigil-rank feast) @@ -1276,15 +1387,15 @@ async def test_tradition_specific_commemoration_is_additive_not_a_replacement(se async def test_greek_gap_dates_share_confirmed_common_saints(self): """Stage 9: 6 dates had their only commemorations attached to a Day row tagged tradition='slavic' (with an empty parallel greek Day row - winning _prefer_tradition_days), so Greek users saw nothing at all, + winning _merge_tradition_days), so Greek users saw nothing at all, not even genuinely shared content. Fixed by decoupling - DayCommemoration lookup from _prefer_tradition_days's single-winner + DayCommemoration lookup from _merge_tradition_days's single-winner Day row (see _add_supplemental_commemorations) and tagging individual DayCommemoration rows tradition='slavic' for saints confirmed absent from data/antiochian_fixed_saints.json (the project's own Antiochian harvest) -- Toth and Nevsky in particular. feast_level/fast/fast_exception are untouched by any of this, since - they still come solely from _prefer_tradition_days's Day-row + they still come solely from _merge_tradition_days's Day-row selection -- verified directly against production (all field-level values match exactly; the only saints-list difference from production is the intentional Herman's-Glorification addition, @@ -1345,7 +1456,7 @@ async def test_raphael_brooklyn_full_year_check_unaffected(self): level (he's on a moveable date instead, see test_raphael_brooklyn_differing_commemoration_date). feast_name is untouched by DayCommemoration.tradition, since it still comes - solely from _prefer_tradition_days's Day-row selection.""" + solely from _merge_tradition_days's Day-row selection.""" greek = liturgics.Day(2026, 2, 27, tradition=Tradition.Greek) await greek.ainitialize() @@ -1715,3 +1826,65 @@ async def test_greek_still_gets_the_daily_cycle(self): # Removing the vigil set must not leave the day empty. self.assertEqual(await self.readings(Tradition.Greek), ['2 Cor 11.5-21', 'Mark 4.1-9']) + + +class TestDayOverrides(TestCase): + """The fixture uses two shapes for tradition-specific Day rows, and they + mean different things. A slot with a `slavic` row and a `greek` row is a + genuine disagreement about what is commemorated. A slot with a `common` row + plus a tradition row is an *override*: same commemoration, kept differently. + + These guard the second shape, which is the one that can rot quietly.""" + + # commemorations.json too: one override exists only to anchor them. + fixtures = ['calendarium.json', 'commemorations.json'] + + @staticmethod + def _overrides(): + """(base, override) for every slot with a common row and a tradition one.""" + slots = {} + for row in models.Day.objects.all(): + slots.setdefault((row.pdist, row.month, row.day), {})[row.tradition] = row + return [(g['common'], g[t]) + for g in slots.values() if 'common' in g + for t in g if t != 'common'] + + def test_day_overrides_are_sparse(self): + """An override may only carry the fields it actually overrides. + + Everything outside `Day.OVERRIDABLE` is taken from the common row and + the override's copy is ignored, so a populated field there is either a + misunderstanding or -- worse -- a duplicate that will silently go stale + when the common row is next edited. Three such rows existed before the + merge landed; one duplicated its common row exactly and did nothing. + """ + ignored = ('title', 'subtitle', 'feast_name', 'service', 'service_note', + 'story', 'flag') + for base, override in self._overrides(): + with self.subTest(f'{base.month:02d}-{base.day:02d} {override.tradition}'): + populated = [f for f in ignored if getattr(override, f)] + self.assertEqual( + populated, [], + f'override carries {populated}, which the merge ignores -- ' + f'blank them so they cannot drift from the common row') + + def test_day_overrides_earn_their_place(self): + """An override must either change a field or anchor a commemoration. + + A row that does neither is dead weight. A row that does the second only + is legitimate and must not be tidied away: Nov 24's `slavic` row + overrides nothing at all, but two `DayCommemoration` rows hang off it, + and deleting it takes them with it. That is exactly what happened while + this test was being written -- the foreign key caught it, not the + reasoning. + """ + for base, override in self._overrides(): + with self.subTest(f'{base.month:02d}-{base.day:02d} {override.tradition}'): + changed = [f for f in models.Day.OVERRIDABLE + if getattr(override, f) is not None + and getattr(override, f) != getattr(base, f)] + anchors = override.daycommemoration_set.exists() + self.assertTrue( + changed or anchors, + 'override changes no field and anchors no commemoration; ' + 'it has no reason to exist') diff --git a/data/goarch_fasting.json b/data/goarch_fasting.json new file mode 100644 index 00000000..ed3bf350 --- /dev/null +++ b/data/goarch_fasting.json @@ -0,0 +1,124 @@ +{ + "_comment": "GOA daily fasting designations, harvested 2026-09-09 and 2026-09-10 from goarch.org/chapel/calendar?month=M&year=Y&viewStyle=GridView&viewType=ViewReadings via a real browser (Cloudflare blocks scripted access; the user cleared the interstitial, then months were fetched same-origin). The grid encodes fasting as a CSS class on div.day, NOT in the page text: 'strict-fast'=S, 'grapes'=W (wine and oil), 'fasting-fish'=F, 'fast-day'=D (dairy allowed, i.e. a meat fast -- confusingly, that class marks the MILDEST level and appears only in Cheesefare week), absent=N (fast free). Mapping confirmed against March 2026, where Lenten weekdays are S, weekends W, and the Annunciation is F. One character per day, index 0 = the 1st.", + "2025-12": "FFSFWFFFFSFWWWWSWSSWWSSSNNNNNNN", + "2026-01": "NNNNSNFNSNNNNWNWNNNNSNSNNNNSNWN", + "2026-02": "NNNNNNNNNNWNSNNDDDDDDDSWSSSW", + "2026-03": "WSSSSSWWWSSSSWWSSSSSWWSSFWSWWSS", + "2026-04": "SSSWFSSSWSSNNNNNNNNNNWNWNNNNWN", + "2026-05": "WNNNNFNWNNNNWNWNNNNFNWNNNNWNWNN", + "2026-06": "NNNNNNNFFSFSFFFFSFSFFFFFFSFFNN", + "2026-07": "WNSNNNNWNSNNNNSNWNNNNWNSNNNNSNS", + "2026-08": "WWSSSFSWWSSSSSNNNNSNSNNNNSNSWNN", + "2026-09": "NSNSNNNNWNSNNSNSNSNNNNWNSNNNNS", + "2026-10": "NSNNNNSNSNNNNSNSNNNNSNWNNNNSNSN", + "2026-11": "NNNSNSNNNNSNWNFFFSFSFFFFWFSFFF", + "2026-12": "FSFWFFFFWFSWWSWSWSWWSSSSNNNNNNN", + "2027-01": "NNNNSNNSNNNNSNSNNNNWNWNNNNWNSNN", + "2027-02": "NNSNSNNNNWNSNNNNWNSNNNNNNNNN", + "2027-03": "NNSNSNNDDDDDDDSSSSSWWSSSFWWWSSS", + "2027-04": "SSWWSSSSSWWSSSWSWWSSSSSWFSSSWS", + "2027-05": "SNNNNNNNNNNWNWNNNNWNWNNNNFNWNNN", + "2027-06": "NWNWNNNNFNWNNNNWNWNNNNNNNNNFNW", + "2027-07": "NWNNNNSNSNNNNSNSNNNNSNSNNNNSNSN", + "2027-08": "WSSSSFWWSSSSSWNNNSNSNNNNSNSNWNN", + "2027-09": "WNSNNNNFNSNNNSSNSNNNNSNSNNNNSN", + "2027-10": "WNNNNWNSNNNNSNSNNNNSNSNNNNSNSNN", + "2027-11": "NNSNSNNNNSNWNNFFSFSFFFFSFSFFFF", + "2027-12": "SFSFFFFSFSFWSSWSWWWWSSSSNNNNNNN", + "2028-01": "NNNNSNFNNNNSNWNNNNSNSNNNNSNSNNN", + "2028-02": "NFNSNNNNNNNNNNNSNSNNDDDDDDDSS", + "2028-03": "SSSWWSSSWSWWSSSSSWWSSSSSFWSSSWS", + "2028-04": "WWSSSSSWFSSSWSSNNNNNNNNNNWNWNN", + "2028-05": "NNWNWNNNNFNWNNNNWNWNNNNFNWNNNNW", + "2028-06": "NWNNNNNNNNNFFSFSFFFFSFSFFFFSNW", + "2028-07": "NNNNSNSNNNNSNSNNNNSNSNNNNWNSNNN", + "2028-08": "SSSSWFSSSSSWWSNSNSNNNNSNSNNNSSN", + "2028-09": "WNNNNWNFNNNNWSSNNNNWNSNNNNSNSN", + "2028-10": "NNNSNWNNNNSNSNNNNSNSNNNNSNSNNNN", + "2028-11": "WNSNNNNWNSNNNNSFSFFFFSFSFFFFSF", + "2028-12": "SFFFFWFSFFFWSSWWWSSWSSWWNNNNNNN", + "2029-01": "NNNNSNNNNSNSNNNNWNSNNNNSNSNNNNN", + "2029-02": "NNNNNNSNWNNDDDDDDDSSSSSWWSSS", + "2029-03": "SSWWSSSSWWWSSSSSWWSSSWSWFWSSSSW", + "2029-04": "FSSSWSSNNNNNNNNNNWNWNNNNWNWNNN", + "2029-05": "NFNWNNNNWNWNNNNFNWNNNNWNWNNNNNN", + "2029-06": "NNNFFSFWFFFFSFSFFFFSFSFFFFSFFN", + "2029-07": "NNNSNSNNNNSNSNNNNSNWNNNNWNWNNNN", + "2029-08": "SSSWWFSSSSWWSSFNSNNNNSNSNNNNSNW", + "2029-09": "NNNNSNSNNNNSNSNNNNSNSNNNNWNSNN", + "2029-10": "NNSNSNNNNSNSNNNNSNSNNNNSNWNNNNS", + "2029-11": "NSNNNNSNSNNNNFFWFFFFFFSFFFFSFW", + "2029-12": "FFFFWFSFFFFWSSWWWSSWSWWSNNNNNNN", + "2030-01": "NNNNWNNNSNWNNNNWNWNNNNSNWNNNNWN", + "2030-02": "SNNNNSNWNNNNSNSNNNNNNNNNNNSN", + "2030-03": "SNNDDDDDDDSSSSSWWSSSSSWWFWSSSWW", + "2030-04": "SSSSSWWSSSWSWWSSSSSWFSSSWSSNNN", + "2030-05": "NNNNNNNWNWNNNNWNWNNNNFNWNNNNWNW", + "2030-06": "NNNNFNWNNNNWNWNNNNNNNNNFFSFSNN", + "2030-07": "NNSNSNNNNSNSNNNNWNSNNNNSNWNNNNS", + "2030-08": "SSWWSFSSSWWSSSNSNNNNSNSNNNNSSSN", + "2030-09": "NNNSNWNNNNSNWWNNNSNWNNNNSNSNNN", + "2030-10": "NSNSNNNNSNSNNNNSNSNNNNWNSNNNNSN", + "2030-11": "WNNNNSNWNNNNWNSFFFFSFSFFFFSFSF", + "2030-12": "FFFWFWFFFFSWSWWSWSSWWWSSNNNNNNN", + "2031-01": "NNNNWNNSNSNNNNSNWNNNNWNSNNNNSNS", + "2031-02": "NNNNNNNNNNNSNSNNDDDDDDDSSSSS", + "2031-03": "WWSSSSSWWSSSSSWWSSSSSWWSFWWSWWS", + "2031-04": "SSSSWFSSSWSSNNNNNNNNNNWNWNNNNW", + "2031-05": "NWNNNNFNWNNNNWNWNNNNWNWNNNNWNWN", + "2031-06": "NNNNNNNNFFWFSFFFFSFSFFFFSFSFNN", + "2031-07": "NWNSNNNNSNSNNNNSNSNNNNSNWNNNNSN", + "2031-08": "SWWSSFSSWWSSSSFNNNNSNSNNNNSNSNN", + "2031-09": "NNSNSNNNNSNSNWNNSNSNNNNSNWNNNN", + "2031-10": "WNSNNNNSNSNNNNSNSNNNNSNSNNNNSNS", + "2031-11": "NNNNSNSNNNNWNFFFFFSFFFFFFSFSFF", + "2031-12": "FFSFWFFFFSFWWWWSWSSWWSSSNNNNNNN", + "2032-01": "NNNNSNFNSNNNNWNWNNNNSNSNNNNSNWN", + "2032-02": "NNNSNSNNNNWNSNNNNSNSNNNNNNNNN", + "2032-03": "NNSNSNNDDDDDDDSSSSSWWSSSFWWWSSS", + "2032-04": "SSWWSSSSSWWSSSWSWWSSSSSWFSSSWS", + "2032-05": "SNNNNNNNNNNWNWNNNNWNWNNNNFNWNNN", + "2032-06": "NWNWNNNNFNWNNNNWNWNNNNNNNNNFNW", + "2032-07": "NWNNNNSNSNNNNSNSNNNNSNSNNNNSNSN", + "2032-08": "WSSSSFWWSSSSSWNNNSNSNNNNSNSNWNN", + "2032-09": "WNSNNNNFNSNNNSSNSNNNNSNSNNNNSN", + "2032-10": "WNNNNWNSNNNNSNSNNNNSNSNNNNSNSNN", + "2032-11": "NNSNSNNNNSNWNNFFSFSFFFFSFSFFFF", + "2032-12": "SFSFFFFSFSFWSSWSWWWWSSSSNNNNNNN", + "2033-01": "NNNNSNFNNNNSNWNNNNSNSNNNNSNSNNN", + "2033-02": "NFNSNNNNSNWNNNNNNNNNNNSNSNND", + "2033-03": "DDDDDDSSWSSWWSSSSSWWSSSSFWWSSSS", + "2033-04": "SWWSSSWSWWSSSSSWFSSSWSSNNNNNNN", + "2033-05": "NNNWNWNNNNWNWNNNNFNWNNNNWNWNNNN", + "2033-06": "FNWNNNNWNWNNNNNNNNNFFSFFFFFFFN", + "2033-07": "WNNNNSNWNNNNSNSNNNNWNWNNNNWNSNN", + "2033-08": "SSSSSFWSSSSSWWNNSNSNNNNSNSNNSNW", + "2033-09": "NSNNNNSNWNNNNSNSNNNNSNWNNNNSNS", + "2033-10": "NNNNSNSNNNNSNSNNNNSNSNNNNWNSNNN", + "2033-11": "NSNSNNNNSNSNNNFWFSFFFFSFWFFFFW", + "2033-12": "FSFFFFSFWFFWSSWSWWSWSSSWNNNNNNN", + "2034-01": "NNNNSNNNNNWNSNNNNWNWNNNNWNWNNNN", + "2034-02": "NNNNNNNWNWNNDDDDDDDSSSSWWWSS", + "2034-03": "SSSWWSSSWSWWSSSSSWWSSSWSFWSSSSS", + "2034-04": "WFSSSWSSNNNNNNNNNNWNWNNNNWNWNN", + "2034-05": "NNFNWNNNNWNWNNNNFNWNNNNWNWNNNNN", + "2034-06": "NNNNFFSFSFFFFSFSFFFFSFSFFFFSNW", + "2034-07": "NNNNSNSNNNNSNSNNNNSNSNNNNWNSNNN", + "2034-08": "SSSSWFSSSSSWWSNSNSNNNNSNSNNNSSN", + "2034-09": "WNNNNWNFNNNNWSSNNNNWNSNNNNSNSN", + "2034-10": "NNNSNWNNNNSNSNNNNSNSNNNNSNSNNNN", + "2034-11": "WNSNNNNWNSNNNNSFSFFFFSFSFFFFSF", + "2034-12": "SFFFFWFSFFFWSSWWWSSWSSWWNNNNNNN", + "2035-01": "NNNNSNNNNSNSNNNNWNSNNNNSNSNNNNS", + "2035-02": "NFNNNNSNSNNNNSNSNNNNNNNNNNNS", + "2035-03": "NSNNDDDDDDDSSSSSWWSSSSSWFWSSSSW", + "2035-04": "WSSSSSWWSSSWSWWSSSSSWFSSSWSSNN", + "2035-05": "NNNNNNNNWNWNNNNWNWNNNNFNWNNNNWN", + "2035-06": "WNNNNFNWNNNNWNWNNNNNNNNNFFSFFN", + "2035-07": "NNNSNSNNNNSNSNNNNSNWNNNNWNWNNNN", + "2035-08": "SSSWWFSSSSWWSSFNSNNNNSNSNNNNSNW", + "2035-09": "NNNNSNSNNNNSNSNNNNSNSNNNNWNSNN", + "2035-10": "NNSNSNNNNSNSNNNNSNSNNNNSNWNNNNS", + "2035-11": "NSNNNNSNSNNNNFFWFFFFFFSFFFFSFW", + "2035-12": "FFFFWFSFFFFWSSWWWSSWSWWSNNNNNNN" +} diff --git a/docs/fasting-refactor-scope.md b/docs/fasting-refactor-scope.md index 31fe4258..76801663 100644 --- a/docs/fasting-refactor-scope.md +++ b/docs/fasting-refactor-scope.md @@ -78,15 +78,742 @@ The bulk are index 0 (718), 11 (36), 2 (34) and 1 (27). ## How to do it safely -1. **Characterisation test first.** Pin the current fasting output -- - `fast_level`, `fast_exception`, `fast_abstentions_desc` -- for every day of - several years in both traditions. Refactor until it is byte-identical, then - change behaviour deliberately and visibly. +1. **Characterisation test first. Done 2026-09-08.** + `tools/fasting/characterize.py` writes + `calendarium/tests/data/fasting-characterization.txt`, and + `calendarium/tests/test_fasting_characterization.py` regenerates and compares + it -- 3,652 days, five years across the whole Paschal range, both traditions, + 4 seconds. Each line carries the inputs as well as the outputs, so a diff + names the date, tradition, rank, season and contributing rows rather than + just moving a number. Refactor until it is byte-identical, then change + behaviour deliberately and visibly. 2. The Greek path has its own `_apply_fasting_adjustments`, so both need covering. 3. The API exposes these fields; check `calendarium/tests/data/january.json` and the API schema before changing anything user-visible. +## What the characterisation revealed + +The pinned data has **36 distinct row-collision patterns and only 6 distinct +dietary outcomes**, which is the first encouraging sign: the output space is +tiny, close to `DietaryAllowance`'s seven rungs. + +More useful, **six patterns resolve differently in different contexts** -- the +same contributing rows producing a different answer -- and that is precisely +the work `_apply_fasting_adjustments` is doing. `rows=(0,4)`, a single row +claiming fish, is the clearest window: + +| outcome | season | feast levels | weekdays | +|---|---|---|---| +| exc 4, keeps fish | Lent, Dormition | **7-8** | any | +| exc 1, wine and oil | Dormition | 4-5 | Sat, Sun | +| exc 0, strict | Dormition | 4-5 | Mon-Fri | + +**The discriminator is `feast_level`, plus season and weekday. It is not +precedence.** The same shape appears in `rows=(0,1)`, where a wine-and-oil claim +is zeroed on six Dormition days at feast level 3, and inverted in `rows=(0,0)`, +where *no* row claims anything and the Apostles' and Nativity fasts still +produce wine and oil on Tuesday and Thursday and fish at the weekend -- a floor +rather than a claim. + +That settles the design question raised before starting: the row does not need a +stored precedence field. What indices 3 and 4 encode is "this claim is +important enough to survive the season's cap", and the rank that makes it +important is already on the row as `feast_level`. Palm Sunday is 8, the +Annunciation 7, the Transfiguration 8; the index-3 rows are all Paschal-cycle +rows at level 0, which set the floor rather than making a festal claim. + +A first guess was that this generalises: the season sets a floor and a cap, and +a festal claim lifts the floor only if its rank clears the season's bar. The +sources say otherwise -- see below. **The mechanism differs by season**, and a +single rank-threshold model would be wrong for Lent. + +## What the published rules actually say (checked 2026-09-08) + +Checked before deriving anything from the data, so the parameters are sourced +rather than fitted. The Antiochian typikon at +`~/Documents/Orthodox Studies/54-typikon-full.pdf` is a service-order and +rubrics reference and contains no rank-based fasting rules; its fasting notes +are scattered and tied to individual feasts. The usable source is OCA's +guidelines page, which quotes the Typikon and the Lenten Triodion verbatim: + + +| season | what the rule keys on | source | +|---|---|---| +| ordinary Wed/Fri | nothing; strict, and rank relaxations are called "local variations" | OCA guidelines | +| Great Lent | weekday/weekend, plus **named dates** | Ware, *The Lenten Triodion*, quoted by OCA | +| Apostles' & Nativity | weekday, plus **saint's rank** | Typikon Ch. 33, quoted verbatim | +| Dormition | weekday, plus a named feast | OCA guidelines | + +**Apostles' and Nativity are explicitly rank-based.** Ch. 33: "on Tuesday and +Thursday we do not eat fish, but only oil or wine. On Monday, Wednesday and +Friday, we eat neither oil nor wine.... On Saturday and Sunday we eat fish. If +there occur on Tuesday or Thursday a Saint who has a [Great] Doxology, we eat +fish; if on Monday, the same; but if on Wednesday or Friday, we allow only oil +and wine.... If it be a Saint who has a Vigil on Wednesday or Friday ... we +allow oil and wine and fish.... But from the 20th of December until the 25th, +even if it be Saturday or Sunday, we do not allow fish." + +Against the pinned data, the app's **base weekly pattern matches exactly** -- +Mon/Wed/Fri strict, Tue/Thu wine and oil, Sat/Sun fish, and the December +tightening. **The rank clause is entirely unimplemented**: feast level 3, +doxology, behaves identically to level 0 on every weekday. Level 5, vigil, does +get fish on Wednesday, but from per-date data rather than from a rule, and +level 4 is inconsistent for the same reason. + +**Lent is not rank-based.** Ware gives a named list of nine dates that take wine +and oil on a weekday of weeks 2-6, and names the Annunciation and Palm Sunday +for fish. The data agrees that rank is not the discriminator: on Lenten +weekdays *every* feast level has both outcomes -- + +| level | strict | wine and oil | +|---|---|---| +| 2 | 4 | 4 | +| 3 | 13 | 9 | +| 4 | 9 | 10 | +| 5 | 1 | 2 | + +so no threshold separates them. (The two fish days are levels 7 and 8, which +fits a rank bar, but the source names them rather than ranking them, and two +dates cannot distinguish the two readings.) + +**Dormition is the cleanest and already correct.** Strict on weekdays, wine and +oil at the weekend at every level 0-5, and the Transfiguration at level 8 takes +fish -- matching "wine and oil are allowed only on Saturdays and Sundays (and +sometimes on a few feast days and vigils)". + +### What this means for the model + +A row's `fast_exception` already *is* the named-date grant, which is why Lent +works today. What cannot live in data is the rank rule, because it keys on +weekday, and whether a fixed date falls on a Wednesday changes yearly -- the +same argument that moved the abbreviated-readings Sunday rule into code. + +So the shape is: + +- the **season** supplies a floor per weekday, and a cap; +- a **data row** supplies a named grant, as now; +- a **rank rule** supplies a further grant, per season -- only the Apostles' and + Nativity fasts have one, and Ch. 33 states it precisely; +- the result is the most lenient of those, then the season's cap applied. + +The Dormition cap is what currently reads as `if feast_level < 7 and +fast_exception > 0: fast_exception = 0`, and the Lenten cap is the `== 2` fish +strip. Both become one parameter each instead of a special case. + +## The mock-up, and what it found (2026-09-08) + +`tools/fasting/prototype.py` implements the model above and resolves every day +the characterisation pins, comparing its answer to the live one at the dietary +rung. It is not wired into the app. + +**1824 of 1826 Slavic days, 99.9%** -- every season exact except two days. +Writing the rule out loud needed three concepts the legacy integer hides: + +- **claims versus caps.** Most rows say "this date allows at least X". A few say + "at most X": Clean Week's no-overrides, the strict eves, and Holy Saturday, + which allows wine but *not* oil -- "on this one Saturday, alone among + Saturdays of the year, olive oil is not permitted" -- and so must beat a + saint's wine-and-oil claim rather than lose to it. Holy Saturday is both: it + lifts the strict floor and caps above itself. +- **the ladder is not linear at one point.** `WineOilCaviar` excludes exactly + what `WineAndOil` does; it is a callout, not a stricter rung. A season cap + meaning "no fish" must let a caviar claim through rather than clamp it. +- **a season cap is a clamp, not an assignment** -- which is where the two + remaining differences come from. + +### The two differences are a bug in current behaviour + +Nativity Eve carries `fast_exception = 9`, "Strict Fast", every year. What the +app does with it depends on the weekday: + +| weekday | current | | +|---|---|---| +| Sunday | wine and oil | correct -- the eve-on-weekend rule | +| Monday, Thursday | strict | correct | +| **Wednesday, Friday** | **wine and oil** | **wrong** | + +The Apostles'/Nativity rule for Wednesday and Friday reads +`if feast_level < 4 and fast_exception > 1: self.fast_exception = 1`. It is +meant to *remove* fish from a lenient claim, but it is written as an assignment, +so it also *raises* a strictness assertion. Nativity Eve therefore becomes more +lenient on precisely the two strictest weekdays. The prototype gets it right by +construction, because a cap there can only lower. + +This is the concrete answer to "what does the refactor buy": the explicit model +found a bug the emergent one produced and hid, and the bug is of a kind the +architecture invites. + +### Both traditions, and the legacy index too + +Extended to Greek, whose only structural difference is the Nativity fast: it +splits into two seasons, everything but Wednesday and Friday being a fish day +until Dec 12 and Monday, Tuesday and Thursday dropping to full strictness from +Dec 13 (`docs/greek-fasting.md`). + +The prototype also reproduces the legacy `fast_exception` index, because +`calendarium/api.py` publishes it. A row that decides the outcome reports its +own value; where the season decides, one canonical index per rung is used. That +keeps indices 3 and 4 -- whose whole purpose was precedence -- reporting as +themselves even though the model no longer needs them to. + +With the Wednesday/Friday quirk emulated behind +`Season.legacy_wed_fri_assignment`, the prototype reproduces **3652 of 3652 +days exactly**, in both traditions, on both the dietary rung and the legacy +index. Running it with `--fixed` turns the flag off and changes exactly the four +Nativity Eve days and nothing else. + +That is the licence to swap the implementation: the refactor lands +byte-identical with the flag on, and removing the flag is a four-line diff in +the characterisation file. + +## Step 1 done: the model is the implementation (2026-09-08) + +`calendarium/fasting.py` now holds the seasons and the rule; both +`SlavicDay._apply_fasting_adjustments` and `GreekDay`'s are two lines that call +it. `calendarium/liturgics/day.py` loses 145 lines and gains 9. + +**The characterisation test passes unchanged** -- 3,652 days, both traditions, +identical on the dietary rung and on the legacy `fast_exception` index. The +Wednesday/Friday quirk is preserved deliberately behind +`Season.legacy_wed_fri_assignment` so this step could be proven to change +nothing at all. + +One thing the swap turned up that the prototype had missed: on a **NoFast** day +the old code left `fast_exception` as the row maximum rather than treating the +day as fast-free, because `NoFast` matched none of its cases and fell through. A +feast row on a free day therefore still shows "Fish, Wine and Oil are Allowed". +`NO_FAST` is a real season now for that reason, and the characterisation caught +the difference on the first run. + +## Step 2 done: Nativity Eve is strict again (2026-09-08) + +`legacy_wed_fri_assignment` is removed, which fixes the bug the prototype found. +The characterisation diff is exactly four lines in each direction -- Dec 24 in +2025 and 2027, both traditions, the two years it falls on a Wednesday or a +Friday -- going from wine and oil to a full abstention. + +The day is coherent now, and matches Theophany Eve, which was always correct +because the ordinary fast never carried the buggy clamp: + +| weekday | Nativity Eve | +|---|---| +| Sunday | wine and oil -- the eve-on-weekend rule | +| every other day | strict | + +Nothing else moved: 190 tests pass and `calendarium/tests/data/january.json` is +untouched, since Jan 5 resolves through `ORDINARY` rather than the Nativity +season. + +## Step 3 held: Ch. 33's rank clause is not settled (2026-09-09) + +Enabling `apply_grants` changes **70 of 3652 days**, all loosenings, and all +exactly what Ch. 33 states: doxology rank and above takes fish on Monday, +Tuesday and Thursday, and wine and oil on Wednesday and Friday. Levels 5 and up +are unaffected because the data already grants them fish. + +It was measured against antiochian.org and **not committed**, for three reasons. + +**The measurement was of a half-applied change.** `apply_grants` reached the +Slavic `APOSTLES` and `NATIVITY` and the shared Greek Apostles season, but not +`NATIVITY_GREEK_EARLY` or `NATIVITY_GREEK_STRICT`, which are separate objects. +Greek would have had Ch. 33 ranks during one fast and not the other. + +**antiochian.org is the wrong yardstick for it.** Agreement moved 56/90 to +60/90, which looked like weak support -- but each jurisdiction keeps its own +typikon, so Antiochian practice departing from the rule OCA quotes is not +evidence against that rule. It is evidence they are different churches. Judging +a Slavic change by an Antiochian source was the error. + +**So it still wants a Slavic source.** holytrinityorthodox.com publishes a +dietary line per day; four or five doxology-rank days in the Apostles' or +Nativity fast falling on a Monday, Tuesday or Thursday would settle it. + +The rule stays written and switched off in `_CH33_GRANTS`, with its citation. + +## The "Antiochian typikon" is the Typikon of the Great Church (2026-09-09) + +**Correcting the framing used throughout the section below.** The PDF at +`~/Documents/Orthodox Studies/54-typikon-full.pdf` is not an Antioch-specific +book. Its own foreword identifies it as Rizkallah Arman's 1951 Arabic +translation, checked against "the Typikon of the Great Church of +Constantinople", and states plainly: "The Orthodox Churches in the East now use +the Typikon of the Great Church of Christ in Constantinople originally received +from St. Sabbas with some changes." + +That is the Violakis typikon -- **the same one the Greek Orthodox Archdiocese +follows**. The same file is published as "The Book of the Typikon" at +equip-orthodox.com. + +Three consequences, and they matter: + +- **Chapter X's Wednesday/Friday exceptions apply to the Greek tradition + generally, GOA included.** They are not an Antiochian peculiarity to be + modelled as a separate jurisdiction. This app implements none of them. +- **The book marks its own local departures.** Footnote 343 attributes the + fast-free Paschal season to a decree of "the Holy Synod of Antioch"; the main + text says only that fish is permitted on those days. So the typikon + distinguishes the shared rule from Antioch's extension of it, and we can read + which is which. +- **GOA and Antioch should not diverge much in principle**, sharing a typikon. + The 14% figure measured below is *this app against Antiochian practice*, not + GOA against Antioch, and much of it is more likely to be our model being + wrong than a jurisdictional difference. Brian's scepticism on this point was + correct. + +## What that typikon says about Wednesdays and Fridays (2026-09-09) + +An earlier pass concluded the Antiochian typikon "contains no rank-based fasting +rules". **That was wrong, and the miss was a search failure**: the grep looked +for rank words near food words, and the relevant section names neither. It is in +the table of contents -- + + Chapter X General Directions + Wednesdays and Fridays when exceptions to the fast are permitted…570 + +and reads, verbatim: + +> Wednesdays and Fridays when meat is permitted. Between the feast of the +> Nativity of Christ and the feast of Epiphany, except for the Forefeast of +> Epiphany. Between the Sunday of the Pharisee and the Publican and the Sunday +> of the Prodigal Son. During Bright Week. During the week of Pentecost. +> +> On Wednesday and Friday during Cheesefare Week dairy products are permitted. +> On Wednesdays and Fridays between Thomas Sunday and Pentecost, fish is +> permitted.[343] Fish is permitted on Wednesday or Friday if it is a feast of +> the Lord even during fasting seasons, except for Holy Week. Such feasts are: +> the Annunciation, Palm Sunday, and the Transfiguration. If a feast of the +> Theotokos or one of the 12 Apostles falls on Wednesday or Friday. During the +> days following a feast of the Lord or the Theotokos until its leavetaking +> except during Great Lent and the Fast of the Theotokos. + +Footnote 343: "The Holy Synod of Antioch has decreed that there will be no +fasting on Wednesday and Friday, not only during Bright week, but during the +entire Paschal season until the Feast of the Ascension." + +**This is a categorical rule, not a rank one.** It keys on *what kind* of feast +-- of the Lord, of the Theotokos, of the Twelve Apostles, or an afterfeast -- +where the Ch. 33 text OCA quotes keys on typikon rank. Both are in the same +book, addressing different fasts: Ch. 33 governs the Apostles' and Nativity +fasts, Chapter X the ordinary Wednesdays and Fridays of the year. They are not +rival jurisdictional readings, which is how an earlier draft of this section +described them. + +### The Antiochian Paschal rule, stated exactly (corrected 2026-09-09) + +The rule has two edges and no exceptions: + +> **From Pascha through the Apodosis of Pascha, no fast at all, on every day of +> the week. From the Feast of the Ascension, ordinary fasting resumes.** + +Verified two ways. Antioch's published *2026 Fasting Calendar* -- a colour-coded +PDF, so its text layer carries only the date numbers and it has to be read as an +image -- leaves April white from the 12th, Pascha, and May white except the +22nd, 27th and 29th, which are red. Ascension 2026 is May 21, so those three are +the Wednesdays and Fridays *after* it. Their API agrees on the same three days, +and across the whole harvest **96 of 96 days from Pascha to the Apodosis are +"no fast"**. + +An earlier note here claimed their own calendar only followed the decree about +79% of the time. **That was wrong**, and the error was in the analysis rather +than the data: the Paschal season was bucketed as Pascha to Pentecost, pdist 0 +to 49, when the decree ends at Ascension, pdist 39. The days that looked like +contradictions were the ones the decree explicitly excludes. + +The lesson generalises past this rule: `pdist 0..49` is Pascha to Pentecost and +is the wrong window for anything scoped to Ascension, which is pdist 39. + +### Implemented (2026-09-09): Chapter X is almost entirely satisfied already + +Measured clause by clause against five years, counting only Wednesdays and +Fridays that currently fall below fish and that a clause would lift: + +| clause | days it changes | +|---|---| +| **fish between Thomas Sunday and Pentecost** | **47 over 5 years, 9.4/yr** | +| fish on a feast of the Lord | 1 | +| fish on a feast of the Theotokos | 0 | + +The second and third are already satisfied by the data. The typikon names the +three feasts of the Lord that can fall in a fasting season -- the Annunciation, +Palm Sunday and the Transfiguration -- and all three already carry +`fast_exception = 4`, fish. The single day the "feast of the Lord" clause would +have lifted is the Exaltation of the Cross, which the same typikon lists as a +fast day in its own right, so lifting it would have been wrong. + +So only the Paschal clause needed implementing: `PASCHAL_WEDFRI` in +`calendarium/fasting.py`, Greek only. 47 days over five years move from wine and +oil to fish, all Wednesdays and Fridays, all inside the window. + +**Not carried into Slavic practice.** OCA's guidelines make Bright Week and +Trinity Week fast-free and otherwise treat the Wednesdays and Fridays of the +year as fast days, with no Paschal fish allowance. + +**Antioch's further extension is not implemented either.** Its Holy Synod +decreed no fast at all on these days through Ascension, which footnote 343 marks +as a local decree rather than the shared rule. + +## Measured against goarch.org (2026-09-09) -- two changes reverted + +The Chapter X work above was validated against GOA's own calendar, and **two +changes made earlier the same day were wrong and have been backed out.** The +data is in `data/goarch_fasting.json`, 276 days across nine months and three +Decembers; `tools/fasting/goarch_audit.py` reproduces the score. + +| | app vs goarch.org | +|---|---| +| as shipped that morning | 239/276 (86.6%) | +| **after the two reverts** | **257/276 (93.1%)** | + +**1. The Paschal fish clause was wrong for GOA.** Chapter X says "On Wednesdays +and Fridays between Thomas Sunday and Pentecost, fish is permitted", and +`PASCHAL_WEDFRI` implemented exactly that. GOA gives **wine and oil**. April +2026 is unambiguous -- the grid labels Apr 22 and Apr 24, both inside the +window, "Wine". So neither jurisdiction follows the plain text of the clause +they share: Antioch is *more* lenient than it (no fast at all, by their Synod's +decree), GOA *less* (wine and oil). The clause is removed; the app is back to +what it did before, which was right. + +Fish does appear on two Paschal Wednesdays in 2026 -- Mid-Pentecost (May 6) and +the Apodosis of Pascha (May 20). Both are feasts of the Lord, so what GOA +applies there is Chapter X's *feast-of-the-Lord* clause, not its Paschal one. + +**2. The Nativity boundary was wrong, twice.** See `docs/greek-fasting.md`; it +is Dec 12, `nativity - 13`, pinned by December 2027 falling across a weekend. + +### Ch. 33's rank clause: measured, and it does not hold for GOA + +The doxology/vigil grants in `_CH33_GRANTS` were finally testable against +practice. Enabling them makes agreement **worse, 93.1% -> 92.8%**, and the +errors run in both directions: + +- GOA grants wine and oil on days our data ranks 0 or 2 -- St Barbara (Dec 4, + level 0), St Spyridon (Dec 12, level 2) +- GOA gives strict on days our data ranks 3 and 4 -- Dec 3 2025, Jan 9 2026 + +**Rank does not predict GOA's grants.** Whatever drives them is per-saint, not +a threshold on `feast_level`. `apply_grants` stays `False`, and the remaining 19 +differences are a *data* question -- Greek `fast_exception` rows for specific +dates -- rather than a rule waiting to be written. That is the third time a +rank-threshold hypothesis has failed against practice data on this project. + +## The full-year goarch audit (2026-09-09) + +The 9-month sample was extended to **37 months -- Dec 2025 plus all of 2026, +2027 and 2028, 1,127 days.** Score, as each fix landed: + +| | | +|---|---| +| starting point | 1032/1127 (91.6%) | +| after a bug in the audit's own `bucket()` | 1053/1127 (93.4%) | +| `APOSTLES_GREEK` | 1071/1127 (95.0%) | +| Greek Exaltation row | **1074/1127 (95.3%)** | + +**The first correction was to the measuring tool, not the app.** `bucket()` +folded `MeatFast` in with `FastFree`, so all 21 Cheesefare days scored as +differences when the app had them right. Worth recording because it is the +second time in this work that a "finding" turned out to be an artifact of how +the comparison was set up. + +### Extended to ten years (2026-09-10) + +The harvest was extended to **121 months -- Dec 2025 plus every month of 2026 +through 2035, 3,683 days.** Ten years is the threshold that matters: a fixed +date reaches a Wednesday or Friday in roughly two years out of seven, and those +are the only days on which an ordinary-time relaxation is visible at all. + +| | | +|---|---| +| three-year state | 95.3% | +| ten-year baseline (more data, more gaps) | 94.8% | +| `GREEK_WINE_OIL_DATES` (38 dates) | 97.8% | +| Wednesday/Friday fish cap + `CHEESEFARE_GREEK` | 98.5% | +| Nativity cap raised to rank 7 | 99.3% | +| `GREEK_STRICT_DATES`, scoped to festal rows | **99.4%** | + +**22 differences remain across ten years -- about two a year.** + +Five things came out of it, in rough order of how much they moved the number. + +**The fixed-date grant list is data, not a rule.** 38 dates on which GOA relaxes +a fast to wine and oil. Their `feast_level` here runs 0, 2, 3 and 4 -- Barbara +and Ignatius are level 0 -- so no threshold picks them out, which is the same +reason Ch. 33's rank grants failed. It lives in `fasting.py` rather than the +fixture because a `greek` Day row *replaces* the `common` one outright, so +encoding it as data would mean duplicating 38 feast names that would then drift. + +**The Wednesday/Friday fish cap is real, and the confound is broken.** A saint's +fish grant falls back to wine and oil on a Wednesday or Friday, however highly +ranked -- fourteen saints at levels 4, 5 and 6. Feasts of the Lord and of the +Theotokos keep fish, which `cap_exempt_rank=7` expresses, plus three +lower-ranked Lord days named explicitly. **GOA does not honour Chapter X's "or +one of the 12 Apostles" clause**: John the Theologian, Thomas, Matthew and +Andrew are all capped. + +**The same cap holds inside the Nativity fast.** `NATIVITY_GREEK_EARLY` had +`cap_exempt_rank=4`, which let St Matthew, St Andrew and St Nicholas through. It +is 7 now, matching ordinary time. + +**Cheesefare week needed rescuing from that cap.** Adding a Wednesday/Friday cap +to Greek ordinary time silently clamped the week before Lent -- whose whole +point is that only meat is given up -- into a fast stricter than the Lent it +precedes. It has its own season now. The characterisation caught it +immediately. + +**`GREEK_STRICT_DATES` is the mirror image**: nine dates whose festal grant GOA +does not recognise, chiefly the Beheading of the Forerunner, strict on all five +weekdays across seven observations. Dropping the *festal* claim and letting the +season floor stand is what makes the weekend relief still work; a first attempt +dropped every claim and made Lenten Saturdays stricter than the Saturdays either +side of them. + +### The date lists moved out of the source (2026-09-10) + +Brian objected that `GREEK_WINE_OIL_DATES` and its siblings were reference data +living in source code, and he was right. They are now sparse `Day` rows. + +The mechanism is his: a tradition row overrides a `common` row **field by +field**, so it carries only what differs. `feast_level`, `fast` and +`fast_exception` are nullable for this, and **NULL means "inherit" while 0 means +"explicitly zero"** -- a distinction the Exaltation depends on, its Greek +override being an explicit `fast_exception=0`. `_prefer_tradition_days` becomes +`_merge_tradition_days`. + +Django's model inheritance does not do this, incidentally: abstract bases give +separate tables with no row-level fallback, and multi-table inheritance makes a +child row *be* a parent row rather than override a different one. This is a +merge, not inheritance. + +Two shapes now coexist in the fixture and mean different things: + +| shape | meaning | +|---|---| +| `slavic` + `greek`, no common | genuine disagreement about *what is commemorated* -- Oct 1 is the Protection for Slavs, not for Greeks | +| `common` + one tradition row | an **override**: same commemoration, kept differently | + +`TestDayOverrides` guards the second: an override may not carry fields the merge +ignores (they would silently go stale when the common row is edited), and must +either change something or anchor a commemoration. + +**The move paid for itself immediately.** Writing the guard exposed three +overrides that changed nothing: for Feb 24 and Mar 9 the `common` row *already* +claimed wine and oil, so those two entries in `GREEK_WINE_OIL_DATES` had always +been dead -- invisible while the list lived in code, obvious the moment it +became rows. It also found a pre-existing no-op, Nov 24's `slavic` row, which +duplicated its common row in every field. + +**And deleting that one was wrong.** Two `DayCommemoration` rows hang off it, so +it is a commemoration anchor that happens to override nothing. The foreign key +caught it, not the reasoning; the guard test now allows that case explicitly. +Worth remembering next time a Day row looks redundant -- 379 of them are +foreign-key targets. + +### The last two constants, and what made them necessary + +Brian objected to `GREEK_WED_FRI_FISH_OK_DATES` and `_PDISTS` on the same +grounds as the first lists. The honest answer to "what makes this necessary" is +that the Wednesday/Friday cap has to distinguish *feast of the Lord* from +*saint*, and our schema encodes that only as `feast_level >= 7` -- on a scale +that follows the **Slavic** reckoning. Five days are Lord-ish to GOA and ranked +lower by us: the Synaxis of the Forerunner is level 3 and keeps its fish, while +St Matthew is level 6 and does not. + +Both constants are gone, by two different routes. + +**The two pdists needed no replacement.** They were the Midfeast and the +Leavetaking of Pascha, and the cap should never have reached them: it means "no +fish for a *saint*", and the Paschal cycle is not a saint. Scoping the cap to +festal claims removes them on principle rather than by name -- the same +festal/Paschal distinction the strict-date handling already needed. + +**The three dates became `Day.fast_cap_exempt`.** The concept has a name now: +"this commemoration's claim outranks the season's cap." + +That is what the old scale said *positionally*. Indices 3 and 4 duplicate 1 and +2 in their wording precisely because they were the cap-outranking variants -- +every index-3 row is a wine-and-oil grant inside Lent, every index-4 row a fish +grant inside a fast. **Reading it off the index was tried and does not work**: +it lifts the Dormition fast's cap too, giving fish on Aug 9 and Aug 13 where +antiochian.org lists the Leavetaking of the Transfiguration as a full abstention +day, and dropping goarch agreement to 99.6%. The precedence idea is real but not +universal, so it belongs on the row rather than in the index. + +`calendarium/fasting.py` now contains no jurisdiction data at all -- only +seasons and the rule. + +### Chasing the last stragglers: 99.4% -> 99.9% + +Working through the 22 that survived turned up one substantive bug and several +small ones. + +**Four `greek` rows were forcing fast-free on days GOA fasts.** May 7, May 11, +Jul 26 and Oct 1 carried `fast_exception = 11`, set by the August 2026 pass that +corrected nine stale rows -- **from antiochian.org**, before this tradition was +settled as GOA. Index 11 short-circuits the whole rule, so those dates were +fast-free even on a Wednesday or Friday, where GOA gives wine and oil. Zeroing +them lets the Paschal row supply the fast level again, which is weekday-aware; +three of the four then also needed adding to `GREEK_WINE_OIL_DATES`. That August +table is worth re-reading in full: it is the same jurisdictional mismatch as the +Nativity boundary and the Apostles' fast, and it had been sitting in the data +for a fortnight. + +**`(2, 9)` was in two lists at once**, both `GREEK_WINE_OIL_DATES` and +`GREEK_STRICT_DATES`, so the grant silently won. GOA gives strict on two of the +three Wednesday/Friday observations, so it belongs only in the latter. + +**Peter and Paul and St Philip keep fish**, against the Wednesday/Friday cap -- +three observations each, fish every time. Both sit on a fast boundary, which is +the likeliest reason though two feasts cannot establish it. They needed +different mechanisms: Peter and Paul already claims fish, so exempting it from +the cap suffices, while our Philip row claims only wine and oil, so there is +nothing for an exemption to protect and `GREEK_FISH_DATES` grants it outright. + +### The five that remain, and why they stay + +| date | | | +|---|---|---| +| 2026-02-24, 2034-02-24, 2033-03-09 | Clean Week | `fast_exception = 10`, "no overrides", caps the grant. GOA relaxes the Finding of the Forerunner's Head and the Forty Martyrs even then. Letting a fixed-date grant through a sentinel that exists precisely to stop overrides is not a change to make for three days in ten years. | +| 2029-02-09 | GOA's own inconsistency | Feb 9 is strict on two of its three Wednesday/Friday occurrences and wine and oil on this one. | +| 2031-05-21 | GOA's own inconsistency | The Leavetaking of Pascha is fish on nine of its ten Wednesdays and wine and oil on this one. | + +Two of the five are goarch.org disagreeing with itself, so **99.9% is close to +the ceiling this data supports.** Chasing further would mean fitting our +calendar to their noise. + +### What the earlier three-year pass had said the remaining 53 were + +**36 -- per-date wine and oil grants we lack.** GOA lifts an ordinary Wednesday +or Friday to wine and oil for a large set of saints: Barbara, Spyridon, +Eleutherius, the Prophet Daniel, Mary Magdalene, the Chains of Peter, and +twenty-odd more. Their `feast_level` in our data ranges over 0, 2, 3 and 4, so +no threshold picks them out -- consistent with the rank grants failing. + +These are only *visible* on Wednesday and Friday, because on any other weekday +an ordinary-time day is already fast-free. A given date lands on Wed or Fri in +roughly 2 years out of 7, so **three years of data exposes only about a third of +the list.** Fully enumerating it needs on the order of ten years of harvest. +Inside the fasting seasons the problem does not arise -- every day is a fast +day, so Dec 15 shows up in all four harvested Decembers. + +**8 -- fish capped to wine and oil on ordinary Wed/Fri.** With three years the +confound noted earlier is broken: 2028-01-07 is a **Friday** that keeps fish, +and 2027-01-20, 2027-10-06 and 2028-11-08 are **Wednesdays** that are capped. So +it is not a weekday rule. Every capped day is `feast_level` 5 -- *higher* than +several days that keep fish -- so it is not a rank rule either: + +| GOA keeps fish | GOA caps to wine and oil | +|---|---| +| Nativity of the Theotokos (7), Meeting (8) | Three Hierarchs (5), John the Theologian (5) | +| Midfeast, Leavetaking of Pascha (0-4) | Chrysostom (5), Euthymius (5), Thomas (5) | +| Synaxis of the Forerunner (3) | Archangel Michael (5) | + +The discriminator is **what kind of feast it is** -- of the Lord or of the +Theotokos, versus a saint -- which is exactly Chapter X's wording, except that +GOA does not honour its "or one of the 12 Apostles" clause: John the Theologian +and Thomas are both capped. Our schema has no Lord/Theotokos/saint category, so +this cannot be expressed today. `feast_level >= 7` catches the two great feasts +but would wrongly cap the Midfeast, the Leavetaking of Pascha and the Synaxis of +the Forerunner -- fixing 7 days and breaking 8. + +**The remaining 9** are one-offs with no pattern yet: 5 wine-and-oil-to-strict, +2 fish-to-strict, 2 fast-free-to-wine-and-oil. + +### Clause 4, afterfeasts: confirmed by GOA too + +**goarch.org does not apply it either**, which settles the question the earlier +Antiochian measurement left open. Inside the Theophany afterfeast, Jan 9 2026 is +`strict-fast`; inside the Exaltation's, Sep 16 and Sep 18 2026 are both +`strict-fast`; inside the Nativity of the Theotokos', Sep 11 is `strict-fast`. +Strict is what this app already gives. No code needed, and the section below +stands as originally written. + +### Clause 4, afterfeasts: measured against Antioch + +Chapter X's last clause reads "During the days following a feast of the Lord or +the Theotokos until its leavetaking except during Great Lent and the Fast of the +Theotokos." Taking the afterfeast spans from each feast to its leavetaking -- +Theophany Jan 7-14, Meeting Feb 3-9, Dormition Aug 16-23, Nativity of the +Theotokos Sep 9-12, Exaltation Sep 15-21, Entry Nov 22-25, plus Ascension and +Pentecost -- it would lift about **ten Wednesdays and Fridays a year** to fish, +a similar size to the Paschal clause. The rule's own exclusions behave +correctly: the Transfiguration's afterfeast falls inside the Dormition fast and +the Annunciation's inside Lent, and both drop out. + +**antiochian.org does not apply it.** On 56 afterfeast Wednesdays and Fridays +outside Lent and Dormition, their calendar gives **strict on 43, and fish on +2**: + +| afterfeast | antiochian.org | +|---|---| +| Theophany | strict 11, wine+oil 3, fish 2 | +| Meeting | strict 10, no fast 3, wine+oil 1 | +| Entry | strict 6, wine+oil 3 | +| Exaltation | strict 6 | +| Dormition | strict 5 | +| Nativity of the Theotokos | strict 5, wine+oil 1 | + +Strict is what this app already gives, so implementing the clause would move us +*away* from the only practice data available. That is the reverse of the Paschal +clause, where Antioch goes further than the typikon rather than less far, and +our wine and oil was clearly too strict. + +Either the clause is monastic rather than pastoral, or it is read more narrowly +than the plain text suggests. **Held for goarch.org**: if GOA gives fish on +afterfeast Wednesdays and Fridays, implement it; if strict, we are already +right and the clause needs no code. + +### The Paschal-season candidate, and who it applies to + +A Paschal-season fish allowance was raised earlier and withdrawn, on the grounds +that OCA's guidelines give no such allowance. For the **Greek** tradition the +Antiochian typikon is explicit, and its own calendar bears it out: + +| Wed/Fri, Thomas Sunday to Pentecost | | +|---|---| +| Antiochian typikon | fish, and per the Synod footnote no fast at all | +| antiochian.org | "no fast" on 19 of 28 harvested days | +| **this app** | wine and oil on 20 of 28 -- agreeing on **3 of 28** | + +Withdrawing it was right for Slavic and wrong for Greek. + +## Does the GOA publish a typikon? Not reachable, but its rules are (2026-09-09) + +goarch.org is behind Cloudflare and returns 403 to any fetch. The Archdiocese's +rules are published in its annual Yearbook, and three GOA parishes reproduce +them with attribution; all three agree: + +> "Nativity Lent (November 15-December 24, although fish, wine and olive oil are +> permitted, except on Wednesdays and Fridays, **until December 17**)." + +**This app starts the Greek Nativity fast's stricter period on December 13** +(`pdist >= nativity - 12`). That date came from two *Antiochian* parish sources +when the Greek fasting work was done (`docs/greek-fasting.md`), before the +decision that `greek` means GOA. GOA's own rule is five days later: + +| 2026 | ours | GOA | +|---|---|---| +| Dec 13-17 | strict period | still fish, wine and oil | +| Dec 18 onward | strict period | strict period | + +So five days a year are stricter than GOA prescribes. **Not changed** -- the +sources are three parish reproductions of the Yearbook rather than the Yearbook +itself, and `docs/greek-fasting.md` records real Antiochian sources for the +current date. What it needs is a decision about which jurisdiction the `greek` +tradition follows for fasting, given that it follows GOA for readings. + +**Answered 2026-09-09: GOA, for fasting as for readings.** Brian's call, and the +Nativity boundary is now measured from the Archdiocese's own calendar rather +than from Antiochian sources. Antioch's fast-free Paschal season is explicitly +*not* adopted -- it appears to be unique to them, and is a nice-to-have for a +possible Antiochian tradition later. + +### Settled since + +`Season.apply_grants` was the last open item here. It has now been measured +against goarch.org and **fails** -- see "Ch. 33's rank clause" above. It stays +`False`, and the grants stay in `_CH33_GRANTS` as a recorded reading of the +typikon that practice does not bear out, not as pending work. + ## What is deliberately *not* in scope The rank questions that surfaced during the investigation are behaviour @@ -103,4 +830,8 @@ express them cleanly: and whether vigil rank (level 5) should take fish. The Typikon text OCA quotes uses exactly those two ranks, but scoped to the Apostles' and Nativity fasts. - Implementing that Typikon rule inside those two fasts, where it *is* stated. - The current code there only ever reduces an exception, never grants one. + The current code there only ever reduces an exception, never grants one, and + the section above confirms level 3 behaves exactly like level 0 there. This is + the best-evidenced of the three and the natural first behaviour change once + the refactor lands -- but it is still a behaviour change, and belongs in its + own commit with the characterisation diff visible. diff --git a/docs/greek-fasting.md b/docs/greek-fasting.md index a590058d..feb19130 100644 --- a/docs/greek-fasting.md +++ b/docs/greek-fasting.md @@ -27,6 +27,59 @@ dedicated fasting-rules chapter, so don't expect a clean day-by-day table -- search for specific terms (a saint's name, "Great Canon," "Wednesdays and Fridays," etc.) rather than a single section. +## GOA vs Antioch, head to head (2026-09-10) + +Every other comparison in this file and in `docs/fasting-refactor-scope.md` +measures *this app* against a jurisdiction. That conflates our errors with their +divergence, and it repeatedly made the two look further apart than they are -- +an earlier note here put "our Greek model vs Antioch" at 14% and described it as +a jurisdictional gap, which Brian rightly doubted. `tools/fasting/goa_vs_antioch.py` +puts the two published calendars side by side instead. + +**374 of 396 shared days agree -- 94.4%.** They share the Typikon of the Great +Church and it shows. + +**Half the gap is one rule.** Eleven of the 22 are the Paschal season, and the +shape is unmistakable: + +| Wed/Fri | GOA | Antioch | +|---|---|---| +| Pascha to Ascension (pdist 10-38) | wine and oil, fish on Lord feasts | **no fast at all** | +| after Ascension (pdist 40-47) | wine and oil | **strict** | + +That is the decree of the Holy Synod of Antioch recorded in footnote 343 to +Chapter X, behaving exactly as written: more lenient than GOA up to Ascension, +stricter after it. GOA simply keeps its ordinary Wednesday and Friday allowance +across the whole season. + +**Five are Holy Week and Lent, and there Antioch is stricter** -- and finer +grained. It uses a "wine but not oil" level that GOA's five colours have no +category for: + +| | GOA | Antioch | +|---|---|---| +| Great and Holy Saturday | strict | wine only | +| Great and Holy Thursday | wine and oil | wine only | +| Monday of the 5th week | strict | wine only | + +Two of those three are a difference in granularity rather than in substance. + +**The remaining six are per-date judgements** -- the Leavetaking of Theophany, +the Great Canon, the Nativity of the Forerunner, and three ordinary Wednesdays +and Fridays. + +### What this means for us + +This app follows GOA and matches it on 3678 of 3683 days. It therefore sits at +roughly 94% against Antioch **by construction**, and that residue is Antioch +diverging from GOA rather than an error here -- worth knowing if the app is ever +reported as disagreeing with an Antiochian parish calendar. + +It is also the starting point if an Antiochian tradition is ever added: the +Paschal decree and the wine-only rung would cover most of the distance, and both +are already expressible -- `DietaryAllowance.WineOnly` exists and the season +model takes a floor per weekday. + ## Findings, by fast ### Nativity Fast (Nov 15 - Dec 24) -- genuine, confirmed structural difference @@ -45,23 +98,51 @@ the OCA-modeled pattern our code already implemented: **Phase 2, the "stricter period"** - Slavic: starts ~5 days out (`nativity-6` to `nativity-1`), only removes fish -- Tue/Thu keep their wine+oil allowance throughout. -- Greek: starts **Dec 13** (`nativity-12`), a full week earlier, and is - stricter -- wine+oil is restricted to Sat/Sun only, so Mon/Tue/Thu drop to - full strictness (same as Wed/Fri), not just losing fish. - -One general Antiochian summary found early in the research contradicted this -(grouping Monday with Wed/Fri, same as Slavic) -- judged to be an imprecise -generalization, since it's contradicted by two independent sources that are -specific to the Nativity Fast and agree with each other exactly. - -### Apostles' Fast -- no difference found - -A dedicated Antiochian source states explicitly: Mon/Wed/Fri strict, Tue/Thu -wine+oil, Sat/Sun fish -- identical to the Slavic/OCA pattern our code -already implements. Notable: it's specifically the Nativity Fast's first -phase that's unusually lenient in Greek practice, not a general "Greek fasts -are more lenient" pattern -- the Apostles' Fast (sharing the exact same -weekly structure) shows no such leniency in either tradition. +- Greek: starts **Dec 12** (`nativity-13`) and is stricter -- fish goes + entirely, wine+oil is restricted to Sat/Sun, so Mon/Tue/Thu drop to full + strictness (same as Wed/Fri) rather than just losing fish. + +**This date has been wrong twice; it is now measured, not inferred.** + +| | source | value | +|---|---|---| +| originally | two Antiochian parish pages | Dec 13 (`nativity-12`) | +| 2026-09-09, briefly | a summary of the GOA Yearbook | Dec 18 (`nativity-7`) | +| **now** | **goarch.org's own calendar** | **Dec 12 (`nativity-13`)** | + +The Yearbook line -- "fish, wine and olive oil are permitted, except on +Wednesdays and Fridays, until December 17" -- is reproduced by three GOA +parishes and reads unambiguously, but the Archdiocese's own published calendar +does not match it. December 2027 pins the real boundary exactly, because it +falls across a weekend: **Dec 11 is a Saturday and still `fasting-fish`, Dec 12 +is a Sunday and only `grapes`.** Both are weekend days, so nothing but the +phase boundary separates them. 2025 and 2026 agree. + +The lesson is the one this project keeps relearning: a jurisdiction's prose +summary of its own rule is not evidence about its practice. See +`data/goarch_fasting.json` and `tools/fasting/goarch_audit.py`. + +### Apostles' Fast -- GOA is far lighter (corrected 2026-09-09) + +**This section previously read "no difference found".** That rested on a +dedicated Antiochian source stating Mon/Wed/Fri strict, Tue/Thu wine and oil, +Sat/Sun fish -- identical to the Slavic/OCA pattern, and identical to Typikon +Ch. 33. goarch.org disproves it: + +| | Mon | Tue | Wed | Thu | Fri | Sat | Sun | +|---|---|---|---|---|---|---|---| +| Slavic (Ch. 33) | strict | wine+oil | strict | wine+oil | strict | fish | fish | +| **GOA** | **fish** | **fish** | strict | **fish** | strict | fish | fish | + +GOA keeps **fish every day except Wednesday and Friday**, which stay strict -- +the same shape as its Nativity fast's first phase. Measured across the whole of +the 2026 and 2028 fasts, three weeks each, agreeing on every single day. (2027's +fast is one day long and says nothing either way.) Implemented as +`APOSTLES_GREEK`; it accounted for 18 of the differences in the goarch audit. + +The earlier conclusion was not carelessly drawn -- it had a real source -- but +that source was Antiochian, and this tradition follows GOA. It is the same +mistake the Nativity boundary made twice. ### Dormition Fast (Aug 1-14) -- no difference found @@ -268,6 +349,16 @@ values (no other fields touched). Slavic tradition's own Aug 28 row (Ven. Job of Pochaev, polyeleos rank) was left untouched -- that exception has an actual feast-rank basis and wasn't part of this bug. +**Superseded 2026-09-10.** Every one of these nine was corrected *from +antiochian.org*, which this tradition does not follow -- see the jurisdiction +note at the top of this file. Re-checked against goarch.org over ten years, five +were wrong: May 7, May 11, Jul 26 and Oct 1 were set to No Fast (11), which +short-circuits the fasting rule entirely and made them fast-free even on +Wednesdays and Fridays, where GOA gives wine and oil; and Dec 13 was set to Wine +& Oil (1) to prop up the old phase boundary. All five are now zeroed, letting +the season and the Paschal row decide. The four set to Strict (0) -- Mar 31, Jul +15, Aug 28, Sep 25 -- check out against GOA and are left alone. + **Not investigated further**: whether other `greek`-tradition rows (not matching this exact blank-placeholder shape) have similar staleness -- this pass only searched for the specific pattern that surfaced the bug. diff --git a/fixtures/calendarium.json b/fixtures/calendarium.json index ffac7ca2..6e055ffe 100644 --- a/fixtures/calendarium.json +++ b/fixtures/calendarium.json @@ -16,7 +16,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -36,7 +37,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -56,7 +58,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -76,7 +79,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -96,7 +100,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -116,7 +121,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -136,7 +142,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -156,7 +163,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -176,7 +184,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -196,7 +205,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -216,7 +226,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -236,7 +247,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -256,7 +268,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -276,7 +289,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -296,7 +310,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -316,7 +331,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -336,7 +352,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -356,7 +373,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -376,7 +394,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -396,7 +415,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -416,7 +436,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -436,7 +457,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -456,7 +478,8 @@ "fast": 1, "fast_exception": 7, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -476,7 +499,8 @@ "fast": 1, "fast_exception": 7, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -496,7 +520,8 @@ "fast": 1, "fast_exception": 7, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -516,7 +541,8 @@ "fast": 1, "fast_exception": 7, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -536,7 +562,8 @@ "fast": 1, "fast_exception": 7, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -556,7 +583,8 @@ "fast": 1, "fast_exception": 7, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -576,7 +604,8 @@ "fast": 1, "fast_exception": 7, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -596,7 +625,8 @@ "fast": 2, "fast_exception": 10, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -616,7 +646,8 @@ "fast": 2, "fast_exception": 10, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -636,7 +667,8 @@ "fast": 2, "fast_exception": 10, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -656,7 +688,8 @@ "fast": 2, "fast_exception": 10, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -676,7 +709,8 @@ "fast": 2, "fast_exception": 10, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -696,7 +730,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -716,7 +751,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -736,7 +772,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -756,7 +793,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -776,7 +814,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -796,7 +835,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -816,7 +856,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -836,7 +877,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -856,7 +898,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -876,7 +919,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -896,7 +940,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -916,7 +961,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -936,7 +982,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -956,7 +1003,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -976,7 +1024,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -996,7 +1045,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1016,7 +1066,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1036,7 +1087,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1056,7 +1108,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1076,7 +1129,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1096,7 +1150,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1116,7 +1171,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1136,7 +1192,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1156,7 +1213,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1176,7 +1234,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1196,7 +1255,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1216,7 +1276,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1236,7 +1297,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1256,7 +1318,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1276,7 +1339,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1296,7 +1360,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1316,7 +1381,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1336,7 +1402,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1356,7 +1423,8 @@ "fast": 2, "fast_exception": 6, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1376,7 +1444,8 @@ "fast": 2, "fast_exception": 4, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1396,7 +1465,8 @@ "fast": 2, "fast_exception": 10, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1416,7 +1486,8 @@ "fast": 2, "fast_exception": 10, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1436,7 +1507,8 @@ "fast": 2, "fast_exception": 10, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1456,7 +1528,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1476,7 +1549,8 @@ "fast": 2, "fast_exception": 9, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1496,7 +1570,8 @@ "fast": 2, "fast_exception": 5, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1516,7 +1591,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1536,7 +1612,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1556,7 +1633,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1576,7 +1654,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1596,7 +1675,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1616,7 +1696,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1636,7 +1717,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1656,7 +1738,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1676,7 +1759,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1696,7 +1780,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1716,7 +1801,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1736,7 +1822,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1756,7 +1843,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1776,7 +1864,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1796,7 +1885,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1816,7 +1906,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1836,7 +1927,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1856,7 +1948,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1876,7 +1969,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1896,7 +1990,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1916,7 +2011,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1936,7 +2032,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1956,7 +2053,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1976,7 +2074,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -1996,7 +2095,8 @@ "fast": 1, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2016,7 +2116,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2036,7 +2137,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2056,7 +2158,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2076,7 +2179,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2096,7 +2200,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2116,7 +2221,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2136,7 +2242,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2156,7 +2263,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2176,7 +2284,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2196,7 +2305,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2216,7 +2326,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2236,7 +2347,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2256,7 +2368,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2276,7 +2389,8 @@ "fast": 1, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2296,7 +2410,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2316,7 +2431,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2336,7 +2452,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2356,7 +2473,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2376,7 +2494,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2396,7 +2515,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2416,7 +2536,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2436,7 +2557,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2456,7 +2578,8 @@ "fast": 1, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2476,7 +2599,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2496,7 +2620,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2516,7 +2641,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2536,7 +2662,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2556,7 +2683,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2576,7 +2704,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2596,7 +2725,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2616,7 +2746,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2636,7 +2767,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2656,7 +2788,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2676,7 +2809,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2696,7 +2830,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2716,7 +2851,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2736,7 +2872,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2756,7 +2893,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2776,7 +2914,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2796,7 +2935,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2816,7 +2956,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2836,7 +2977,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2856,7 +2998,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2876,7 +3019,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2896,7 +3040,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2916,7 +3061,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2936,7 +3082,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2956,7 +3103,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2976,7 +3124,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -2996,7 +3145,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3016,7 +3166,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3036,7 +3187,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3056,7 +3208,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3076,7 +3229,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3096,7 +3250,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3116,7 +3271,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3136,7 +3292,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3156,7 +3313,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3176,7 +3334,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3196,7 +3355,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3216,7 +3376,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3236,7 +3397,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3256,7 +3418,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3276,7 +3439,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3296,7 +3460,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3316,7 +3481,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3336,7 +3502,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3356,7 +3523,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3376,7 +3544,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3396,7 +3565,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3416,7 +3586,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3436,7 +3607,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3456,7 +3628,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3476,7 +3649,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3496,7 +3670,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3516,7 +3691,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3536,7 +3712,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3556,7 +3733,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3576,7 +3754,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3596,7 +3775,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3616,7 +3796,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3636,7 +3817,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3656,7 +3838,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3676,7 +3859,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3696,7 +3880,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3716,7 +3901,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3736,7 +3922,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3756,7 +3943,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3776,7 +3964,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3796,7 +3985,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3816,7 +4006,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3836,7 +4027,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3856,7 +4048,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3876,7 +4069,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3896,7 +4090,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3916,7 +4111,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3936,7 +4132,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3956,7 +4153,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3976,7 +4174,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -3996,7 +4195,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4016,7 +4216,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4036,7 +4237,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4056,7 +4258,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4076,7 +4279,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4096,7 +4300,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4116,7 +4321,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4136,7 +4342,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4156,7 +4363,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4176,7 +4384,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4196,7 +4405,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4216,7 +4426,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4236,7 +4447,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4256,7 +4468,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4276,7 +4489,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4296,7 +4510,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4316,7 +4531,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4336,7 +4552,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4356,7 +4573,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4376,7 +4594,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4396,7 +4615,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4416,7 +4636,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4436,7 +4657,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4456,7 +4678,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4476,7 +4699,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4496,7 +4720,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4516,7 +4741,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4536,7 +4762,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4556,7 +4783,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4576,7 +4804,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4596,7 +4825,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4616,7 +4846,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4636,7 +4867,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4656,7 +4888,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4676,7 +4909,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4696,7 +4930,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4716,7 +4951,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4736,7 +4972,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4756,7 +4993,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4776,7 +5014,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4796,7 +5035,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4816,7 +5056,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4836,7 +5077,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4856,7 +5098,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4876,7 +5119,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4896,7 +5140,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4916,7 +5161,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4936,7 +5182,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4956,7 +5203,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4976,7 +5224,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -4996,7 +5245,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5016,7 +5266,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5036,7 +5287,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5056,7 +5308,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5076,7 +5329,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5096,7 +5350,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5116,7 +5371,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5136,7 +5392,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5156,7 +5413,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5176,7 +5434,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5196,7 +5455,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5216,7 +5476,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5236,7 +5497,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5256,7 +5518,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5276,7 +5539,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5296,7 +5560,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5316,7 +5581,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5336,7 +5602,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5356,7 +5623,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5376,7 +5644,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5396,7 +5665,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5416,7 +5686,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5436,7 +5707,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5456,7 +5728,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5476,7 +5749,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5496,7 +5770,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5516,7 +5791,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5536,7 +5812,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5556,7 +5833,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5576,7 +5854,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5596,7 +5875,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5616,7 +5896,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5636,7 +5917,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5656,7 +5938,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5676,7 +5959,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5696,7 +5980,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5716,7 +6001,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5736,7 +6022,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5756,7 +6043,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5776,7 +6064,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5796,7 +6085,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5816,7 +6106,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5836,7 +6127,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5856,7 +6148,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5876,7 +6169,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5896,7 +6190,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5916,7 +6211,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5936,7 +6232,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5956,7 +6253,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5976,7 +6274,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -5996,7 +6295,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6016,7 +6316,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6036,7 +6337,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6056,7 +6358,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6076,7 +6379,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6096,7 +6400,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6116,7 +6421,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6136,7 +6442,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6156,7 +6463,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6176,7 +6484,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6196,7 +6505,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6216,7 +6526,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6236,7 +6547,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6256,7 +6568,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6276,7 +6589,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6296,7 +6610,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6316,7 +6631,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6336,7 +6652,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6356,7 +6673,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6376,7 +6694,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6396,7 +6715,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6416,7 +6736,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6436,7 +6757,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6456,7 +6778,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6476,7 +6799,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6496,7 +6820,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6516,7 +6841,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6536,7 +6862,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6556,7 +6883,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6576,7 +6904,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6596,7 +6925,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6616,7 +6946,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6636,7 +6967,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6656,7 +6988,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6676,7 +7009,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6696,7 +7030,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6716,7 +7051,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6736,7 +7072,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6756,7 +7093,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6776,7 +7114,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6796,7 +7135,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6816,7 +7156,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6836,7 +7177,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6856,7 +7198,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6876,7 +7219,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6896,7 +7240,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6916,7 +7261,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6936,7 +7282,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6956,7 +7303,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6976,7 +7324,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -6996,7 +7345,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7016,7 +7366,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7036,7 +7387,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7056,7 +7408,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7076,7 +7429,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7096,7 +7450,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7116,7 +7471,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7136,7 +7492,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7156,7 +7513,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7176,7 +7534,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7196,7 +7555,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7216,7 +7576,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7236,7 +7597,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7256,7 +7618,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7276,7 +7639,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7296,7 +7660,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7316,7 +7681,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7336,7 +7702,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7356,7 +7723,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7376,7 +7744,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7396,7 +7765,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7416,7 +7786,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7436,7 +7807,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7456,7 +7828,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7476,7 +7849,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7496,7 +7870,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7516,7 +7891,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7536,7 +7912,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7556,7 +7933,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7576,7 +7954,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7596,7 +7975,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7616,7 +7996,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7636,7 +8017,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7656,7 +8038,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7676,7 +8059,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7696,7 +8080,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7716,7 +8101,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7736,7 +8122,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7756,7 +8143,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7776,7 +8164,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7796,7 +8185,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7816,7 +8206,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7836,7 +8227,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7856,7 +8248,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7876,7 +8269,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7896,7 +8290,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7916,7 +8311,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7936,7 +8332,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7956,7 +8353,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7976,7 +8374,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -7996,7 +8395,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8016,7 +8416,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8036,7 +8437,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8056,7 +8458,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8076,7 +8479,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8096,7 +8500,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8116,7 +8521,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8136,7 +8542,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8156,7 +8563,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8176,7 +8584,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8196,7 +8605,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8216,7 +8626,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8236,7 +8647,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8256,7 +8668,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8276,7 +8689,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8296,7 +8710,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8316,7 +8731,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8336,7 +8752,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8356,7 +8773,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8376,7 +8794,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8396,7 +8815,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8416,7 +8836,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8436,7 +8857,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8456,7 +8878,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8476,7 +8899,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8496,7 +8920,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8516,7 +8941,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8536,7 +8962,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8556,7 +8983,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8576,7 +9004,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8596,7 +9025,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8616,7 +9046,8 @@ "fast": 1, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8636,7 +9067,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8656,7 +9088,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8676,7 +9109,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8696,7 +9130,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8716,7 +9151,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8736,7 +9172,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8756,7 +9193,8 @@ "fast": 1, "fast_exception": 9, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8776,7 +9214,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8796,7 +9235,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8816,7 +9256,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8836,7 +9277,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8856,7 +9298,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8876,7 +9319,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8896,7 +9340,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8916,7 +9361,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8936,7 +9382,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8956,7 +9403,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8976,7 +9424,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -8996,7 +9445,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9016,7 +9466,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9036,7 +9487,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9056,7 +9508,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9076,7 +9529,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9096,7 +9550,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9116,7 +9571,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9136,7 +9592,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9156,7 +9613,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9176,7 +9634,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9196,7 +9655,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9216,7 +9676,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9236,7 +9697,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9256,7 +9718,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9276,7 +9739,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9296,7 +9760,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9316,7 +9781,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9336,7 +9802,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9356,7 +9823,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9376,7 +9844,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -9396,7 +9865,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9416,7 +9886,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9436,7 +9907,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9456,7 +9928,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9476,7 +9949,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9496,7 +9970,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9516,7 +9991,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9536,7 +10012,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9556,7 +10033,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9576,7 +10054,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9596,7 +10075,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9616,7 +10096,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9636,7 +10117,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9656,7 +10138,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9676,7 +10159,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9696,7 +10180,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9716,7 +10201,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9736,7 +10222,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9756,7 +10243,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9776,7 +10264,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9796,7 +10285,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9816,7 +10306,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9836,7 +10327,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9856,7 +10348,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9876,7 +10369,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9896,7 +10390,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9916,7 +10411,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9936,7 +10432,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9956,7 +10453,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9976,7 +10474,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -9996,7 +10495,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10016,7 +10516,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10036,7 +10537,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10056,7 +10558,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10076,7 +10579,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10096,7 +10600,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10116,7 +10621,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10136,7 +10642,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10156,7 +10663,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10176,7 +10684,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10196,7 +10705,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10216,7 +10726,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10236,7 +10747,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10256,7 +10768,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10276,7 +10789,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10296,7 +10810,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10316,7 +10831,8 @@ "fast": 0, "fast_exception": 4, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10336,7 +10852,8 @@ "fast": 0, "fast_exception": 3, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10356,7 +10873,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10376,7 +10894,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10396,7 +10915,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10416,7 +10936,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10436,7 +10957,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -10456,7 +10978,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10476,7 +10999,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10496,7 +11020,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10516,7 +11041,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10536,7 +11062,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10556,7 +11083,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10576,7 +11104,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10596,7 +11125,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10616,7 +11146,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10636,7 +11167,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10656,7 +11188,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10676,7 +11209,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10696,7 +11230,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10716,7 +11251,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10736,7 +11272,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10756,7 +11293,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10776,7 +11314,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10796,7 +11335,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10816,7 +11356,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10836,7 +11377,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10856,7 +11398,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10876,7 +11419,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10896,7 +11440,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10916,7 +11461,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10936,7 +11482,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10956,7 +11503,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10976,7 +11524,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -10996,7 +11545,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11016,7 +11566,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11036,7 +11587,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11056,7 +11608,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11076,7 +11629,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -11096,7 +11650,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -11116,7 +11671,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11136,7 +11692,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11156,7 +11713,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11176,7 +11734,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -11196,7 +11755,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11216,7 +11776,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11236,7 +11797,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11256,7 +11818,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -11276,7 +11839,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11296,7 +11860,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11316,7 +11881,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11336,7 +11902,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11356,7 +11923,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11376,7 +11944,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11396,7 +11965,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11416,7 +11986,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11436,7 +12007,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11456,7 +12028,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11476,7 +12049,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11496,7 +12070,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11516,7 +12091,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11536,7 +12112,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11556,7 +12133,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11576,7 +12154,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11596,7 +12175,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11616,7 +12196,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11636,7 +12217,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11656,7 +12238,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11676,7 +12259,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11696,7 +12280,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11716,7 +12301,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11736,7 +12322,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11756,7 +12343,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11776,7 +12364,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11796,7 +12385,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11816,7 +12406,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11836,7 +12427,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11856,7 +12448,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11876,7 +12469,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11896,7 +12490,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11916,7 +12511,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11936,7 +12532,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11956,7 +12553,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11976,7 +12574,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -11996,7 +12595,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12016,7 +12616,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12036,7 +12637,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12056,7 +12658,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12076,7 +12679,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12096,7 +12700,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12116,7 +12721,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12136,7 +12742,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12156,7 +12763,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12176,7 +12784,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12196,7 +12805,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12216,7 +12826,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12236,7 +12847,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12256,7 +12868,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12276,7 +12889,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12296,7 +12910,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12316,7 +12931,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12336,7 +12952,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12356,7 +12973,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -12376,7 +12994,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12396,7 +13015,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12416,7 +13036,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12436,7 +13057,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12456,7 +13078,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -12476,7 +13099,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12496,7 +13120,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12516,7 +13141,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12536,7 +13162,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12556,7 +13183,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -12576,7 +13204,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12596,7 +13225,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12616,7 +13246,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12636,7 +13267,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -12656,7 +13288,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12676,7 +13309,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12696,7 +13330,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12716,7 +13351,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12736,7 +13372,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -12756,7 +13393,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12776,7 +13414,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -12796,7 +13435,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12816,7 +13456,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12836,7 +13477,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12856,7 +13498,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12876,7 +13519,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12896,7 +13540,8 @@ "fast": 4, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12916,7 +13561,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12936,7 +13582,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12956,7 +13603,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12976,7 +13624,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -12996,7 +13645,8 @@ "fast": 4, "fast_exception": 4, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13016,7 +13666,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13036,7 +13687,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13056,7 +13708,8 @@ "fast": 4, "fast_exception": 4, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -13076,7 +13729,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13096,7 +13750,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13116,7 +13771,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13136,7 +13792,8 @@ "fast": 4, "fast_exception": 4, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13156,7 +13813,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13176,7 +13834,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13196,7 +13855,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13216,7 +13876,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13236,7 +13897,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13256,7 +13918,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13276,7 +13939,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13296,7 +13960,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13316,7 +13981,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13336,7 +14002,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13356,7 +14023,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13376,7 +14044,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13396,7 +14065,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13416,7 +14086,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13436,7 +14107,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -13456,7 +14128,8 @@ "fast": 1, "fast_exception": 8, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13476,7 +14149,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13496,7 +14170,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13516,7 +14191,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13536,7 +14212,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13556,7 +14233,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13576,7 +14254,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13596,7 +14275,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13616,7 +14296,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13636,7 +14317,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13656,7 +14338,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13676,7 +14359,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13696,7 +14380,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13716,7 +14401,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13736,7 +14422,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13756,7 +14443,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13776,7 +14464,8 @@ "fast": 1, "fast_exception": 8, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13796,7 +14485,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13816,7 +14506,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13836,7 +14527,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13856,7 +14548,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13876,7 +14569,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13896,7 +14590,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13916,7 +14611,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13936,7 +14632,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13956,7 +14653,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13976,7 +14674,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -13996,7 +14695,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -14016,7 +14716,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14036,7 +14737,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14056,7 +14758,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14076,7 +14779,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14096,7 +14800,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14116,7 +14821,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -14136,7 +14842,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14156,7 +14863,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14176,7 +14884,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14196,7 +14905,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14216,7 +14926,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14236,7 +14947,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14256,7 +14968,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14276,7 +14989,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14296,7 +15010,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14316,7 +15031,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14336,7 +15052,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14356,7 +15073,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14376,7 +15094,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14396,7 +15115,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14416,7 +15136,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14436,7 +15157,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14456,7 +15178,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14476,7 +15199,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14496,7 +15220,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14516,7 +15241,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14536,7 +15262,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14556,7 +15283,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14576,7 +15304,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14596,7 +15325,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14616,7 +15346,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14636,7 +15367,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14656,7 +15388,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14676,7 +15409,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14696,7 +15430,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14716,7 +15451,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -14736,7 +15472,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14756,7 +15493,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14776,7 +15514,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14796,7 +15535,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14816,7 +15556,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14836,7 +15577,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14856,7 +15598,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14876,7 +15619,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14896,7 +15640,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14916,7 +15661,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14936,7 +15682,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14956,7 +15703,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14976,7 +15724,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -14996,7 +15745,8 @@ "fast": 0, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15016,7 +15766,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15036,7 +15787,8 @@ "fast": 5, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15056,7 +15808,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15076,7 +15829,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15096,7 +15850,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15116,7 +15871,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15136,7 +15892,8 @@ "fast": 5, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15156,7 +15913,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15176,7 +15934,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -15196,7 +15955,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15216,7 +15976,8 @@ "fast": 5, "fast_exception": 1, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15236,7 +15997,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15256,7 +16018,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15276,7 +16039,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15296,7 +16060,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15316,7 +16081,8 @@ "fast": 5, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15336,7 +16102,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15356,7 +16123,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15376,7 +16144,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15396,7 +16165,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15416,7 +16186,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15436,7 +16207,8 @@ "fast": 5, "fast_exception": 2, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15456,7 +16228,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15476,7 +16249,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15496,7 +16270,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15516,7 +16291,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15536,7 +16312,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15556,7 +16333,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15576,7 +16354,8 @@ "fast": 5, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -15596,7 +16375,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15616,7 +16396,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15636,7 +16417,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15656,7 +16438,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15676,7 +16459,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15696,7 +16480,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15716,7 +16501,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -15736,7 +16522,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15756,7 +16543,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15776,7 +16564,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15796,7 +16585,8 @@ "fast": 5, "fast_exception": 9, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15816,7 +16606,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15836,7 +16627,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15856,7 +16648,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15876,7 +16669,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15896,7 +16690,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15916,7 +16711,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15936,7 +16732,8 @@ "fast": 0, "fast_exception": 11, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15956,7 +16753,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15976,7 +16774,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -15996,7 +16795,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16016,7 +16816,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16036,7 +16837,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16056,7 +16858,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16076,7 +16879,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16096,7 +16900,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16116,7 +16921,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16136,7 +16942,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16156,7 +16963,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16176,7 +16984,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16196,7 +17005,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16216,7 +17026,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16228,7 +17039,7 @@ "day": 0, "title": "", "subtitle": "", - "feast_name": "Saturday before Nativity – Eve of Nativity", + "feast_name": "Saturday before Nativity \u2013 Eve of Nativity", "feast_level": 0, "service": 0, "service_note": "", @@ -16236,7 +17047,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16248,7 +17060,7 @@ "day": 0, "title": "", "subtitle": "", - "feast_name": "Sunday before Nativity – Eve of Nativity", + "feast_name": "Sunday before Nativity \u2013 Eve of Nativity", "feast_level": 0, "service": 0, "service_note": "", @@ -16256,7 +17068,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16268,7 +17081,7 @@ "day": 0, "title": "", "subtitle": "", - "feast_name": "Saturday after Nativity – Saturday before Theophany", + "feast_name": "Saturday after Nativity \u2013 Saturday before Theophany", "feast_level": 0, "service": 0, "service_note": "", @@ -16276,7 +17089,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16296,7 +17110,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16316,7 +17131,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16336,7 +17152,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16356,7 +17173,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16376,7 +17194,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16396,7 +17215,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16416,7 +17236,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16436,7 +17257,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16456,7 +17278,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16468,7 +17291,7 @@ "day": 0, "title": "", "subtitle": "", - "feast_name": "Saturday before Theophany – Eve of Theophany", + "feast_name": "Saturday before Theophany \u2013 Eve of Theophany", "feast_level": 0, "service": 0, "service_note": "", @@ -16476,7 +17299,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16488,7 +17312,7 @@ "day": 0, "title": "", "subtitle": "", - "feast_name": "Sunday before Theophany – Eve of Theophany", + "feast_name": "Sunday before Theophany \u2013 Eve of Theophany", "feast_level": 0, "service": 0, "service_note": "", @@ -16496,7 +17320,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16516,7 +17341,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16536,7 +17362,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16556,7 +17383,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "common" + "tradition": "common", + "fast_cap_exempt": null } }, { @@ -16574,9 +17402,10 @@ "service_note": "", "story": null, "fast": 0, - "fast_exception": 11, + "fast_exception": 1, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16596,27 +17425,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" - } -}, -{ - "model": "calendarium.day", - "pk": 865, - "fields": { - "pdist": 999, - "month": 11, - "day": 24, - "title": "", - "subtitle": "", - "feast_name": "", - "feast_level": 2, - "service": 0, - "service_note": "", - "story": null, - "fast": 5, - "fast_exception": 0, - "flag": 0, - "tradition": "slavic" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16633,10 +17443,11 @@ "service": 0, "service_note": "", "story": null, - "fast": 0, - "fast_exception": 0, + "fast": null, + "fast_exception": null, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -16656,7 +17467,8 @@ "fast": 0, "fast_exception": 3, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -16676,7 +17488,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16696,7 +17509,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -16716,7 +17530,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16736,7 +17551,8 @@ "fast": 2, "fast_exception": 3, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -16756,7 +17572,8 @@ "fast": 2, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16776,7 +17593,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "slavic" + "tradition": "slavic", + "fast_cap_exempt": null } }, { @@ -16796,7 +17614,8 @@ "fast": 0, "fast_exception": 2, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16814,9 +17633,10 @@ "service_note": "", "story": null, "fast": 0, - "fast_exception": 11, + "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16836,7 +17656,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16856,7 +17677,8 @@ "fast": 4, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16876,7 +17698,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16896,7 +17719,8 @@ "fast": 5, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16916,7 +17740,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16936,7 +17761,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16956,7 +17782,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16974,9 +17801,10 @@ "service_note": "", "story": null, "fast": 0, - "fast_exception": 11, + "fast_exception": 1, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -16996,7 +17824,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -17016,7 +17845,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -17036,7 +17866,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -17056,7 +17887,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -17074,9 +17906,10 @@ "service_note": "", "story": null, "fast": 0, - "fast_exception": 11, + "fast_exception": 1, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -17096,7 +17929,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -17116,7 +17950,8 @@ "fast": 0, "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -17134,9 +17969,10 @@ "service_note": "", "story": null, "fast": 5, - "fast_exception": 1, + "fast_exception": 0, "flag": 0, - "tradition": "greek" + "tradition": "greek", + "fast_cap_exempt": null } }, { @@ -17154,8 +17990,996 @@ "service_note": "", "story": null, "fast": 5, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 900, + "fields": { + "pdist": 999, + "month": 9, + "day": 14, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, "fast_exception": 0, "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 901, + "fields": { + "pdist": 999, + "month": 1, + "day": 11, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 902, + "fields": { + "pdist": 999, + "month": 1, + "day": 14, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 903, + "fields": { + "pdist": 999, + "month": 1, + "day": 16, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 904, + "fields": { + "pdist": 999, + "month": 1, + "day": 18, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 905, + "fields": { + "pdist": 999, + "month": 1, + "day": 22, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 906, + "fields": { + "pdist": 999, + "month": 1, + "day": 25, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 907, + "fields": { + "pdist": 999, + "month": 1, + "day": 27, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 908, + "fields": { + "pdist": 999, + "month": 2, + "day": 8, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 910, + "fields": { + "pdist": 999, + "month": 2, + "day": 10, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 911, + "fields": { + "pdist": 999, + "month": 2, + "day": 11, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 912, + "fields": { + "pdist": 999, + "month": 2, + "day": 17, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 915, + "fields": { + "pdist": 999, + "month": 4, + "day": 7, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 0, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 916, + "fields": { + "pdist": 999, + "month": 4, + "day": 23, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 0, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 917, + "fields": { + "pdist": 999, + "month": 6, + "day": 8, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 918, + "fields": { + "pdist": 999, + "month": 6, + "day": 11, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 919, + "fields": { + "pdist": 999, + "month": 6, + "day": 30, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 920, + "fields": { + "pdist": 999, + "month": 7, + "day": 1, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 921, + "fields": { + "pdist": 999, + "month": 7, + "day": 2, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 922, + "fields": { + "pdist": 999, + "month": 7, + "day": 8, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 923, + "fields": { + "pdist": 999, + "month": 7, + "day": 17, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 924, + "fields": { + "pdist": 999, + "month": 7, + "day": 22, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 925, + "fields": { + "pdist": 999, + "month": 7, + "day": 25, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 926, + "fields": { + "pdist": 999, + "month": 7, + "day": 27, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 927, + "fields": { + "pdist": 999, + "month": 8, + "day": 16, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 0, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 928, + "fields": { + "pdist": 999, + "month": 8, + "day": 29, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 0, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 929, + "fields": { + "pdist": 999, + "month": 8, + "day": 31, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 930, + "fields": { + "pdist": 999, + "month": 9, + "day": 6, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 931, + "fields": { + "pdist": 999, + "month": 9, + "day": 9, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 932, + "fields": { + "pdist": 999, + "month": 9, + "day": 12, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 0, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 933, + "fields": { + "pdist": 999, + "month": 9, + "day": 20, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 934, + "fields": { + "pdist": 999, + "month": 9, + "day": 24, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 0, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 935, + "fields": { + "pdist": 999, + "month": 9, + "day": 28, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 0, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 936, + "fields": { + "pdist": 999, + "month": 10, + "day": 9, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 0, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 937, + "fields": { + "pdist": 999, + "month": 10, + "day": 23, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 938, + "fields": { + "pdist": 999, + "month": 11, + "day": 1, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 939, + "fields": { + "pdist": 999, + "month": 11, + "day": 12, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 940, + "fields": { + "pdist": 999, + "month": 11, + "day": 14, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 2, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": true + } +}, +{ + "model": "calendarium.day", + "pk": 941, + "fields": { + "pdist": 999, + "month": 12, + "day": 4, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 942, + "fields": { + "pdist": 999, + "month": 12, + "day": 5, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 943, + "fields": { + "pdist": 999, + "month": 12, + "day": 9, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 944, + "fields": { + "pdist": 999, + "month": 12, + "day": 12, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 945, + "fields": { + "pdist": 999, + "month": 12, + "day": 15, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 946, + "fields": { + "pdist": 999, + "month": 12, + "day": 17, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": 1, + "flag": 0, + "tradition": "greek", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 865, + "fields": { + "pdist": 999, + "month": 11, + "day": 24, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": null, + "flag": 0, + "tradition": "slavic", + "fast_cap_exempt": null + } +}, +{ + "model": "calendarium.day", + "pk": 947, + "fields": { + "pdist": 999, + "month": 1, + "day": 7, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": null, + "flag": 0, + "fast_cap_exempt": true, + "tradition": "greek" + } +}, +{ + "model": "calendarium.day", + "pk": 948, + "fields": { + "pdist": 999, + "month": 6, + "day": 29, + "title": "", + "subtitle": "", + "feast_name": "", + "feast_level": null, + "service": 0, + "service_note": "", + "story": null, + "fast": null, + "fast_exception": null, + "flag": 0, + "fast_cap_exempt": true, "tradition": "greek" } }, diff --git a/tools/fasting/characterize.py b/tools/fasting/characterize.py new file mode 100644 index 00000000..3044f16f --- /dev/null +++ b/tools/fasting/characterize.py @@ -0,0 +1,108 @@ +"""Pin the current fasting output, so a refactor can prove it changed nothing. + + docker compose run --rm local python tools/fasting/characterize.py --write + docker compose run --rm local python tools/fasting/characterize.py # analyse + +Writes calendarium/tests/data/fasting-characterization.txt, one line per day per +tradition, covering YEARS below. `test_fasting_characterization.py` regenerates +the same lines and asserts they match, so any behavioural drift shows up as a +readable diff rather than as a number moving somewhere. + +Why a golden file rather than assertions: the thing being characterised is a +combination rule nobody wrote down. `Day.fast_exception` is `max()` over an +integer that encodes a dietary rung, a precedence claim and a sentinel all at +once, and `_apply_fasting_adjustments` then patches whatever that gets wrong. +There is no spec to assert against -- only current behaviour, which has to be +preserved exactly through a refactor and then changed deliberately. +See docs/fasting-refactor-scope.md. + +Each line carries the *inputs* as well as the outputs: + + 2026-04-05 slavic w6 feast8 fast2 exc4 rows=0,4 -> meat,dairy,eggs + +so a diff shows not just that a day changed but which contributing rows and +which rank produced it. `rows` is the sorted fast_exception of every Day record +the date resolved to, before combination -- the raw material the refactor is +replacing. +""" +import os +import sys + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +os.chdir(sys.path[0]) + +import asyncio +import collections +import datetime + +import django + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'orthocal.settings') +django.setup() + +from calendarium import datetools # noqa: E402 +from calendarium.datetools import Tradition # noqa: E402 +from calendarium.liturgics import Day # noqa: E402 + +# Five years spans the whole Paschal range, so fixed dates land on many +# different pdists and weekdays. Pascha: Apr 20 2025, Apr 12 2026, Mar 28 2027, +# Apr 16 2028, Apr 8 2029. +YEARS = (2025, 2026, 2027, 2028, 2029) +PATH = 'calendarium/tests/data/fasting-characterization.txt' + + +async def lines(): + out = [] + for tradition, name in ((Tradition.Slavic, 'slavic'), (Tradition.Greek, 'greek')): + for year in YEARS: + date = datetime.date(year, 1, 1) + while date.year == year: + day = Day(date.year, date.month, date.day, tradition=tradition) + await day.ainitialize() + rows = ','.join(str(e) for e in sorted(d.fast_exception for d in day.days)) + abstain = ','.join( + datetools.fast_abstentions_for(day.fast_level, day.fast_exception)) + out.append( + f'{date.isoformat()} {name} w{day.weekday} feast{day.feast_level} ' + f'fast{day.fast_level} exc{day.fast_exception} rows={rows} ' + f'-> {abstain or "-"}' + ) + date += datetime.timedelta(days=1) + return out + + +async def main(write): + rendered = await lines() + + if write: + with open(PATH, 'w') as f: + f.write('\n'.join(rendered) + '\n') + print(f'wrote {len(rendered)} lines -> {PATH}') + + # What the pinned data actually covers, which is the point of looking at it + # before trusting it as a safety net. + combos = collections.Counter() + outcomes = collections.Counter() + by_rows = collections.defaultdict(set) + for line in rendered: + head, _, tail = line.partition(' -> ') + parts = head.split() + rows = parts[-1].removeprefix('rows=') + exc = parts[-2].removeprefix('exc') + combos[rows] += 1 + outcomes[tail] += 1 + by_rows[rows].add(exc) + + print(f'\n days pinned: {len(rendered)} ' + f'({len(YEARS)} years x 2 traditions)') + print(f' distinct row-collision patterns: {len(combos)}') + print(f' distinct dietary outcomes: {len(outcomes)}\n') + print(' collision patterns, by frequency:') + for rows, n in combos.most_common(): + excs = ','.join(sorted(by_rows[rows])) + multi = ' <-- resolves differently in different contexts' if len(by_rows[rows]) > 1 else '' + print(f' rows=({rows:<10}) {n:>5} days -> exc {excs}{multi}') + + +if __name__ == '__main__': + asyncio.run(main('--write' in sys.argv)) diff --git a/tools/fasting/goa_vs_antioch.py b/tools/fasting/goa_vs_antioch.py new file mode 100644 index 00000000..a563df15 --- /dev/null +++ b/tools/fasting/goa_vs_antioch.py @@ -0,0 +1,87 @@ +"""Compare the two Greek-tradition jurisdictions to each other, not to us. + + docker compose run --rm local python tools/fasting/goa_vs_antioch.py + +Every earlier comparison in this project measured *this app* against +antiochian.org, which conflates our errors with their divergence and made the +two jurisdictions look much further apart than they are. This puts their own +published calendars side by side. + +Last run 2026-09-10: **374/396, 94.4%**, on the days both sources cover. + +Sources: `data/goarch_fasting.json` (harvested; see tools/fasting/goarch_audit.py) +and `data/antiochian_raw/*.json`, whose `fastDesignation` is free text and is +mapped below. Antioch publishes a "wine but not oil" level that GOA's five +colours have no category for, so a handful of Holy Week days differ in +granularity rather than in substance. +""" +import os +import sys + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +os.chdir(sys.path[0]) + +import collections +import glob +import json + +GOARCH = 'data/goarch_fasting.json' +ANTIOCHIAN = 'data/antiochian_raw/*.json' + +GOA_CODES = {'S': 'strict', 'W': 'wine+oil', 'F': 'fish', + 'D': 'meat fast', 'N': 'no fast'} + +ANTIOCHIAN_DESIGNATIONS = { + 'ABSTAIN FROM MEAT, FISH, DAIRY, EGGS, WINE, OLIVE OIL': 'strict', + 'ABSTAIN FROM MEAT, FISH, DAIRY, EGGS, OLIVE OIL': 'wine only', + 'ABSTAIN FROM MEAT, FISH, DAIRY, EGGS': 'wine+oil', + 'ABSTAIN FROM MEAT, DAIRY, EGGS': 'fish', + 'ABSTAIN FROM MEAT': 'meat fast', + 'NO FAST': 'no fast', +} + + +def antiochian(): + out = {} + for path in glob.glob(ANTIOCHIAN): + with open(path) as f: + row = json.load(f) + date = (row.get('originalCalendarDate') or '')[:10] + level = ANTIOCHIAN_DESIGNATIONS.get( + (row.get('fastDesignation') or '').strip().upper()) + if date and level: + out[date] = level + return out + + +def main(): + with open(GOARCH) as f: + goa = json.load(f) + ant = antiochian() + + agree = 0 + differences = [] + for date, theirs in sorted(ant.items()): + year, month, day = date.split('-') + month_key = f'{year}-{month}' + if month_key not in goa: + continue + ours = GOA_CODES[goa[month_key][int(day) - 1]] + if ours == theirs: + agree += 1 + else: + differences.append((date, ours, theirs)) + + total = agree + len(differences) + print(f'\n GOA vs Antioch on {total} shared days: ' + f'{agree} agree ({100 * agree / total:.1f}%), {len(differences)} differ\n') + for (goa_level, ant_level), n in collections.Counter( + (d[1], d[2]) for d in differences).most_common(): + print(f' GOA={goa_level:<10} Antioch={ant_level:<10} {n}') + print('\n differences:') + for date, goa_level, ant_level in differences: + print(f' {date} GOA={goa_level:<10} Antioch={ant_level}') + + +if __name__ == '__main__': + main() diff --git a/tools/fasting/goarch_audit.py b/tools/fasting/goarch_audit.py new file mode 100644 index 00000000..f6653481 --- /dev/null +++ b/tools/fasting/goarch_audit.py @@ -0,0 +1,129 @@ +"""Score the Greek fasting rules against goarch.org's published calendar. + + docker compose run --rm local python tools/fasting/goarch_audit.py + +Reads data/goarch_fasting.json, which holds GOA's own daily fasting +designations, and compares them to what this app serves for +`Tradition.Greek`. Last run 2026-09-09: **257/276, 93.1%**. + +Harvesting more months, when it is needed +----------------------------------------- +goarch.org sits behind Cloudflare and returns 403 to every scripted fetch, so +this cannot be automated. The route that works, and it is cheap: + + 1. Open `https://www.goarch.org/chapel/calendar?month=M&year=YYYY + &viewStyle=GridView&viewType=ViewReadings` in a real browser and let the + user clear the interstitial once. + 2. From inside that page, `fetch()` further months same-origin -- the + clearance cookie is inherited, so one manual step buys a whole session. + +**The fasting level is not in the page text.** It is a CSS class on `div.day`, +which is why an earlier note claiming the grid's innerText carries the fasting +lines was wrong -- that is true of the readings, not of the fast: + + strict-fast -> strict grapes -> wine and oil + fasting-fish -> fish, wine, oil (none) -> fast free + fast-day -> dairy allowed, i.e. a meat fast + +`fast-day` is the trap in that list: it names the *mildest* level, not a fast +day in the ordinary sense, and it appears only in Cheesefare week. Reading it as +anything else silently mis-scores seven days a year. + +The mapping is confirmed by March 2026, where Lenten weekdays come out +`strict-fast`, weekends `grapes`, and the Annunciation `fasting-fish`. + +GOA's page publishes four buckets where `DietaryAllowance` has seven, so the +comparison is made at their granularity; `bucket()` below is the projection. +""" +import os +import sys + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +os.chdir(sys.path[0]) + +import asyncio +import collections +import datetime +import json + +import django + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'orthocal.settings') +django.setup() + +from calendarium.datetools import ( # noqa: E402 + DietaryAllowance as D, FastLevels, Tradition, + FAST_EXCEPTION_TO_DIETARY_ALLOWANCE as RUNG, +) +from calendarium.liturgics import Day # noqa: E402 + +PATH = 'data/goarch_fasting.json' +CODE = {'S': 'strict', 'W': 'wine+oil', 'F': 'fish', 'D': 'meat fast', + 'N': 'no fast'} +WEEKDAYS = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat') +SEASONS = {0: 'no fast', 1: 'ordinary', 2: 'Lent', 3: 'Apostles', + 4: 'Dormition', 5: 'Nativity'} + + +def bucket(rung): + """Project a DietaryAllowance onto the five buckets GOA publishes. + + Only `FastFree` is "no fast": `MeatFast` is Cheesefare week's dairy + allowance, which GOA labels separately. Collapsing the two scored all 21 + Cheesefare days in the harvest as differences when the app had them right. + + `WineOnly` -- Holy Saturday's wine without oil -- has no GOA counterpart, + and is scored as strict because that is the nearer of the two. + """ + if rung >= D.FastFree: + return 'no fast' + if rung >= D.MeatFast: + return 'meat fast' + if rung >= D.FishWineOil: + return 'fish' + if rung >= D.WineAndOil: + return 'wine+oil' + return 'strict' + + +async def main(): + with open(PATH) as f: + goa = json.load(f) + + agree = total = 0 + differences = [] + for month, codes in sorted(goa.items()): + if month.startswith('_'): + continue + year, mon = (int(x) for x in month.split('-')) + for index, code in enumerate(codes): + date = datetime.date(year, mon, index + 1) + day = Day(year, mon, date.day, tradition=Tradition.Greek) + await day.ainitialize() + + ours = ('no fast' if day.fast_level == FastLevels.NoFast + else bucket(RUNG[day.fast_exception])) + total += 1 + if ours == CODE[code]: + agree += 1 + else: + differences.append((date, WEEKDAYS[int(day.weekday)], ours, + CODE[code], day.feast_level, day.fast_level)) + + print(f'\n app (Greek) vs goarch.org: {agree}/{total} ' + f'({100 * agree / total:.1f}%)\n') + for (ours, theirs), n in collections.Counter( + (d[2], d[3]) for d in differences).most_common(): + print(f' ours={ours:<9} GOA={theirs:<9} {n}') + print() + for season, n in collections.Counter( + SEASONS.get(d[5], d[5]) for d in differences).most_common(): + print(f' {season:<10} {n}') + print('\n differences:') + for date, weekday, ours, theirs, feast_level, _ in differences: + print(f' {date} {weekday:<4} feast{feast_level} ' + f'ours={ours:<9} GOA={theirs}') + + +if __name__ == '__main__': + asyncio.run(main()) diff --git a/tools/fasting/prototype.py b/tools/fasting/prototype.py new file mode 100644 index 00000000..38913ddd --- /dev/null +++ b/tools/fasting/prototype.py @@ -0,0 +1,322 @@ +"""A mock-up of the explicit fasting model, measured against current behaviour. + + docker compose run --rm local python tools/fasting/prototype.py + +**Nothing here is wired into the app.** This exists so the shape can be looked +at, and so the claim "it reproduces what we do today" can be checked rather than +asserted. It resolves every day the characterisation test pins and compares its +answer to the live one at the *dietary rung* -- what a reader actually eats -- +rather than at the legacy index. + +The idea is to stop using `max()` over an integer that means three different +things, and say the rule out loud instead: + + a SEASON gives a floor per weekday, and a cap on how far a claim may lift it + a DATA ROW either CLAIMS a rung ("this date allows wine and oil") or + CAPS one ("this day is strict whatever else falls on it") + a RANK RULE may grant more, where a source states one + the answer is the most lenient claim, with every cap applied + +The claim/cap split is the piece the legacy integer hides. Holy Saturday allows +wine but *not* oil -- "on this one Saturday, alone among Saturdays of the year, +olive oil is not permitted" -- so it has to beat a saint's wine-and-oil claim +rather than lose to it, which most-lenient-wins alone gets wrong. + +Sources for each season's numbers are in docs/fasting-refactor-scope.md. +""" +import os +import sys + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +os.chdir(sys.path[0]) + +import asyncio +import collections +import datetime +from dataclasses import dataclass, field + +import django + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'orthocal.settings') +django.setup() + +from calendarium.datetools import ( # noqa: E402 + DietaryAllowance as D, FastLevels, Tradition, Weekday, + FAST_EXCEPTION_TO_DIETARY_ALLOWANCE as RUNG, +) +from calendarium.liturgics import Day # noqa: E402 + +# Set False to see what the Nativity Eve fix changes. +LEGACY = '--fixed' not in sys.argv + +SUN, MON, TUE, WED, THU, FRI, SAT = (Weekday.Sunday, Weekday.Monday, Weekday.Tuesday, + Weekday.Wednesday, Weekday.Thursday, + Weekday.Friday, Weekday.Saturday) +WEEKEND = (SAT, SUN) + + +@dataclass(frozen=True) +class Grant: + """A rank rule: a saint of `min_rank` on these weekdays may eat `rung`.""" + min_rank: int + weekdays: tuple + rung: D + + +@dataclass(frozen=True) +class Season: + name: str + # What the season allows before any commemoration is considered. + floor: dict = field(default_factory=dict) + default_floor: D = D.Strict + # How far a data row's claim may lift the floor, and the rank that escapes + # the cap. Per weekday where a season needs it. + cap: dict = field(default_factory=dict) + default_cap: D = D.FastFree + cap_exempt_rank: int = 99 + grants: tuple = () + # Emulates the bug described in docs/fasting-refactor-scope.md, so the + # refactor can be proven byte-identical before the fix is made visible. + # The live code writes the Wednesday/Friday cap as an assignment rather + # than a clamp, so it raises a strictness assertion instead of only + # lowering a leniency claim. + legacy_wed_fri_assignment: bool = False + + def floor_for(self, weekday): + return self.floor.get(weekday, self.default_floor) + + def cap_for(self, weekday, feast_level): + if feast_level >= self.cap_exempt_rank: + return D.FastFree + return self.cap.get(weekday, self.default_cap) + + +# --- the seasons, with their sources --------------------------------------- + +ORDINARY = Season('ordinary Wed/Fri', default_floor=D.Strict) + +# Ware, via OCA: weekdays strict, weekend wine and oil (which the data supplies), +# fish only on the Annunciation and Palm Sunday -- ranks 7 and 8. The cap is the +# highest rung that is still fishless, so Lazarus Saturday keeps its caviar. +LENT = Season('Great Lent', default_floor=D.Strict, + default_cap=D.WineAndOil, cap_exempt_rank=7) + +# OCA: "wine and oil are allowed only on Saturdays and Sundays (and sometimes +# on a few feast days and vigils)" -- the Transfiguration, rank 8. +DORMITION = Season('Dormition', floor={SAT: D.WineAndOil, SUN: D.WineAndOil}, + default_floor=D.Strict, + default_cap=D.Strict, cap_exempt_rank=7) + +# Typikon Ch. 33: Mon/Wed/Fri strict, Tue/Thu wine and oil, Sat/Sun fish. +_CH33_FLOOR = {MON: D.Strict, TUE: D.WineAndOil, WED: D.Strict, + THU: D.WineAndOil, FRI: D.Strict, + SAT: D.FishWineOil, SUN: D.FishWineOil} +# Ch. 33's rank clause. NOT currently implemented by the app -- switch on to see +# what it would change. +_CH33_GRANTS = ( + Grant(min_rank=3, weekdays=(MON, TUE, THU), rung=D.FishWineOil), + Grant(min_rank=3, weekdays=(WED, FRI), rung=D.WineAndOil), + Grant(min_rank=5, weekdays=(WED, FRI), rung=D.FishWineOil), +) +APOSTLES = Season('Apostles', floor=_CH33_FLOOR, + cap={WED: D.WineAndOil, FRI: D.WineAndOil, + SAT: D.FishWineOil, SUN: D.FishWineOil}, + cap_exempt_rank=4, legacy_wed_fri_assignment=LEGACY) +NATIVITY = Season('Nativity', floor=_CH33_FLOOR, + cap={WED: D.WineAndOil, FRI: D.WineAndOil, + SAT: D.FishWineOil, SUN: D.FishWineOil}, + cap_exempt_rank=4, legacy_wed_fri_assignment=LEGACY) + +# Greek practice differs only in the Nativity fast, and there it splits in two. +# See docs/greek-fasting.md: for the first four weeks everything but Wednesday +# and Friday is a fish day, and from Dec 13 the fast tightens further than +# Slavic practice does -- Monday, Tuesday and Thursday drop to full strictness +# rather than merely losing fish. +NATIVITY_GREEK_EARLY = Season( + 'Nativity (Greek, to Dec 12)', + floor={WED: D.Strict, FRI: D.Strict}, + default_floor=D.FishWineOil, + cap={WED: D.WineAndOil, FRI: D.WineAndOil}, + default_cap=D.FishWineOil, + cap_exempt_rank=4, legacy_wed_fri_assignment=LEGACY) +NATIVITY_GREEK_STRICT = Season( + 'Nativity (Greek, from Dec 13)', + floor={SAT: D.WineAndOil, SUN: D.WineAndOil}, + default_floor=D.Strict, + # The weekend allowance is unconditional here; the weekday one is not. + cap={SAT: D.WineAndOil, SUN: D.WineAndOil}, + default_cap=D.WineAndOil, + cap_exempt_rank=4, legacy_wed_fri_assignment=LEGACY) + +SEASONS = { + FastLevels.NoFast: None, + FastLevels.Fast: ORDINARY, + FastLevels.LentenFast: LENT, + FastLevels.DormitionFast: DORMITION, + FastLevels.ApostlesFast: APOSTLES, + FastLevels.NativityFast: NATIVITY, +} + + +def season_for(day, tradition): + """The season table governing this day. Only Greek's Nativity fast splits.""" + if (tradition is Tradition.Greek + and day.fast_level == FastLevels.NativityFast): + return (NATIVITY_GREEK_STRICT if day.pdist >= day.pyear.nativity - 12 + else NATIVITY_GREEK_EARLY) + return SEASONS.get(day.fast_level) + + +# The index to report when the outcome came from the season rather than from a +# particular row: one canonical legacy value per rung. +CANONICAL = {D.Strict: 0, D.WineOnly: 5, D.WineAndOil: 1, D.WineOilCaviar: 6, + D.FishWineOil: 2, D.MeatFast: 7, D.FastFree: 11} + + +def resolve(season, weekday, feast_level, rows, windows=(), use_rank_grants=False): + """The whole combination rule, in one readable pass. + + Returns (rung, legacy_index). The rung is the answer; the index is kept + only because `fast_exception` is published by the API, and is the winning + row's own value when a row decided it, or the canonical value for the rung + when the season did. + """ + claims = [(i, RUNG[i]) for i in rows if i not in (0, 9, 10)] + caps = [(i, RUNG[i]) for i in rows if i in (5, 9, 10)] + + for i, rung in claims: + if rung is D.FastFree: # a fast-free row ends the question + return D.FastFree, i + if season is None: + return D.FastFree, CANONICAL[D.FastFree] + + allowance = season.floor_for(weekday) + winner = None # the row that set the current answer + season_cap = season.cap_for(weekday, feast_level) + for i, claim in claims: + # A season cap means "no fish". Caviar is not fish -- dietarily + # WineOilCaviar excludes exactly what WineAndOil does -- so a caviar + # claim survives a wine-and-oil cap instead of being clamped below it. + clamped = claim if (claim == D.WineOilCaviar and season_cap >= D.WineAndOil) \ + else min(claim, season_cap) + if clamped > allowance: + allowance = clamped + # A clamped claim no longer speaks for itself; the season does. + winner = i if clamped == claim else None + if use_rank_grants: + for grant in season.grants: + if feast_level >= grant.min_rank and weekday in grant.weekdays: + if grant.rung > allowance: + allowance, winner = grant.rung, None + + for i, cap in caps: # a row asserting strictness wins + if cap < allowance: + allowance, winner = cap, i + elif cap == allowance and winner is None: + winner = i # it agrees, and it has the better label + + index = winner if winner is not None else CANONICAL[allowance] + + if (season.legacy_wed_fri_assignment and weekday in (WED, FRI) + and feast_level < season.cap_exempt_rank and index > 1): + allowance, index = D.WineAndOil, 1 + + for window in windows: # season-specific dated rules + moved = window(allowance, weekday, feast_level) + if moved != allowance: + allowance, index = moved, CANONICAL[moved] + + return allowance, index + + +# --- the dated windows the sources also state ------------------------------ + +def no_fish_before_nativity(allowance, weekday, feast_level): + """Ch. 33: 'from the 20th of December until the 25th, even if it be + Saturday or Sunday, we do not allow fish.'""" + return min(allowance, D.WineAndOil) + + +def eve_on_weekend(allowance, weekday, feast_level): + """The eves of Nativity and Theophany are wine-and-oil days on a weekend.""" + return max(allowance, D.WineAndOil) if weekday in WEEKEND else allowance + + +async def main(): + matches = collections.Counter() + mismatches = collections.Counter() + examples = collections.defaultdict(list) + index_diffs = collections.Counter() + index_examples = collections.defaultdict(list) + + for tradition, tname in ((Tradition.Slavic, 'slavic'), (Tradition.Greek, 'greek')): + for year in (2025, 2026, 2027, 2028, 2029): + date = datetime.date(year, 1, 1) + while date.year == year: + day = Day(date.year, date.month, date.day, tradition=tradition) + await day.ainitialize() + + raw = [d.fast_exception for d in day.days] + # 0 makes no claim. 5, 9 and 10 assert strictness rather than + # leniency -- Holy Saturday's wine-without-oil, the strict eves, + # and Clean Week's "no overrides" -- so they cap rather than + # claim. + # 0 makes no claim. 9 and 10 assert strictness only. 5 -- + # Holy Saturday's wine-without-oil -- asserts an *exact* rung: + # it lifts the strict floor and also forbids the oil a saint's + # claim would allow, so it is both a claim and a cap. + claims = [RUNG[e] for e in raw if e not in (0, 9, 10)] + caps = [RUNG[e] for e in raw if e in (5, 9, 10)] + + season = season_for(day, tradition) + windows = [] + if (tradition is Tradition.Slavic + and day.fast_level in (FastLevels.ApostlesFast, + FastLevels.NativityFast) + and day.pyear.nativity - 6 < day.pdist < day.pyear.nativity - 1): + windows.append(no_fish_before_nativity) + if day.pdist in (day.pyear.nativity - 1, day.pyear.theophany - 1): + windows.append(eve_on_weekend) + + got, got_index = resolve(season, day.weekday, day.feast_level, + raw, windows) + want = D.FastFree if day.fast_level == FastLevels.NoFast \ + else RUNG[day.fast_exception] + if day.fast_level != FastLevels.NoFast and got_index != day.fast_exception: + index_diffs[(day.fast_exception, got_index)] += 1 + index_examples[(day.fast_exception, got_index)].append( + f'{date} {tname} rows={raw} feast{day.feast_level}') + + key = f'{tname} {season.name}' if season else f'{tname} no fast' + if got == want: + matches[key] += 1 + else: + mismatches[(key, want.name, got.name)] += 1 + examples[(key, want.name, got.name)].append( + f'{date} {tname} w{day.weekday} feast{day.feast_level} rows={raw}') + date += datetime.timedelta(days=1) + + total = sum(matches.values()) + sum(mismatches.values()) + print(f'\n prototype vs current behaviour, both traditions, 5 years: ' + f'{sum(matches.values())}/{total} ' + f'({100 * sum(matches.values()) / total:.1f}%)\n') + print(' by season:') + for name in sorted(set(matches) | {k[0] for k in mismatches}): + ok = matches[name] + bad = sum(v for k, v in mismatches.items() if k[0] == name) + flag = '' if not bad else ' <--' + print(f' {name:<34} {ok:>5} match {bad:>4} differ{flag}') + print(f"\n legacy fast_exception index reproduced exactly: " + f"{'yes' if not index_diffs else 'NO'}") + for (want_i, got_i), n in index_diffs.most_common(10): + print(f' current exc={want_i} -> prototype exc={got_i} ({n} days)' + f' e.g. {index_examples[(want_i, got_i)][0]}') + if mismatches: + print('\n differences:') + for (name, want, got), n in mismatches.most_common(): + print(f' {name:<34} current={want:<13} prototype={got:<13} ({n})') + print(f' e.g. {examples[(name, want, got)][0]}') + + +if __name__ == '__main__': + asyncio.run(main())