Urdatorn commited on
Commit
427548c
·
1 Parent(s): 32648f9

Reset leaderboard for rebuilt benchmarks

Browse files
404.html CHANGED
@@ -4,32 +4,32 @@
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
  <meta name="theme-color" content="#f7f5ef" />
7
- <link href="/_app/immutable/entry/start.wBq0CBz0.js" rel="modulepreload">
8
- <link href="/_app/immutable/chunks/BF_FrA3D.js" rel="modulepreload">
9
- <link href="/_app/immutable/chunks/DMqF9c3U.js" rel="modulepreload">
10
- <link href="/_app/immutable/chunks/D0_0fjwo.js" rel="modulepreload">
11
- <link href="/_app/immutable/entry/app.7UldMKJU.js" rel="modulepreload">
12
- <link href="/_app/immutable/chunks/Bav0O8J1.js" rel="modulepreload">
13
- <link href="/_app/immutable/chunks/BbLVZPWC.js" rel="modulepreload">
14
- <link href="/_app/immutable/chunks/CRjdMj2B.js" rel="modulepreload">
15
- <link href="/_app/immutable/chunks/DJd3U5Dq.js" rel="modulepreload">
16
- <link href="/_app/immutable/nodes/0.DoB0Uq5V.js" rel="modulepreload">
17
 
18
- <link href="/_app/immutable/assets/0.CTwIt1Xe.css" rel="stylesheet">
19
  </head>
20
  <body data-sveltekit-preload-data="hover">
21
  <div style="display: contents">
22
  <script>
23
  {
24
- __sveltekit_1pru93l = {
25
  base: ""
26
  };
27
 
28
  const element = document.currentScript.parentElement;
29
 
30
  Promise.all([
31
- import("/_app/immutable/entry/start.wBq0CBz0.js"),
32
- import("/_app/immutable/entry/app.7UldMKJU.js")
33
  ]).then(([kit, app]) => {
34
  kit.start(app, element);
35
  });
 
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
  <meta name="theme-color" content="#f7f5ef" />
7
+ <link href="/_app/immutable/entry/start.2uEN93Rh.js" rel="modulepreload">
8
+ <link href="/_app/immutable/chunks/BPOa35me.js" rel="modulepreload">
9
+ <link href="/_app/immutable/chunks/BbCnN6uz.js" rel="modulepreload">
10
+ <link href="/_app/immutable/chunks/BS2jcRN4.js" rel="modulepreload">
11
+ <link href="/_app/immutable/entry/app.m6uYwNyL.js" rel="modulepreload">
12
+ <link href="/_app/immutable/chunks/DDj9FNNG.js" rel="modulepreload">
13
+ <link href="/_app/immutable/chunks/CZyhMBTx.js" rel="modulepreload">
14
+ <link href="/_app/immutable/chunks/BcBLKmPk.js" rel="modulepreload">
15
+ <link href="/_app/immutable/chunks/DulwI2VJ.js" rel="modulepreload">
16
+ <link href="/_app/immutable/nodes/0.ByqCz_j3.js" rel="modulepreload">
17
 
18
+ <link href="/_app/immutable/assets/0.hj8St4wC.css" rel="stylesheet">
19
  </head>
20
  <body data-sveltekit-preload-data="hover">
21
  <div style="display: contents">
22
  <script>
23
  {
24
+ __sveltekit_47wdub = {
25
  base: ""
26
  };
27
 
28
  const element = document.currentScript.parentElement;
29
 
30
  Promise.all([
31
+ import("/_app/immutable/entry/start.2uEN93Rh.js"),
32
+ import("/_app/immutable/entry/app.m6uYwNyL.js")
33
  ]).then(([kit, app]) => {
34
  kit.start(app, element);
35
  });
README.md CHANGED
@@ -19,18 +19,20 @@ tags:
19
 
20
  # Sphragis Leaderboard
21
 
22
- A statically generated SvelteKit + TypeScript leaderboard for the four Sphragis
23
- Ancient Greek sentence-based authorship-attribution tasks. The UI uses Svelte 5 runes and runs
24
- without Python, CPU, or GPU Space hardware.
25
-
26
- Scores and per-author held-out accuracies are typed in `src/lib/data.ts`.
27
- Select a model row to compare its available task accuracies and confusion matrices
28
- for every author.
29
- The trivial baseline always predicts the most frequent author in the relevant
30
- training split; test labels never determine its prediction.
31
- The page has separate result tables for human-annotated Sphragis and the
32
- Sphragis-Metre track. The initial Sphragis-Metre entry is a text-only GreBERTa
33
- baseline intended as the foundation for later metre and syntax ablations.
 
 
34
 
35
  Install and run locally:
36
 
 
19
 
20
  # Sphragis Leaderboard
21
 
22
+ A statically generated SvelteKit + TypeScript leaderboard for the current
23
+ Sphragis Ancient Greek authorship-attribution benchmarks. The UI uses Svelte 5
24
+ runes and runs without Python, CPU, or GPU Space hardware.
25
+
26
+ The rebuilt leaderboard currently contains no model results. Its typed task
27
+ catalog in `src/lib/data.ts` covers:
28
+
29
+ - Sphragis `sentence_{1,5,10,50}`
30
+ - Sphragis `source_held_out_{1,5,10,50}`
31
+ - Sphragis-Metre `verse_{1,5,10,50}`
32
+
33
+ Add scores to the corresponding result array only after validation-based model
34
+ selection and held-out test evaluation. Per-author accuracies and confusion
35
+ matrices should come from the same saved predictions as the published score.
36
 
37
  Install and run locally:
38
 
_app/immutable/assets/{0.CTwIt1Xe.css → 0.hj8St4wC.css} RENAMED
@@ -1 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&display=swap";:root{font-family:Manrope,sans-serif;color:#24231f;background:#f7f5ef;font-synthesis:none;--page: #f7f5ef;--surface: #fffef9;--surface-muted: #efede6;--row-alt: #f8f6f0;--text: #24231f;--text-muted: #67645b;--text-subtle: #928e82;--border: #dedbd1;--border-strong: #c6c1b4;--primary: #255c47;--primary-strong: #174532;--primary-soft: #dfece5;--accent: #d86b3c;--shadow-sm: 0 1px 2px rgb(42 39 31 / 5%)}:root[data-theme=dark]{color-scheme:dark;--page: #161814;--surface: #1d201b;--surface-muted: #272b24;--row-alt: #22251f;--text: #f2f0e9;--text-muted: #b4b1a7;--text-subtle: #89877f;--border: #383c34;--border-strong: #4b5046;--primary: #7fc4a2;--primary-strong: #a6d9bf;--primary-soft: #253d31;--accent: #ef936d;--shadow-sm: none}*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth;background:var(--page)}body{margin:0;min-width:320px;min-height:100vh;background:var(--page);color:var(--text)}button,input{font:inherit}a{color:inherit}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:0 max(24px,calc((100vw - 1400px)/2));border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--page) 92%,transparent)}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;text-decoration:none;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary);color:var(--page);font:500 16px DM Mono,monospace}nav{display:flex;align-items:center;gap:24px}nav a{color:var(--text-muted);font-size:13px;font-weight:600;text-decoration:none}nav a:hover{color:var(--text)}.theme-toggle{width:34px;height:34px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);cursor:pointer}main{width:min(100% - 48px,1400px);margin:0 auto}.eyebrow{margin:0 0 14px;color:var(--primary);font:500 11px DM Mono,monospace;letter-spacing:.15em;text-transform:uppercase}.leaderboard-section{padding:46px 0 64px}.leaderboard-section+.leaderboard-section{padding-top:0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.section-heading h2{margin:0;font-size:clamp(27px,4vw,40px);font-weight:500;letter-spacing:-.045em}.result-count{color:var(--text-subtle);font:500 11px DM Mono,monospace;text-transform:uppercase}.controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}.interaction-hint{margin:0;color:var(--text-subtle);font-size:11px}.search-field{display:flex;align-items:center;gap:8px;width:280px;height:38px;padding:0 11px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-subtle)}.search-field input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:13px}.segments{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted)}.segments button{padding:6px 10px;border:0;border-radius:4px;background:transparent;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer}.segments button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm);overscroll-behavior-x:contain}table{min-width:850px;width:100%;border-collapse:separate;border-spacing:0;font-size:12px}th,td{border-bottom:1px solid var(--border);white-space:nowrap;text-align:left}thead th{position:sticky;top:0;z-index:2;padding:0;background:var(--surface-muted);color:var(--text-muted);font-weight:600}.group-row th{border-bottom:1px solid var(--border-strong)}.task-group{padding:8px 12px;text-align:center;color:var(--text-subtle);font:500 10px DM Mono,monospace;letter-spacing:.09em;text-transform:uppercase}tbody th,tbody td{padding:12px}tbody tr:nth-child(2n) :is(th,td){background-color:var(--row-alt)}tbody tr:hover :is(th,td){box-shadow:inset 0 0 0 100vmax color-mix(in srgb,var(--primary) 6%,transparent)}tbody tr.selectable-row{cursor:pointer}tbody tr.selectable-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}tbody tr.selected :is(th,td){box-shadow:inset 0 0 0 100vmax color-mix(in srgb,var(--primary) 12%,transparent)}tbody tr:last-child :is(th,td){border-bottom:0}.sticky{position:sticky;z-index:1;background:var(--surface)}thead .sticky{z-index:4;background:var(--surface-muted)}.model-column{left:0;min-width:170px}.dimension-column{min-width:130px;font-family:DM Mono,monospace}.classifier-column{min-width:155px;max-width:190px;border-right:1px solid var(--border-strong);overflow:hidden;text-overflow:ellipsis}tbody tr.selected td.classifier-column{overflow:visible;white-space:normal;text-overflow:clip;line-height:1.5}.owner{color:var(--text-subtle);font-weight:400}.model-link{color:var(--text);text-decoration:none}.model-link:hover strong{color:var(--primary-strong);text-decoration:underline;text-underline-offset:3px}.external{margin-left:5px;color:var(--text-subtle);font-size:9px}.score-header{min-width:100px}.score-cell{text-align:right;font:500 12px DM Mono,monospace;background-image:linear-gradient(90deg,color-mix(in srgb,var(--primary) 12%,transparent) var(--score),transparent var(--score))}.score-cell.missing{color:var(--text-subtle);background-image:none}.status-column{min-width:190px;border-left:1px solid var(--border-strong)}.status-cell{border-left:1px solid var(--border-strong)}.status-badge{padding:4px 7px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:4px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--text-muted);font-size:10px}.empty{padding:28px;color:var(--text-muted);text-align:center}.sort-button{all:unset;display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;width:100%;min-height:38px;padding:7px 10px;box-sizing:border-box;cursor:pointer;transition:background .12s,color .12s}.sort-button.left{justify-content:flex-start}.sort-button:hover{background:var(--primary-soft);color:var(--text)}.sort-button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.sort-icon{color:var(--text-subtle);font:500 10px DM Mono,monospace;opacity:.45}.sort-icon.active{color:var(--primary);opacity:1}.tip-wrap{position:relative;display:inline-flex}.info-dot{display:inline-grid;place-items:center;width:15px;height:15px;padding:0;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface);color:var(--text-muted);font:700 9px/1 Manrope,sans-serif;cursor:help}.tooltip{position:fixed;z-index:50;top:var(--tip-y);left:var(--tip-x);display:grid;gap:5px;width:250px;padding:11px 12px;border:1px solid var(--border-strong);border-radius:6px;background:var(--text);color:var(--page);box-shadow:0 12px 30px #0000002e;font-size:11px;font-weight:400;line-height:1.45;white-space:normal;transform:translate(-50%)}.tooltip strong{font-size:11px}.table-caption{display:flex;align-items:center;gap:6px;margin:11px 2px 0;color:var(--text-subtle);font-size:11px}.accuracy-chart{margin-top:28px;padding:22px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm)}.chart-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:10px}.chart-heading h3{margin:0 0 5px;font-size:20px;font-weight:600;letter-spacing:-.025em}.chart-heading p:not(.eyebrow){margin:0;color:var(--text-muted);font-size:11px}.chart-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;color:var(--text-muted);font-size:11px}.chart-legend .legend-toggle{display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 6px;border:1px solid transparent;border-radius:999px;background:none;color:inherit;font:inherit;line-height:1.4;cursor:pointer;transition:opacity .12s,border-color .12s,background .12s}.chart-legend .legend-toggle:hover{border-color:var(--border);background:var(--surface-muted)}.chart-legend .legend-toggle:focus-visible{outline:2px solid var(--text);outline-offset:1px}.chart-legend .legend-toggle.hidden{opacity:.5;text-decoration:line-through}.chart-legend .legend-toggle.hidden i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--legend-color)}.chart-legend i{width:10px;height:10px;border-radius:2px;background:var(--legend-color)}.bar-selection{display:flex;align-items:baseline;gap:9px;min-height:19px;margin:0 0 8px;color:var(--text-muted);font-size:11px}.bar-selection strong{color:var(--text)}.bar-selection b{color:var(--primary-strong);font:600 12px DM Mono,monospace}.chart-scroll{overflow-x:auto}.chart-scroll svg{display:block;min-width:920px;width:100%;height:auto}.grid-line{stroke:var(--border);stroke-width:1}.axis-tick,.axis-title,.author-label{fill:var(--text-muted);font-family:DM Mono,monospace;font-size:10px}.axis-title{font-size:11px;font-weight:500}.empty-chart{fill:var(--text-muted);font-family:Manrope,sans-serif;font-size:12px}.accuracy-bar{cursor:pointer;opacity:.66;outline:none;stroke:var(--surface);stroke-width:.7;transition:opacity .12s,stroke-width .12s}.accuracy-bar:hover,.accuracy-bar:focus-visible,.accuracy-bar.selected{opacity:1;stroke:var(--text);stroke-width:2.5}.confusion-section{margin-top:18px;padding:22px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm)}.matrix-list{display:grid;grid-template-columns:repeat(3,minmax(520px,1fr));gap:18px;overflow-x:auto;padding-bottom:7px}.matrix-card{min-width:0;margin:0;padding:14px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}.matrix-card figcaption{margin-bottom:12px;color:var(--text);font:600 12px DM Mono,monospace}.matrix-scroll{overflow:visible;padding-top:68px}.confusion-grid{display:grid;grid-template-columns:92px repeat(var(--matrix-size),22px);grid-auto-rows:22px;width:max-content;font:500 7px DM Mono,monospace}.corner{display:flex;align-items:end;padding:0 4px 3px 0;color:var(--text-subtle);font-size:7px;line-height:1.2}.column-label{position:relative;left:11px;align-self:end;width:82px;overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;transform:rotate(-58deg);transform-origin:left bottom}.row-label{display:flex;align-items:center;padding-right:6px;overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.column-label.selected-axis,.row-label.selected-axis{color:var(--text);font-weight:700}.matrix-cell{position:relative;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--surface) 72%,transparent);background:color-mix(in srgb,var(--accent) var(--intensity),var(--surface));color:color-mix(in srgb,var(--text) 82%,transparent);cursor:default}.matrix-cell.diagonal{background:color-mix(in srgb,var(--primary) var(--intensity),var(--surface))}.matrix-cell.selected-row,.matrix-cell.selected-column{z-index:1;border-color:var(--text);border-width:1.5px}.cell-tip{position:absolute;z-index:20;bottom:calc(100% + 5px);left:50%;display:none;width:max-content;max-width:230px;padding:7px 8px;border-radius:4px;background:var(--text);color:var(--page);font:400 9px Manrope,sans-serif;transform:translate(-50%)}.cell-tip strong{display:block;margin-top:2px}.matrix-cell:hover{outline:2px solid var(--text);z-index:10}.matrix-cell:hover .cell-tip{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.controls{align-items:stretch;flex-direction:column}.search-field{width:100%}.segments{overflow-x:auto}.segments button{flex:0 0 auto}.chart-heading{align-items:start;flex-direction:column}.chart-legend{justify-content:flex-start}.confusion-section{padding:14px}}@media(max-width:640px){main{width:min(100% - 28px,1400px)}.topbar{padding-inline:14px}nav{gap:12px}nav a{display:none}.leaderboard-section{padding-block:36px 52px}.sticky,thead .sticky{position:static}.model-column{min-width:145px}.classifier-column{min-width:230px}}
 
1
+ @import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&display=swap";:root{font-family:Manrope,sans-serif;color:#24231f;background:#f7f5ef;font-synthesis:none;--page: #f7f5ef;--surface: #fffef9;--surface-muted: #efede6;--row-alt: #f8f6f0;--text: #24231f;--text-muted: #67645b;--text-subtle: #928e82;--border: #dedbd1;--border-strong: #c6c1b4;--primary: #255c47;--primary-strong: #174532;--primary-soft: #dfece5;--accent: #d86b3c;--shadow-sm: 0 1px 2px rgb(42 39 31 / 5%)}:root[data-theme=dark]{color-scheme:dark;--page: #161814;--surface: #1d201b;--surface-muted: #272b24;--row-alt: #22251f;--text: #f2f0e9;--text-muted: #b4b1a7;--text-subtle: #89877f;--border: #383c34;--border-strong: #4b5046;--primary: #7fc4a2;--primary-strong: #a6d9bf;--primary-soft: #253d31;--accent: #ef936d;--shadow-sm: none}*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth;background:var(--page)}body{margin:0;min-width:320px;min-height:100vh;background:var(--page);color:var(--text)}button,input{font:inherit}a{color:inherit}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:0 max(24px,calc((100vw - 1400px)/2));border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--page) 92%,transparent)}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;text-decoration:none;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary);color:var(--page);font:500 16px DM Mono,monospace}nav{display:flex;align-items:center;gap:24px}nav a{color:var(--text-muted);font-size:13px;font-weight:600;text-decoration:none}nav a:hover{color:var(--text)}.theme-toggle{width:34px;height:34px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);cursor:pointer}main{width:min(100% - 48px,1400px);margin:0 auto}.eyebrow{margin:0 0 14px;color:var(--primary);font:500 11px DM Mono,monospace;letter-spacing:.15em;text-transform:uppercase}.leaderboard-section{padding:46px 0 64px}.leaderboard-section+.leaderboard-section{padding-top:0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.section-heading h2{margin:0;font-size:clamp(27px,4vw,40px);font-weight:500;letter-spacing:-.045em}.result-count{color:var(--text-subtle);font:500 11px DM Mono,monospace;text-transform:uppercase}.controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}.interaction-hint{margin:0;color:var(--text-subtle);font-size:11px}.search-field{display:flex;align-items:center;gap:8px;width:280px;height:38px;padding:0 11px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-subtle)}.search-field input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:13px}.segments{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted)}.segments button{padding:6px 10px;border:0;border-radius:4px;background:transparent;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer}.segments button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm);overscroll-behavior-x:contain}table{min-width:850px;width:100%;border-collapse:separate;border-spacing:0;font-size:12px}th,td{border-bottom:1px solid var(--border);white-space:nowrap;text-align:left}thead th{position:sticky;top:0;z-index:2;padding:0;background:var(--surface-muted);color:var(--text-muted);font-weight:600}.group-row th{border-bottom:1px solid var(--border-strong)}.task-group{padding:8px 12px;text-align:center;color:var(--text-subtle);font:500 10px DM Mono,monospace;letter-spacing:.09em;text-transform:uppercase}tbody th,tbody td{padding:12px}tbody tr:nth-child(2n) :is(th,td){background-color:var(--row-alt)}tbody tr:hover :is(th,td){box-shadow:inset 0 0 0 100vmax color-mix(in srgb,var(--primary) 6%,transparent)}tbody tr.selectable-row{cursor:pointer}tbody tr.selectable-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}tbody tr.selected :is(th,td){box-shadow:inset 0 0 0 100vmax color-mix(in srgb,var(--primary) 12%,transparent)}tbody tr:last-child :is(th,td){border-bottom:0}.sticky{position:sticky;z-index:1;background:var(--surface)}thead .sticky{z-index:4;background:var(--surface-muted)}.model-column{left:0;min-width:170px}.dimension-column{min-width:130px;font-family:DM Mono,monospace}.classifier-column{min-width:155px;max-width:190px;border-right:1px solid var(--border-strong);overflow:hidden;text-overflow:ellipsis}tbody tr.selected td.classifier-column{overflow:visible;white-space:normal;text-overflow:clip;line-height:1.5}.owner{color:var(--text-subtle);font-weight:400}.model-link{color:var(--text);text-decoration:none}.model-link:hover strong{color:var(--primary-strong);text-decoration:underline;text-underline-offset:3px}.external{margin-left:5px;color:var(--text-subtle);font-size:9px}.score-header{min-width:100px}.score-cell{text-align:right;font:500 12px DM Mono,monospace;background-image:linear-gradient(90deg,color-mix(in srgb,var(--primary) 12%,transparent) var(--score),transparent var(--score))}.score-cell.missing{color:var(--text-subtle);background-image:none}.status-column{min-width:190px;border-left:1px solid var(--border-strong)}.status-cell{border-left:1px solid var(--border-strong)}.status-badge{padding:4px 7px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:4px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--text-muted);font-size:10px}.empty{padding:28px;color:var(--text-muted);text-align:center}.sort-button{all:unset;display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;width:100%;min-height:38px;padding:7px 10px;box-sizing:border-box;cursor:pointer;transition:background .12s,color .12s}.sort-button.left{justify-content:flex-start}.sort-button:hover{background:var(--primary-soft);color:var(--text)}.sort-button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.sort-icon{color:var(--text-subtle);font:500 10px DM Mono,monospace;opacity:.45}.sort-icon.active{color:var(--primary);opacity:1}.tip-wrap{position:relative;display:inline-flex}.info-dot{display:inline-grid;place-items:center;width:15px;height:15px;padding:0;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface);color:var(--text-muted);font:700 9px/1 Manrope,sans-serif;cursor:help}.tooltip{position:fixed;z-index:50;top:var(--tip-y);left:var(--tip-x);display:grid;gap:5px;width:250px;padding:11px 12px;border:1px solid var(--border-strong);border-radius:6px;background:var(--text);color:var(--page);box-shadow:0 12px 30px #0000002e;font-size:11px;font-weight:400;line-height:1.45;white-space:normal;transform:translate(-50%)}.tooltip strong{font-size:11px}.table-caption{display:flex;align-items:center;gap:6px;margin:11px 2px 0;color:var(--text-subtle);font-size:11px}.scheme-note{margin:7px 2px 0;color:var(--text-subtle);font-size:11px}.scheme-note>summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none}.scheme-note>summary::-webkit-details-marker{display:none}.scheme-note>summary:after{content:"›";margin-left:2px;transition:transform .12s}.scheme-note[open]>summary:after{transform:rotate(90deg)}.scheme-note>summary:hover{color:var(--text-muted)}.scheme-note>summary:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:3px}.scheme-note>p{margin:8px 0 0;max-width:78ch;line-height:1.55}.scheme-note .scheme-source{color:var(--text-subtle)}.scheme-note code{font-size:10px}.scheme-table{margin:8px 0 0;border-collapse:collapse;font-variant-numeric:tabular-nums}.scheme-table th,.scheme-table td{padding:3px 12px 3px 0;text-align:right;font-weight:400}.scheme-table thead th{color:var(--text-subtle);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.scheme-table tbody th{text-align:left;color:var(--text-muted)}.accuracy-chart{margin-top:28px;padding:22px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm)}.chart-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:10px}.chart-heading h3{margin:0 0 5px;font-size:20px;font-weight:600;letter-spacing:-.025em}.chart-heading p:not(.eyebrow){margin:0;color:var(--text-muted);font-size:11px}.chart-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;color:var(--text-muted);font-size:11px}.chart-legend .legend-toggle{display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 6px;border:1px solid transparent;border-radius:999px;background:none;color:inherit;font:inherit;line-height:1.4;cursor:pointer;transition:opacity .12s,border-color .12s,background .12s}.chart-legend .legend-toggle:hover{border-color:var(--border);background:var(--surface-muted)}.chart-legend .legend-toggle:focus-visible{outline:2px solid var(--text);outline-offset:1px}.chart-legend .legend-toggle.hidden{opacity:.5;text-decoration:line-through}.chart-legend .legend-toggle.hidden i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--legend-color)}.chart-legend i{width:10px;height:10px;border-radius:2px;background:var(--legend-color)}.bar-selection{display:flex;align-items:baseline;gap:9px;min-height:19px;margin:0 0 8px;color:var(--text-muted);font-size:11px}.bar-selection strong{color:var(--text)}.bar-selection b{color:var(--primary-strong);font:600 12px DM Mono,monospace}.chart-scroll{overflow-x:auto}.chart-scroll svg{display:block;min-width:920px;width:100%;height:auto}.grid-line{stroke:var(--border);stroke-width:1}.axis-tick,.axis-title,.author-label{fill:var(--text-muted);font-family:DM Mono,monospace;font-size:10px}.axis-title{font-size:11px;font-weight:500}.empty-chart{fill:var(--text-muted);font-family:Manrope,sans-serif;font-size:12px}.accuracy-bar{cursor:pointer;opacity:.66;outline:none;stroke:var(--surface);stroke-width:.7;transition:opacity .12s,stroke-width .12s}.accuracy-bar:hover,.accuracy-bar:focus-visible,.accuracy-bar.selected{opacity:1;stroke:var(--text);stroke-width:2.5}.confusion-section{margin-top:18px;padding:22px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm)}.matrix-list{display:grid;grid-template-columns:repeat(3,minmax(520px,1fr));gap:18px;overflow-x:auto;padding-bottom:7px}.matrix-card{min-width:0;margin:0;padding:14px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}.matrix-card figcaption{margin-bottom:12px;color:var(--text);font:600 12px DM Mono,monospace}.matrix-scroll{overflow:visible;padding-top:68px}.confusion-grid{display:grid;grid-template-columns:92px repeat(var(--matrix-size),22px);grid-auto-rows:22px;width:max-content;font:500 7px DM Mono,monospace}.corner{display:flex;align-items:end;padding:0 4px 3px 0;color:var(--text-subtle);font-size:7px;line-height:1.2}.column-label{position:relative;left:11px;align-self:end;width:82px;overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;transform:rotate(-58deg);transform-origin:left bottom}.row-label{display:flex;align-items:center;padding-right:6px;overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.column-label.selected-axis,.row-label.selected-axis{color:var(--text);font-weight:700}.matrix-cell{position:relative;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--surface) 72%,transparent);background:color-mix(in srgb,var(--accent) var(--intensity),var(--surface));color:color-mix(in srgb,var(--text) 82%,transparent);cursor:default}.matrix-cell.diagonal{background:color-mix(in srgb,var(--primary) var(--intensity),var(--surface))}.matrix-cell.selected-row,.matrix-cell.selected-column{z-index:1;border-color:var(--text);border-width:1.5px}.cell-tip{position:absolute;z-index:20;bottom:calc(100% + 5px);left:50%;display:none;width:max-content;max-width:230px;padding:7px 8px;border-radius:4px;background:var(--text);color:var(--page);font:400 9px Manrope,sans-serif;transform:translate(-50%)}.cell-tip strong{display:block;margin-top:2px}.matrix-cell:hover{outline:2px solid var(--text);z-index:10}.matrix-cell:hover .cell-tip{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.controls{align-items:stretch;flex-direction:column}.search-field{width:100%}.segments{overflow-x:auto}.segments button{flex:0 0 auto}.chart-heading{align-items:start;flex-direction:column}.chart-legend{justify-content:flex-start}.confusion-section{padding:14px}}@media(max-width:640px){main{width:min(100% - 28px,1400px)}.topbar{padding-inline:14px}nav{gap:12px}nav a{display:none}.leaderboard-section{padding-block:36px 52px}.sticky,thead .sticky{position:static}.model-column{min-width:145px}.classifier-column{min-width:230px}}
_app/immutable/chunks/{BF_FrA3D.js → BPOa35me.js} RENAMED
@@ -1 +1 @@
1
- const hn=32;const pn=128;const Tn=8192,Rn=16384,Cn=32768,An=33554432,Dn=65536;const Nn=262144,Fn=524288;const wn=33554432;const ve=Symbol("$state"),yn=Symbol("legacy props"),In=Symbol(""),Ct=Symbol("attributes"),At=Symbol("class"),Dt=Symbol("style"),Nt=Symbol("text"),re=Symbol("form reset"),ee=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},gn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),_e=3,Ue=8,Ke=!1;var Ft=Array.isArray,wt=Array.prototype.indexOf,le=Array.prototype.includes,mn=Array.from,Sn=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,bn=Object.getOwnPropertyDescriptors,yt=Object.prototype,It=Array.prototype,Ot=Object.getPrototypeOf,Le=Object.isExtensible;const gt=()=>{};function mt(e){for(var t=0;t<e.length;t++)e[t]()}function je(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Ge(e){return e===this.v}function St(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function qe(e){return!St(e,this.v)}function bt(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Yn(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Yt(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Lt(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function xt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function kt(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ln(){throw new Error("https://svelte.dev/e/hydration_failed")}function xn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Mt(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Pt(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Bt(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function kn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}let Vt=!1;const Mn=1,Pn=2,Bn=4,Vn=8,Hn=16,Un=1,Kn=4,jn=8,Gn=16,qn=1,Wn=2,Ht="[",Ut="[!",zn="[?",Kt="]",De={},R=Symbol("uninitialized"),Xn="http://www.w3.org/1999/xhtml";let F=null;function ae(e){F=e}function $n(e,t=!1,n){F={p:F,i:!1,c:null,e:null,s:e,x:null,r:h,l:null}}function Zn(e){var t=F,n=t.e;if(n!==null){t.e=null;for(var r of n)dt(r)}return t.i=!0,F=t.p,{}}function We(){return!0}let P=[];function ze(){var e=P;P=[],mt(e)}function xe(e){if(P.length===0&&!J){var t=P;queueMicrotask(()=>{t===P&&ze()})}P.push(e)}function jt(){for(;P.length>0;)ze()}function Gt(){console.warn("https://svelte.dev/e/derived_inert")}function Ne(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Jn(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let H=!1;function Qn(e){H=e}let A;function G(e){if(e===null)throw Ne(),De;return A=e}function er(){return G(k(A))}function tr(e){if(H){if(k(A)!==null)throw Ne(),De;A=e}}function nr(e=1){if(H){for(var t=e,n=A;t--;)n=k(n);A=n}}function rr(e=!0){for(var t=0,n=A;;){if(n.nodeType===Ue){var r=n.data;if(r===Kt){if(t===0)return n;t-=1}else(r===Ht||r===Ut||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=k(n);e&&n.remove(),n=s}}function sr(e){if(!e||e.nodeType!==Ue)throw Ne(),De;return e.data}function z(e){if(typeof e!="object"||e===null||ve in e)return e;const t=Ot(e);if(t!==yt&&t!==It)return e;var n=new Map,r=Ft(e),s=b(0),i=V,u=a=>{if(V===i)return a();var l=d,f=V;x(null),He(i);var _=a();return x(l),He(f),_};return r&&n.set("length",b(e.length)),new Proxy(e,{defineProperty(a,l,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&Mt();var _=n.get(l);return _===void 0?u(()=>{var o=b(f.value);return n.set(l,o),o}):M(_,f.value,!0),!0},deleteProperty(a,l){var f=n.get(l);if(f===void 0){if(l in a){const _=u(()=>b(R));n.set(l,_),pe(s)}}else M(f,R),pe(s);return!0},get(a,l,f){if(l===ve)return e;var _=n.get(l),o=l in a;if(_===void 0&&(!o||Z(a,l)?.writable)&&(_=u(()=>{var E=z(o?a[l]:R),v=b(E);return v}),n.set(l,_)),_!==void 0){var c=$(_);return c===R?void 0:c}return Reflect.get(a,l,f)},getOwnPropertyDescriptor(a,l){var f=Reflect.getOwnPropertyDescriptor(a,l);if(f&&"value"in f){var _=n.get(l);_&&(f.value=$(_))}else if(f===void 0){var o=n.get(l),c=o?.v;if(o!==void 0&&c!==R)return{enumerable:!0,configurable:!0,value:c,writable:!0}}return f},has(a,l){if(l===ve)return!0;var f=n.get(l),_=f!==void 0&&f.v!==R||Reflect.has(a,l);if(f!==void 0||h!==null&&(!_||Z(a,l)?.writable)){f===void 0&&(f=u(()=>{var c=_?z(a[l]):R,E=b(c);return E}),n.set(l,f));var o=$(f);if(o===R)return!1}return _},set(a,l,f,_){var o=n.get(l),c=l in a;if(r&&l==="length")for(var E=f;E<o.v;E+=1){var v=n.get(E+"");v!==void 0?M(v,R):E in a&&(v=u(()=>b(R)),n.set(E+"",v))}if(o===void 0)(!c||Z(a,l)?.writable)&&(o=u(()=>b(void 0)),M(o,z(f)),n.set(l,o));else{c=o.v!==R;var m=u(()=>z(f));M(o,m)}var be=Reflect.getOwnPropertyDescriptor(a,l);if(be?.set&&be.set.call(_,f),!c){if(r&&typeof l=="string"){var Ye=n.get("length"),Ee=Number(l);Number.isInteger(Ee)&&Ee>=Ye.v&&M(Ye,Ee+1)}pe(s)}return!0},ownKeys(a){$(s);var l=Reflect.ownKeys(a).filter(o=>{var c=n.get(o);return c===void 0||c.v!==R});for(var[f,_]of n)_.v!==R&&!(f in a)&&l.push(f);return l},setPrototypeOf(){Pt()}})}var ke,qt,Wt,Xe,$e;function ir(){if(ke===void 0){ke=window,qt=document,Wt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Xe=Z(t,"firstChild").get,$e=Z(t,"nextSibling").get,Le(e)&&(e[At]=void 0,e[Ct]=null,e[Dt]=void 0,e.__e=void 0),Le(n)&&(n[Nt]=void 0)}}function fe(e=""){return document.createTextNode(e)}function Te(e){return Xe.call(e)}function k(e){return $e.call(e)}function lr(e,t){if(!H)return Te(e);var n=Te(A);if(n===null)n=A.appendChild(fe());else if(t&&n.nodeType!==_e){var r=fe();return n?.before(r),G(r),r}return t&&Fe(n),G(n),n}function ar(e,t=!1){if(!H){var n=Te(e);return n instanceof Comment&&n.data===""?k(n):n}if(t){if(A?.nodeType!==_e){var r=fe();return A?.before(r),G(r),r}Fe(A)}return A}function fr(e,t=1,n=!1){let r=H?A:e;for(var s;t--;)s=r,r=k(r);if(!H)return r;if(n){if(r?.nodeType!==_e){var i=fe();return r===null?s?.after(i):r.before(i),G(i),i}Fe(r)}return G(r),r}function ur(e){e.textContent=""}function or(){return!1}function cr(e,t,n){return n?document.createElement(e,{is:n}):document.createElement(e)}function Fe(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===_e;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function zt(e){var t=h;if(t===null)return d.f|=8388608,e;if((t.f&32768)===0&&(t.f&4)===0)throw e;ue(e,t)}function ue(e,t){if(!(t!==null&&(t.f&16384)!==0)){for(;t!==null;){if((t.f&128)!==0){if((t.f&32768)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}}const Xt=-7169;function T(e,t){e.f=e.f&Xt|t}function we(e){(e.f&512)!==0||e.deps===null?T(e,1024):T(e,4096)}function Ze(e){if(e!==null)for(const t of e)(t.f&2)===0||(t.f&65536)===0||(t.f^=65536,Ze(t.deps))}function $t(e,t,n){(e.f&2048)!==0?t.add(e):(e.f&4096)!==0&&n.add(e),Ze(e.deps),T(e,1024)}let Me=!1;function Zt(){Me||(Me=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[re]?.()})},{capture:!0}))}function te(e){var t=d,n=h;x(null),q(null);try{return e()}finally{x(t),q(n)}}function _r(e,t,n,r=n){e.addEventListener(t,()=>te(n));const s=e[re];s?e[re]=()=>{s(),r(!0)}:e[re]=()=>r(!0),Zt()}function Jt(e,t,n,r){const s=ye;var i=e.filter(E=>!E.settled),u=t.map(s);if(n.length===0&&i.length===0){r(u);return}var a=h,l=Qt(),f=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(E=>E.promise)):null;function _(E){if((a.f&16384)===0){l();try{r([...u,...E])}catch(v){ue(v,a)}oe()}}var o=Je();if(n.length===0){f.then(()=>_([])).finally(o);return}function c(){Promise.all(n.map(E=>en(E))).then(_).catch(E=>ue(E,a)).finally(o)}f?f.then(()=>{l(),c(),oe()}):c()}function Qt(){var e=h,t=d,n=F,r=p;return function(i=!0){q(e),x(t),ae(n),i&&(e.f&16384)===0&&(r?.activate(),r?.apply())}}function oe(e=!0){q(null),x(null),ae(null),e&&p?.deactivate()}function Je(){var e=h,t=e.b,n=p,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function ye(e){var t=2050;return h!==null&&(h.f|=524288),{ctx:F,deps:null,effects:null,equals:Ge,f:t,fn:e,reactions:null,rv:0,v:R,wv:0,parent:h,ac:null}}const X=Symbol("obsolete");function en(e,t,n){let r=h;r===null&&bt();var s=void 0,i=me(R),u=!d,a=new Set;return _n(()=>{var l=h,f=je();s=f.promise;try{Promise.resolve(e()).then(f.resolve,E=>{E!==ee&&f.reject(E)}).finally(oe)}catch(E){f.reject(E),oe()}var _=p;if(u){if((l.f&32768)!==0)var o=Je();if(r.b?.is_rendered())_.async_deriveds.get(l)?.reject(X);else for(const E of a.values())E.reject(X);a.add(f),_.async_deriveds.set(l,f)}const c=(E,v=void 0)=>{o?.(),a.delete(f),v!==X&&(_.activate(),v?(i.f|=8388608,Ae(i,v)):((i.f&8388608)!==0&&(i.f^=8388608),Ae(i,E)),_.deactivate())};f.promise.then(c,E=>c(null,E||"unknown"))}),cn(()=>{for(const l of a)l.reject(X)}),new Promise(l=>{function f(_){function o(){_===s?l(i):f(s)}_.then(o,o)}f(s)})}function Er(e){const t=ye(e);return lt(t),t}function vr(e){const t=ye(e);return t.equals=qe,t}function tn(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)U(t[n])}}function Ie(e){var t,n=h,r=e.parent;if(!L&&r!==null&&e.v!==R&&(r.f&24576)!==0)return Gt(),e.v;q(r);try{e.f&=-65537,tn(e),t=ot(e)}finally{q(n)}return t}function Qe(e){var t=Ie(e);if(!e.equals(t)&&(e.wv=ft(),(!p?.is_fork||e.deps===null)&&(p!==null?(p.capture(e,t,!0),Re?.capture(e,t,!0)):e.v=t,e.deps===null))){T(e,1024);return}L||(w!==null?(vt()||p?.is_fork)&&w.set(e,t):we(e))}function nn(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac!==null&&te(()=>{t.ac.abort(ee),t.ac=null}),t.fn!==null&&(t.teardown=gt),Q(t,0),Se(t))}function et(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&t.fn!==null&&W(t)}let de=null,K=null,p=null,Re=null,w=null,Ce=null,J=!1,he=!1,j=null,se=null;var Pe=0;let rn=1;class Y{id=rn++;#c=!1;linked=!0;#i=null;#a=null;async_deriveds=new Map;current=new Map;previous=new Map;#_=new Set;#E=new Set;#v=0;#r=new Map;#d=null;#e=[];#p=[];#s=new Set;#t=new Set;#n=new Map;#h=new Set;is_fork=!1;#f=!1;constructor(){K===null?de=K=this:(K.#a=this,this.#i=K),K=this}#T(){if(this.is_fork)return!0;for(const r of this.#r.keys()){for(var t=r,n=!1;t.parent!==null;){if(this.#n.has(t)){n=!0;break}t=t.parent}if(!n)return!0}return!1}skip_effect(t){this.#n.has(t)||this.#n.set(t,{d:[],m:[]}),this.#h.delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=this.#n.get(t);if(r){this.#n.delete(t);for(var s of r.d)T(s,2048),n(s);for(s of r.m)T(s,4096),n(s)}this.#h.add(t)}#u(){this.#c=!0,Pe++>1e3&&(this.#o(),ln());for(const l of this.#s)this.#t.delete(l),T(l,2048),this.schedule(l);for(const l of this.#t)T(l,4096),this.schedule(l);const t=this.#e;this.#e=[],this.apply();var n=j=[],r=[],s=se=[];for(const l of t)try{this.#R(l,n,r)}catch(f){throw rt(l),this.#T()||this.discard(),f}if(p=null,s.length>0){var i=Y.ensure();for(const l of s)i.schedule(l)}if(j=null,se=null,this.#T()){this.#l(r),this.#l(n);for(const[l,f]of this.#n)nt(l,f);s.length>0&&p.#u();return}const u=this.#C();if(u){this.#l(r),this.#l(n),u.#A(this);return}this.#s.clear(),this.#t.clear();for(const l of this.#_)l(this);this.#_.clear(),Re=this,Be(r),Be(n),Re=null,this.#d?.resolve();var a=p;if(this.#v===0&&(this.#e.length===0||a!==null)&&this.#o(),this.#e.length>0)if(a!==null){const l=a;l.#e.push(...this.#e.filter(f=>!l.#e.includes(f)))}else a=this;a!==null&&(I.clear(),a.#u())}#R(t,n,r){t.f^=1024;for(var s=t.first;s!==null;){var i=s.f,u=(i&96)!==0,a=u&&(i&1024)!==0,l=a||(i&8192)!==0||this.#n.has(s);if(!l&&s.fn!==null){u?s.f^=1024:(i&4)!==0?n.push(s):ne(s)&&((i&16)!==0&&this.#t.add(s),W(s));var f=s.first;if(f!==null){s=f;continue}}for(;s!==null;){var _=s.next;if(_!==null){s=_;break}s=s.parent}}}#C(){for(var t=this.#i;t!==null;){if(!t.is_fork){for(const[n,[,r]]of this.current)if(t.current.has(n)&&!r)return t}t=t.#i}return null}#A(t){for(const[r,s]of t.current)!this.previous.has(r)&&t.previous.has(r)&&this.previous.set(r,t.previous.get(r)),this.current.set(r,s);for(const[r,s]of t.async_deriveds){const i=this.async_deriveds.get(r);i&&s.promise.then(i.resolve).catch(i.reject)}t.async_deriveds.clear(),this.transfer_effects(t.#s,t.#t);const n=r=>{var s=r.reactions;if(s!==null&&!((r.f&2)!==0&&(r.f&6144)===0))for(const a of s){var i=a.f;if((i&2)!==0)n(a);else{var u=a;i&4194320&&!this.async_deriveds.has(u)&&(this.#t.delete(u),T(u,2048),this.schedule(u))}}};for(const r of this.current.keys())n(r);this.oncommit(()=>t.discard()),t.#o(),p=this,this.#u()}#l(t){for(var n=0;n<t.length;n+=1)$t(t[n],this.#s,this.#t)}capture(t,n,r=!1){t.v!==R&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&8388608)===0&&(this.current.set(t,[n,r]),w?.set(t,n)),this.is_fork||(t.v=n)}activate(){p=this}deactivate(){p=null,w=null}flush(){try{he=!0,p=this,this.#u()}finally{Pe=0,Ce=null,j=null,se=null,he=!1,p=null,w=null,I.clear()}}discard(){for(const t of this.#E)t(this);this.#E.clear();for(const t of this.async_deriveds.values())t.reject(X);this.#o(),this.#d?.resolve()}register_created_effect(t){this.#p.push(t)}#D(){for(let o=de;o!==null;o=o.#a){var t=o.id<this.id,n=[];for(const[c,[E,v]]of this.current){if(o.current.has(c)){var r=o.current.get(c)[0];if(t&&E!==r)o.current.set(c,[E,v]);else continue}n.push(c)}if(t)for(const[c,E]of this.async_deriveds){const v=o.async_deriveds.get(c);v&&E.promise.then(v.resolve).catch(v.reject)}var s=[...o.current.keys()].filter(c=>!o.current.get(c)[1]);if(!(!o.#c||s.length===0)){var i=s.filter(c=>!this.current.has(c));if(i.length===0)t&&o.discard();else if(n.length>0){if(t)for(const c of this.#h)o.unskip_effect(c,E=>{(E.f&4194320)!==0?o.schedule(E):o.#l([E])});o.activate();var u=new Set,a=new Map;for(var l of n)tt(l,i,u,a);a=new Map;var f=[...o.current].filter(([c,E])=>{const v=this.current.get(c);return v?v[0]!==E[0]||v[1]!==E[1]:!0}).map(([c])=>c);if(f.length>0)for(const c of this.#p)(c.f&155648)===0&&Oe(c,f,a)&&((c.f&4194320)!==0?(T(c,2048),o.schedule(c)):o.#s.add(c));if(o.#e.length>0&&!o.#f){o.apply();for(var _ of o.#e)o.#R(_,[],[]);o.#e=[]}o.deactivate()}}}}increment(t,n){if(this.#v+=1,t){let r=this.#r.get(n)??0;this.#r.set(n,r+1)}}decrement(t,n){if(this.#v-=1,t){let r=this.#r.get(n)??0;r===1?this.#r.delete(n):this.#r.set(n,r-1)}this.#f||(this.#f=!0,xe(()=>{this.#f=!1,this.linked&&this.flush()}))}transfer_effects(t,n){for(const r of t)this.#s.add(r);for(const r of n)this.#t.add(r);t.clear(),n.clear()}oncommit(t){this.#_.add(t)}ondiscard(t){this.#E.add(t)}settled(){return(this.#d??=je()).promise}static ensure(){if(p===null){const t=p=new Y;!he&&!J&&xe(()=>{t.#c||t.flush()})}return p}apply(){{w=null;return}}schedule(t){if(Ce=t,t.b?.is_pending&&(t.f&16777228)!==0&&(t.f&32768)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(j!==null&&n===h&&(d===null||(d.f&2)===0))return;if((r&96)!==0){if((r&1024)===0)return;n.f^=1024}}this.#e.push(n)}#o(){if(this.linked){var t=this.#i,n=this.#a;t===null?de=n:t.#a=n,n===null?K=t:n.#i=t,this.linked=!1}}}function sn(e){var t=J;J=!0;try{for(var n;;){if(jt(),p===null)return n;p.flush()}}finally{J=t}}function ln(){try{kt()}catch(e){ue(e,Ce)}}let S=null;function Be(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&24576)===0&&ne(r)&&(S=new Set,W(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&pt(r),S?.size>0)){I.clear();for(const s of S){if((s.f&24576)!==0)continue;const i=[s];let u=s.parent;for(;u!==null;)S.has(u)&&(S.delete(u),i.push(u)),u=u.parent;for(let a=i.length-1;a>=0;a--){const l=i[a];(l.f&24576)===0&&W(l)}}S.clear()}}S=null}}function tt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;(i&2)!==0?tt(s,t,n,r):(i&4194320)!==0&&(i&2048)===0&&Oe(s,t,r)&&(T(s,2048),ge(s))}}function Oe(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(le.call(t,s))return!0;if((s.f&2)!==0&&Oe(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function ge(e){p.schedule(e)}function nt(e,t){if(!((e.f&32)!==0&&(e.f&1024)!==0)){(e.f&2048)!==0?t.d.push(e):(e.f&4096)!==0&&t.m.push(e),T(e,1024);for(var n=e.first;n!==null;)nt(n,t),n=n.next}}function rt(e){T(e,1024);for(var t=e.first;t!==null;)rt(t),t=t.next}let ce=new Set;const I=new Map;let st=!1;function me(e,t){var n={f:0,v:e,reactions:null,equals:Ge,rv:0,wv:0};return n}function b(e,t){const n=me(e);return lt(n),n}function dr(e,t=!1,n=!0){const r=me(e);return t||(r.equals=qe),r}function M(e,t,n=!1){d!==null&&(!y||(d.f&131072)!==0)&&We()&&(d.f&4325394)!==0&&(O===null||!O.has(e))&&Bt();let r=n?z(t):t;return Ae(e,r,se)}function Ae(e,t,n=null){if(!e.equals(t)){L?I.set(e,t):I.has(e)||I.set(e,e.v);var r=Y.ensure();if(r.capture(e,t),(e.f&2)!==0){const s=e;(e.f&2048)!==0&&Ie(s),w===null&&we(s)}e.wv=ft(),it(e,2048,n),h!==null&&(h.f&1024)!==0&&(h.f&96)===0&&(N===null?fn([e]):N.push(e)),!r.is_fork&&ce.size>0&&!st&&an()}return t}function an(){st=!1;for(const e of ce){(e.f&1024)!==0&&T(e,4096);let t;try{t=ne(e)}catch{t=!0}t&&W(e)}ce.clear()}function pe(e){M(e,e.v+1)}function it(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,i=0;i<s;i++){var u=r[i],a=u.f,l=(a&2048)===0;if(l&&T(u,t),(a&131072)!==0)ce.add(u);else if((a&2)!==0){var f=u;w?.delete(f),(a&65536)===0&&(a&512&&(h===null||(h.f&2097152)===0)&&(u.f|=65536),it(f,4096,n))}else if(l){var _=u;(a&16)!==0&&S!==null&&S.add(_),n!==null?n.push(_):ge(_)}}}let ie=!1,L=!1;function Ve(e){L=e}let d=null,y=!1;function x(e){d=e}let h=null;function q(e){h=e}let O=null;function lt(e){d!==null&&(O??=new Set).add(e)}let C=null,D=0,N=null;function fn(e){N=e}let at=1,B=0,V=B;function He(e){V=e}function ft(){return++at}function ne(e){var t=e.f;if((t&2048)!==0)return!0;if(t&2&&(e.f&=-65537),(t&4096)!==0){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(ne(i)&&Qe(i),i.wv>e.wv)return!0}(t&512)!==0&&w===null&&T(e,1024)}return!1}function ut(e,t,n=!0){var r=e.reactions;if(r!==null&&!(O!==null&&O.has(e)))for(var s=0;s<r.length;s++){var i=r[s];(i.f&2)!==0?ut(i,t,!1):t===i&&(n?T(i,2048):(i.f&1024)!==0&&T(i,4096),ge(i))}}function ot(e){var t=C,n=D,r=N,s=d,i=O,u=F,a=y,l=V,f=e.f;C=null,D=0,N=null,d=(f&96)===0?e:null,O=null,ae(e.ctx),y=!1,V=++B,e.ac!==null&&(te(()=>{e.ac.abort(ee)}),e.ac=null);try{e.f|=2097152;var _=e.fn,o=_();e.f|=32768;var c=e.deps,E=p?.is_fork;if(C!==null){var v;if(E||Q(e,D),c!==null&&D>0)for(c.length=D+C.length,v=0;v<C.length;v++)c[D+v]=C[v];else e.deps=c=C;if(vt()&&(e.f&512)!==0)for(v=D;v<c.length;v++)(c[v].reactions??=[]).push(e)}else!E&&c!==null&&D<c.length&&(Q(e,D),c.length=D);if(We()&&N!==null&&!y&&c!==null&&(e.f&6146)===0)for(v=0;v<N.length;v++)ut(N[v],e);if(s!==null&&s!==e){if(B++,s.deps!==null)for(let m=0;m<n;m+=1)s.deps[m].rv=B;if(t!==null)for(const m of t)m.rv=B;N!==null&&(r===null?r=N:r.push(...N))}return(e.f&8388608)!==0&&(e.f^=8388608),o}catch(m){return zt(m)}finally{e.f^=2097152,C=t,D=n,N=r,d=s,O=i,ae(u),y=a,V=l}}function un(e,t){let n=t.reactions;if(n!==null){var r=wt.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&(t.f&2)!==0&&(C===null||!le.call(C,t))){var i=t;(i.f&512)!==0&&(i.f^=512,i.f&=-65537),i.v!==R&&we(i),i.ac!==null&&te(()=>{i.ac.abort(ee),i.ac=null,T(i,2048)}),nn(i),Q(i,0)}}function Q(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)un(e,n[r])}function W(e){var t=e.f;if((t&16384)===0){T(e,1024);var n=h,r=ie;h=e,ie=(t&96)===0;try{(t&16777232)!==0?En(e):Se(e),ht(e);var s=ot(e);e.teardown=typeof s=="function"?s:null,e.wv=at;var i;Ke&&Vt&&(e.f&2048)!==0&&e.deps}finally{ie=r,h=n}}}async function hr(){await Promise.resolve(),sn()}function pr(){return Y.ensure().settled()}function $(e){var t=e.f,n=(t&2)!==0;if(d!==null&&!y){var r=h!==null&&(h.f&16384)!==0;if(!r&&(O===null||!O.has(e))){var s=d.deps;if((d.f&2097152)!==0)e.rv<B&&(e.rv=B,C===null&&s!==null&&s[D]===e?D++:C===null?C=[e]:C.push(e));else{d.deps??=[],le.call(d.deps,e)||d.deps.push(e);var i=e.reactions;i===null?e.reactions=[d]:le.call(i,d)||i.push(d)}}}if(L&&I.has(e))return I.get(e);if(n){var u=e;if(L){var a=u.v;return((u.f&1024)===0&&u.reactions!==null||_t(u))&&(a=Ie(u)),I.set(u,a),a}var l=(u.f&512)===0&&!y&&d!==null&&(ie||(d.f&512)!==0),f=(u.f&32768)===0;ne(u)&&(l&&(u.f|=512),Qe(u)),l&&!f&&(et(u),ct(u))}if(w?.has(e))return w.get(e);if((e.f&8388608)!==0)throw e.v;return e.v}function ct(e){if(e.f|=512,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),(t.f&2)!==0&&(t.f&512)===0&&(et(t),ct(t))}function _t(e){if(e.v===R)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(I.has(t)||(t.f&2)!==0&&_t(t))return!0;return!1}function Tr(e){var t=y;try{return y=!0,e()}finally{y=t}}function Et(e){h===null&&(d===null&&xt(),Lt()),L&&Yt()}function on(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function g(e,t){var n=h;n!==null&&(n.f&8192)!==0&&(e|=8192);var r={ctx:F,deps:null,nodes:null,f:e|2048|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};p?.register_created_effect(r);var s=r;if((e&4)!==0)j!==null?j.push(r):Y.ensure().schedule(r);else if(t!==null){try{W(r)}catch(u){throw U(r),u}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&(s.f&524288)===0&&(s=s.first,(e&16)!==0&&(e&65536)!==0&&s!==null&&(s.f|=65536))}if(s!==null&&(s.parent=n,n!==null&&on(s,n),d!==null&&(d.f&2)!==0&&(e&64)===0)){var i=d;(i.effects??=[]).push(s)}return r}function vt(){return d!==null&&!y}function cn(e){const t=g(8,null);return T(t,1024),t.teardown=e,t}function Rr(e){Et();var t=h.f,n=!d&&(t&32)!==0&&F!==null&&!F.i;if(n){var r=F;(r.e??=[]).push(e)}else return dt(e)}function dt(e){return g(1048580,e)}function Cr(e){return Et(),g(1048584,e)}function Ar(e){Y.ensure();const t=g(524352,e);return(n={})=>new Promise(r=>{n.outro?dn(t,()=>{U(t),r(void 0)}):(U(t),r(void 0))})}function Dr(e){return g(4,e)}function _n(e){return g(4718592,e)}function Nr(e,t=0){return g(8|t,e)}function Fr(e,t=[],n=[],r=[]){Jt(r,t,n,s=>{g(8,()=>{e(...s.map($))})})}function wr(e,t=0){var n=g(16|t,e);return n}function yr(e){return g(524320,e)}function ht(e){var t=e.teardown;if(t!==null){const n=L,r=d;Ve(!0),x(null);try{t.call(null)}finally{Ve(n),x(r)}}}function Se(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&te(()=>{s.abort(ee)});var r=n.next;(n.f&64)!==0?n.parent=null:U(n,t),n=r}}function En(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&32)===0&&U(t),t=n}}function U(e,t=!0){var n=!1;(t||(e.f&262144)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(vn(e.nodes.start,e.nodes.end),n=!0),e.f|=33554432,Se(e,t&&!n),Q(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();ht(e),e.f^=33554432,e.f|=16384;var s=e.parent;s!==null&&s.first!==null&&pt(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function vn(e,t){for(;e!==null;){var n=e===t?null:k(e);e.remove(),e=n}}function pt(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function dn(e,t,n=!0){var r=[];Tt(e,r,!0);var s=()=>{n&&U(e),t&&t()},i=r.length;if(i>0){var u=()=>--i||s();for(var a of r)a.out(u)}else s()}function Tt(e,t,n){if((e.f&8192)===0){e.f^=8192;var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)(a.is_global||n)&&t.push(a);for(var s=e.first;s!==null;){var i=s.next;if((s.f&64)===0){var u=(s.f&65536)!==0||(s.f&32)!==0&&(e.f&16)!==0;Tt(s,t,u?n:!1)}s=i}}}function Ir(e){Rt(e,!0)}function Rt(e,t){if((e.f&8192)!==0){e.f^=8192,(e.f&1024)===0&&(T(e,2048),Y.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&65536)!==0||(n.f&32)!==0;Rt(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const u of i)(u.is_global||t)&&u.in()}}function Or(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:k(n);t.append(n),n=s}}export{Ft as $,Te as A,Ut as B,Ue as C,Kt as D,Dn as E,Ae as F,p as G,Ht as H,wn as I,yr as J,Yn as K,yn as L,or as M,vr as N,Mn as O,Hn as P,me as Q,Pn as R,Rn as S,Ir as T,dn as U,Tn as V,hn as W,ur as X,Or as Y,U as Z,mn as _,er as a,Fe as a$,xe as a0,k as a1,Bn as a2,Vn as a3,Nn as a4,At as a5,Dt as a6,In as a7,Ct as a8,Xn as a9,pn as aA,zn as aB,$t as aC,q as aD,x as aE,ae as aF,Y as aG,zt as aH,d as aI,ue as aJ,Fn as aK,Jn as aL,kn as aM,cn as aN,te as aO,ir as aP,De as aQ,Ln as aR,Ar as aS,Ne as aT,Nt as aU,cr as aV,Wt as aW,qn as aX,Wn as aY,Cn as aZ,_e as a_,gn as aa,Ot as ab,re as ac,Zt as ad,bn as ae,_r as af,Tr as ag,Nr as ah,nr as ai,Dr as aj,qt as ak,F as al,h as am,An as an,ve as ao,Z as ap,xn as aq,Kn as ar,z as as,L as at,Gn as au,jn as av,Un as aw,ye as ax,vt as ay,pe as az,wr as b,pr as b0,gt as b1,St as b2,rr as c,Sn as d,G as e,sn as f,$ as g,H as h,Qn as i,A as j,Rr as k,ar as l,dr as m,fr as n,Zn as o,$n as p,b as q,sr as r,M as s,hr as t,Cr as u,lr as v,tr as w,Fr as x,Er as y,fe as z};
 
1
+ const hn=32;const pn=128;const Tn=8192,Rn=16384,Cn=32768,An=33554432,Dn=65536;const Nn=262144,Fn=524288;const wn=33554432;const ve=Symbol("$state"),yn=Symbol("legacy props"),In=Symbol(""),Ct=Symbol("attributes"),At=Symbol("class"),Dt=Symbol("style"),Nt=Symbol("text"),re=Symbol("form reset"),ee=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},gn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),_e=3,Ue=8,Ke=!1;var Ft=Array.isArray,wt=Array.prototype.indexOf,le=Array.prototype.includes,mn=Array.from,Sn=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,bn=Object.getOwnPropertyDescriptors,yt=Object.prototype,It=Array.prototype,Ot=Object.getPrototypeOf,Le=Object.isExtensible;const gt=()=>{};function mt(e){for(var t=0;t<e.length;t++)e[t]()}function je(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Ge(e){return e===this.v}function St(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function qe(e){return!St(e,this.v)}function bt(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Yn(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Yt(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Lt(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function xt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function kt(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ln(){throw new Error("https://svelte.dev/e/hydration_failed")}function xn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Mt(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Pt(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Bt(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function kn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}let Vt=!1;const Mn=1,Pn=2,Bn=4,Vn=8,Hn=16,Un=1,Kn=4,jn=8,Gn=16,qn=1,Wn=2,Ht="[",Ut="[!",zn="[?",Kt="]",De={},R=Symbol("uninitialized"),Xn="http://www.w3.org/1999/xhtml";let F=null;function ae(e){F=e}function $n(e,t=!1,n){F={p:F,i:!1,c:null,e:null,s:e,x:null,r:h,l:null}}function Zn(e){var t=F,n=t.e;if(n!==null){t.e=null;for(var r of n)dt(r)}return t.i=!0,F=t.p,{}}function We(){return!0}let P=[];function ze(){var e=P;P=[],mt(e)}function xe(e){if(P.length===0&&!J){var t=P;queueMicrotask(()=>{t===P&&ze()})}P.push(e)}function jt(){for(;P.length>0;)ze()}function Gt(){console.warn("https://svelte.dev/e/derived_inert")}function Ne(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Jn(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let H=!1;function Qn(e){H=e}let A;function G(e){if(e===null)throw Ne(),De;return A=e}function er(){return G(k(A))}function tr(e){if(H){if(k(A)!==null)throw Ne(),De;A=e}}function nr(e=1){if(H){for(var t=e,n=A;t--;)n=k(n);A=n}}function rr(e=!0){for(var t=0,n=A;;){if(n.nodeType===Ue){var r=n.data;if(r===Kt){if(t===0)return n;t-=1}else(r===Ht||r===Ut||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=k(n);e&&n.remove(),n=s}}function sr(e){if(!e||e.nodeType!==Ue)throw Ne(),De;return e.data}function z(e){if(typeof e!="object"||e===null||ve in e)return e;const t=Ot(e);if(t!==yt&&t!==It)return e;var n=new Map,r=Ft(e),s=b(0),i=V,u=a=>{if(V===i)return a();var l=d,f=V;x(null),He(i);var _=a();return x(l),He(f),_};return r&&n.set("length",b(e.length)),new Proxy(e,{defineProperty(a,l,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&Mt();var _=n.get(l);return _===void 0?u(()=>{var o=b(f.value);return n.set(l,o),o}):M(_,f.value,!0),!0},deleteProperty(a,l){var f=n.get(l);if(f===void 0){if(l in a){const _=u(()=>b(R));n.set(l,_),pe(s)}}else M(f,R),pe(s);return!0},get(a,l,f){if(l===ve)return e;var _=n.get(l),o=l in a;if(_===void 0&&(!o||Z(a,l)?.writable)&&(_=u(()=>{var E=z(o?a[l]:R),v=b(E);return v}),n.set(l,_)),_!==void 0){var c=$(_);return c===R?void 0:c}return Reflect.get(a,l,f)},getOwnPropertyDescriptor(a,l){var f=Reflect.getOwnPropertyDescriptor(a,l);if(f&&"value"in f){var _=n.get(l);_&&(f.value=$(_))}else if(f===void 0){var o=n.get(l),c=o?.v;if(o!==void 0&&c!==R)return{enumerable:!0,configurable:!0,value:c,writable:!0}}return f},has(a,l){if(l===ve)return!0;var f=n.get(l),_=f!==void 0&&f.v!==R||Reflect.has(a,l);if(f!==void 0||h!==null&&(!_||Z(a,l)?.writable)){f===void 0&&(f=u(()=>{var c=_?z(a[l]):R,E=b(c);return E}),n.set(l,f));var o=$(f);if(o===R)return!1}return _},set(a,l,f,_){var o=n.get(l),c=l in a;if(r&&l==="length")for(var E=f;E<o.v;E+=1){var v=n.get(E+"");v!==void 0?M(v,R):E in a&&(v=u(()=>b(R)),n.set(E+"",v))}if(o===void 0)(!c||Z(a,l)?.writable)&&(o=u(()=>b(void 0)),M(o,z(f)),n.set(l,o));else{c=o.v!==R;var m=u(()=>z(f));M(o,m)}var be=Reflect.getOwnPropertyDescriptor(a,l);if(be?.set&&be.set.call(_,f),!c){if(r&&typeof l=="string"){var Ye=n.get("length"),Ee=Number(l);Number.isInteger(Ee)&&Ee>=Ye.v&&M(Ye,Ee+1)}pe(s)}return!0},ownKeys(a){$(s);var l=Reflect.ownKeys(a).filter(o=>{var c=n.get(o);return c===void 0||c.v!==R});for(var[f,_]of n)_.v!==R&&!(f in a)&&l.push(f);return l},setPrototypeOf(){Pt()}})}var ke,qt,Wt,Xe,$e;function ir(){if(ke===void 0){ke=window,qt=document,Wt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Xe=Z(t,"firstChild").get,$e=Z(t,"nextSibling").get,Le(e)&&(e[At]=void 0,e[Ct]=null,e[Dt]=void 0,e.__e=void 0),Le(n)&&(n[Nt]=void 0)}}function fe(e=""){return document.createTextNode(e)}function Te(e){return Xe.call(e)}function k(e){return $e.call(e)}function lr(e,t){if(!H)return Te(e);var n=Te(A);if(n===null)n=A.appendChild(fe());else if(t&&n.nodeType!==_e){var r=fe();return n?.before(r),G(r),r}return t&&Fe(n),G(n),n}function ar(e,t=!1){if(!H){var n=Te(e);return n instanceof Comment&&n.data===""?k(n):n}if(t){if(A?.nodeType!==_e){var r=fe();return A?.before(r),G(r),r}Fe(A)}return A}function fr(e,t=1,n=!1){let r=H?A:e;for(var s;t--;)s=r,r=k(r);if(!H)return r;if(n){if(r?.nodeType!==_e){var i=fe();return r===null?s?.after(i):r.before(i),G(i),i}Fe(r)}return G(r),r}function ur(e){e.textContent=""}function or(){return!1}function cr(e,t,n){return n?document.createElement(e,{is:n}):document.createElement(e)}function Fe(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===_e;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function zt(e){var t=h;if(t===null)return d.f|=8388608,e;if((t.f&32768)===0&&(t.f&4)===0)throw e;ue(e,t)}function ue(e,t){if(!(t!==null&&(t.f&16384)!==0)){for(;t!==null;){if((t.f&128)!==0){if((t.f&32768)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}}const Xt=-7169;function T(e,t){e.f=e.f&Xt|t}function we(e){(e.f&512)!==0||e.deps===null?T(e,1024):T(e,4096)}function Ze(e){if(e!==null)for(const t of e)(t.f&2)===0||(t.f&65536)===0||(t.f^=65536,Ze(t.deps))}function $t(e,t,n){(e.f&2048)!==0?t.add(e):(e.f&4096)!==0&&n.add(e),Ze(e.deps),T(e,1024)}let Me=!1;function Zt(){Me||(Me=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[re]?.()})},{capture:!0}))}function te(e){var t=d,n=h;x(null),q(null);try{return e()}finally{x(t),q(n)}}function _r(e,t,n,r=n){e.addEventListener(t,()=>te(n));const s=e[re];s?e[re]=()=>{s(),r(!0)}:e[re]=()=>r(!0),Zt()}function Jt(e,t,n,r){const s=ye;var i=e.filter(E=>!E.settled),u=t.map(s);if(n.length===0&&i.length===0){r(u);return}var a=h,l=Qt(),f=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(E=>E.promise)):null;function _(E){if((a.f&16384)===0){l();try{r([...u,...E])}catch(v){ue(v,a)}oe()}}var o=Je();if(n.length===0){f.then(()=>_([])).finally(o);return}function c(){Promise.all(n.map(E=>en(E))).then(_).catch(E=>ue(E,a)).finally(o)}f?f.then(()=>{l(),c(),oe()}):c()}function Qt(){var e=h,t=d,n=F,r=p;return function(i=!0){q(e),x(t),ae(n),i&&(e.f&16384)===0&&(r?.activate(),r?.apply())}}function oe(e=!0){q(null),x(null),ae(null),e&&p?.deactivate()}function Je(){var e=h,t=e.b,n=p,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function ye(e){var t=2050;return h!==null&&(h.f|=524288),{ctx:F,deps:null,effects:null,equals:Ge,f:t,fn:e,reactions:null,rv:0,v:R,wv:0,parent:h,ac:null}}const X=Symbol("obsolete");function en(e,t,n){let r=h;r===null&&bt();var s=void 0,i=me(R),u=!d,a=new Set;return _n(()=>{var l=h,f=je();s=f.promise;try{Promise.resolve(e()).then(f.resolve,E=>{E!==ee&&f.reject(E)}).finally(oe)}catch(E){f.reject(E),oe()}var _=p;if(u){if((l.f&32768)!==0)var o=Je();if(r.b?.is_rendered())_.async_deriveds.get(l)?.reject(X);else for(const E of a.values())E.reject(X);a.add(f),_.async_deriveds.set(l,f)}const c=(E,v=void 0)=>{o?.(),a.delete(f),v!==X&&(_.activate(),v?(i.f|=8388608,Ae(i,v)):((i.f&8388608)!==0&&(i.f^=8388608),Ae(i,E)),_.deactivate())};f.promise.then(c,E=>c(null,E||"unknown"))}),cn(()=>{for(const l of a)l.reject(X)}),new Promise(l=>{function f(_){function o(){_===s?l(i):f(s)}_.then(o,o)}f(s)})}function Er(e){const t=ye(e);return lt(t),t}function vr(e){const t=ye(e);return t.equals=qe,t}function tn(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)U(t[n])}}function Ie(e){var t,n=h,r=e.parent;if(!L&&r!==null&&e.v!==R&&(r.f&24576)!==0)return Gt(),e.v;q(r);try{e.f&=-65537,tn(e),t=ot(e)}finally{q(n)}return t}function Qe(e){var t=Ie(e);if(!e.equals(t)&&(e.wv=ft(),(!p?.is_fork||e.deps===null)&&(p!==null?(p.capture(e,t,!0),Re?.capture(e,t,!0)):e.v=t,e.deps===null))){T(e,1024);return}L||(w!==null?(vt()||p?.is_fork)&&w.set(e,t):we(e))}function nn(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac!==null&&te(()=>{t.ac.abort(ee),t.ac=null}),t.fn!==null&&(t.teardown=gt),Q(t,0),Se(t))}function et(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&t.fn!==null&&W(t)}let de=null,K=null,p=null,Re=null,w=null,Ce=null,J=!1,he=!1,j=null,se=null;var Pe=0;let rn=1;class Y{id=rn++;#c=!1;linked=!0;#i=null;#a=null;async_deriveds=new Map;current=new Map;previous=new Map;#_=new Set;#E=new Set;#v=0;#r=new Map;#d=null;#e=[];#p=[];#s=new Set;#t=new Set;#n=new Map;#h=new Set;is_fork=!1;#f=!1;constructor(){K===null?de=K=this:(K.#a=this,this.#i=K),K=this}#T(){if(this.is_fork)return!0;for(const r of this.#r.keys()){for(var t=r,n=!1;t.parent!==null;){if(this.#n.has(t)){n=!0;break}t=t.parent}if(!n)return!0}return!1}skip_effect(t){this.#n.has(t)||this.#n.set(t,{d:[],m:[]}),this.#h.delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=this.#n.get(t);if(r){this.#n.delete(t);for(var s of r.d)T(s,2048),n(s);for(s of r.m)T(s,4096),n(s)}this.#h.add(t)}#u(){this.#c=!0,Pe++>1e3&&(this.#o(),ln());for(const l of this.#s)this.#t.delete(l),T(l,2048),this.schedule(l);for(const l of this.#t)T(l,4096),this.schedule(l);const t=this.#e;this.#e=[],this.apply();var n=j=[],r=[],s=se=[];for(const l of t)try{this.#R(l,n,r)}catch(f){throw rt(l),this.#T()||this.discard(),f}if(p=null,s.length>0){var i=Y.ensure();for(const l of s)i.schedule(l)}if(j=null,se=null,this.#T()){this.#l(r),this.#l(n);for(const[l,f]of this.#n)nt(l,f);s.length>0&&p.#u();return}const u=this.#C();if(u){this.#l(r),this.#l(n),u.#A(this);return}this.#s.clear(),this.#t.clear();for(const l of this.#_)l(this);this.#_.clear(),Re=this,Be(r),Be(n),Re=null,this.#d?.resolve();var a=p;if(this.#v===0&&(this.#e.length===0||a!==null)&&this.#o(),this.#e.length>0)if(a!==null){const l=a;l.#e.push(...this.#e.filter(f=>!l.#e.includes(f)))}else a=this;a!==null&&(I.clear(),a.#u())}#R(t,n,r){t.f^=1024;for(var s=t.first;s!==null;){var i=s.f,u=(i&96)!==0,a=u&&(i&1024)!==0,l=a||(i&8192)!==0||this.#n.has(s);if(!l&&s.fn!==null){u?s.f^=1024:(i&4)!==0?n.push(s):ne(s)&&((i&16)!==0&&this.#t.add(s),W(s));var f=s.first;if(f!==null){s=f;continue}}for(;s!==null;){var _=s.next;if(_!==null){s=_;break}s=s.parent}}}#C(){for(var t=this.#i;t!==null;){if(!t.is_fork){for(const[n,[,r]]of this.current)if(t.current.has(n)&&!r)return t}t=t.#i}return null}#A(t){for(const[r,s]of t.current)!this.previous.has(r)&&t.previous.has(r)&&this.previous.set(r,t.previous.get(r)),this.current.set(r,s);for(const[r,s]of t.async_deriveds){const i=this.async_deriveds.get(r);i&&s.promise.then(i.resolve).catch(i.reject)}t.async_deriveds.clear(),this.transfer_effects(t.#s,t.#t);const n=r=>{var s=r.reactions;if(s!==null&&!((r.f&2)!==0&&(r.f&6144)===0))for(const a of s){var i=a.f;if((i&2)!==0)n(a);else{var u=a;i&4194320&&!this.async_deriveds.has(u)&&(this.#t.delete(u),T(u,2048),this.schedule(u))}}};for(const r of this.current.keys())n(r);this.oncommit(()=>t.discard()),t.#o(),p=this,this.#u()}#l(t){for(var n=0;n<t.length;n+=1)$t(t[n],this.#s,this.#t)}capture(t,n,r=!1){t.v!==R&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&8388608)===0&&(this.current.set(t,[n,r]),w?.set(t,n)),this.is_fork||(t.v=n)}activate(){p=this}deactivate(){p=null,w=null}flush(){try{he=!0,p=this,this.#u()}finally{Pe=0,Ce=null,j=null,se=null,he=!1,p=null,w=null,I.clear()}}discard(){for(const t of this.#E)t(this);this.#E.clear();for(const t of this.async_deriveds.values())t.reject(X);this.#o(),this.#d?.resolve()}register_created_effect(t){this.#p.push(t)}#D(){for(let o=de;o!==null;o=o.#a){var t=o.id<this.id,n=[];for(const[c,[E,v]]of this.current){if(o.current.has(c)){var r=o.current.get(c)[0];if(t&&E!==r)o.current.set(c,[E,v]);else continue}n.push(c)}if(t)for(const[c,E]of this.async_deriveds){const v=o.async_deriveds.get(c);v&&E.promise.then(v.resolve).catch(v.reject)}var s=[...o.current.keys()].filter(c=>!o.current.get(c)[1]);if(!(!o.#c||s.length===0)){var i=s.filter(c=>!this.current.has(c));if(i.length===0)t&&o.discard();else if(n.length>0){if(t)for(const c of this.#h)o.unskip_effect(c,E=>{(E.f&4194320)!==0?o.schedule(E):o.#l([E])});o.activate();var u=new Set,a=new Map;for(var l of n)tt(l,i,u,a);a=new Map;var f=[...o.current].filter(([c,E])=>{const v=this.current.get(c);return v?v[0]!==E[0]||v[1]!==E[1]:!0}).map(([c])=>c);if(f.length>0)for(const c of this.#p)(c.f&155648)===0&&Oe(c,f,a)&&((c.f&4194320)!==0?(T(c,2048),o.schedule(c)):o.#s.add(c));if(o.#e.length>0&&!o.#f){o.apply();for(var _ of o.#e)o.#R(_,[],[]);o.#e=[]}o.deactivate()}}}}increment(t,n){if(this.#v+=1,t){let r=this.#r.get(n)??0;this.#r.set(n,r+1)}}decrement(t,n){if(this.#v-=1,t){let r=this.#r.get(n)??0;r===1?this.#r.delete(n):this.#r.set(n,r-1)}this.#f||(this.#f=!0,xe(()=>{this.#f=!1,this.linked&&this.flush()}))}transfer_effects(t,n){for(const r of t)this.#s.add(r);for(const r of n)this.#t.add(r);t.clear(),n.clear()}oncommit(t){this.#_.add(t)}ondiscard(t){this.#E.add(t)}settled(){return(this.#d??=je()).promise}static ensure(){if(p===null){const t=p=new Y;!he&&!J&&xe(()=>{t.#c||t.flush()})}return p}apply(){{w=null;return}}schedule(t){if(Ce=t,t.b?.is_pending&&(t.f&16777228)!==0&&(t.f&32768)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(j!==null&&n===h&&(d===null||(d.f&2)===0))return;if((r&96)!==0){if((r&1024)===0)return;n.f^=1024}}this.#e.push(n)}#o(){if(this.linked){var t=this.#i,n=this.#a;t===null?de=n:t.#a=n,n===null?K=t:n.#i=t,this.linked=!1}}}function sn(e){var t=J;J=!0;try{for(var n;;){if(jt(),p===null)return n;p.flush()}}finally{J=t}}function ln(){try{kt()}catch(e){ue(e,Ce)}}let S=null;function Be(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&24576)===0&&ne(r)&&(S=new Set,W(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&pt(r),S?.size>0)){I.clear();for(const s of S){if((s.f&24576)!==0)continue;const i=[s];let u=s.parent;for(;u!==null;)S.has(u)&&(S.delete(u),i.push(u)),u=u.parent;for(let a=i.length-1;a>=0;a--){const l=i[a];(l.f&24576)===0&&W(l)}}S.clear()}}S=null}}function tt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;(i&2)!==0?tt(s,t,n,r):(i&4194320)!==0&&(i&2048)===0&&Oe(s,t,r)&&(T(s,2048),ge(s))}}function Oe(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(le.call(t,s))return!0;if((s.f&2)!==0&&Oe(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function ge(e){p.schedule(e)}function nt(e,t){if(!((e.f&32)!==0&&(e.f&1024)!==0)){(e.f&2048)!==0?t.d.push(e):(e.f&4096)!==0&&t.m.push(e),T(e,1024);for(var n=e.first;n!==null;)nt(n,t),n=n.next}}function rt(e){T(e,1024);for(var t=e.first;t!==null;)rt(t),t=t.next}let ce=new Set;const I=new Map;let st=!1;function me(e,t){var n={f:0,v:e,reactions:null,equals:Ge,rv:0,wv:0};return n}function b(e,t){const n=me(e);return lt(n),n}function dr(e,t=!1,n=!0){const r=me(e);return t||(r.equals=qe),r}function M(e,t,n=!1){d!==null&&(!y||(d.f&131072)!==0)&&We()&&(d.f&4325394)!==0&&(O===null||!O.has(e))&&Bt();let r=n?z(t):t;return Ae(e,r,se)}function Ae(e,t,n=null){if(!e.equals(t)){L?I.set(e,t):I.has(e)||I.set(e,e.v);var r=Y.ensure();if(r.capture(e,t),(e.f&2)!==0){const s=e;(e.f&2048)!==0&&Ie(s),w===null&&we(s)}e.wv=ft(),it(e,2048,n),h!==null&&(h.f&1024)!==0&&(h.f&96)===0&&(N===null?fn([e]):N.push(e)),!r.is_fork&&ce.size>0&&!st&&an()}return t}function an(){st=!1;for(const e of ce){(e.f&1024)!==0&&T(e,4096);let t;try{t=ne(e)}catch{t=!0}t&&W(e)}ce.clear()}function pe(e){M(e,e.v+1)}function it(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,i=0;i<s;i++){var u=r[i],a=u.f,l=(a&2048)===0;if(l&&T(u,t),(a&131072)!==0)ce.add(u);else if((a&2)!==0){var f=u;w?.delete(f),(a&65536)===0&&(a&512&&(h===null||(h.f&2097152)===0)&&(u.f|=65536),it(f,4096,n))}else if(l){var _=u;(a&16)!==0&&S!==null&&S.add(_),n!==null?n.push(_):ge(_)}}}let ie=!1,L=!1;function Ve(e){L=e}let d=null,y=!1;function x(e){d=e}let h=null;function q(e){h=e}let O=null;function lt(e){d!==null&&(O??=new Set).add(e)}let C=null,D=0,N=null;function fn(e){N=e}let at=1,B=0,V=B;function He(e){V=e}function ft(){return++at}function ne(e){var t=e.f;if((t&2048)!==0)return!0;if(t&2&&(e.f&=-65537),(t&4096)!==0){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(ne(i)&&Qe(i),i.wv>e.wv)return!0}(t&512)!==0&&w===null&&T(e,1024)}return!1}function ut(e,t,n=!0){var r=e.reactions;if(r!==null&&!(O!==null&&O.has(e)))for(var s=0;s<r.length;s++){var i=r[s];(i.f&2)!==0?ut(i,t,!1):t===i&&(n?T(i,2048):(i.f&1024)!==0&&T(i,4096),ge(i))}}function ot(e){var t=C,n=D,r=N,s=d,i=O,u=F,a=y,l=V,f=e.f;C=null,D=0,N=null,d=(f&96)===0?e:null,O=null,ae(e.ctx),y=!1,V=++B,e.ac!==null&&(te(()=>{e.ac.abort(ee)}),e.ac=null);try{e.f|=2097152;var _=e.fn,o=_();e.f|=32768;var c=e.deps,E=p?.is_fork;if(C!==null){var v;if(E||Q(e,D),c!==null&&D>0)for(c.length=D+C.length,v=0;v<C.length;v++)c[D+v]=C[v];else e.deps=c=C;if(vt()&&(e.f&512)!==0)for(v=D;v<c.length;v++)(c[v].reactions??=[]).push(e)}else!E&&c!==null&&D<c.length&&(Q(e,D),c.length=D);if(We()&&N!==null&&!y&&c!==null&&(e.f&6146)===0)for(v=0;v<N.length;v++)ut(N[v],e);if(s!==null&&s!==e){if(B++,s.deps!==null)for(let m=0;m<n;m+=1)s.deps[m].rv=B;if(t!==null)for(const m of t)m.rv=B;N!==null&&(r===null?r=N:r.push(...N))}return(e.f&8388608)!==0&&(e.f^=8388608),o}catch(m){return zt(m)}finally{e.f^=2097152,C=t,D=n,N=r,d=s,O=i,ae(u),y=a,V=l}}function un(e,t){let n=t.reactions;if(n!==null){var r=wt.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&(t.f&2)!==0&&(C===null||!le.call(C,t))){var i=t;(i.f&512)!==0&&(i.f^=512,i.f&=-65537),i.v!==R&&we(i),i.ac!==null&&te(()=>{i.ac.abort(ee),i.ac=null,T(i,2048)}),nn(i),Q(i,0)}}function Q(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)un(e,n[r])}function W(e){var t=e.f;if((t&16384)===0){T(e,1024);var n=h,r=ie;h=e,ie=(t&96)===0;try{(t&16777232)!==0?En(e):Se(e),ht(e);var s=ot(e);e.teardown=typeof s=="function"?s:null,e.wv=at;var i;Ke&&Vt&&(e.f&2048)!==0&&e.deps}finally{ie=r,h=n}}}async function hr(){await Promise.resolve(),sn()}function pr(){return Y.ensure().settled()}function $(e){var t=e.f,n=(t&2)!==0;if(d!==null&&!y){var r=h!==null&&(h.f&16384)!==0;if(!r&&(O===null||!O.has(e))){var s=d.deps;if((d.f&2097152)!==0)e.rv<B&&(e.rv=B,C===null&&s!==null&&s[D]===e?D++:C===null?C=[e]:C.push(e));else{d.deps??=[],le.call(d.deps,e)||d.deps.push(e);var i=e.reactions;i===null?e.reactions=[d]:le.call(i,d)||i.push(d)}}}if(L&&I.has(e))return I.get(e);if(n){var u=e;if(L){var a=u.v;return((u.f&1024)===0&&u.reactions!==null||_t(u))&&(a=Ie(u)),I.set(u,a),a}var l=(u.f&512)===0&&!y&&d!==null&&(ie||(d.f&512)!==0),f=(u.f&32768)===0;ne(u)&&(l&&(u.f|=512),Qe(u)),l&&!f&&(et(u),ct(u))}if(w?.has(e))return w.get(e);if((e.f&8388608)!==0)throw e.v;return e.v}function ct(e){if(e.f|=512,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),(t.f&2)!==0&&(t.f&512)===0&&(et(t),ct(t))}function _t(e){if(e.v===R)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(I.has(t)||(t.f&2)!==0&&_t(t))return!0;return!1}function Tr(e){var t=y;try{return y=!0,e()}finally{y=t}}function Et(e){h===null&&(d===null&&xt(),Lt()),L&&Yt()}function on(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function g(e,t){var n=h;n!==null&&(n.f&8192)!==0&&(e|=8192);var r={ctx:F,deps:null,nodes:null,f:e|2048|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};p?.register_created_effect(r);var s=r;if((e&4)!==0)j!==null?j.push(r):Y.ensure().schedule(r);else if(t!==null){try{W(r)}catch(u){throw U(r),u}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&(s.f&524288)===0&&(s=s.first,(e&16)!==0&&(e&65536)!==0&&s!==null&&(s.f|=65536))}if(s!==null&&(s.parent=n,n!==null&&on(s,n),d!==null&&(d.f&2)!==0&&(e&64)===0)){var i=d;(i.effects??=[]).push(s)}return r}function vt(){return d!==null&&!y}function cn(e){const t=g(8,null);return T(t,1024),t.teardown=e,t}function Rr(e){Et();var t=h.f,n=!d&&(t&32)!==0&&F!==null&&!F.i;if(n){var r=F;(r.e??=[]).push(e)}else return dt(e)}function dt(e){return g(1048580,e)}function Cr(e){return Et(),g(1048584,e)}function Ar(e){Y.ensure();const t=g(524352,e);return(n={})=>new Promise(r=>{n.outro?dn(t,()=>{U(t),r(void 0)}):(U(t),r(void 0))})}function Dr(e){return g(4,e)}function _n(e){return g(4718592,e)}function Nr(e,t=0){return g(8|t,e)}function Fr(e,t=[],n=[],r=[]){Jt(r,t,n,s=>{g(8,()=>{e(...s.map($))})})}function wr(e,t=0){var n=g(16|t,e);return n}function yr(e){return g(524320,e)}function ht(e){var t=e.teardown;if(t!==null){const n=L,r=d;Ve(!0),x(null);try{t.call(null)}finally{Ve(n),x(r)}}}function Se(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&te(()=>{s.abort(ee)});var r=n.next;(n.f&64)!==0?n.parent=null:U(n,t),n=r}}function En(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&32)===0&&U(t),t=n}}function U(e,t=!0){var n=!1;(t||(e.f&262144)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(vn(e.nodes.start,e.nodes.end),n=!0),e.f|=33554432,Se(e,t&&!n),Q(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();ht(e),e.f^=33554432,e.f|=16384;var s=e.parent;s!==null&&s.first!==null&&pt(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function vn(e,t){for(;e!==null;){var n=e===t?null:k(e);e.remove(),e=n}}function pt(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function dn(e,t,n=!0){var r=[];Tt(e,r,!0);var s=()=>{n&&U(e),t&&t()},i=r.length;if(i>0){var u=()=>--i||s();for(var a of r)a.out(u)}else s()}function Tt(e,t,n){if((e.f&8192)===0){e.f^=8192;var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)(a.is_global||n)&&t.push(a);for(var s=e.first;s!==null;){var i=s.next;if((s.f&64)===0){var u=(s.f&65536)!==0||(s.f&32)!==0&&(e.f&16)!==0;Tt(s,t,u?n:!1)}s=i}}}function Ir(e){Rt(e,!0)}function Rt(e,t){if((e.f&8192)!==0){e.f^=8192,(e.f&1024)===0&&(T(e,2048),Y.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&65536)!==0||(n.f&32)!==0;Rt(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const u of i)(u.is_global||t)&&u.in()}}function Or(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:k(n);t.append(n),n=s}}export{Or as $,Bn as A,Te as B,Ut as C,Ue as D,Dn as E,Kt as F,Ae as G,Ht as H,p as I,wn as J,yr as K,yn as L,Yn as M,or as N,vr as O,Mn as P,Hn as Q,me as R,Pn as S,Rn as T,Ir as U,dn as V,Tn as W,xe as X,hn as Y,Vn as Z,ur as _,er as a,Fe as a$,U as a0,mn as a1,Ft as a2,k as a3,Nn as a4,At as a5,Dt as a6,In as a7,Ct as a8,Xn as a9,pn as aA,zn as aB,$t as aC,q as aD,x as aE,ae as aF,Y as aG,zt as aH,d as aI,ue as aJ,Fn as aK,Jn as aL,kn as aM,cn as aN,te as aO,ir as aP,De as aQ,Ln as aR,Ar as aS,Ne as aT,Nt as aU,cr as aV,Wt as aW,qn as aX,Wn as aY,Cn as aZ,_e as a_,gn as aa,Ot as ab,bn as ac,re as ad,Zt as ae,_r as af,Tr as ag,Nr as ah,nr as ai,Dr as aj,qt as ak,F as al,h as am,An as an,ve as ao,Z as ap,xn as aq,Kn as ar,z as as,L as at,Gn as au,jn as av,Un as aw,ye as ax,vt as ay,pe as az,wr as b,pr as b0,gt as b1,St as b2,rr as c,Sn as d,G as e,sn as f,$ as g,H as h,Qn as i,A as j,Rr as k,ar as l,dr as m,fr as n,Zn as o,$n as p,b as q,sr as r,M as s,hr as t,Cr as u,lr as v,tr as w,Fr as x,Er as y,fe as z};
_app/immutable/chunks/{D0_0fjwo.js → BS2jcRN4.js} RENAMED
@@ -1 +1 @@
1
- import{k as o,al as t,ag as c}from"./BF_FrA3D.js";function f(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function u(e){t===null&&f(),o(()=>{const n=c(e);if(typeof n=="function")return n})}export{u as o};
 
1
+ import{k as o,al as t,ag as c}from"./BPOa35me.js";function f(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function u(e){t===null&&f(),o(()=>{const n=c(e);if(typeof n=="function")return n})}export{u as o};
_app/immutable/chunks/Bav0O8J1.js DELETED
@@ -1,2 +0,0 @@
1
- import{ay as te,g as J,ah as re,ag as se,az as W,a0 as m,Q as U,j as p,h as g,am as b,aA as z,b as ie,a as ne,B as ae,aB as $,J as u,z as G,U as C,G as _,Y as fe,aC as he,aD as D,aE as N,aF as j,aG as oe,aH as le,aI as Q,al as X,F as ce,Z as x,e as O,ai as de,c as ue,aJ as S,E as _e,aK as pe,aL as ge,aM as ve,aN as ye,aO as me,d as be,aP as M,A as Ee,C as K,H as Te,a1 as we,aQ as I,i as R,aR as ke,X as Se,aS as Re,_ as Ae,p as De,D as Ne,aT as Oe,o as Fe,aU as q}from"./BF_FrA3D.js";import{d as Ce}from"./BbLVZPWC.js";function xe(r){let e=0,t=U(0),n;return()=>{te()&&(J(t),re(()=>(e===0&&(n=se(()=>r(()=>W(t)))),e+=1,()=>{m(()=>{e-=1,e===0&&(n?.(),n=void 0,W(t))})})))}}var He=_e|pe;function Le(r,e,t,n){new Me(r,e,t,n)}class Me{parent;is_pending=!1;transform_error;#r;#_=g?p:null;#i;#o;#t;#n=null;#e=null;#s=null;#a=null;#l=0;#h=0;#c=!1;#p=new Set;#g=new Set;#f=null;#E=xe(()=>(this.#f=U(this.#l),()=>{this.#f=null}));constructor(e,t,n,i){this.#r=e,this.#i=t,this.#o=s=>{var a=b;a.b=this,a.f|=z,n(s)},this.parent=b.b,this.transform_error=i??this.parent?.transform_error??(s=>s),this.#t=ie(()=>{if(g){const s=this.#_;ne();const a=s.data===ae;if(s.data.startsWith($)){const c=JSON.parse(s.data.slice($.length));this.#w(c)}else a?this.#k():this.#T()}else this.#y()},He),g&&(this.#r=p)}#T(){try{this.#n=u(()=>this.#o(this.#r))}catch(e){this.error(e)}}#w(e){const t=this.#i.failed,{reset:n,invoke_onerror:i}=this.#v(e);m(i),t&&(this.#s=u(()=>{t(this.#r,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;const i=()=>{if(t){ge();return}t=!0,n&&ve(),this.#s!==null&&C(this.#s,()=>{this.#s=null}),this.#u(()=>{this.#y()})};return{reset:i,invoke_onerror:()=>{try{n=!0,this.#i.onerror?.(e,i),n=!1}catch(a){S(a,this.#t&&this.#t.parent)}}}}#k(){const e=this.#i.pending;e&&(this.is_pending=!0,this.#e=u(()=>e(this.#r)),m(()=>{var t=this.#a=document.createDocumentFragment(),n=G();t.append(n),this.#n=this.#u(()=>u(()=>this.#o(n))),this.#h===0&&(this.#r.before(t),this.#a=null,C(this.#e,()=>{this.#e=null}),this.#d(_))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#h=0,this.#l=0,this.#n=u(()=>{this.#o(this.#r)}),this.#h>0){var e=this.#a=document.createDocumentFragment();fe(this.#n,e);const t=this.#i.pending;this.#e=u(()=>t(this.#r))}else this.#d(_)}catch(t){this.error(t)}}#d(e){this.is_pending=!1,e.transfer_effects(this.#p,this.#g)}defer_effect(e){he(e,this.#p,this.#g)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#i.pending}#u(e){var t=b,n=Q,i=X;D(this.#t),N(this.#t),j(this.#t.ctx);try{return oe.ensure(),e()}catch(s){return le(s),null}finally{D(t),N(n),j(i)}}#m(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#m(e,t);return}this.#h+=e,this.#h===0&&(this.#d(t),this.#e&&C(this.#e,()=>{this.#e=null}),this.#a&&(this.#r.before(this.#a),this.#a=null))}update_pending_count(e,t){this.#m(e,t),this.#l+=e,!(!this.#f||this.#c)&&(this.#c=!0,m(()=>{this.#c=!1,this.#f&&ce(this.#f,this.#l)}))}get_effect_pending(){return this.#E(),J(this.#f)}error(e){if(!this.#i.onerror&&!this.#i.failed)throw e;_?.is_fork?(this.#n&&_.skip_effect(this.#n),this.#e&&_.skip_effect(this.#e),this.#s&&_.skip_effect(this.#s),_.oncommit(()=>{this.#b(e)})):this.#b(e)}#b(e){this.#n&&(x(this.#n),this.#n=null),this.#e&&(x(this.#e),this.#e=null),this.#s&&(x(this.#s),this.#s=null),g&&(O(this.#_),de(),O(ue()));let t=this.#i.failed;const n=i=>{const{reset:s,invoke_onerror:a}=this.#v(i);a(),t&&(this.#s=this.#u(()=>{try{return u(()=>{var l=b;l.b=this,l.f|=z,t(this.#r,()=>i,()=>s)})}catch(l){return S(l,this.#t.parent),null}}))};m(()=>{var i;try{i=this.transform_error(e)}catch(s){S(s,this.#t&&this.#t.parent);return}i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(n,s=>S(s,this.#t&&this.#t.parent)):n(i)})}}const w=Symbol("events"),Z=new Set,B=new Set;function Ie(r,e,t,n={}){function i(s){if(n.capture||Y.call(e,s),!s.cancelBubble)return me(()=>t?.call(this,s))}return r.startsWith("pointer")||r.startsWith("touch")||r==="wheel"?m(()=>{e.addEventListener(r,i,n)}):e.addEventListener(r,i,n),i}function ze(r,e,t,n,i){var s={capture:n,passive:i},a=Ie(r,e,t,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ye(()=>{e.removeEventListener(r,a,s)})}function $e(r,e,t){(e[w]??={})[r]=t}function je(r){for(var e=0;e<r.length;e++)Z.add(r[e]);for(var t of B)t(r)}let H=null,L=!1;function Y(r){var e=this,t=e.ownerDocument,n=r.type,i=r.composedPath?.()||[],s=i[0]||r.target;H=r,L||(L=!0,setTimeout(()=>{L=!1,H=null}));var a=0,l=H===r&&r[w];if(l){var c=i.indexOf(l);if(c!==-1&&(e===document||e===window)){r[w]=e;return}var k=i.indexOf(e);if(k===-1)return;c<=k&&(a=c)}if(s=i[a]||r.target,s!==e){be(r,"currentTarget",{configurable:!0,get(){return s||t}});var v=Q,E=b;N(null),D(null);try{for(var d,h=[];s!==null&&s!==e;){try{var o=s[w]?.[n];o!=null&&(!s.disabled||r.target===s)&&o.call(s,r)}catch(f){d?h.push(f):d=f}if(r.cancelBubble)break;a++,s=a<i.length?i[a]:null}if(d){for(let f of h)queueMicrotask(()=>{throw f});throw d}}finally{r[w]=e,delete r.currentTarget,N(v),D(E)}}}const Be=["touchstart","touchmove"];function Ye(r){return Be.includes(r)}function qe(r,e){var t=e==null?"":typeof e=="object"?`${e}`:e;t!==(r[q]??=r.nodeValue)&&(r[q]=t,r.nodeValue=`${t}`)}function Pe(r,e){return ee(r,e)}function Je(r,e){M(),e.intro=e.intro??!1;const t=e.target,n=g,i=p;try{for(var s=Ee(t);s&&(s.nodeType!==K||s.data!==Te);)s=we(s);if(!s)throw I;R(!0),O(s);const a=ee(r,{...e,anchor:s});return R(!1),a}catch(a){if(a instanceof Error&&a.message.split(`
2
- `).some(l=>l.startsWith("https://svelte.dev/e/")))throw a;return a!==I&&console.warn("Failed to hydrate: ",a),e.recover===!1&&ke(),M(),Se(t),R(!1),Pe(r,e)}finally{R(n),O(i)}}const A=new Map;function ee(r,{target:e,anchor:t,props:n={},events:i,context:s,intro:a=!0,transformError:l}){M();var c=void 0,k=Re(()=>{var v=t??e.appendChild(G());Le(v,{pending:()=>{}},h=>{De({});var o=X;if(s&&(o.c=s),i&&(n.$$events=i),g&&Ce(h,null),c=r(h,n)||{},g&&(b.nodes.end=p,p===null||p.nodeType!==K||p.data!==Ne))throw Oe(),I;Fe()},l);var E=new Set,d=h=>{for(var o=0;o<h.length;o++){var f=h[o];if(!E.has(f)){E.add(f);var T=Ye(f);for(const F of[e,document]){var y=A.get(F);y===void 0&&(y=new Map,A.set(F,y));var V=y.get(f);V===void 0?(F.addEventListener(f,Y,{passive:T}),y.set(f,1)):y.set(f,V+1)}}}};return d(Ae(Z)),B.add(d),()=>{for(var h of E)for(const T of[e,document]){var o=A.get(T),f=o.get(h);--f==0?(T.removeEventListener(h,Y),o.delete(h),o.size===0&&A.delete(T)):o.set(h,f)}B.delete(d),v!==t&&v.parentNode?.removeChild(v)}});return P.set(c,k),c}let P=new WeakMap;function Ue(r,e){const t=P.get(r);return t?(P.delete(r),t(e)):Promise.resolve()}export{$e as a,je as d,ze as e,Je as h,Pe as m,qe as s,Ue as u};
 
 
 
_app/immutable/chunks/BbCnN6uz.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{o as y}from"./BS2jcRN4.js";import{b1 as p,b2 as N,q as u,g as f,s as d}from"./BPOa35me.js";const h=[];function k(e,t=p){let n=null;const s=new Set;function r(o){if(N(e,o)&&(e=o,n)){const c=!h.length;for(const l of s)l[1](),h.push(l,e);if(c){for(let l=0;l<h.length;l+=2)h[l][0](h[l+1]);h.length=0}}}function i(o){r(o(e))}function a(o,c=p){const l=[o,c];return s.add(l),s.size===1&&(n=t(r,i)||p),o(e),()=>{s.delete(l),s.size===0&&n&&(n(),n=null)}}return{set:r,update:i,subscribe:a}}const L="1787836655620",O=globalThis.__sveltekit_47wdub?.base??"",x=globalThis.__sveltekit_47wdub?.assets??O??"";new URL("sveltekit-internal://");function H(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function K(e){return e.split("%25").map(decodeURI).join("%25")}function B(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function D({href:e}){return e.split("#")[0]}function $(){}function q(...e){let t=5381;for(const n of e)if(typeof n=="string"){let s=n.length;for(;s;)t=t*33^n.charCodeAt(--s)}else if(ArrayBuffer.isView(n)){const s=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=s.length;for(;r;)t=t*33^s[--r]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;function C(e){const t=atob(e),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n}const P=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&b.delete(m(e)),P(e,t));const b=new Map;function W(e,t){const n=m(e,t),s=document.querySelector(n);if(s?.textContent){s.remove();let{body:r,...i}=JSON.parse(s.textContent);s.getAttribute("data-b64")!==null&&(r=C(r));const o=s.getAttribute("data-ttl");return o&&b.set(n,{body:r,init:i,ttl:1e3*Number(o)}),Promise.resolve(new Response(r,i))}return window.fetch(e,t)}function X(e,t,n){if(b.size>0){const s=m(e,n),r=b.get(s);if(r){if(performance.now()<r.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(r.body,r.init);b.delete(s)}}return window.fetch(t,n)}function m(e,t){let s=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const r=[];t.headers&&r.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&r.push(t.body),s+=`[data-hash="${q(...r)}"]`}return s}const J="sveltekit:snapshot",M="sveltekit:scroll",F="sveltekit:states",Q="sveltekit:pageurl",Z="sveltekit:history",ee="sveltekit:navigation",v={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},E=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...E];const V=new Set([...E]);[...V];const T=location.origin;function te(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function ne(){return{x:pageXOffset,y:pageYOffset}}function g(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const S={...v,"":v.hover};function U(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function se(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=U(e)}}function re(e,t,n){let s;try{if(s=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&s.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";s.hash=`#${o}${s.hash}`}}catch{}const r=e instanceof SVGAElement?e.target.baseVal:e.target,i=!s||!!r||j(s,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),a=s?.origin===T&&e.hasAttribute("download");return{url:s,external:i,target:r,download:a}}function oe(e){let t=null,n=null,s=null,r=null,i=null,a=null,o=e;for(;o&&o!==document.documentElement;)s===null&&(s=g(o,"preload-code")),r===null&&(r=g(o,"preload-data")),t===null&&(t=g(o,"keepfocus")),n===null&&(n=g(o,"noscroll")),i===null&&(i=g(o,"reload")),a===null&&(a=g(o,"replacestate")),o=U(o);function c(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:S[s??"off"],preload_data:S[r??"off"],keepfocus:c(t),noscroll:c(n),reload:c(i),replace_state:c(a)}}function ae(e){const t=k(e);let n=!0;function s(){n=!0,t.update(a=>a)}function r(a){n=!1,t.set(a)}function i(a){let o;return t.subscribe(c=>{(o===void 0||n&&c!==o)&&a(o=c)})}return{notify:s,set:r,subscribe:i}}const I={v:$};function ie(){const{set:e,subscribe:t}=k(!1);let n;async function s(){clearTimeout(n);try{const r=await fetch(`${x}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const a=(await r.json()).version!==L;return a&&(e(!0),I.v(),clearTimeout(n)),a}catch{return!1}}return{subscribe:t,check:s}}function j(e,t,n){return e.origin!==T||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function le(e){}let w,A,_;const G=y.toString().includes("$$")||/function \w+\(\) \{\}/.test(y.toString()),R="a:";G?(w={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(R)},A={current:null},_={current:!1}):(w=new class{#e=u({});get data(){return f(this.#e)}set data(t){d(this.#e,t)}#t=u(null);get form(){return f(this.#t)}set form(t){d(this.#t,t)}#n=u(null);get error(){return f(this.#n)}set error(t){d(this.#n,t)}#s=u({});get params(){return f(this.#s)}set params(t){d(this.#s,t)}#r=u({id:null});get route(){return f(this.#r)}set route(t){d(this.#r,t)}#o=u({});get state(){return f(this.#o)}set state(t){d(this.#o,t)}#a=u(-1);get status(){return f(this.#a)}set status(t){d(this.#a,t)}#i=u(new URL(R));get url(){return f(this.#i)}set url(t){d(this.#i,t)}},A=new class{#e=u(null);get current(){return f(this.#e)}set current(t){d(this.#e,t)}},_=new class{#e=u(!1);get current(){return f(this.#e)}set current(t){d(this.#e,t)}},I.v=()=>_.current=!0);function de(e){Object.assign(w,e)}export{Z as H,ee as N,Q as P,F as S,A as a,O as b,oe as c,D as d,B as e,se as f,re as g,H as h,j as i,ie as j,ae as k,v as l,K as m,$ as n,T as o,w as p,J as q,te as r,ne as s,X as t,de as u,W as v,k as w,M as x,le as y};
_app/immutable/chunks/{CRjdMj2B.js → BcBLKmPk.js} RENAMED
@@ -1 +1 @@
1
- import{b as x,h as A,a as Y,E as p,r as M,c as j,e as q,i as R,j as C,al as F,aj as G,ah as U,ag as O,am as L,an as $,ao as y,g as b,ap as z,aq as Z,ar as H,as as J,s as K,at as Q,S as V,au as W,av as X,aw as m,ax as w,N as k,L as aa}from"./BF_FrA3D.js";import{B as ra}from"./DJd3U5Dq.js";let S=!1;function ea(a){var e=S;try{return S=!1,[a(),S]}finally{S=e}}function ia(a,e,i=!1){var f;A&&(f=C,Y());var _=new ra(a),u=i?p:0;function s(r,n){if(A){var d=M(f);if(r!==parseInt(d.substring(1))){var v=j();q(v),_.anchor=v,R(!1),_.ensure(r,n),R(!0);return}}_.ensure(r,n)}x(()=>{var r=!1;e((n,d=0)=>{r=!0,s(d,n)}),r||s(-1,null)},u)}function P(a,e){return a===e||a?.[y]===e}function sa(a={},e,i,f){var _=F.r,u=L;return G(()=>{var s,r;return U(()=>{s=r,r=[],O(()=>{P(i(...r),a)||(e(a,...r),s&&P(i(...s),a)&&e(null,...s))})}),()=>{let n=u;for(;n!==_&&n.parent!==null&&n.parent.f&$;)n=n.parent;const d=()=>{r&&P(i(...r),a)&&e(null,...r)},v=n.teardown;n.teardown=()=>{d(),v?.()}}}),a}function fa(a,e,i,f){var _=!0,u=(i&X)!==0,s=(i&W)!==0,r=f,n=!0,d=void 0,v=()=>s&&_?(d??=w(f),b(d)):(n&&(n=!1,r=s?O(f):f),r);let l;if(u){var B=y in a||aa in a;l=z(a,e)?.set??(B&&e in a?t=>a[e]=t:void 0)}var c,I=!1;u?[c,I]=ea(()=>a[e]):c=a[e],c===void 0&&f!==void 0&&(c=v(),l&&(Z(),l(c)));var o;if(o=()=>{var t=a[e];return t===void 0?v():(n=!0,t)},(i&H)===0)return o;if(l){var D=a.$$legacy;return(function(t,h){return arguments.length>0?((!h||D||I)&&l(h?o():t),t):o()})}var E=!1,g=((i&m)!==0?w:k)(()=>(E=!1,o()));u&&b(g);var N=L;return(function(t,h){if(arguments.length>0){const T=h?b(g):u?J(t):t;return K(g,T),E=!0,r!==void 0&&(r=T),t}return Q&&E||(N.f&V)!==0?g.v:b(g)})}export{sa as b,ia as i,fa as p};
 
1
+ import{b as N,h as A,a as Y,E as p,r as M,c as j,e as q,i as O,j as C,al as F,aj as G,ah as U,ag as w,am as L,an as $,ao as y,g as b,ap as z,aq as Z,ar as H,as as J,s as K,at as Q,T as V,au as W,av as X,aw as m,ax as R,O as k,L as aa}from"./BPOa35me.js";import{B as ra}from"./DulwI2VJ.js";let S=!1;function ea(a){var e=S;try{return S=!1,[a(),S]}finally{S=e}}function ia(a,e,i=!1){var f;A&&(f=C,Y());var _=new ra(a),u=i?p:0;function s(r,n){if(A){var d=M(f);if(r!==parseInt(d.substring(1))){var v=j();q(v),_.anchor=v,O(!1),_.ensure(r,n),O(!0);return}}_.ensure(r,n)}N(()=>{var r=!1;e((n,d=0)=>{r=!0,s(d,n)}),r||s(-1,null)},u)}function P(a,e){return a===e||a?.[y]===e}function sa(a={},e,i,f){var _=F.r,u=L;return G(()=>{var s,r;return U(()=>{s=r,r=[],w(()=>{P(i(...r),a)||(e(a,...r),s&&P(i(...s),a)&&e(null,...s))})}),()=>{let n=u;for(;n!==_&&n.parent!==null&&n.parent.f&$;)n=n.parent;const d=()=>{r&&P(i(...r),a)&&e(null,...r)},v=n.teardown;n.teardown=()=>{d(),v?.()}}}),a}function fa(a,e,i,f){var _=!0,u=(i&X)!==0,s=(i&W)!==0,r=f,n=!0,d=void 0,v=()=>s&&_?(d??=R(f),b(d)):(n&&(n=!1,r=s?w(f):f),r);let l;if(u){var B=y in a||aa in a;l=z(a,e)?.set??(B&&e in a?t=>a[e]=t:void 0)}var c,I=!1;u?[c,I]=ea(()=>a[e]):c=a[e],c===void 0&&f!==void 0&&(c=v(),l&&(Z(),l(c)));var o;if(o=()=>{var t=a[e];return t===void 0?v():(n=!0,t)},(i&H)===0)return o;if(l){var D=a.$$legacy;return(function(t,h){return arguments.length>0?((!h||D||I)&&l(h?o():t),t):o()})}var E=!1,g=((i&m)!==0?R:k)(()=>(E=!1,o()));u&&b(g);var x=L;return(function(t,h){if(arguments.length>0){const T=h?b(g):u?J(t):t;return K(g,T),E=!0,r!==void 0&&(r=T),t}return Q&&E||(x.f&V)!==0?g.v:b(g)})}export{sa as b,ia as i,fa as p};
_app/immutable/chunks/{BbLVZPWC.js → CZyhMBTx.js} RENAMED
@@ -1 +1 @@
1
- import{aV as w,z as m,am as v,A as o,aW as E,aX as p,aY as y,h as l,j as i,aZ as N,a as A,a_ as M,e as x,a$ as C}from"./BF_FrA3D.js";const L=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function b(e){return L?.createHTML(e)??e}function h(e){var a=w("template");return a.innerHTML=b(e.replaceAll("<!>","<!---->")),a.content}function n(e,a){var r=v;r.nodes===null&&(r.nodes={start:e,end:a,a:null,t:null})}function D(e,a){var r=(a&p)!==0,f=(a&y)!==0,s,_=!e.startsWith("<!>");return()=>{if(l)return n(i,null),i;s===void 0&&(s=h(_?e:"<!>"+e),r||(s=o(s)));var t=f||E?document.importNode(s,!0):s.cloneNode(!0);if(r){var c=o(t),d=t.lastChild;n(c,d)}else n(t,t);return t}}function O(e,a,r="svg"){var f=!e.startsWith("<!>"),s=(a&p)!==0,_=`<${r}>${f?e:"<!>"+e}</${r}>`,t;return()=>{if(l)return n(i,null),i;if(!t){var c=h(_),d=o(c);if(s)for(t=document.createDocumentFragment();o(d);)t.appendChild(o(d));else t=o(d)}var u=t.cloneNode(!0);if(s){var T=o(u),g=u.lastChild;n(T,g)}else n(u,u);return u}}function I(e,a){return O(e,a,"svg")}function $(e=""){if(!l){var a=m(e+"");return n(a,a),a}var r=i;return r.nodeType!==M?(r.before(r=m()),x(r)):C(r),n(r,r),r}function F(){if(l)return n(i,null),i;var e=document.createDocumentFragment(),a=document.createComment(""),r=m();return e.append(a,r),n(a,r),e}function H(e,a){if(l){var r=v;((r.f&N)===0||r.nodes.end===null)&&(r.nodes.end=i),A();return}e!==null&&e.before(a)}const P="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(P);export{H as a,I as b,F as c,n as d,D as f,$ as t};
 
1
+ import{aV as w,z as m,am as v,B as o,aW as E,aX as p,aY as y,h as l,j as i,aZ as N,a as M,a_ as x,e as A,a$ as C}from"./BPOa35me.js";const L=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function b(e){return L?.createHTML(e)??e}function h(e){var a=w("template");return a.innerHTML=b(e.replaceAll("<!>","<!---->")),a.content}function n(e,a){var r=v;r.nodes===null&&(r.nodes={start:e,end:a,a:null,t:null})}function D(e,a){var r=(a&p)!==0,f=(a&y)!==0,s,_=!e.startsWith("<!>");return()=>{if(l)return n(i,null),i;s===void 0&&(s=h(_?e:"<!>"+e),r||(s=o(s)));var t=f||E?document.importNode(s,!0):s.cloneNode(!0);if(r){var c=o(t),d=t.lastChild;n(c,d)}else n(t,t);return t}}function O(e,a,r="svg"){var f=!e.startsWith("<!>"),s=(a&p)!==0,_=`<${r}>${f?e:"<!>"+e}</${r}>`,t;return()=>{if(l)return n(i,null),i;if(!t){var c=h(_),d=o(c);if(s)for(t=document.createDocumentFragment();o(d);)t.appendChild(o(d));else t=o(d)}var u=t.cloneNode(!0);if(s){var T=o(u),g=u.lastChild;n(T,g)}else n(u,u);return u}}function I(e,a){return O(e,a,"svg")}function $(e=""){if(!l){var a=m(e+"");return n(a,a),a}var r=i;return r.nodeType!==x?(r.before(r=m()),A(r)):C(r),n(r,r),r}function F(){if(l)return n(i,null),i;var e=document.createDocumentFragment(),a=document.createComment(""),r=m();return e.append(a,r),n(a,r),e}function H(e,a){if(l){var r=v;((r.f&N)===0||r.nodes.end===null)&&(r.nodes.end=i),M();return}e!==null&&e.before(a)}const P="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(P);export{H as a,I as b,F as c,n as d,D as f,$ as t};
_app/immutable/chunks/DDj9FNNG.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{ay as te,g as G,ah as re,R as J,ag as se,X as m,az as W,j as p,h as g,am as b,aA as $,b as ie,a as ne,C as ae,aB as z,K as u,z as K,V as C,I as _,$ as fe,aC as he,aD as D,aE as N,aF as j,aG as oe,aH as le,aI as U,al as X,G as ce,a0 as x,e as O,ai as de,c as ue,aJ as R,E as _e,aK as pe,aL as ge,aM as ve,aN as ye,aO as me,d as be,aP as L,B as Ee,D as Q,H as Te,a3 as we,aQ as M,i as S,aR as ke,_ as Re,aS as Se,a1 as Ae,p as De,F as Ne,aT as Oe,o as Fe,aU as q}from"./BPOa35me.js";import{d as Ce}from"./CZyhMBTx.js";function xe(r){let e=0,t=J(0),n;return()=>{te()&&(G(t),re(()=>(e===0&&(n=se(()=>r(()=>W(t)))),e+=1,()=>{m(()=>{e-=1,e===0&&(n?.(),n=void 0,W(t))})})))}}var He=_e|pe;function Ie(r,e,t,n){new Le(r,e,t,n)}class Le{parent;is_pending=!1;transform_error;#r;#_=g?p:null;#i;#o;#t;#n=null;#e=null;#s=null;#a=null;#l=0;#h=0;#c=!1;#p=new Set;#g=new Set;#f=null;#E=xe(()=>(this.#f=J(this.#l),()=>{this.#f=null}));constructor(e,t,n,i){this.#r=e,this.#i=t,this.#o=s=>{var a=b;a.b=this,a.f|=$,n(s)},this.parent=b.b,this.transform_error=i??this.parent?.transform_error??(s=>s),this.#t=ie(()=>{if(g){const s=this.#_;ne();const a=s.data===ae;if(s.data.startsWith(z)){const c=JSON.parse(s.data.slice(z.length));this.#w(c)}else a?this.#k():this.#T()}else this.#y()},He),g&&(this.#r=p)}#T(){try{this.#n=u(()=>this.#o(this.#r))}catch(e){this.error(e)}}#w(e){const t=this.#i.failed,{reset:n,invoke_onerror:i}=this.#v(e);m(i),t&&(this.#s=u(()=>{t(this.#r,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;const i=()=>{if(t){ge();return}t=!0,n&&ve(),this.#s!==null&&C(this.#s,()=>{this.#s=null}),this.#u(()=>{this.#y()})};return{reset:i,invoke_onerror:()=>{try{n=!0,this.#i.onerror?.(e,i),n=!1}catch(a){R(a,this.#t&&this.#t.parent)}}}}#k(){const e=this.#i.pending;e&&(this.is_pending=!0,this.#e=u(()=>e(this.#r)),m(()=>{var t=this.#a=document.createDocumentFragment(),n=K();t.append(n),this.#n=this.#u(()=>u(()=>this.#o(n))),this.#h===0&&(this.#r.before(t),this.#a=null,C(this.#e,()=>{this.#e=null}),this.#d(_))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#h=0,this.#l=0,this.#n=u(()=>{this.#o(this.#r)}),this.#h>0){var e=this.#a=document.createDocumentFragment();fe(this.#n,e);const t=this.#i.pending;this.#e=u(()=>t(this.#r))}else this.#d(_)}catch(t){this.error(t)}}#d(e){this.is_pending=!1,e.transfer_effects(this.#p,this.#g)}defer_effect(e){he(e,this.#p,this.#g)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#i.pending}#u(e){var t=b,n=U,i=X;D(this.#t),N(this.#t),j(this.#t.ctx);try{return oe.ensure(),e()}catch(s){return le(s),null}finally{D(t),N(n),j(i)}}#m(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#m(e,t);return}this.#h+=e,this.#h===0&&(this.#d(t),this.#e&&C(this.#e,()=>{this.#e=null}),this.#a&&(this.#r.before(this.#a),this.#a=null))}update_pending_count(e,t){this.#m(e,t),this.#l+=e,!(!this.#f||this.#c)&&(this.#c=!0,m(()=>{this.#c=!1,this.#f&&ce(this.#f,this.#l)}))}get_effect_pending(){return this.#E(),G(this.#f)}error(e){if(!this.#i.onerror&&!this.#i.failed)throw e;_?.is_fork?(this.#n&&_.skip_effect(this.#n),this.#e&&_.skip_effect(this.#e),this.#s&&_.skip_effect(this.#s),_.oncommit(()=>{this.#b(e)})):this.#b(e)}#b(e){this.#n&&(x(this.#n),this.#n=null),this.#e&&(x(this.#e),this.#e=null),this.#s&&(x(this.#s),this.#s=null),g&&(O(this.#_),de(),O(ue()));let t=this.#i.failed;const n=i=>{const{reset:s,invoke_onerror:a}=this.#v(i);a(),t&&(this.#s=this.#u(()=>{try{return u(()=>{var l=b;l.b=this,l.f|=$,t(this.#r,()=>i,()=>s)})}catch(l){return R(l,this.#t.parent),null}}))};m(()=>{var i;try{i=this.transform_error(e)}catch(s){R(s,this.#t&&this.#t.parent);return}i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(n,s=>R(s,this.#t&&this.#t.parent)):n(i)})}}const w=Symbol("events"),Z=new Set,B=new Set;function Me(r,e,t,n={}){function i(s){if(n.capture||P.call(e,s),!s.cancelBubble)return me(()=>t?.call(this,s))}return r.startsWith("pointer")||r.startsWith("touch")||r==="wheel"?m(()=>{e.addEventListener(r,i,n)}):e.addEventListener(r,i,n),i}function $e(r,e,t,n,i){var s={capture:n,passive:i},a=Me(r,e,t,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ye(()=>{e.removeEventListener(r,a,s)})}function ze(r,e,t){(e[w]??={})[r]=t}function je(r){for(var e=0;e<r.length;e++)Z.add(r[e]);for(var t of B)t(r)}let H=null,I=!1;function P(r){var e=this,t=e.ownerDocument,n=r.type,i=r.composedPath?.()||[],s=i[0]||r.target;H=r,I||(I=!0,setTimeout(()=>{I=!1,H=null}));var a=0,l=H===r&&r[w];if(l){var c=i.indexOf(l);if(c!==-1&&(e===document||e===window)){r[w]=e;return}var k=i.indexOf(e);if(k===-1)return;c<=k&&(a=c)}if(s=i[a]||r.target,s!==e){be(r,"currentTarget",{configurable:!0,get(){return s||t}});var v=U,E=b;N(null),D(null);try{for(var d,h=[];s!==null&&s!==e;){try{var o=s[w]?.[n];o!=null&&(!s.disabled||r.target===s)&&o.call(s,r)}catch(f){d?h.push(f):d=f}if(r.cancelBubble)break;a++,s=a<i.length?i[a]:null}if(d){for(let f of h)queueMicrotask(()=>{throw f});throw d}}finally{r[w]=e,delete r.currentTarget,N(v),D(E)}}}const Be=["touchstart","touchmove"];function Pe(r){return Be.includes(r)}function qe(r,e){var t=e==null?"":typeof e=="object"?`${e}`:e;t!==(r[q]??=r.nodeValue)&&(r[q]=t,r.nodeValue=`${t}`)}function Ve(r,e){return ee(r,e)}function Ge(r,e){L(),e.intro=e.intro??!1;const t=e.target,n=g,i=p;try{for(var s=Ee(t);s&&(s.nodeType!==Q||s.data!==Te);)s=we(s);if(!s)throw M;S(!0),O(s);const a=ee(r,{...e,anchor:s});return S(!1),a}catch(a){if(a instanceof Error&&a.message.split(`
2
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw a;return a!==M&&console.warn("Failed to hydrate: ",a),e.recover===!1&&ke(),L(),Re(t),S(!1),Ve(r,e)}finally{S(n),O(i)}}const A=new Map;function ee(r,{target:e,anchor:t,props:n={},events:i,context:s,intro:a=!0,transformError:l}){L();var c=void 0,k=Se(()=>{var v=t??e.appendChild(K());Ie(v,{pending:()=>{}},h=>{De({});var o=X;if(s&&(o.c=s),i&&(n.$$events=i),g&&Ce(h,null),c=r(h,n)||{},g&&(b.nodes.end=p,p===null||p.nodeType!==Q||p.data!==Ne))throw Oe(),M;Fe()},l);var E=new Set,d=h=>{for(var o=0;o<h.length;o++){var f=h[o];if(!E.has(f)){E.add(f);var T=Pe(f);for(const F of[e,document]){var y=A.get(F);y===void 0&&(y=new Map,A.set(F,y));var Y=y.get(f);Y===void 0?(F.addEventListener(f,P,{passive:T}),y.set(f,1)):y.set(f,Y+1)}}}};return d(Ae(Z)),B.add(d),()=>{for(var h of E)for(const T of[e,document]){var o=A.get(T),f=o.get(h);--f==0?(T.removeEventListener(h,P),o.delete(h),o.size===0&&A.delete(T)):o.set(h,f)}B.delete(d),v!==t&&v.parentNode?.removeChild(v)}});return V.set(c,k),c}let V=new WeakMap;function Je(r,e){const t=V.get(r);return t?(V.delete(r),t(e)):Promise.resolve()}export{ze as a,je as d,$e as e,Ge as h,Ve as m,qe as s,Je as u};
_app/immutable/chunks/DJd3U5Dq.js DELETED
@@ -1 +0,0 @@
1
- import{T as n,Z as o,U as u,z as d,J as l,G as m,h as p,j as _,Y as v,M as k}from"./BF_FrA3D.js";class M{anchor;#t=new Map;#s=new Map;#e=new Map;#i=new Set;#a=!0;constructor(t,s=!0){this.anchor=t,this.#a=s}#f=t=>{if(this.#t.has(t)){var s=this.#t.get(t),e=this.#s.get(s);if(e)n(e),this.#i.delete(s);else{var a=this.#e.get(s);a&&(n(a.effect),this.#s.set(s,a.effect),this.#e.delete(s),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),e=a.effect)}for(const[i,f]of this.#t){if(this.#t.delete(i),i===t)break;const h=this.#e.get(f);h&&(o(h.effect),this.#e.delete(f))}for(const[i,f]of this.#s){if(i===s||this.#i.has(i))continue;const h=()=>{if(Array.from(this.#t.values()).includes(i)){var c=document.createDocumentFragment();v(f,c),c.append(d()),this.#e.set(i,{effect:f,fragment:c})}else o(f);this.#i.delete(i),this.#s.delete(i)};this.#a||!e?(this.#i.add(i),u(f,h,!1)):h()}}};#h=t=>{this.#t.delete(t);const s=Array.from(this.#t.values());for(const[e,a]of this.#e)s.includes(e)||(o(a.effect),this.#e.delete(e))};ensure(t,s){var e=m,a=k();if(s&&!this.#s.has(t)&&!this.#e.has(t))if(a){var i=document.createDocumentFragment(),f=d();i.append(f),this.#e.set(t,{effect:l(()=>s(f)),fragment:i})}else this.#s.set(t,l(()=>s(this.anchor)));if(this.#t.set(e,t),a){for(const[h,r]of this.#s)h===t?e.unskip_effect(r):e.skip_effect(r);for(const[h,r]of this.#e)h===t?e.unskip_effect(r.effect):e.skip_effect(r.effect);e.oncommit(this.#f),e.ondiscard(this.#h)}else p&&(this.anchor=_),this.#f(e)}}export{M as B};
 
 
_app/immutable/chunks/DMqF9c3U.js DELETED
@@ -1 +0,0 @@
1
- import{o as y}from"./D0_0fjwo.js";import{b1 as p,b2 as N,q as u,g as f,s as d}from"./BF_FrA3D.js";const h=[];function k(e,t=p){let n=null;const s=new Set;function r(o){if(N(e,o)&&(e=o,n)){const c=!h.length;for(const l of s)l[1](),h.push(l,e);if(c){for(let l=0;l<h.length;l+=2)h[l][0](h[l+1]);h.length=0}}}function i(o){r(o(e))}function a(o,c=p){const l=[o,c];return s.add(l),s.size===1&&(n=t(r,i)||p),o(e),()=>{s.delete(l),s.size===0&&n&&(n(),n=null)}}return{set:r,update:i,subscribe:a}}const L="1787752138106",O=globalThis.__sveltekit_1pru93l?.base??"",x=globalThis.__sveltekit_1pru93l?.assets??O??"";new URL("sveltekit-internal://");function H(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function K(e){return e.split("%25").map(decodeURI).join("%25")}function B(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function D({href:e}){return e.split("#")[0]}function $(){}function q(...e){let t=5381;for(const n of e)if(typeof n=="string"){let s=n.length;for(;s;)t=t*33^n.charCodeAt(--s)}else if(ArrayBuffer.isView(n)){const s=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=s.length;for(;r;)t=t*33^s[--r]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;function C(e){const t=atob(e),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n}const P=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&b.delete(m(e)),P(e,t));const b=new Map;function W(e,t){const n=m(e,t),s=document.querySelector(n);if(s?.textContent){s.remove();let{body:r,...i}=JSON.parse(s.textContent);s.getAttribute("data-b64")!==null&&(r=C(r));const o=s.getAttribute("data-ttl");return o&&b.set(n,{body:r,init:i,ttl:1e3*Number(o)}),Promise.resolve(new Response(r,i))}return window.fetch(e,t)}function X(e,t,n){if(b.size>0){const s=m(e,n),r=b.get(s);if(r){if(performance.now()<r.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(r.body,r.init);b.delete(s)}}return window.fetch(t,n)}function m(e,t){let s=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const r=[];t.headers&&r.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&r.push(t.body),s+=`[data-hash="${q(...r)}"]`}return s}const J="sveltekit:snapshot",M="sveltekit:scroll",F="sveltekit:states",Q="sveltekit:pageurl",Z="sveltekit:history",ee="sveltekit:navigation",v={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},E=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...E];const V=new Set([...E]);[...V];const T=location.origin;function te(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function ne(){return{x:pageXOffset,y:pageYOffset}}function g(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const S={...v,"":v.hover};function U(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function se(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=U(e)}}function re(e,t,n){let s;try{if(s=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&s.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";s.hash=`#${o}${s.hash}`}}catch{}const r=e instanceof SVGAElement?e.target.baseVal:e.target,i=!s||!!r||j(s,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),a=s?.origin===T&&e.hasAttribute("download");return{url:s,external:i,target:r,download:a}}function oe(e){let t=null,n=null,s=null,r=null,i=null,a=null,o=e;for(;o&&o!==document.documentElement;)s===null&&(s=g(o,"preload-code")),r===null&&(r=g(o,"preload-data")),t===null&&(t=g(o,"keepfocus")),n===null&&(n=g(o,"noscroll")),i===null&&(i=g(o,"reload")),a===null&&(a=g(o,"replacestate")),o=U(o);function c(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:S[s??"off"],preload_data:S[r??"off"],keepfocus:c(t),noscroll:c(n),reload:c(i),replace_state:c(a)}}function ae(e){const t=k(e);let n=!0;function s(){n=!0,t.update(a=>a)}function r(a){n=!1,t.set(a)}function i(a){let o;return t.subscribe(c=>{(o===void 0||n&&c!==o)&&a(o=c)})}return{notify:s,set:r,subscribe:i}}const I={v:$};function ie(){const{set:e,subscribe:t}=k(!1);let n;async function s(){clearTimeout(n);try{const r=await fetch(`${x}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const a=(await r.json()).version!==L;return a&&(e(!0),I.v(),clearTimeout(n)),a}catch{return!1}}return{subscribe:t,check:s}}function j(e,t,n){return e.origin!==T||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function le(e){}let w,A,_;const G=y.toString().includes("$$")||/function \w+\(\) \{\}/.test(y.toString()),R="a:";G?(w={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(R)},A={current:null},_={current:!1}):(w=new class{#e=u({});get data(){return f(this.#e)}set data(t){d(this.#e,t)}#t=u(null);get form(){return f(this.#t)}set form(t){d(this.#t,t)}#n=u(null);get error(){return f(this.#n)}set error(t){d(this.#n,t)}#s=u({});get params(){return f(this.#s)}set params(t){d(this.#s,t)}#r=u({id:null});get route(){return f(this.#r)}set route(t){d(this.#r,t)}#o=u({});get state(){return f(this.#o)}set state(t){d(this.#o,t)}#a=u(-1);get status(){return f(this.#a)}set status(t){d(this.#a,t)}#i=u(new URL(R));get url(){return f(this.#i)}set url(t){d(this.#i,t)}},A=new class{#e=u(null);get current(){return f(this.#e)}set current(t){d(this.#e,t)}},_=new class{#e=u(!1);get current(){return f(this.#e)}set current(t){d(this.#e,t)}},I.v=()=>_.current=!0);function de(e){Object.assign(w,e)}export{Z as H,ee as N,Q as P,F as S,A as a,O as b,oe as c,D as d,B as e,se as f,re as g,H as h,j as i,ie as j,ae as k,v as l,K as m,$ as n,T as o,w as p,J as q,te as r,ne as s,X as t,de as u,W as v,k as w,M as x,le as y};
 
 
_app/immutable/chunks/DulwI2VJ.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{U as n,a0 as o,V as u,z as d,K as l,I as m,h as p,j as _,$ as v,N as k}from"./BPOa35me.js";class w{anchor;#t=new Map;#s=new Map;#e=new Map;#i=new Set;#a=!0;constructor(t,s=!0){this.anchor=t,this.#a=s}#f=t=>{if(this.#t.has(t)){var s=this.#t.get(t),e=this.#s.get(s);if(e)n(e),this.#i.delete(s);else{var a=this.#e.get(s);a&&(n(a.effect),this.#s.set(s,a.effect),this.#e.delete(s),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),e=a.effect)}for(const[i,f]of this.#t){if(this.#t.delete(i),i===t)break;const h=this.#e.get(f);h&&(o(h.effect),this.#e.delete(f))}for(const[i,f]of this.#s){if(i===s||this.#i.has(i))continue;const h=()=>{if(Array.from(this.#t.values()).includes(i)){var c=document.createDocumentFragment();v(f,c),c.append(d()),this.#e.set(i,{effect:f,fragment:c})}else o(f);this.#i.delete(i),this.#s.delete(i)};this.#a||!e?(this.#i.add(i),u(f,h,!1)):h()}}};#h=t=>{this.#t.delete(t);const s=Array.from(this.#t.values());for(const[e,a]of this.#e)s.includes(e)||(o(a.effect),this.#e.delete(e))};ensure(t,s){var e=m,a=k();if(s&&!this.#s.has(t)&&!this.#e.has(t))if(a){var i=document.createDocumentFragment(),f=d();i.append(f),this.#e.set(t,{effect:l(()=>s(f)),fragment:i})}else this.#s.set(t,l(()=>s(this.anchor)));if(this.#t.set(e,t),a){for(const[h,r]of this.#s)h===t?e.unskip_effect(r):e.skip_effect(r);for(const[h,r]of this.#e)h===t?e.unskip_effect(r.effect):e.skip_effect(r.effect);e.oncommit(this.#f),e.ondiscard(this.#h)}else p&&(this.anchor=_),this.#f(e)}}export{w as B};
_app/immutable/entry/{app.7UldMKJU.js → app.m6uYwNyL.js} RENAMED
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DoB0Uq5V.js","../chunks/BbLVZPWC.js","../chunks/BF_FrA3D.js","../chunks/DJd3U5Dq.js","../assets/0.CTwIt1Xe.css","../nodes/1.Bt3c1Ixm.js","../chunks/Bav0O8J1.js","../chunks/DMqF9c3U.js","../chunks/D0_0fjwo.js","../nodes/2.oBKRgEjh.js","../chunks/CRjdMj2B.js"])))=>i.map(i=>d[i]);
2
- import{s as k,L as Y,g as f,f as G,d as W,m as z,h as D,a as J,b as K,E as Q,r as X,c as Z,e as $,i as I,H as ee,j as te,p as re,u as se,k as ne,t as ae,l as w,n as oe,o as ce,q as x,v as ie,w as le,x as ue,y as A}from"../chunks/BF_FrA3D.js";import{h as de,m as fe,u as me,s as he}from"../chunks/Bav0O8J1.js";import{a as P,c as S,f as V,t as _e}from"../chunks/BbLVZPWC.js";import{o as ve}from"../chunks/D0_0fjwo.js";import{p as T,i as L,b as j}from"../chunks/CRjdMj2B.js";import{B as ge}from"../chunks/DJd3U5Dq.js";const ye="modulepreload",Ee=function(a,e){return new URL(a,e).href},M={},O=function(e,s,l){let c=Promise.resolve();if(s&&s.length>0){let m=function(o){return Promise.all(o.map(d=>Promise.resolve(d).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};const r=document.getElementsByTagName("link"),n=document.querySelector("meta[property=csp-nonce]"),E=n?.nonce||n?.getAttribute("nonce");c=m(s.map(o=>{if(o=Ee(o,l),o in M)return;M[o]=!0;const d=o.endsWith(".css"),h=d?'[rel="stylesheet"]':"";if(l)for(let _=r.length-1;_>=0;_--){const i=r[_];if(i.href===o&&(!d||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${h}`))return;const u=document.createElement("link");if(u.rel=d?"stylesheet":ye,d||(u.as="script"),u.crossOrigin="",u.href=o,E&&u.setAttribute("nonce",E),document.head.appendChild(u),d)return new Promise((_,i)=>{u.addEventListener("load",_),u.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${o}`)))})}))}function t(r){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=r,window.dispatchEvent(n),!n.defaultPrevented)throw r}return c.then(r=>{for(const n of r||[])n.status==="rejected"&&t(n.reason);return e().catch(t)})},Ce={};function be(a){return class extends Pe{constructor(e){super({component:a,...e})}}}class Pe{#t;#e;constructor(e){var s=new Map,l=(t,r)=>{var n=z(r,!1,!1);return s.set(t,n),n};const c=new Proxy({...e.props||{},$$events:{}},{get(t,r){return f(s.get(r)??l(r,Reflect.get(t,r)))},has(t,r){return r===Y?!0:(f(s.get(r)??l(r,Reflect.get(t,r))),Reflect.has(t,r))},set(t,r,n){return k(s.get(r)??l(r,n),n),Reflect.set(t,r,n)}});this.#e=(e.hydrate?de:fe)(e.component,{target:e.target,anchor:e.anchor,props:c,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError}),(!e?.props?.$$host||e.sync===!1)&&G(),this.#t=c.$$events;for(const t of Object.keys(this.#e))t==="$set"||t==="$destroy"||t==="$on"||W(this,t,{get(){return this.#e[t]},set(r){this.#e[t]=r},enumerable:!0});this.#e.$set=t=>{Object.assign(c,t)},this.#e.$destroy=()=>{me(this.#e)}}$set(e){this.#e.$set(e)}$on(e,s){this.#t[e]=this.#t[e]||[];const l=(...c)=>s.call(this,...c);return this.#t[e].push(l),()=>{this.#t[e]=this.#t[e].filter(c=>c!==l)}}$destroy(){this.#e.$destroy()}}function C(a,e,s){var l;D&&(l=te,J());var c=new ge(a);K(()=>{var t=e()??null;if(D){var r=X(l),n=r===ee,E=t!==null;if(n!==E){var m=Z();$(m),c.anchor=m,I(!1),c.ensure(t,t&&(o=>s(o,t))),I(!0);return}}c.ensure(t,t&&(o=>s(o,t)))},Q)}var Re=V('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),pe=V("<!> <!>",1);function we(a,e){re(e,!0);let s=T(e,"components",23,()=>[]),l=T(e,"data_0",3,null),c=T(e,"data_1",3,null);se(()=>e.stores.page.set(e.page)),ne(()=>{e.stores,e.page,e.constructors,s(),e.form,l(),c(),e.stores.page.notify()});let t=x(!1),r=x(!1),n=x(null);ve(()=>{const i=e.stores.page.subscribe(()=>{f(t)&&(k(r,!0),ae().then(()=>{k(n,document.title||"untitled page",!0)}))});return k(t,!0),i});const E=A(()=>e.constructors[1]);var m=pe(),o=w(m);{var d=i=>{const v=A(()=>e.constructors[0]);var g=S(),R=w(g);C(R,()=>f(v),(y,b)=>{j(b(y,{get data(){return l()},get form(){return e.form},get params(){return e.page.params},children:(p,Oe)=>{var N=S(),B=w(N);C(B,()=>f(E),(F,H)=>{j(H(F,{get data(){return c()},get form(){return e.form},get params(){return e.page.params}}),U=>s()[1]=U,()=>s()?.[1])}),P(p,N)},$$slots:{default:!0}}),p=>s()[0]=p,()=>s()?.[0])}),P(i,g)},h=i=>{const v=A(()=>e.constructors[0]);var g=S(),R=w(g);C(R,()=>f(v),(y,b)=>{j(b(y,{get data(){return l()},get form(){return e.form},get params(){return e.page.params}}),p=>s()[0]=p,()=>s()?.[0])}),P(i,g)};L(o,i=>{e.constructors[1]?i(d):i(h,-1)})}var u=oe(o,2);{var _=i=>{var v=Re(),g=ie(v);{var R=y=>{var b=_e();ue(()=>he(b,f(n))),P(y,b)};L(g,y=>{f(r)&&y(R)})}le(v),P(i,v)};L(u,i=>{f(t)&&i(_)})}P(a,m),ce()}const Ne=be(we),De=[()=>O(()=>import("../nodes/0.DoB0Uq5V.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>O(()=>import("../nodes/1.Bt3c1Ixm.js"),__vite__mapDeps([5,1,2,6,7,8]),import.meta.url),()=>O(()=>import("../nodes/2.oBKRgEjh.js"),__vite__mapDeps([9,1,2,6,10,3]),import.meta.url)],Ie=[],Me={"/":[2]},q={handleError:(({error:a})=>{console.error(a)}),reroute:(()=>{}),transport:{}},ke=Object.fromEntries(Object.entries(q.transport).map(([a,e])=>[a,e.decode])),Ve=Object.fromEntries(Object.entries(q.transport).map(([a,e])=>[a,e.encode])),qe=!1,Be=(a,e)=>ke[a](e),Fe=()=>O(()=>import("../chunks/wbPk3Yxo.js"),[],import.meta.url).then(a=>a.default);export{Be as decode,ke as decoders,Me as dictionary,Ve as encoders,Fe as get_error_template,qe as hash,q as hooks,Ce as matchers,De as nodes,Ne as root,Ie as server_loads};
 
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.ByqCz_j3.js","../chunks/CZyhMBTx.js","../chunks/BPOa35me.js","../chunks/DulwI2VJ.js","../assets/0.hj8St4wC.css","../nodes/1.B1mTb-8d.js","../chunks/DDj9FNNG.js","../chunks/BbCnN6uz.js","../chunks/BS2jcRN4.js","../nodes/2.XoCX03N0.js","../chunks/BcBLKmPk.js"])))=>i.map(i=>d[i]);
2
+ import{s as k,L as Y,g as f,f as G,d as W,m as z,h as D,a as J,b as K,E as Q,r as X,c as Z,e as $,i as I,H as ee,j as te,p as re,u as se,k as ne,t as ae,l as w,n as oe,o as ce,q as x,v as ie,w as le,x as ue,y as A}from"../chunks/BPOa35me.js";import{h as de,m as fe,u as me,s as he}from"../chunks/DDj9FNNG.js";import{a as P,c as S,f as V,t as _e}from"../chunks/CZyhMBTx.js";import{o as ve}from"../chunks/BS2jcRN4.js";import{p as T,i as L,b as j}from"../chunks/BcBLKmPk.js";import{B as ge}from"../chunks/DulwI2VJ.js";const ye="modulepreload",Ee=function(a,e){return new URL(a,e).href},M={},O=function(e,s,l){let c=Promise.resolve();if(s&&s.length>0){let m=function(o){return Promise.all(o.map(d=>Promise.resolve(d).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};const r=document.getElementsByTagName("link"),n=document.querySelector("meta[property=csp-nonce]"),E=n?.nonce||n?.getAttribute("nonce");c=m(s.map(o=>{if(o=Ee(o,l),o in M)return;M[o]=!0;const d=o.endsWith(".css"),h=d?'[rel="stylesheet"]':"";if(l)for(let _=r.length-1;_>=0;_--){const i=r[_];if(i.href===o&&(!d||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${h}`))return;const u=document.createElement("link");if(u.rel=d?"stylesheet":ye,d||(u.as="script"),u.crossOrigin="",u.href=o,E&&u.setAttribute("nonce",E),document.head.appendChild(u),d)return new Promise((_,i)=>{u.addEventListener("load",_),u.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${o}`)))})}))}function t(r){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=r,window.dispatchEvent(n),!n.defaultPrevented)throw r}return c.then(r=>{for(const n of r||[])n.status==="rejected"&&t(n.reason);return e().catch(t)})},Ce={};function be(a){return class extends Pe{constructor(e){super({component:a,...e})}}}class Pe{#t;#e;constructor(e){var s=new Map,l=(t,r)=>{var n=z(r,!1,!1);return s.set(t,n),n};const c=new Proxy({...e.props||{},$$events:{}},{get(t,r){return f(s.get(r)??l(r,Reflect.get(t,r)))},has(t,r){return r===Y?!0:(f(s.get(r)??l(r,Reflect.get(t,r))),Reflect.has(t,r))},set(t,r,n){return k(s.get(r)??l(r,n),n),Reflect.set(t,r,n)}});this.#e=(e.hydrate?de:fe)(e.component,{target:e.target,anchor:e.anchor,props:c,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError}),(!e?.props?.$$host||e.sync===!1)&&G(),this.#t=c.$$events;for(const t of Object.keys(this.#e))t==="$set"||t==="$destroy"||t==="$on"||W(this,t,{get(){return this.#e[t]},set(r){this.#e[t]=r},enumerable:!0});this.#e.$set=t=>{Object.assign(c,t)},this.#e.$destroy=()=>{me(this.#e)}}$set(e){this.#e.$set(e)}$on(e,s){this.#t[e]=this.#t[e]||[];const l=(...c)=>s.call(this,...c);return this.#t[e].push(l),()=>{this.#t[e]=this.#t[e].filter(c=>c!==l)}}$destroy(){this.#e.$destroy()}}function C(a,e,s){var l;D&&(l=te,J());var c=new ge(a);K(()=>{var t=e()??null;if(D){var r=X(l),n=r===ee,E=t!==null;if(n!==E){var m=Z();$(m),c.anchor=m,I(!1),c.ensure(t,t&&(o=>s(o,t))),I(!0);return}}c.ensure(t,t&&(o=>s(o,t)))},Q)}var Re=V('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),pe=V("<!> <!>",1);function we(a,e){re(e,!0);let s=T(e,"components",23,()=>[]),l=T(e,"data_0",3,null),c=T(e,"data_1",3,null);se(()=>e.stores.page.set(e.page)),ne(()=>{e.stores,e.page,e.constructors,s(),e.form,l(),c(),e.stores.page.notify()});let t=x(!1),r=x(!1),n=x(null);ve(()=>{const i=e.stores.page.subscribe(()=>{f(t)&&(k(r,!0),ae().then(()=>{k(n,document.title||"untitled page",!0)}))});return k(t,!0),i});const E=A(()=>e.constructors[1]);var m=pe(),o=w(m);{var d=i=>{const v=A(()=>e.constructors[0]);var g=S(),R=w(g);C(R,()=>f(v),(y,b)=>{j(b(y,{get data(){return l()},get form(){return e.form},get params(){return e.page.params},children:(p,Oe)=>{var N=S(),B=w(N);C(B,()=>f(E),(F,H)=>{j(H(F,{get data(){return c()},get form(){return e.form},get params(){return e.page.params}}),U=>s()[1]=U,()=>s()?.[1])}),P(p,N)},$$slots:{default:!0}}),p=>s()[0]=p,()=>s()?.[0])}),P(i,g)},h=i=>{const v=A(()=>e.constructors[0]);var g=S(),R=w(g);C(R,()=>f(v),(y,b)=>{j(b(y,{get data(){return l()},get form(){return e.form},get params(){return e.page.params}}),p=>s()[0]=p,()=>s()?.[0])}),P(i,g)};L(o,i=>{e.constructors[1]?i(d):i(h,-1)})}var u=oe(o,2);{var _=i=>{var v=Re(),g=ie(v);{var R=y=>{var b=_e();ue(()=>he(b,f(n))),P(y,b)};L(g,y=>{f(r)&&y(R)})}le(v),P(i,v)};L(u,i=>{f(t)&&i(_)})}P(a,m),ce()}const Ne=be(we),De=[()=>O(()=>import("../nodes/0.ByqCz_j3.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>O(()=>import("../nodes/1.B1mTb-8d.js"),__vite__mapDeps([5,1,2,6,7,8]),import.meta.url),()=>O(()=>import("../nodes/2.XoCX03N0.js"),__vite__mapDeps([9,1,2,6,10,3]),import.meta.url)],Ie=[],Me={"/":[2]},q={handleError:(({error:a})=>{console.error(a)}),reroute:(()=>{}),transport:{}},ke=Object.fromEntries(Object.entries(q.transport).map(([a,e])=>[a,e.decode])),Ve=Object.fromEntries(Object.entries(q.transport).map(([a,e])=>[a,e.encode])),qe=!1,Be=(a,e)=>ke[a](e),Fe=()=>O(()=>import("../chunks/wbPk3Yxo.js"),[],import.meta.url).then(a=>a.default);export{Be as decode,ke as decoders,Me as dictionary,Ve as encoders,Fe as get_error_template,qe as hash,q as hooks,Ce as matchers,De as nodes,Ne as root,Ie as server_loads};
_app/immutable/entry/start.2uEN93Rh.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{t as Q,b0 as rt}from"../chunks/BPOa35me.js";import{H as $,N as Y,r as De,n as C,i as we,b as R,s as j,a as pe,f as qe,g as me,c as Z,d as ue,S as Ke,P as ot,p as P,e as st,h as it,u as Me,o as ct,j as lt,w as ft,k as Ie,l as F,m as ut,q as Fe,t as dt,v as ht,x as He}from"../chunks/BbCnN6uz.js";import{y as Jt}from"../chunks/BbCnN6uz.js";const pt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,mt=/^\/\((?:[^)]+)\)$/;function _t(e){const t=[];return{pattern:e==="/"||mt.test(e)?/^\/$/:new RegExp(`^${vt(e).map(n=>{const o=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(n);if(o)return t.push({name:o[1],matcher:o[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(n);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!n)return;const r=n.split(/\[(.+?)\](?!\])/);return"/"+r.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return de(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return de(String.fromCharCode(...c.slice(2).split("-").map(_=>parseInt(_,16))));const f=pt.exec(c),[,p,v,d,u]=f;return t.push({name:d,matcher:u,optional:!!p,rest:!!v,chained:v?l===1&&r[0]==="":!1}),v?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return de(c)}).join("")}).join("")}/?$`),params:t}}function gt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function vt(e){return e.slice(1).split("/").filter(gt)}function wt(e,t,a){const n={},o=e.slice(1),i=o.filter(s=>s!==void 0);let r=0;for(let s=0;s<t.length;s+=1){const c=t[s];let l=o[s-r];if(c.chained&&c.rest&&r&&(l=o.slice(s-r,s+1).filter(f=>f).join("/"),r=0),l===void 0)if(c.rest)l="";else continue;if(!c.matcher||a[c.matcher](l)){n[c.name]=l;const f=t[s+1],p=o[s+1];f&&!f.rest&&f.optional&&p&&c.chained&&(r=0),!f&&!p&&Object.keys(n).length===i.length&&(r=0);continue}if(c.optional&&c.chained){r++;continue}return}if(!r)return n}function de(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}class ye{constructor(t,a){this.status=t,typeof a=="string"?this.body={message:a}:a?this.body=a:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class be{constructor(t,a){try{new Headers({location:a})}catch{throw new Error(`Invalid redirect location ${JSON.stringify(a)}: this string contains characters that cannot be used in HTTP headers`)}this.status=t,this.location=a}}class Ee extends Error{constructor(t,a,n){super(n),this.status=t,this.text=a}}function yt({nodes:e,server_loads:t,dictionary:a,matchers:n}){const o=new Set(t);return Object.entries(a).map(([s,[c,l,f]])=>{const{pattern:p,params:v}=_t(s),d={id:s,exec:u=>{const _=p.exec(u);if(_)return wt(_,v,n)},errors:[1,...f||[]].map(u=>e[u]),layouts:[0,...l||[]].map(r),leaf:i(c)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function i(s){const c=s<0;return c&&(s=~s),[c,e[s]]}function r(s){return s===void 0?s:[o.has(s),e[s]]}}function Be(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Oe(e,t,a=JSON.stringify){const n=a(t);try{sessionStorage[e]=n}catch{}}function bt(e){return e.filter(t=>t!=null)}function G(e,t){return e+"/"+t}function ke(e){return e instanceof ye||e instanceof Ee?e.status:500}function Et(e){return e instanceof Ee?e.text:"Internal Error"}const kt=new Set(["icon","shortcut icon","apple-touch-icon"]);let H=null;const O=Be(He)??{},z=Be(Fe)??{},I={url:Ie({}),page:Ie({}),navigating:ft(null),updated:lt()};function Se(e){O[e]=j()}function St(e,t){let a=e+1;for(;O[a];)delete O[a],a+=1;for(a=t+1;z[a];)delete z[a],a+=1}function J(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(C)}async function Ve(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(R||"/");e&&await e.update()}}let xe,_e,ee,L,ge,w;const te=[],ae=[];let S=null;function ne(){S?.fork?.then(e=>e?.discard()),S=null,N={element:void 0,href:void 0}}const X=new Map,Ye=new Set,xt=new Set,V=new Set;let g={branch:[],error:null,url:null},ze=!1,re=!1,Ce=!0,W=!1,B=!1,Je=!1,Re=!1,We,y,x,U;const oe=new Set,je=new Map,Ne=new Map;async function Vt(e,t,a){if(globalThis.__sveltekit_47wdub.data){const{q:i={},p:r={},l:s={},f:c={}}=globalThis.__sveltekit_47wdub.data;for(const l in i)i[l];for(const l in s)s[l];for(const l in c)c[l];for(const l in r)r[l]}document.URL!==location.href&&(location.href=location.href),w=e,await e.hooks.init?.(),xe=yt(e),L=document.documentElement,ge=t,_e=e.nodes[0],ee=e.nodes[1],_e(),ee(),y=history.state?.[$],x=history.state?.[Y],y||(y=x=Date.now(),history.replaceState({...history.state,[$]:y,[Y]:x},""));const n=O[y];function o(){n&&(history.scrollRestoration="manual",scrollTo(n.x,n.y))}a?(o(),await qt(ge,a)):(await D({type:"enter",url:De(w.hash?Ft(new URL(location.href)):location.href),replace_state:!0}),o()),Dt()}function Rt(){te.length=0,Re=!1}function Ge(e){ae.some(t=>t?.snapshot)&&(z[e]=ae.map(t=>t?.snapshot?.capture()))}function Xe(e){z[e]?.forEach((t,a)=>{ae[a]?.snapshot?.restore(t)})}function $e(){Se(y),Oe(He,O),Ge(x),Oe(Fe,z)}async function Lt(e,t,a,n){let o,i;t.invalidateAll&&ne(),await D({type:"goto",url:De(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:a,nav_token:n,accept:()=>{if(t.invalidateAll){Re=!0,o=new Set;for(const[r,s]of je)for(const[c,l]of s)l.resource?.reset(),o.add(G(r,c));i=new Set;for(const[r,s]of Ne)for(const c of s.keys())i.add(G(r,c))}t.invalidate&&t.invalidate.forEach($t)}}),t.invalidateAll&&Q().then(Q).then(()=>{for(const[r,s]of je)for(const[c,{resource:l}]of s)o?.has(G(r,c))&&l.start();for(const[r,s]of Ne)for(const[c,{resource:l}]of s)i?.has(G(r,c))&&l.reconnect()})}async function Pt(e){if(e.id!==S?.id){ne();const t={};oe.add(t),S={id:e.id,token:t,promise:Ze({...e,preload:t}).then(a=>(oe.delete(t),a.type==="loaded"&&a.state.error&&ne(),a)),fork:null}}return S.promise}async function he(e){const t=(await ce(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(a=>a[1]()))}async function Qe(e,t,a){const n={params:g.params,route:{id:g.route?.id??null},url:new URL(location.href)};if(g={...e.state,nav:n},Me(e.props.page),We=new w.root({target:t,props:{...e.props,stores:I,components:ae},hydrate:a,sync:!1,transformError:void 0}),await Promise.resolve(),a){const o={from:null,to:{...n,scroll:O[y]??j()},willUnload:!1,type:"enter",complete:Promise.resolve()};V.forEach(i=>i(o))}Xe(x),re=!0}async function se({url:e,params:t,branch:a,errors:n,status:o,error:i,route:r,form:s}){let c="never";if(R&&(e.pathname===R||e.pathname===R+"/"))c="always";else for(const u of a)u?.slash!==void 0&&(c=u.slash);e.pathname=it(e.pathname,c),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:a,error:i,route:r},props:{constructors:bt(a).map(u=>u.node.component),page:Ue(P)}};s!==void 0&&(l.props.form=s);let f={},p=!P,v=0;for(let u=0;u<Math.max(a.length,g.branch.length);u+=1){const _=a[u],m=g.branch[u];_?.data!==m?.data&&(p=!0),_&&(f={...f,..._.data},p&&(l.props[`data_${v}`]=f),v+=1)}return(!g.url||e.href!==g.url.href||g.error!==i||s!==void 0&&s!==P.form||p)&&(l.props.page={error:i,params:t,route:{id:r?.id??null},state:{},status:o,url:new URL(e),form:s??null,data:p?f:P.data}),l}async function Le({loader:e,parent:t,url:a,params:n,route:o,server_data_node:i}){let r=null;const s={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();return{node:c,loader:e,server:i,universal:c.universal?.load?{type:"data",data:r,uses:s}:null,data:r??i?.data??null,slash:c.universal?.trailingSlash??i?.slash}}function Tt(e,t,a){let n=e instanceof Request?e.url:e;const o=new URL(n,a);o.origin===a.origin&&(n=o.href.slice(a.origin.length));const i=re?dt(n,o.href,t):ht(n,t);return{resolved:o,promise:i}}function At(e,t,a,n,o,i){if(Re)return!0;if(!o)return!1;if(o.parent&&e||o.route&&t||o.url&&a)return!0;for(const r of o.search_params)if(n.has(r))return!0;for(const r of o.params)if(i[r]!==g.params[r])return!0;for(const r of o.dependencies)if(te.some(s=>s(new URL(r))))return!0;return!1}function Pe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Ut(e,t){if(!e)return new Set(t.searchParams.keys());const a=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const n of a){const o=e.searchParams.getAll(n),i=t.searchParams.getAll(n);o.every(r=>i.includes(r))&&i.every(r=>o.includes(r))&&a.delete(n)}return a}function It({error:e,url:t,route:a,params:n}){return{type:"loaded",state:{error:e,url:t,route:a,params:n,branch:[]},props:{page:Ue(P),constructors:[]}}}async function Ze({id:e,invalidating:t,url:a,params:n,route:o,preload:i}){if(S?.id===e)return oe.delete(S.token),S.promise;const{errors:r,layouts:s,leaf:c}=o,l=[...s,c];r.forEach(m=>m?.().catch(C)),l.forEach(m=>m?.[1]().catch(C));const f=g.url?e!==ie(g.url):!1,p=g.route?o.id!==g.route.id:!1,v=Ut(g.url,a);let d=!1;const u=l.map(async(m,h)=>{if(!m)return;const b=g.branch[h];return m[1]===b?.loader&&!At(d,p,f,v,b.universal?.uses,n)?b:(d=!0,Le({loader:m[1],url:a,params:n,route:o,parent:async()=>{const T={};for(let A=0;A<h;A+=1)Object.assign(T,(await u[A])?.data);return T},server_data_node:Pe(m[0]?{type:"skip"}:null,m[0]?b?.server:void 0)}))});for(const m of u)m.catch(C);const _=[];for(let m=0;m<l.length;m+=1)if(l[m])try{_.push(await u[m])}catch(h){if(h instanceof be)return{type:"redirect",location:h.location};if(i&&oe.has(i))return It({error:await q(h,{params:n,url:a,route:{id:o.id}}),url:a,params:n,route:o});let b=ke(h),k;if(h instanceof ye)k=h.body;else{if(await I.updated.check())return await Ve(),await J(a);k=await q(h,{params:n,url:a,route:{id:o.id}})}const T=await Ot(m,_,r);return T?se({url:a,params:n,branch:_.slice(0,T.idx).concat(T.node),errors:r,status:b,error:k,route:o}):await tt(a,{id:o.id},k,b)}else _.push(void 0);return se({url:a,params:n,branch:_,errors:r,status:200,error:null,route:o,form:t?void 0:null})}async function Ot(e,t,a){for(;e--;)if(a[e]){let n=e;for(;!t[n];)n-=1;try{return{idx:n+1,node:{node:await a[e](),loader:a[e],data:{},server:null,universal:null}}}catch{continue}}}async function Te({status:e,error:t,url:a,route:n}){const o={};let i=null;try{const r=await Le({loader:_e,url:a,params:o,route:n,parent:()=>Promise.resolve({}),server_data_node:Pe(i)}),s={node:await ee(),loader:ee,universal:null,server:null,data:null};return se({url:a,params:o,branch:[r,s],status:e,error:t,errors:[],route:null})}catch(r){if(r instanceof be){await Lt(new URL(r.location,location.href),{},0);return}const s=await w.get_error_template(),c=await q(r,{url:a,params:o,route:n}),l=String(c?.message??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),f=s({status:e,message:l}),p=new DOMParser().parseFromString(f,"text/html");throw document.documentElement.replaceChild(document.adoptNode(p.head),document.head),document.documentElement.replaceChild(document.adoptNode(p.body),document.body),r}}async function Ct(e){const t=e.href;if(X.has(t))return X.get(t);let a;try{const n=(async()=>{let o=await w.hooks.reroute({url:new URL(e),fetch:async(i,r)=>Tt(i,r,e).promise})??e;if(typeof o=="string"){const i=new URL(e);w.hash?i.hash=o:i.pathname=o,o=i}return o})();X.set(t,n),a=await n}catch{X.delete(t);return}return a}async function ce(e,t){if(e&&!we(e,R,w.hash)){const a=await Ct(e);if(!a)return;const n=jt(a);for(const o of xe){const i=o.exec(n);if(i)return{id:ie(e),invalidating:t,route:o,params:st(i),url:e}}}}function jt(e){return ut(w.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(R.length))||"/"}function ie(e){return(w.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function et({url:e,type:t,intent:a,delta:n,event:o,scroll:i}){let r=!1;const s=Ae(g,a,e,t,i??null);n!==void 0&&(s.navigation.delta=n),o!==void 0&&(s.navigation.event=o);const c={...s.navigation,cancel:()=>{r=!0,s.reject(new Error("navigation cancelled"))}};return W||Ye.forEach(l=>l(c)),r?null:s}async function D({type:e,url:t,popped:a,keepfocus:n,noscroll:o,replace_state:i,state:r={},redirect_count:s=0,nav_token:c={},accept:l=C,block:f=C,event:p}){const v=U;U=c;const d=await ce(t,!1),u=e==="enter"?Ae(g,d,t,e):et({url:t,type:e,delta:a?.delta,intent:d,scroll:a?.scroll,event:p});if(!u){f(),U===c&&(U=v);return}const _=y,m=x;l(),W=!0,re&&u.navigation.type!=="enter"&&I.navigating.set(pe.current=u.navigation);let h=d&&await Ze(d);if(!h){if(we(t,R,w.hash))return await J(t,i);h=await tt(t,{id:null},await q(new Ee(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=d?.url||t,U!==c){u.reject(new Error("navigation aborted"));return}if(!h)return;if(h.type==="redirect"){if(s<20){await D({type:e,url:new URL(h.location,t),popped:a,keepfocus:n,noscroll:o,replace_state:i,state:r,redirect_count:s+1,nav_token:c}),u.fulfil(void 0);return}if(h=await Te({status:500,error:await q(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}}),!h)return}else if(h.props.page.status>=400&&await I.updated.check())return await Ve(),await J(t,i);if(Rt(),Se(_),Ge(m),h.props.page.url.pathname!==t.pathname&&(t.pathname=h.props.page.url.pathname),r=a?a.state:r,!a){const E=i?0:1,K={[$]:y+=E,[Y]:x+=E,[Ke]:r};(i?history.replaceState:history.pushState).call(history,K,"",t),i||St(y,x)}const b=d&&S?.id===d.id?S.fork:null;S?.fork&&!b?ne():(S=null,N={element:void 0,href:void 0}),h.props.page.state=r;let k;if(re){const E=(await Promise.all(Array.from(xt,M=>M(u.navigation)))).filter(M=>typeof M=="function");if(E.length>0){let M=function(){E.forEach(fe=>{V.delete(fe)})};E.push(M),E.forEach(fe=>{V.add(fe)})}const K=u.navigation.to;g={...h.state,nav:{params:K.params,route:K.route,url:K.url}},h.props.page&&(h.props.page.url=t),!n&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();const le=b&&await b;le?k=le.commit():(H=null,We.$set(h.props),H&&Object.assign(h.props.page,H),Me(h.props.page),k=rt?.()),Je=!0}else await Qe(h,ge,!1);const{activeElement:T}=document;if(await k,await Q(),await Q(),U!==c){u.reject(new Error("navigation aborted"));return}h.props.page&&H&&Object.assign(h.props.page,H);let A=null;if(Ce){const E=a?a.scroll:o?j():null;E?scrollTo(E.x,E.y):(A=t.hash&&document.getElementById(at(t)))?A.scrollIntoView():scrollTo(0,0)}const nt=document.activeElement!==T&&document.activeElement!==document.body;!n&&!nt&&Mt(t,!A),Ce=!0,W=!1,u.fulfil(void 0),u.navigation.to&&(u.navigation.to.scroll=j()),V.forEach(E=>E(u.navigation)),e==="popstate"&&Xe(x),I.navigating.set(pe.current=null)}async function tt(e,t,a,n,o){return e.origin===ct&&e.pathname===location.pathname&&!ze?await Te({status:n,error:a,url:e,route:t}):await J(e,o)}let N={element:void 0,href:void 0};function Nt(){let e,t;L.addEventListener("mousemove",r=>{const s=r.target;clearTimeout(e),e=setTimeout(()=>{o(s,F.hover)},20)});function a(r){r.defaultPrevented||o(r.composedPath()[0],F.tap)}L.addEventListener("mousedown",a),L.addEventListener("touchstart",a,{passive:!0});const n=new IntersectionObserver(r=>{for(const s of r)s.isIntersecting&&(he(new URL(s.target.href)),n.unobserve(s.target))},{threshold:0});async function o(r,s){const c=qe(r,L),l=c===N.element&&c?.href===N.href&&s>=t;if(!c||l)return;const{url:f,external:p,download:v}=me(c,R,w.hash);if(p||v)return;const d=Z(c),u=f&&ie(g.url)===ie(f);if(!(d.reload||u))if(s<=d.preload_data){N={element:c,href:c.href},t=F.tap;const _=await ce(f,!1);if(!_)return;Pt(_)}else s<=d.preload_code&&(N={element:c,href:c.href},t=s,he(f))}function i(){n.disconnect();for(const r of L.querySelectorAll("a")){const{url:s,external:c,download:l}=me(r,R,w.hash);if(c||l)continue;const f=Z(r);f.reload||(f.preload_code===F.viewport&&n.observe(r),f.preload_code===F.eager&&he(s))}}V.add(i),i()}function q(e,t){if(e instanceof ye)return e.body;const a=ke(e),n=Et(e);return w.hooks.handleError({error:e,event:t,status:a,message:n})??{message:n}}function $t(e){if(typeof e=="function")te.push(e);else{const{href:t}=new URL(e,location.href);te.push(a=>a.href===t)}}function Dt(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let a=!1;if($e(),!W){const n=Ae(g,void 0,null,"leave"),o={...n.navigation,cancel:()=>{a=!0,n.reject(new Error("navigation cancelled"))}};Ye.forEach(i=>i(o))}a?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&$e()}),navigator.connection?.saveData||Nt(),L.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const a=qe(t.composedPath()[0],L);if(!a)return;const{url:n,external:o,target:i,download:r}=me(a,R,w.hash);if(!n)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const s=Z(a);if(!(a instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||r)return;const[l,f]=(w.hash?n.hash.replace(/^#/,""):n.href).split("#"),p=l===ue(location);if(o||s.reload&&(!p||!f)){et({url:n,type:"link",event:t})?W=!0:t.preventDefault();return}if(f!==void 0&&p){const[,v]=g.url.href.split("#");if(v===f){if(t.preventDefault(),f===""||f==="top"&&a.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const d=a.ownerDocument.getElementById(decodeURIComponent(f));d&&(d.scrollIntoView(),d.focus())}return}if(B=!0,Se(y),e(n),!s.replace_state)return;B=!1}t.preventDefault(),await new Promise(v=>{requestAnimationFrame(()=>{setTimeout(v,0)}),setTimeout(v,100)}),await D({type:"link",url:n,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??n.href===location.href,event:t})}),L.addEventListener("submit",t=>{if(t.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(t.target),n=t.submitter;if((n?.formTarget||a.target)==="_blank"||(n?.formMethod||a.method)!=="get")return;const r=new URL(n?.hasAttribute("formaction")&&n?.formAction||a.action);if(we(r,R,!1))return;const s=t.target,c=Z(s);if(c.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(s,n);r.search=new URLSearchParams(l).toString(),D({type:"form",url:r,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??r.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!ve){if(t.state?.[$]){const a=t.state[$];if(U={},a===y)return;const n=O[a],o=t.state[Ke]??{},i=new URL(t.state[ot]??location.href),r=t.state[Y],s=g.url?ue(location)===ue(g.url):!1;if(r===x&&(Je||s)){o!==P.state&&(P.state=o),e(i),O[y]=j(),n&&scrollTo(n.x,n.y),y=a;return}const l=a-y;await D({type:"popstate",url:i,popped:{state:o,scroll:n,delta:l},accept:()=>{y=a,x=r},block:()=>{history.go(-l)},nav_token:U,event:t})}else if(!B){const a=new URL(location.href);e(a),w.hash&&location.reload()}}}),addEventListener("hashchange",()=>{B&&(B=!1,history.replaceState({...history.state,[$]:++y,[Y]:x},"",location.href))});for(const t of document.querySelectorAll("link"))kt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&I.navigating.set(pe.current=null)});function e(t){g.url=P.url=t,I.page.set(Ue(P)),I.page.notify()}}async function qt(e,{status:t=200,error:a,node_ids:n,params:o,route:i,server_route:r,data:s,form:c}){ze=!0;const l=new URL(location.href);let f;({params:o={},route:i={id:null}}=await ce(l,!1)||{}),f=xe.find(({id:d})=>d===i.id);let p,v=!0;try{const d=n.map(async(_,m)=>{const h=s[m];return h?.uses&&(h.uses=Kt(h.uses)),Le({loader:w.nodes[_],url:l,params:o,route:i,parent:async()=>{const b={};for(let k=0;k<m;k+=1)Object.assign(b,(await d[k]).data);return b},server_data_node:Pe(h)})}),u=await Promise.all(d);if(f){const _=f.layouts;for(let m=0;m<_.length;m++)_[m]||u.splice(m,0,void 0)}p=await se({url:l,params:o,branch:u,status:t,error:a,errors:f?.errors,form:c,route:f??null})}catch(d){if(d instanceof be)return await J(new URL(d.location,location.href));p=await Te({status:ke(d),error:await q(d,{url:l,params:o,route:i}),url:l,route:i}),e.textContent="",v=!1}p&&(p.props.page&&(p.props.page.state={}),await Qe(p,e,v))}function Kt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let ve=!1;function Mt(e,t=!0){const a=document.querySelector("[autofocus]");if(a)a.focus();else{const n=at(e);if(n&&document.getElementById(n)){const{x:i,y:r}=j();setTimeout(()=>{const s=history.state;ve=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(s,"",e),t&&scrollTo(i,r),ve=!1})}else{const i=document.body,r=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),r!==null?i.setAttribute("tabindex",r):i.removeAttribute("tabindex")}const o=getSelection();if(o&&o.type!=="None"){const i=[];for(let r=0;r<o.rangeCount;r+=1)i.push(o.getRangeAt(r));setTimeout(()=>{if(o.rangeCount===i.length){for(let r=0;r<o.rangeCount;r+=1){const s=i[r],c=o.getRangeAt(r);if(s.commonAncestorContainer!==c.commonAncestorContainer||s.startContainer!==c.startContainer||s.endContainer!==c.endContainer||s.startOffset!==c.startOffset||s.endOffset!==c.endOffset)return}o.removeAllRanges()}})}}}function Ae(e,t,a,n,o=null){let i,r;const s=new Promise((l,f)=>{i=l,r=f});return s.catch(C),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:j()},to:a&&{params:t?.params??null,route:{id:t?.route?.id??null},url:a,scroll:o},willUnload:!t,type:n,complete:s},fulfil:i,reject:r}}function Ue(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Ft(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function at(e){let t;if(w.hash){const[,,a]=e.hash.split("#",3);t=a??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Jt as load_css,Vt as start};
_app/immutable/entry/start.wBq0CBz0.js DELETED
@@ -1 +0,0 @@
1
- import{t as Q,b0 as rt}from"../chunks/BF_FrA3D.js";import{H as $,N as Y,r as De,n as C,i as we,b as R,s as j,a as pe,f as qe,g as me,c as Z,d as ue,S as Ke,P as ot,p as P,e as st,h as it,u as Me,o as ct,j as lt,w as ft,k as Ie,l as F,m as ut,q as Fe,t as dt,v as ht,x as He}from"../chunks/DMqF9c3U.js";import{y as Jt}from"../chunks/DMqF9c3U.js";const pt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,mt=/^\/\((?:[^)]+)\)$/;function _t(e){const t=[];return{pattern:e==="/"||mt.test(e)?/^\/$/:new RegExp(`^${vt(e).map(n=>{const o=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(n);if(o)return t.push({name:o[1],matcher:o[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(n);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!n)return;const r=n.split(/\[(.+?)\](?!\])/);return"/"+r.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return de(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return de(String.fromCharCode(...c.slice(2).split("-").map(_=>parseInt(_,16))));const f=pt.exec(c),[,p,v,d,u]=f;return t.push({name:d,matcher:u,optional:!!p,rest:!!v,chained:v?l===1&&r[0]==="":!1}),v?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return de(c)}).join("")}).join("")}/?$`),params:t}}function gt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function vt(e){return e.slice(1).split("/").filter(gt)}function wt(e,t,a){const n={},o=e.slice(1),i=o.filter(s=>s!==void 0);let r=0;for(let s=0;s<t.length;s+=1){const c=t[s];let l=o[s-r];if(c.chained&&c.rest&&r&&(l=o.slice(s-r,s+1).filter(f=>f).join("/"),r=0),l===void 0)if(c.rest)l="";else continue;if(!c.matcher||a[c.matcher](l)){n[c.name]=l;const f=t[s+1],p=o[s+1];f&&!f.rest&&f.optional&&p&&c.chained&&(r=0),!f&&!p&&Object.keys(n).length===i.length&&(r=0);continue}if(c.optional&&c.chained){r++;continue}return}if(!r)return n}function de(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}class ye{constructor(t,a){this.status=t,typeof a=="string"?this.body={message:a}:a?this.body=a:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class be{constructor(t,a){try{new Headers({location:a})}catch{throw new Error(`Invalid redirect location ${JSON.stringify(a)}: this string contains characters that cannot be used in HTTP headers`)}this.status=t,this.location=a}}class Ee extends Error{constructor(t,a,n){super(n),this.status=t,this.text=a}}function yt({nodes:e,server_loads:t,dictionary:a,matchers:n}){const o=new Set(t);return Object.entries(a).map(([s,[c,l,f]])=>{const{pattern:p,params:v}=_t(s),d={id:s,exec:u=>{const _=p.exec(u);if(_)return wt(_,v,n)},errors:[1,...f||[]].map(u=>e[u]),layouts:[0,...l||[]].map(r),leaf:i(c)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function i(s){const c=s<0;return c&&(s=~s),[c,e[s]]}function r(s){return s===void 0?s:[o.has(s),e[s]]}}function Be(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Oe(e,t,a=JSON.stringify){const n=a(t);try{sessionStorage[e]=n}catch{}}function bt(e){return e.filter(t=>t!=null)}function G(e,t){return e+"/"+t}function ke(e){return e instanceof ye||e instanceof Ee?e.status:500}function Et(e){return e instanceof Ee?e.text:"Internal Error"}const kt=new Set(["icon","shortcut icon","apple-touch-icon"]);let H=null;const O=Be(He)??{},z=Be(Fe)??{},I={url:Ie({}),page:Ie({}),navigating:ft(null),updated:lt()};function Se(e){O[e]=j()}function St(e,t){let a=e+1;for(;O[a];)delete O[a],a+=1;for(a=t+1;z[a];)delete z[a],a+=1}function J(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(C)}async function Ve(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(R||"/");e&&await e.update()}}let xe,_e,ee,L,ge,w;const te=[],ae=[];let S=null;function ne(){S?.fork?.then(e=>e?.discard()),S=null,N={element:void 0,href:void 0}}const X=new Map,Ye=new Set,xt=new Set,V=new Set;let g={branch:[],error:null,url:null},ze=!1,re=!1,Ce=!0,W=!1,B=!1,Je=!1,Re=!1,We,y,x,U;const oe=new Set,je=new Map,Ne=new Map;async function Vt(e,t,a){if(globalThis.__sveltekit_1pru93l.data){const{q:i={},p:r={},l:s={},f:c={}}=globalThis.__sveltekit_1pru93l.data;for(const l in i)i[l];for(const l in s)s[l];for(const l in c)c[l];for(const l in r)r[l]}document.URL!==location.href&&(location.href=location.href),w=e,await e.hooks.init?.(),xe=yt(e),L=document.documentElement,ge=t,_e=e.nodes[0],ee=e.nodes[1],_e(),ee(),y=history.state?.[$],x=history.state?.[Y],y||(y=x=Date.now(),history.replaceState({...history.state,[$]:y,[Y]:x},""));const n=O[y];function o(){n&&(history.scrollRestoration="manual",scrollTo(n.x,n.y))}a?(o(),await qt(ge,a)):(await D({type:"enter",url:De(w.hash?Ft(new URL(location.href)):location.href),replace_state:!0}),o()),Dt()}function Rt(){te.length=0,Re=!1}function Ge(e){ae.some(t=>t?.snapshot)&&(z[e]=ae.map(t=>t?.snapshot?.capture()))}function Xe(e){z[e]?.forEach((t,a)=>{ae[a]?.snapshot?.restore(t)})}function $e(){Se(y),Oe(He,O),Ge(x),Oe(Fe,z)}async function Lt(e,t,a,n){let o,i;t.invalidateAll&&ne(),await D({type:"goto",url:De(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:a,nav_token:n,accept:()=>{if(t.invalidateAll){Re=!0,o=new Set;for(const[r,s]of je)for(const[c,l]of s)l.resource?.reset(),o.add(G(r,c));i=new Set;for(const[r,s]of Ne)for(const c of s.keys())i.add(G(r,c))}t.invalidate&&t.invalidate.forEach($t)}}),t.invalidateAll&&Q().then(Q).then(()=>{for(const[r,s]of je)for(const[c,{resource:l}]of s)o?.has(G(r,c))&&l.start();for(const[r,s]of Ne)for(const[c,{resource:l}]of s)i?.has(G(r,c))&&l.reconnect()})}async function Pt(e){if(e.id!==S?.id){ne();const t={};oe.add(t),S={id:e.id,token:t,promise:Ze({...e,preload:t}).then(a=>(oe.delete(t),a.type==="loaded"&&a.state.error&&ne(),a)),fork:null}}return S.promise}async function he(e){const t=(await ce(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(a=>a[1]()))}async function Qe(e,t,a){const n={params:g.params,route:{id:g.route?.id??null},url:new URL(location.href)};if(g={...e.state,nav:n},Me(e.props.page),We=new w.root({target:t,props:{...e.props,stores:I,components:ae},hydrate:a,sync:!1,transformError:void 0}),await Promise.resolve(),a){const o={from:null,to:{...n,scroll:O[y]??j()},willUnload:!1,type:"enter",complete:Promise.resolve()};V.forEach(i=>i(o))}Xe(x),re=!0}async function se({url:e,params:t,branch:a,errors:n,status:o,error:i,route:r,form:s}){let c="never";if(R&&(e.pathname===R||e.pathname===R+"/"))c="always";else for(const u of a)u?.slash!==void 0&&(c=u.slash);e.pathname=it(e.pathname,c),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:a,error:i,route:r},props:{constructors:bt(a).map(u=>u.node.component),page:Ue(P)}};s!==void 0&&(l.props.form=s);let f={},p=!P,v=0;for(let u=0;u<Math.max(a.length,g.branch.length);u+=1){const _=a[u],m=g.branch[u];_?.data!==m?.data&&(p=!0),_&&(f={...f,..._.data},p&&(l.props[`data_${v}`]=f),v+=1)}return(!g.url||e.href!==g.url.href||g.error!==i||s!==void 0&&s!==P.form||p)&&(l.props.page={error:i,params:t,route:{id:r?.id??null},state:{},status:o,url:new URL(e),form:s??null,data:p?f:P.data}),l}async function Le({loader:e,parent:t,url:a,params:n,route:o,server_data_node:i}){let r=null;const s={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();return{node:c,loader:e,server:i,universal:c.universal?.load?{type:"data",data:r,uses:s}:null,data:r??i?.data??null,slash:c.universal?.trailingSlash??i?.slash}}function Tt(e,t,a){let n=e instanceof Request?e.url:e;const o=new URL(n,a);o.origin===a.origin&&(n=o.href.slice(a.origin.length));const i=re?dt(n,o.href,t):ht(n,t);return{resolved:o,promise:i}}function At(e,t,a,n,o,i){if(Re)return!0;if(!o)return!1;if(o.parent&&e||o.route&&t||o.url&&a)return!0;for(const r of o.search_params)if(n.has(r))return!0;for(const r of o.params)if(i[r]!==g.params[r])return!0;for(const r of o.dependencies)if(te.some(s=>s(new URL(r))))return!0;return!1}function Pe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Ut(e,t){if(!e)return new Set(t.searchParams.keys());const a=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const n of a){const o=e.searchParams.getAll(n),i=t.searchParams.getAll(n);o.every(r=>i.includes(r))&&i.every(r=>o.includes(r))&&a.delete(n)}return a}function It({error:e,url:t,route:a,params:n}){return{type:"loaded",state:{error:e,url:t,route:a,params:n,branch:[]},props:{page:Ue(P),constructors:[]}}}async function Ze({id:e,invalidating:t,url:a,params:n,route:o,preload:i}){if(S?.id===e)return oe.delete(S.token),S.promise;const{errors:r,layouts:s,leaf:c}=o,l=[...s,c];r.forEach(m=>m?.().catch(C)),l.forEach(m=>m?.[1]().catch(C));const f=g.url?e!==ie(g.url):!1,p=g.route?o.id!==g.route.id:!1,v=Ut(g.url,a);let d=!1;const u=l.map(async(m,h)=>{if(!m)return;const b=g.branch[h];return m[1]===b?.loader&&!At(d,p,f,v,b.universal?.uses,n)?b:(d=!0,Le({loader:m[1],url:a,params:n,route:o,parent:async()=>{const T={};for(let A=0;A<h;A+=1)Object.assign(T,(await u[A])?.data);return T},server_data_node:Pe(m[0]?{type:"skip"}:null,m[0]?b?.server:void 0)}))});for(const m of u)m.catch(C);const _=[];for(let m=0;m<l.length;m+=1)if(l[m])try{_.push(await u[m])}catch(h){if(h instanceof be)return{type:"redirect",location:h.location};if(i&&oe.has(i))return It({error:await q(h,{params:n,url:a,route:{id:o.id}}),url:a,params:n,route:o});let b=ke(h),k;if(h instanceof ye)k=h.body;else{if(await I.updated.check())return await Ve(),await J(a);k=await q(h,{params:n,url:a,route:{id:o.id}})}const T=await Ot(m,_,r);return T?se({url:a,params:n,branch:_.slice(0,T.idx).concat(T.node),errors:r,status:b,error:k,route:o}):await tt(a,{id:o.id},k,b)}else _.push(void 0);return se({url:a,params:n,branch:_,errors:r,status:200,error:null,route:o,form:t?void 0:null})}async function Ot(e,t,a){for(;e--;)if(a[e]){let n=e;for(;!t[n];)n-=1;try{return{idx:n+1,node:{node:await a[e](),loader:a[e],data:{},server:null,universal:null}}}catch{continue}}}async function Te({status:e,error:t,url:a,route:n}){const o={};let i=null;try{const r=await Le({loader:_e,url:a,params:o,route:n,parent:()=>Promise.resolve({}),server_data_node:Pe(i)}),s={node:await ee(),loader:ee,universal:null,server:null,data:null};return se({url:a,params:o,branch:[r,s],status:e,error:t,errors:[],route:null})}catch(r){if(r instanceof be){await Lt(new URL(r.location,location.href),{},0);return}const s=await w.get_error_template(),c=await q(r,{url:a,params:o,route:n}),l=String(c?.message??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),f=s({status:e,message:l}),p=new DOMParser().parseFromString(f,"text/html");throw document.documentElement.replaceChild(document.adoptNode(p.head),document.head),document.documentElement.replaceChild(document.adoptNode(p.body),document.body),r}}async function Ct(e){const t=e.href;if(X.has(t))return X.get(t);let a;try{const n=(async()=>{let o=await w.hooks.reroute({url:new URL(e),fetch:async(i,r)=>Tt(i,r,e).promise})??e;if(typeof o=="string"){const i=new URL(e);w.hash?i.hash=o:i.pathname=o,o=i}return o})();X.set(t,n),a=await n}catch{X.delete(t);return}return a}async function ce(e,t){if(e&&!we(e,R,w.hash)){const a=await Ct(e);if(!a)return;const n=jt(a);for(const o of xe){const i=o.exec(n);if(i)return{id:ie(e),invalidating:t,route:o,params:st(i),url:e}}}}function jt(e){return ut(w.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(R.length))||"/"}function ie(e){return(w.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function et({url:e,type:t,intent:a,delta:n,event:o,scroll:i}){let r=!1;const s=Ae(g,a,e,t,i??null);n!==void 0&&(s.navigation.delta=n),o!==void 0&&(s.navigation.event=o);const c={...s.navigation,cancel:()=>{r=!0,s.reject(new Error("navigation cancelled"))}};return W||Ye.forEach(l=>l(c)),r?null:s}async function D({type:e,url:t,popped:a,keepfocus:n,noscroll:o,replace_state:i,state:r={},redirect_count:s=0,nav_token:c={},accept:l=C,block:f=C,event:p}){const v=U;U=c;const d=await ce(t,!1),u=e==="enter"?Ae(g,d,t,e):et({url:t,type:e,delta:a?.delta,intent:d,scroll:a?.scroll,event:p});if(!u){f(),U===c&&(U=v);return}const _=y,m=x;l(),W=!0,re&&u.navigation.type!=="enter"&&I.navigating.set(pe.current=u.navigation);let h=d&&await Ze(d);if(!h){if(we(t,R,w.hash))return await J(t,i);h=await tt(t,{id:null},await q(new Ee(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=d?.url||t,U!==c){u.reject(new Error("navigation aborted"));return}if(!h)return;if(h.type==="redirect"){if(s<20){await D({type:e,url:new URL(h.location,t),popped:a,keepfocus:n,noscroll:o,replace_state:i,state:r,redirect_count:s+1,nav_token:c}),u.fulfil(void 0);return}if(h=await Te({status:500,error:await q(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}}),!h)return}else if(h.props.page.status>=400&&await I.updated.check())return await Ve(),await J(t,i);if(Rt(),Se(_),Ge(m),h.props.page.url.pathname!==t.pathname&&(t.pathname=h.props.page.url.pathname),r=a?a.state:r,!a){const E=i?0:1,K={[$]:y+=E,[Y]:x+=E,[Ke]:r};(i?history.replaceState:history.pushState).call(history,K,"",t),i||St(y,x)}const b=d&&S?.id===d.id?S.fork:null;S?.fork&&!b?ne():(S=null,N={element:void 0,href:void 0}),h.props.page.state=r;let k;if(re){const E=(await Promise.all(Array.from(xt,M=>M(u.navigation)))).filter(M=>typeof M=="function");if(E.length>0){let M=function(){E.forEach(fe=>{V.delete(fe)})};E.push(M),E.forEach(fe=>{V.add(fe)})}const K=u.navigation.to;g={...h.state,nav:{params:K.params,route:K.route,url:K.url}},h.props.page&&(h.props.page.url=t),!n&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();const le=b&&await b;le?k=le.commit():(H=null,We.$set(h.props),H&&Object.assign(h.props.page,H),Me(h.props.page),k=rt?.()),Je=!0}else await Qe(h,ge,!1);const{activeElement:T}=document;if(await k,await Q(),await Q(),U!==c){u.reject(new Error("navigation aborted"));return}h.props.page&&H&&Object.assign(h.props.page,H);let A=null;if(Ce){const E=a?a.scroll:o?j():null;E?scrollTo(E.x,E.y):(A=t.hash&&document.getElementById(at(t)))?A.scrollIntoView():scrollTo(0,0)}const nt=document.activeElement!==T&&document.activeElement!==document.body;!n&&!nt&&Mt(t,!A),Ce=!0,W=!1,u.fulfil(void 0),u.navigation.to&&(u.navigation.to.scroll=j()),V.forEach(E=>E(u.navigation)),e==="popstate"&&Xe(x),I.navigating.set(pe.current=null)}async function tt(e,t,a,n,o){return e.origin===ct&&e.pathname===location.pathname&&!ze?await Te({status:n,error:a,url:e,route:t}):await J(e,o)}let N={element:void 0,href:void 0};function Nt(){let e,t;L.addEventListener("mousemove",r=>{const s=r.target;clearTimeout(e),e=setTimeout(()=>{o(s,F.hover)},20)});function a(r){r.defaultPrevented||o(r.composedPath()[0],F.tap)}L.addEventListener("mousedown",a),L.addEventListener("touchstart",a,{passive:!0});const n=new IntersectionObserver(r=>{for(const s of r)s.isIntersecting&&(he(new URL(s.target.href)),n.unobserve(s.target))},{threshold:0});async function o(r,s){const c=qe(r,L),l=c===N.element&&c?.href===N.href&&s>=t;if(!c||l)return;const{url:f,external:p,download:v}=me(c,R,w.hash);if(p||v)return;const d=Z(c),u=f&&ie(g.url)===ie(f);if(!(d.reload||u))if(s<=d.preload_data){N={element:c,href:c.href},t=F.tap;const _=await ce(f,!1);if(!_)return;Pt(_)}else s<=d.preload_code&&(N={element:c,href:c.href},t=s,he(f))}function i(){n.disconnect();for(const r of L.querySelectorAll("a")){const{url:s,external:c,download:l}=me(r,R,w.hash);if(c||l)continue;const f=Z(r);f.reload||(f.preload_code===F.viewport&&n.observe(r),f.preload_code===F.eager&&he(s))}}V.add(i),i()}function q(e,t){if(e instanceof ye)return e.body;const a=ke(e),n=Et(e);return w.hooks.handleError({error:e,event:t,status:a,message:n})??{message:n}}function $t(e){if(typeof e=="function")te.push(e);else{const{href:t}=new URL(e,location.href);te.push(a=>a.href===t)}}function Dt(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let a=!1;if($e(),!W){const n=Ae(g,void 0,null,"leave"),o={...n.navigation,cancel:()=>{a=!0,n.reject(new Error("navigation cancelled"))}};Ye.forEach(i=>i(o))}a?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&$e()}),navigator.connection?.saveData||Nt(),L.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const a=qe(t.composedPath()[0],L);if(!a)return;const{url:n,external:o,target:i,download:r}=me(a,R,w.hash);if(!n)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const s=Z(a);if(!(a instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||r)return;const[l,f]=(w.hash?n.hash.replace(/^#/,""):n.href).split("#"),p=l===ue(location);if(o||s.reload&&(!p||!f)){et({url:n,type:"link",event:t})?W=!0:t.preventDefault();return}if(f!==void 0&&p){const[,v]=g.url.href.split("#");if(v===f){if(t.preventDefault(),f===""||f==="top"&&a.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const d=a.ownerDocument.getElementById(decodeURIComponent(f));d&&(d.scrollIntoView(),d.focus())}return}if(B=!0,Se(y),e(n),!s.replace_state)return;B=!1}t.preventDefault(),await new Promise(v=>{requestAnimationFrame(()=>{setTimeout(v,0)}),setTimeout(v,100)}),await D({type:"link",url:n,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??n.href===location.href,event:t})}),L.addEventListener("submit",t=>{if(t.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(t.target),n=t.submitter;if((n?.formTarget||a.target)==="_blank"||(n?.formMethod||a.method)!=="get")return;const r=new URL(n?.hasAttribute("formaction")&&n?.formAction||a.action);if(we(r,R,!1))return;const s=t.target,c=Z(s);if(c.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(s,n);r.search=new URLSearchParams(l).toString(),D({type:"form",url:r,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??r.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!ve){if(t.state?.[$]){const a=t.state[$];if(U={},a===y)return;const n=O[a],o=t.state[Ke]??{},i=new URL(t.state[ot]??location.href),r=t.state[Y],s=g.url?ue(location)===ue(g.url):!1;if(r===x&&(Je||s)){o!==P.state&&(P.state=o),e(i),O[y]=j(),n&&scrollTo(n.x,n.y),y=a;return}const l=a-y;await D({type:"popstate",url:i,popped:{state:o,scroll:n,delta:l},accept:()=>{y=a,x=r},block:()=>{history.go(-l)},nav_token:U,event:t})}else if(!B){const a=new URL(location.href);e(a),w.hash&&location.reload()}}}),addEventListener("hashchange",()=>{B&&(B=!1,history.replaceState({...history.state,[$]:++y,[Y]:x},"",location.href))});for(const t of document.querySelectorAll("link"))kt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&I.navigating.set(pe.current=null)});function e(t){g.url=P.url=t,I.page.set(Ue(P)),I.page.notify()}}async function qt(e,{status:t=200,error:a,node_ids:n,params:o,route:i,server_route:r,data:s,form:c}){ze=!0;const l=new URL(location.href);let f;({params:o={},route:i={id:null}}=await ce(l,!1)||{}),f=xe.find(({id:d})=>d===i.id);let p,v=!0;try{const d=n.map(async(_,m)=>{const h=s[m];return h?.uses&&(h.uses=Kt(h.uses)),Le({loader:w.nodes[_],url:l,params:o,route:i,parent:async()=>{const b={};for(let k=0;k<m;k+=1)Object.assign(b,(await d[k]).data);return b},server_data_node:Pe(h)})}),u=await Promise.all(d);if(f){const _=f.layouts;for(let m=0;m<_.length;m++)_[m]||u.splice(m,0,void 0)}p=await se({url:l,params:o,branch:u,status:t,error:a,errors:f?.errors,form:c,route:f??null})}catch(d){if(d instanceof be)return await J(new URL(d.location,location.href));p=await Te({status:ke(d),error:await q(d,{url:l,params:o,route:i}),url:l,route:i}),e.textContent="",v=!1}p&&(p.props.page&&(p.props.page.state={}),await Qe(p,e,v))}function Kt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let ve=!1;function Mt(e,t=!0){const a=document.querySelector("[autofocus]");if(a)a.focus();else{const n=at(e);if(n&&document.getElementById(n)){const{x:i,y:r}=j();setTimeout(()=>{const s=history.state;ve=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(s,"",e),t&&scrollTo(i,r),ve=!1})}else{const i=document.body,r=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),r!==null?i.setAttribute("tabindex",r):i.removeAttribute("tabindex")}const o=getSelection();if(o&&o.type!=="None"){const i=[];for(let r=0;r<o.rangeCount;r+=1)i.push(o.getRangeAt(r));setTimeout(()=>{if(o.rangeCount===i.length){for(let r=0;r<o.rangeCount;r+=1){const s=i[r],c=o.getRangeAt(r);if(s.commonAncestorContainer!==c.commonAncestorContainer||s.startContainer!==c.startContainer||s.endContainer!==c.endContainer||s.startOffset!==c.startOffset||s.endOffset!==c.endOffset)return}o.removeAllRanges()}})}}}function Ae(e,t,a,n,o=null){let i,r;const s=new Promise((l,f)=>{i=l,r=f});return s.catch(C),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:j()},to:a&&{params:t?.params??null,route:{id:t?.route?.id??null},url:a,scroll:o},willUnload:!t,type:n,complete:s},fulfil:i,reject:r}}function Ue(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Ft(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function at(e){let t;if(w.hash){const[,,a]=e.hash.split("#",3);t=a??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Jt as load_css,Vt as start};
 
 
_app/immutable/nodes/{0.DoB0Uq5V.js → 0.ByqCz_j3.js} RENAMED
@@ -1 +1 @@
1
- import{c as s,a as c}from"../chunks/BbLVZPWC.js";import{b as l,E as p,l as i}from"../chunks/BF_FrA3D.js";import{B as u}from"../chunks/DJd3U5Dq.js";function m(r,n,...e){var o=new u(r);l(()=>{const t=n()??null;o.ensure(t,t&&(a=>t(a,...e)))},p)}const f=!0,_=!0,g=Object.freeze(Object.defineProperty({__proto__:null,prerender:f,ssr:_},Symbol.toStringTag,{value:"Module"}));function h(r,n){var e=s(),o=i(e);m(o,()=>n.children),c(r,e)}export{h as component,g as universal};
 
1
+ import{c as s,a as c}from"../chunks/CZyhMBTx.js";import{b as l,E as p,l as i}from"../chunks/BPOa35me.js";import{B as u}from"../chunks/DulwI2VJ.js";function m(r,n,...e){var o=new u(r);l(()=>{const t=n()??null;o.ensure(t,t&&(a=>t(a,...e)))},p)}const f=!0,_=!0,g=Object.freeze(Object.defineProperty({__proto__:null,prerender:f,ssr:_},Symbol.toStringTag,{value:"Module"}));function h(r,n){var e=s(),o=i(e);m(o,()=>n.children),c(r,e)}export{h as component,g as universal};
_app/immutable/nodes/{1.Bt3c1Ixm.js → 1.B1mTb-8d.js} RENAMED
@@ -1 +1 @@
1
- import{a as g,f as c}from"../chunks/BbLVZPWC.js";import{p as h,l as v,x as l,o as x,v as e,w as s,n as _}from"../chunks/BF_FrA3D.js";import{s as o}from"../chunks/Bav0O8J1.js";import{p}from"../chunks/DMqF9c3U.js";const d={get error(){return p.error},get status(){return p.status}},m=d;var $=c("<h1> </h1> <p> </p>",1);function k(n,f){h(f,!0);var t=$(),r=v(t),i=e(r,!0);s(r);var a=_(r,2),u=e(a,!0);s(a),l(()=>{o(i,m.status),o(u,m.error?.message)}),g(n,t),x()}export{k as component};
 
1
+ import{a as g,f as c}from"../chunks/CZyhMBTx.js";import{p as h,l as v,x as l,o as x,v as e,w as s,n as _}from"../chunks/BPOa35me.js";import{s as o}from"../chunks/DDj9FNNG.js";import{p}from"../chunks/BbCnN6uz.js";const d={get error(){return p.error},get status(){return p.status}},m=d;var $=c("<h1> </h1> <p> </p>",1);function k(n,f){h(f,!0);var t=$(),r=v(t),i=e(r,!0);s(r);var a=_(r,2),u=e(a,!0);s(a),l(()=>{o(i,m.status),o(u,m.error?.message)}),g(n,t),x()}export{k as component};
_app/immutable/nodes/2.XoCX03N0.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{a as M,c as Tt,f as L,b as Ue,t as Ct}from"../chunks/CZyhMBTx.js";import{z as Ve,b as ht,A as _t,h as Q,e as Ne,B as gt,a as Ft,g as e,r as Mt,C as Rt,c as st,i as De,j as He,D as mt,F as Ht,G as lt,I as Ae,J as de,K as Pe,M as It,N as Nt,O as Dt,P as Lt,Q as Ot,m as zt,R as ot,S as Bt,T as Gt,U as bt,V as pt,W as Xe,X as yt,Y as Kt,Z as Vt,_ as Pt,$ as Ut,a0 as Yt,a1 as et,a2 as qt,a3 as je,a4 as Wt,a5 as it,a6 as ct,a7 as Xt,a8 as Jt,a9 as Qt,aa as Zt,ab as jt,ac as $t,ad as ea,ae as ta,af as aa,t as ra,ag as na,ah as sa,p as Ye,v as c,n as _,w as i,x as O,y as T,l as we,o as qe,q as se,s as W,ai as Je,aj as la,ak as oa}from"../chunks/BPOa35me.js";import{d as Oe,s as F,a as ve,e as Ke}from"../chunks/DDj9FNNG.js";import{i as he,b as ia,p as ca}from"../chunks/BcBLKmPk.js";function le(t,a){return a}function ua(t,a,r){for(var l=[],o=a.length,n,s=a.length,f=0;f<o;f++){let k=a[f];pt(k,()=>{if(n){if(n.pending.delete(k),n.done.add(k),n.pending.size===0){var x=t.outrogroups;$e(t,et(n.done)),x.delete(n),x.size===0&&(t.outrogroups=null)}}else s-=1},!1)}if(s===0){var u=l.length===0&&r!==null&&t.pending.size===0;if(u){var p=r,g=p.parentNode;Pt(g),g.append(p),t.items.clear()}$e(t,a,!u)}else n={pending:new Set(a),done:new Set},(t.outrogroups??=new Set).add(n)}function $e(t,a,r=!0){var l;if(t.pending.size>0){l=new Set;for(const s of t.pending.values())for(const f of s)l.add(t.items.get(f).e)}for(var o=0;o<a.length;o++){var n=a[o];if(l?.has(n)){n.f|=de;const s=document.createDocumentFragment();Ut(n,s)}else Yt(a[o],r)}}var ut;function oe(t,a,r,l,o,n=null){var s=t,f=new Map,u=(a&_t)!==0;if(u){var p=t;s=Q?Ne(gt(p)):p.appendChild(Ve())}Q&&Ft();var g=null,k=Dt(()=>{var C=r();return qt(C)?C:C==null?[]:et(C)}),x,m=new Map,A=!0;function I(C){(X.effect.f&Gt)===0&&(X.pending.delete(C),X.fallback=g,da(X,x,s,a,l),g!==null&&(x.length===0?(g.f&de)===0?bt(g):(g.f^=de,Ie(g,null,s)):pt(g,()=>{g=null})))}function d(C){X.pending.delete(C)}var E=ht(()=>{x=e(k);var C=x.length;let K=!1;if(Q){var Z=Mt(s)===Rt;Z!==(C===0)&&(s=st(),Ne(s),De(!1),K=!0)}for(var J=new Set,N=Ae,R=Nt(),H=0;H<C;H+=1){Q&&He.nodeType===mt&&He.data===Ht&&(s=He,K=!0,De(!1));var z=x[H],U=l(z,H),B=A?null:f.get(U);B?(B.v&&lt(B.v,z),B.i&&lt(B.i,H),R&&N.unskip_effect(B.e)):(B=fa(f,A?s:ut??=Ve(),z,U,H,o,a,r),A||(B.e.f|=de),f.set(U,B)),J.add(U)}if(C===0&&n&&!g&&(A?g=Pe(()=>n(s)):(g=Pe(()=>n(ut??=Ve())),g.f|=de)),C>J.size&&It(),Q&&C>0&&Ne(st()),!A)if(m.set(N,J),R){for(const[ie,ge]of f)J.has(ie)||N.skip_effect(ge.e);N.oncommit(I),N.ondiscard(d)}else I(N);K&&De(!0),e(k)}),X={effect:E,items:f,pending:m,outrogroups:null,fallback:g};A=!1,Q&&(s=He)}function Me(t){for(;t!==null&&(t.f&Kt)===0;)t=t.next;return t}function da(t,a,r,l,o){var n=(l&Vt)!==0,s=a.length,f=t.items,u=Me(t.effect.first),p,g=null,k,x=[],m=[],A,I,d,E;if(n)for(E=0;E<s;E+=1)A=a[E],I=o(A,E),d=f.get(I).e,(d.f&de)===0&&(d.nodes?.a?.measure(),(k??=new Set).add(d));for(E=0;E<s;E+=1){if(A=a[E],I=o(A,E),d=f.get(I).e,t.outrogroups!==null)for(const z of t.outrogroups)z.pending.delete(d),z.done.delete(d);if((d.f&Xe)!==0&&(bt(d),n&&(d.nodes?.a?.unfix(),(k??=new Set).delete(d))),(d.f&de)!==0)if(d.f^=de,d===u)Ie(d,null,r);else{var X=g?g.next:u;d===t.effect.last&&(t.effect.last=d.prev),d.prev&&(d.prev.next=d.next),d.next&&(d.next.prev=d.prev),me(t,g,d),me(t,d,X),Ie(d,X,r),g=d,x=[],m=[],u=Me(g.next);continue}if(d!==u){if(p!==void 0&&p.has(d)){if(x.length<m.length){var C=m[0],K;g=C.prev;var Z=x[0],J=x[x.length-1];for(K=0;K<x.length;K+=1)Ie(x[K],C,r);for(K=0;K<m.length;K+=1)p.delete(m[K]);me(t,Z.prev,J.next),me(t,g,Z),me(t,J,C),u=C,g=J,E-=1,x=[],m=[]}else p.delete(d),Ie(d,u,r),me(t,d.prev,d.next),me(t,d,g===null?t.effect.first:g.next),me(t,g,d),g=d;continue}for(x=[],m=[];u!==null&&u!==d;)(p??=new Set).add(u),m.push(u),u=Me(u.next);if(u===null)continue}(d.f&de)===0&&x.push(d),g=d,u=Me(d.next)}if(t.outrogroups!==null){for(const z of t.outrogroups)z.pending.size===0&&($e(t,et(z.done)),t.outrogroups?.delete(z));t.outrogroups.size===0&&(t.outrogroups=null)}if(u!==null||p!==void 0){var N=[];if(p!==void 0)for(d of p)(d.f&Xe)===0&&N.push(d);for(;u!==null;)(u.f&Xe)===0&&u!==t.fallback&&N.push(u),u=Me(u.next);var R=N.length;if(R>0){var H=(l&_t)!==0&&s===0?r:null;if(n){for(E=0;E<R;E+=1)N[E].nodes?.a?.measure();for(E=0;E<R;E+=1)N[E].nodes?.a?.fix()}ua(t,N,H)}}n&&yt(()=>{if(k!==void 0)for(d of k)d.nodes?.a?.apply()})}function fa(t,a,r,l,o,n,s,f){var u=(s&Lt)!==0?(s&Ot)===0?zt(r,!1,!1):ot(r):null,p=(s&Bt)!==0?ot(o):null;return{v:u,i:p,e:Pe(()=>(n(a,u??r,p??o,f),()=>{t.delete(l)}))}}function Ie(t,a,r){if(t.nodes)for(var l=t.nodes.start,o=t.nodes.end,n=a&&(a.f&de)===0?a.nodes.start:r;l!==null;){var s=je(l);if(n.before(l),l===o)return;l=s}}function me(t,a,r){a===null?t.effect.first=r:a.next=r,r===null?t.effect.last=a:r.prev=a}function va(t,a){let r=null,l=Q;var o;if(Q){r=He;for(var n=gt(document.head);n!==null&&(n.nodeType!==mt||n.data!==t);)n=je(n);if(n===null)De(!1);else{var s=je(n);n.remove(),Ne(s)}}Q||(o=document.head.appendChild(Ve()));try{ht(()=>{var f=Pe(()=>a(o));f.f|=Wt})}finally{l&&(De(!0),Ne(r))}}const dt=[...`
2
+ \r\f \v\uFEFF`];function ha(t,a,r){var l=t==null?"":""+t;if(r){for(var o of Object.keys(r))if(r[o])l=l?l+" "+o:o;else if(l.length)for(var n=o.length,s=0;(s=l.indexOf(o,s))>=0;){var f=s+n;(s===0||dt.includes(l[s-1]))&&(f===l.length||dt.includes(l[f]))?l=(s===0?"":l.substring(0,s))+l.substring(f+1):s=f}}return l===""?null:l}function _a(t,a){return t==null?null:String(t)}function _e(t,a,r,l,o,n){var s=t[it];if(Q||s!==r||s===void 0){var f=ha(r,l,n);(!Q||f!==t.getAttribute("class"))&&(f==null?t.removeAttribute("class"):a?t.className=f:t.setAttribute("class",f)),t[it]=r}else if(n&&o!==n)for(var u in n){var p=!!n[u];(o==null||p!==!!o[u])&&t.classList.toggle(u,p)}return n}function Le(t,a,r,l){var o=t[ct];if(Q||o!==a){var n=_a(a);(!Q||n!==t.getAttribute("style"))&&(n==null?t.removeAttribute("style"):t.style.cssText=n),t[ct]=a}return l}const ga=Symbol("is custom element"),ma=Symbol("is html"),ba=Zt?"link":"LINK";function pa(t){if(Q){var a=!1,r=()=>{if(!a){if(a=!0,t.hasAttribute("value")){var l=t.value;w(t,"value",null),t.value=l}if(t.hasAttribute("checked")){var o=t.checked;w(t,"checked",null),t.checked=o}}};t[ea]=r,yt(r),ta()}}function w(t,a,r,l){var o=ya(t);Q&&(o[a]=t.getAttribute(a),a==="src"||a==="srcset"||a==="href"&&t.nodeName===ba)||o[a]!==(o[a]=r)&&(a==="loading"&&(t[Xt]=r),r==null?t.removeAttribute(a):typeof r!="string"&&xa(t).includes(a)?t[a]=r:t.setAttribute(a,r))}function ya(t){return t[Jt]??={[ga]:t.nodeName.includes("-"),[ma]:t.namespaceURI===Qt}}var ft=new Map;function xa(t){var a=t.getAttribute("is")||t.nodeName,r=ft.get(a);if(r)return r;ft.set(a,r=[]);for(var l,o=t,n=Element.prototype;n!==o;){l=$t(o);for(var s in l)l[s].set&&s!=="innerHTML"&&s!=="textContent"&&s!=="innerText"&&r.push(s);o=jt(o)}return r}function ka(t,a,r=a){var l=new WeakSet;aa(t,"input",async o=>{var n=o?t.defaultValue:t.value;if(n=Qe(t)?Ze(n):n,r(n),Ae!==null&&l.add(Ae),await ra(),n!==(n=a())){var s=t.selectionStart,f=t.selectionEnd,u=t.value.length;if(t.value=n??"",f!==null){var p=t.value.length;s===f&&f===u&&p>u?(t.selectionStart=p,t.selectionEnd=p):(t.selectionStart=s,t.selectionEnd=Math.min(f,p))}}}),(Q&&t.defaultValue!==t.value||na(a)==null&&t.value)&&(r(Qe(t)?Ze(t.value):t.value),Ae!==null&&l.add(Ae)),sa(()=>{var o=a();if(t===document.activeElement){var n=Ae;if(l.has(n))return}Qe(t)&&o===Ze(t.value)||t.type==="date"&&!o&&!t.value||o!==t.value&&(t.value=o??"")})}function Qe(t){var a=t.type;return a==="number"||a==="range"}function Ze(t){return t===""?null:+t}const ne=(t,a,r,l,o)=>({key:t,label:a,shortLabel:r,description:l,color:o}),wa=[{label:"Sentence tasks",columns:[ne("sentence_1","1 sentence","1 sent.","Macro-F1 on the sentence_1 held-out test split.","#2878b5"),ne("sentence_5","5 sentences","5 sent.","Macro-F1 on the sentence_5 held-out test split.","#4c9bd1"),ne("sentence_10","10 sentences","10 sent.","Macro-F1 on the sentence_10 held-out test split.","#d06732"),ne("sentence_50","50 sentences","50 sent.","Macro-F1 on the sentence_50 held-out test split.","#8c5fbf")]},{label:"Source-held-out tasks",columns:[ne("source_held_out_1","1 sentence","1 sent.","Macro-F1 on source_held_out_1: each test source is absent from training for that author.","#2878b5"),ne("source_held_out_5","5 sentences","5 sent.","Macro-F1 on source_held_out_5: each test source is absent from training for that author.","#4c9bd1"),ne("source_held_out_10","10 sentences","10 sent.","Macro-F1 on source_held_out_10: each test source is absent from training for that author.","#d06732"),ne("source_held_out_50","50 sentences","50 sent.","Macro-F1 on source_held_out_50: each test source is absent from training for that author.","#8c5fbf")]}],Sa=[{label:"Verse tasks",columns:[ne("verse_1","1 line","1 line","Macro-F1 on the verse_1 held-out test split.","#2878b5"),ne("verse_5","5 lines","5 lines","Macro-F1 on the verse_5 held-out test split.","#4c9bd1"),ne("verse_10","10 lines","10 lines","Macro-F1 on the verse_10 held-out test split.","#d06732"),ne("verse_50","50 lines","50 lines","Macro-F1 on the verse_50 held-out test split.","#8c5fbf")]}],Aa=[],Ea=[];function Ta(t){return t===void 0?"—":t.toFixed(2)}var Ca=L('<button type="button"><i></i> </button>'),Fa=L("<strong> </strong><span> </span><b> </b>",1),Ma=L("<span>Tap or click a bar to keep its exact value visible.</span>"),Ra=Ue('<line class="grid-line"></line><text class="axis-tick" text-anchor="end"> </text>',1),Ha=Ue('<rect role="button" tabindex="0"><title> </title></rect>'),Ia=Ue('<!><text class="author-label" text-anchor="end"> </text>',1),Na=Ue('<text class="empty-chart" text-anchor="middle">All tasks hidden. Select a legend swatch to show one.</text>'),Da=L('<section class="accuracy-chart" aria-labelledby="accuracy-title"><div class="chart-heading"><div><p class="eyebrow">Selected model</p> <h3 id="accuracy-title">Per-author test accuracy</h3> <p>Task bars are overlaid for direct comparison. Hover or select a bar for its exact value, or click a legend swatch to hide that task.</p></div> <div class="chart-legend" role="group" aria-label="Task legend: toggle task visibility"></div></div> <p class="bar-selection" aria-live="polite"><!></p> <div class="chart-scroll"><svg role="img" aria-labelledby="accuracy-title accuracy-desc"><desc id="accuracy-desc">Overlaid bars show test accuracy from zero to one hundred percent for every author and each shown task size.</desc><!><text class="axis-title" text-anchor="middle">Accuracy (%)</text><!><!></svg></div></section>');function La(t,a){Ye(a,!0);let r=se(null),l=se(null),o=se(null);const n=T(()=>`${a.row.model} ${a.row.classifier}`),s=T(()=>a.columns.filter(y=>a.row.scores[y.key]!==void 0)),f=T(()=>{const y=e(s).filter(b=>(a.row.scores[b.key]??0)>=100).map(b=>b.key);return new Set(y.length===e(s).length?[]:y)}),u=T(()=>e(o)===e(n)&&e(l)?e(l):e(f)),p=T(()=>e(s).filter(y=>!e(u).has(y.key))),g=T(()=>Object.keys(a.row.authorAccuracy??{})),k=1180,x=510,m={top:30,right:24,bottom:150,left:58},A=k-m.left-m.right,I=x-m.top-m.bottom,d=T(()=>A/e(g).length),E=22,X=[0,20,40,60,80,100];function C(y,b,V){W(r,{model:a.row.model,key:`${y}:${b.key}`,author:y,taskKey:b.key,task:b.label,value:V},!0),a.onselectauthor?.(y)}function K(y){const b=new Set(e(u));b.has(y)?b.delete(y):b.add(y),W(l,b,!0),W(o,e(n),!0),e(r)&&b.has(e(r).taskKey)&&W(r,null)}var Z=Da(),J=c(Z),N=_(c(J),2);oe(N,21,()=>e(s),le,(y,b)=>{const V=T(()=>e(u).has(e(b).key));var D=Ca();let G;var Y=_(c(D),1,!0);i(D),O(()=>{G=_e(D,1,"legend-toggle",null,G,{hidden:e(V)}),Le(D,`--legend-color: ${e(b).color}`),w(D,"aria-pressed",!e(V)),w(D,"title",e(V)?`Show ${e(b).label} bars`:`Hide ${e(b).label} bars`),F(Y,e(b).label)}),ve("click",D,()=>K(e(b).key)),M(y,D)}),i(N),i(J);var R=_(J,2),H=c(R);{var z=y=>{var b=Fa(),V=we(b),D=c(V,!0);i(V);var G=_(V),Y=c(G,!0);i(G);var j=_(G),pe=c(j);i(j),O(ye=>{F(D,e(r).author),F(Y,e(r).task),F(pe,`${ye??""}%`)},[()=>e(r).value.toFixed(2)]),M(y,b)},U=y=>{var b=Ma();M(y,b)};he(H,y=>{e(r)?.model===a.row.model?y(z):y(U,-1)})}i(R);var B=_(R,2),ie=c(B);w(ie,"viewBox",`0 0 ${k} ${x}`);var ge=_(c(ie));oe(ge,17,()=>X,le,(y,b)=>{const V=T(()=>m.top+I*(1-e(b)/100));var D=Ra(),G=we(D),Y=_(G),j=c(Y,!0);i(Y),O(()=>{w(G,"x1",m.left),w(G,"x2",k-m.right),w(G,"y1",e(V)),w(G,"y2",e(V)),w(Y,"x",m.left-10),w(Y,"y",e(V)+4),F(j,e(b))}),M(y,D)});var ee=_(ge),te=_(ee);oe(te,17,()=>e(g),le,(y,b,V)=>{const D=T(()=>m.left+e(d)*(V+.5));var G=Ia(),Y=we(G);oe(Y,17,()=>e(p),le,(ye,fe,v)=>{const h=T(()=>a.row.authorAccuracy?.[e(b)]?.[e(fe).key]);var S=Tt(),P=we(S);{var ce=ae=>{const re=T(()=>I*e(h)/100),ze=T(()=>(v-(e(p).length-1)/2)*8),Se=T(()=>`${e(b)}:${e(fe).key}`);var q=Ha();let Ee;w(q,"width",E);var Be=c(q),Ge=c(Be);i(Be),i(q),O((xe,Te)=>{Ee=_e(q,0,"accuracy-bar",null,Ee,{selected:e(r)?.model===a.row.model&&e(r).key===e(Se)}),w(q,"x",e(D)-E/2+e(ze)),w(q,"y",m.top+I-e(re)),w(q,"height",e(re)),w(q,"fill",e(fe).color),w(q,"aria-pressed",e(r)?.model===a.row.model&&e(r).key===e(Se)),w(q,"aria-label",xe),F(Ge,`${e(b)??""} · ${e(fe).label??""}: ${Te??""}%`)},[()=>`${e(b)}, ${e(fe).label}: ${e(h).toFixed(2)}%. Select to keep this value visible.`,()=>e(h).toFixed(2)]),ve("click",q,()=>C(e(b),e(fe),e(h))),ve("keydown",q,xe=>{(xe.key==="Enter"||xe.key===" ")&&(xe.preventDefault(),C(e(b),e(fe),e(h)))}),M(ae,q)};he(P,ae=>{e(h)!==void 0&&ae(ce)})}M(ye,S)});var j=_(Y),pe=c(j,!0);i(j),O(()=>{w(j,"x",e(D)),w(j,"y",m.top+I+18),w(j,"transform",`rotate(-48 ${e(D)} ${m.top+I+18})`),F(pe,e(b))}),M(y,G)});var ue=_(te);{var be=y=>{var b=Na();O(()=>{w(b,"x",m.left+A/2),w(b,"y",m.top+I/2)}),M(y,b)};he(ue,y=>{e(p).length===0&&y(be)})}i(ie),i(B),i(Z),O(()=>w(ee,"transform",`translate(16 ${m.top+I/2}) rotate(-90)`)),M(t,Z),qe()}Oe(["click","keydown"]);var Oa=L("<span> </span>"),za=L('<span> <span class="cell-tip"> <strong> </strong></span></span>'),Ba=L("<span> </span> <!>",1),Ga=L('<figure class="matrix-card"><figcaption> </figcaption> <div class="matrix-scroll"><div class="confusion-grid"><span class="corner" aria-hidden="true">gold ↓ · predicted →</span> <!> <!></div></div></figure>'),Ka=L('<section class="confusion-section" aria-labelledby="confusion-title"><div class="chart-heading"><div><p class="eyebrow">Error structure</p> <h3 id="confusion-title">Label confusions</h3> <p>Rows are gold authors; columns are predictions. Colour is normalized within each gold-label row.<!></p></div></div> <div class="matrix-list"></div></section>');function Va(t,a){Ye(a,!0);const r=T(()=>a.columns.filter(m=>a.row.confusions?.[m.key]!==void 0)),l=T(()=>Object.keys(a.row.authorAccuracy??{})),o=m=>m.replace("Dionysius of Halicarnassus","Dionysius H.").replace("Diodorus Siculus","Diodorus").replace("Homeric-","Hom. "),n=m=>a.row.confusions?.[m]??{};var s=Ka(),f=c(s),u=c(f),p=_(c(u),4),g=_(c(p));{var k=m=>{var A=Ct();O(()=>F(A,`Black borders mark ${a.selectedAuthor??""}'s row and column.`)),M(m,A)};he(g,m=>{a.selectedAuthor&&m(k)})}i(p),i(u),i(f);var x=_(f,2);oe(x,21,()=>e(r),le,(m,A)=>{const I=T(()=>n(e(A).key));var d=Ga(),E=c(d),X=c(E,!0);i(E);var C=_(E,2),K=c(C),Z=_(c(K),2);oe(Z,17,()=>e(l),le,(N,R)=>{var H=Oa();let z;var U=c(H,!0);i(H),O(B=>{z=_e(H,1,"column-label",null,z,{"selected-axis":e(R)===a.selectedAuthor}),w(H,"title",e(R)),F(U,B)},[()=>o(e(R))]),M(N,H)});var J=_(Z,2);oe(J,17,()=>e(l),le,(N,R)=>{const H=T(()=>Object.values(e(I)[e(R)]??{}).reduce((ee,te)=>ee+te,0));var z=Ba(),U=we(z);let B;var ie=c(U,!0);i(U);var ge=_(U,2);oe(ge,17,()=>e(l),le,(ee,te)=>{const ue=T(()=>e(I)[e(R)]?.[e(te)]??0),be=T(()=>e(H)?100*e(ue)/e(H):0);var y=za();let b;var V=c(y,!0),D=_(V),G=c(D),Y=_(G),j=c(Y);i(Y),i(D),i(y),O((pe,ye)=>{b=_e(y,1,"matrix-cell",null,b,{diagonal:e(R)===e(te),"selected-row":e(R)===a.selectedAuthor,"selected-column":e(te)===a.selectedAuthor}),Le(y,`--intensity: ${e(be)}%`),w(y,"aria-label",pe),F(V,e(ue)||""),F(G,`${e(R)??""} → ${e(te)??""}`),F(j,`${e(ue)??""}/${e(H)??""} · ${ye??""}%`)},[()=>`${e(R)} predicted as ${e(te)}: ${e(ue)} of ${e(H)}, ${e(be).toFixed(1)} percent`,()=>e(be).toFixed(1)]),M(ee,y)}),O(ee=>{B=_e(U,1,"row-label",null,B,{"selected-axis":e(R)===a.selectedAuthor}),w(U,"title",e(R)),F(ie,ee)},[()=>o(e(R))]),M(N,z)}),i(K),i(C),i(d),O(()=>{F(X,e(A).label),Le(K,`--matrix-size: ${e(l).length}`)}),M(m,d)}),i(x),i(s),M(t,s),qe()}var Pa=L('<span class="tooltip" role="tooltip"><strong> </strong> <span> </span></span>'),Ua=L('<span class="tip-wrap" role="presentation"><button class="info-dot" type="button">?</button> <!></span>');function xt(t,a){let r=se(!1),l,o=se(0),n=se(0);function s(){const k=l.getBoundingClientRect();W(o,Math.min(Math.max(k.left+k.width/2,140),window.innerWidth-140),!0),W(n,k.bottom+9),W(r,!0)}var f=Ua(),u=c(f);ia(u,k=>l=k,()=>l);var p=_(u,2);{var g=k=>{var x=Pa(),m=c(x),A=c(m,!0);i(m);var I=_(m,2),d=c(I,!0);i(I),i(x),O(()=>{Le(x,`--tip-x: ${e(o)}px; --tip-y: ${e(n)}px`),F(A,a.title),F(d,a.text)}),M(k,x)};he(p,k=>{e(r)&&k(g)})}i(f),O(()=>{w(u,"aria-label",`About ${a.title}`),w(u,"aria-expanded",e(r))}),Ke("pointerleave",f,()=>W(r,!1)),ve("click",u,k=>{k.stopPropagation(),e(r)?W(r,!1):s()}),Ke("pointerenter",u,s),Ke("focus",u,s),Ke("blur",u,()=>W(r,!1)),M(t,f)}Oe(["click"]);var Ya=L('<button type="button"><span> </span> <!> <span aria-hidden="true"> </span></button>');function Re(t,a){Ye(a,!0);let r=ca(a,"align",3,"right"),l=T(()=>a.activeField===a.field),o=T(()=>e(l)?a.direction==="asc"?"↑":"↓":"↕");var n=Ya();let s;var f=c(n),u=c(f,!0);i(f);var p=_(f,2);{var g=A=>{xt(A,{get title(){return a.label},get text(){return a.info}})};he(p,A=>{a.info&&A(g)})}var k=_(p,2);let x;var m=c(k,!0);i(k),i(n),O(()=>{s=_e(n,1,"sort-button",null,s,{left:r()==="left"}),F(u,a.label),x=_e(k,1,"sort-icon",null,x,{active:e(l)}),F(m,e(o))}),ve("click",n,()=>a.onclick(a.field)),M(t,n),qe()}Oe(["click"]);var qa=L('<div class="controls"><label class="search-field"><span class="sr-only">Search models</span><span aria-hidden="true">⌕</span><input type="search" placeholder="Search models…"/></label> <p class="interaction-hint">Select a row with diagnostics to compare accuracy by author</p></div>'),Wa=L('<th class="task-group"> </th>'),Xa=L('<th class="score-header"><!></th>'),Ja=L('<span class="owner"> </span>'),Qa=L("<td> </td>"),Za=L('<tr><th class="sticky model-column" scope="row"><a class="model-link" target="_blank" rel="noreferrer"><!><strong> </strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column"> </td><td class="classifier-column"> </td><!><td class="status-cell"><span class="status-badge"> </span></td></tr>'),ja=L('<tr><td class="empty"> </td></tr>'),$a=L("<!> <!>",1),er=L('<section class="leaderboard-section"><div class="section-heading"><div><p class="eyebrow">Benchmark results</p><h2> </h2></div> <p class="result-count"> </p></div> <!> <div class="table-scroll"><table><thead><tr class="group-row"><th class="sticky model-column" rowspan="2"><!></th><th class="dimension-column" rowspan="2"><!></th><th class="classifier-column" rowspan="2"><!></th><!><th rowspan="2" class="status-column"><!></th></tr><tr></tr></thead><tbody></tbody></table></div> <p class="table-caption"><!> Scores are held-out test macro-F1 (%).</p> <!></section>');function vt(t,a){Ye(a,!0);const r=T(()=>a.taskGroups.flatMap(v=>v.columns));let l=se(""),o=se("model"),n=se("desc"),s=se(null),f=se(null),u=T(()=>a.rows.filter(v=>`${v.model} ${v.dimensionality} ${v.classifier} ${v.status}`.toLocaleLowerCase().includes(e(l).trim().toLocaleLowerCase()))),p=T(()=>{const v=e(n)==="asc"?1:-1;return[...e(u)].sort((h,S)=>m(h,S,e(o))*v)});const g=v=>`${v.model}\0${v.classifier}`,k=v=>Object.keys(v.authorAccuracy??{}).length>0;let x=T(()=>a.rows.find(v=>g(v)===e(s)));function m(v,h,S){if(S==="model")return v.model.localeCompare(h.model);if(S==="dimensionality")return v.dimensionality.localeCompare(h.dimensionality,void 0,{numeric:!0});if(S==="classifier")return v.classifier.localeCompare(h.classifier);if(S==="status")return v.status.localeCompare(h.status);const P=v.scores[S],ce=h.scores[S];if(P===void 0||ce===void 0){if(P===ce)return 0;const ae=P===void 0?1:-1;return e(n)==="asc"?ae:-ae}return P-ce}function A(v){e(o)===v?W(n,e(n)==="asc"?"desc":"asc",!0):(W(o,v,!0),W(n,v==="model"||v==="dimensionality"||v==="classifier"||v==="status"?"asc":"desc",!0))}function I(v){k(v)&&(W(s,e(s)===g(v)?null:g(v),!0),W(f,null))}var d=er(),E=c(d),X=c(E),C=_(c(X)),K=c(C,!0);i(C),i(X);var Z=_(X,2),J=c(Z,!0);i(Z),i(E);var N=_(E,2);{var R=v=>{var h=qa(),S=c(h),P=_(c(S),2);pa(P),i(S),Je(2),i(h),ka(P,()=>e(l),ce=>W(l,ce)),M(v,h)};he(N,v=>{a.rows.length&&v(R)})}var H=_(N,2),z=c(H),U=c(z),B=c(U),ie=c(B),ge=c(ie);Re(ge,{label:"Representation",field:"model",get activeField(){return e(o)},get direction(){return e(n)},align:"left",info:"Feature representation used for attribution.",onclick:A}),i(ie);var ee=_(ie),te=c(ee);Re(te,{label:"Dimensionality",field:"dimensionality",get activeField(){return e(o)},get direction(){return e(n)},align:"left",info:"Feature-vector dimensionality for the reported configuration.",onclick:A}),i(ee);var ue=_(ee),be=c(ue);Re(be,{label:"Classifier",field:"classifier",get activeField(){return e(o)},get direction(){return e(n)},align:"left",info:"Classifier applied to the representation.",onclick:A}),i(ue);var y=_(ue);oe(y,17,()=>a.taskGroups,le,(v,h)=>{var S=Wa(),P=c(S,!0);i(S),O(()=>{w(S,"colspan",e(h).columns.length),F(P,e(h).label)}),M(v,S)});var b=_(y),V=c(b);Re(V,{label:"Status",field:"status",get activeField(){return e(o)},get direction(){return e(n)},align:"left",info:"Methodological qualification attached to this model configuration.",onclick:A}),i(b),i(B);var D=_(B);oe(D,21,()=>e(r),le,(v,h)=>{var S=Xa(),P=c(S);Re(P,{get label(){return e(h).label},get field(){return e(h).key},get activeField(){return e(o)},get direction(){return e(n)},get info(){return e(h).description},onclick:A}),i(S),M(v,S)}),i(D),i(U);var G=_(U);oe(G,21,()=>e(p),le,(v,h)=>{const S=T(()=>e(h).model.indexOf("/")),P=T(()=>e(S)>=0?e(h).model.slice(0,e(S)):""),ce=T(()=>e(S)>=0?e(h).model.slice(e(S)+1):e(h).model),ae=T(()=>k(e(h)));var re=Za();let ze;var Se=c(re),q=c(Se),Ee=c(q);{var Be=$=>{var ke=Ja(),Ce=c(ke);i(ke),O(()=>F(Ce,`${e(P)??""}/`)),M($,ke)};he(Ee,$=>{e(P)&&$(Be)})}var Ge=_(Ee),xe=c(Ge,!0);i(Ge),Je(),i(q),i(Se);var Te=_(Se),kt=c(Te,!0);i(Te);var We=_(Te),wt=c(We,!0);i(We);var tt=_(We);oe(tt,17,()=>e(r),le,($,ke)=>{const Ce=T(()=>e(h).scores[e(ke).key]);var Fe=Qa();let nt;var At=c(Fe,!0);i(Fe),O(Et=>{nt=_e(Fe,1,"score-cell",null,nt,{missing:e(Ce)===void 0}),Le(Fe,`--score: ${e(Ce)??0}%`),F(At,Et)},[()=>Ta(e(Ce))]),M($,Fe)});var at=_(tt),rt=c(at),St=c(rt,!0);i(rt),i(at),i(re),O(($,ke)=>{w(re,"tabindex",e(ae)?0:void 0),w(re,"aria-expanded",$),w(re,"aria-label",e(ae)?`Show per-author accuracy for ${e(h).model} with ${e(h).classifier}`:void 0),ze=_e(re,1,"",null,ze,ke),w(q,"href",e(h).url),F(xe,e(ce)),F(kt,e(h).dimensionality),F(wt,e(h).classifier),F(St,e(h).status)},[()=>e(ae)?e(s)===g(e(h)):void 0,()=>({selected:e(s)===g(e(h)),"selectable-row":e(ae)})]),ve("keydown",re,$=>{e(ae)&&($.key==="Enter"||$.key===" ")&&($.preventDefault(),I(e(h)))}),ve("click",re,()=>I(e(h))),ve("click",q,$=>$.stopPropagation()),M(v,re)},v=>{var h=ja(),S=c(h),P=c(S,!0);i(S),i(h),O(()=>{w(S,"colspan",e(r).length+4),F(P,a.rows.length?"No models match your search.":"No results have been published for the rebuilt benchmark yet.")}),M(v,h)}),i(G),i(z),i(H);var Y=_(H,2),j=c(Y);xt(j,{title:"Scores",text:"Values are held-out test macro-F1 percentages. Per-author accuracy and confusion matrices will be derived from each model's saved test predictions."}),Je(),i(Y);var pe=_(Y,2);{var ye=v=>{var h=$a(),S=we(h);La(S,{get row(){return e(x)},get columns(){return e(r)},onselectauthor:ce=>W(f,ce,!0)});var P=_(S,2);Va(P,{get row(){return e(x)},get columns(){return e(r)},get selectedAuthor(){return e(f)}}),M(v,h)},fe=T(()=>e(x)&&k(e(x)));he(pe,v=>{e(fe)&&v(ye)})}i(d),O(()=>{w(d,"aria-labelledby",a.headingId),w(C,"id",a.headingId),F(K,a.title),F(J,a.rows.length?`${e(u).length} ${e(u).length===1?"model":"models"}`:"Awaiting results")}),M(t,d),qe()}Oe(["keydown","click"]);var tr=L('<meta name="description" content="Reproducible Ancient Greek authorship-attribution results for the current Sphragis and Sphragis-Metre tasks."/>'),ar=L('<header class="topbar"><a class="brand" href="/" aria-label="Sphragis leaderboard home"><span class="brand-mark">Σ</span> <span>Sphragis</span></a> <nav aria-label="Resources"><a href="https://huggingface.co/datasets/Urdatorn/sphragis" target="_blank" rel="noreferrer">Dataset ↗</a> <button class="theme-toggle" type="button" aria-label="Toggle color theme"> </button></nav></header> <main><!> <!></main>',1);function or(t){let a=se(!1);function r(){W(a,!e(a)),document.documentElement.dataset.theme=e(a)?"dark":"light"}var l=ar();va("1uha8ag",k=>{var x=tr();la(()=>{oa.title="Sphragis benchmark leaderboard"}),M(k,x)});var o=we(l),n=_(c(o),2),s=_(c(n),2),f=c(s,!0);i(s),i(n),i(o);var u=_(o,2),p=c(u);vt(p,{title:"Sphragis",headingId:"sphragis-heading",get rows(){return Aa},get taskGroups(){return wa}});var g=_(p,2);vt(g,{title:"Sphragis-Metre",headingId:"sphragis-metre-heading",get rows(){return Ea},get taskGroups(){return Sa}}),i(u),O(()=>F(f,e(a)?"☀":"☾")),ve("click",s,r),M(t,l)}Oe(["click"]);export{or as component};
_app/immutable/nodes/2.oBKRgEjh.js DELETED
The diff for this file is too large to render. See raw diff
 
_app/version.json CHANGED
@@ -1 +1 @@
1
- {"version":"1787752138106"}
 
1
+ {"version":"1787836655620"}
index.html CHANGED
@@ -4,34 +4,34 @@
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
  <meta name="theme-color" content="#f7f5ef" />
7
- <link href="./_app/immutable/entry/start.wBq0CBz0.js" rel="modulepreload">
8
- <link href="./_app/immutable/chunks/BF_FrA3D.js" rel="modulepreload">
9
- <link href="./_app/immutable/chunks/DMqF9c3U.js" rel="modulepreload">
10
- <link href="./_app/immutable/chunks/D0_0fjwo.js" rel="modulepreload">
11
- <link href="./_app/immutable/entry/app.7UldMKJU.js" rel="modulepreload">
12
- <link href="./_app/immutable/chunks/Bav0O8J1.js" rel="modulepreload">
13
- <link href="./_app/immutable/chunks/BbLVZPWC.js" rel="modulepreload">
14
- <link href="./_app/immutable/chunks/CRjdMj2B.js" rel="modulepreload">
15
- <link href="./_app/immutable/chunks/DJd3U5Dq.js" rel="modulepreload">
16
- <link href="./_app/immutable/nodes/0.DoB0Uq5V.js" rel="modulepreload">
17
- <link href="./_app/immutable/nodes/2.oBKRgEjh.js" rel="modulepreload">
18
- <!--1uha8ag--><meta name="description" content="Reproducible Ancient Greek authorship-attribution benchmark results across four sentence chunk sizes."/><!----><title>Sphragis benchmark leaderboard</title>
19
- <link href="./_app/immutable/assets/0.CTwIt1Xe.css" rel="stylesheet">
20
  </head>
21
  <body data-sveltekit-preload-data="hover">
22
- <div style="display: contents"><!--[--><!--[0--><!--[--><!--[--><header class="topbar"><a class="brand" href="/" aria-label="Sphragis leaderboard home"><span class="brand-mark">Σ</span> <span>Sphragis</span></a> <nav aria-label="Resources"><a href="https://huggingface.co/datasets/Urdatorn/sphragis" target="_blank" rel="noreferrer">Dataset ↗</a> <button class="theme-toggle" type="button" aria-label="Toggle color theme">☾</button></nav></header> <main><section class="leaderboard-section" aria-labelledby="sphragis-heading"><div class="section-heading"><div><p class="eyebrow">Benchmark results</p><h2 id="sphragis-heading">Sphragis: Human-annotated CoNLL-U</h2></div> <p class="result-count">11 models</p></div> <div class="controls"><label class="search-field"><span class="sr-only">Search models</span><span aria-hidden="true">⌕</span><input value="" type="search" placeholder="Search models…"/></label> <p class="interaction-hint">Select a row to expand its details and compare accuracy by author</p></div> <div class="table-scroll"><table><thead><tr class="group-row"><th class="sticky model-column" rowspan="2"><button class="sort-button left" type="button"><span>Representation</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Representation" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="dimension-column" rowspan="2"><button class="sort-button left" type="button"><span>Dimensionality</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Dimensionality" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="classifier-column" rowspan="2"><button class="sort-button left" type="button"><span>Classifier</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Classifier" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="task-group" colspan="4">Sentences</th><th rowspan="2" class="status-column"><button class="sort-button left" type="button"><span>Status</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Status" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th></tr><tr><!--[--><th class="score-header"><button class="sort-button" type="button"><span>1 sentence</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 1 sentence" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon active" aria-hidden="true">↓</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>10 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 10 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>50 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 50 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>100 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 100 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><!--]--></tr></thead><tbody><!--[--><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for GreBerta (fine-tuned) with End-to-end softmax classifier"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>GreBerta (fine-tuned)</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">125,991,185 trainable parameters</td><td class="classifier-column">End-to-end softmax classifier</td><!--[--><td class="score-cell" style="--score: 85.16662012054707%">85.17</td><td class="score-cell" style="--score: 99.33317135437139%">99.33</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Best sentence-1 checkpoint selected by validation macro-F1; larger tasks average constituent logits; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for GreBerta + Char n-gram with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>GreBerta + Char n-gram</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">157,617 / 34,729 / 4,728 / 4,728</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 80.72533308%">80.73</td><td class="score-cell" style="--score: 98.49736239%">98.50</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Direct concatenation ablation; selected n=4/3/2/2 for 1/10/50/100; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for GreBerta with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://huggingface.co/bowphs/GreBerta" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>GreBerta</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">768</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 79.2974591%">79.30</td><td class="score-cell" style="--score: 98.55090386%">98.55</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Validation-selected; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Char 4-gram with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Char 4-gram</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">156,849</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 78.31423242%">78.31</td><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell missing" style="--score: 0%">—</td><!--]--><td class="status-cell"><span class="status-badge">Validation winner for 1 sentence; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for TF-IDF lemma with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>TF-IDF lemma</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">26,299</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 75.17538929435734%">75.18</td><td class="score-cell" style="--score: 99.7129335142379%">99.71</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">All train lemmas; 5-point Optuna; validation saturates at 1.0 for 50 and 100 sentences; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Syntax with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://huggingface.co/Urdatorn/Syntax2dim-logistic" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Syntax</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">2,161</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 61.36374141130661%">61.36</td><td class="score-cell" style="--score: 94.47148238648299%">94.47</td><td class="score-cell" style="--score: 92.9010749598985%">92.90</td><td class="score-cell" style="--score: 98.17927170868347%">98.18</td><!--]--><td class="status-cell"><span class="status-badge">0.5% inclusion; 5-point Optuna; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Burrows Delta with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Burrows Delta</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">1,000 / 500 / 500 / 100</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 59.74126124772063%">59.74</td><td class="score-cell" style="--score: 94.10173324367133%">94.10</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Validation-selected MFW and PyTorch learning rate; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Burrows Delta with Nearest author centroid"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Burrows Delta</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">100 / 100 / 1,000 / 100</td><td class="classifier-column">Nearest author centroid</td><!--[--><td class="score-cell" style="--score: 11.43745195%">11.44</td><td class="score-cell" style="--score: 61.82149668%">61.82</td><td class="score-cell" style="--score: 95.48334019%">95.48</td><td class="score-cell" style="--score: 97.50445633%">97.50</td><!--]--><td class="status-cell"><span class="status-badge">Validation-selected MFW: 100/100/1000/100 for 1/10/50/100 sentences; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Majority baseline with Constant predictor"><th class="sticky model-column" scope="row"><a class="model-link" href="https://huggingface.co/datasets/Urdatorn/sphragis" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Majority baseline</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">—</td><td class="classifier-column">Constant predictor</td><!--[--><td class="score-cell" style="--score: 1.4973262%">1.50</td><td class="score-cell" style="--score: 1.4973262%">1.50</td><td class="score-cell" style="--score: 1.4973262%">1.50</td><td class="score-cell" style="--score: 1.4973262%">1.50</td><!--]--><td class="status-cell"><span class="status-badge">Trivial training-only baseline</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Char 3-gram with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Char 3-gram</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">33,961</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell" style="--score: 99.62179426%">99.62</td><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell missing" style="--score: 0%">—</td><!--]--><td class="status-cell"><span class="status-badge">Validation winner for 10 sentences; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Char 2-gram with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Char 2-gram</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">3,960</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Validation winner for 50 and 100 sentences; test evaluated once</span></td></tr><!--]--></tbody></table></div> <p class="table-caption"><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Scores" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!----> Scores are test macro-F1 (%). Select a row for per-author accuracy.</p> <!--[-1--><!--]--></section><!----> <section class="leaderboard-section" aria-labelledby="sphragis-metre-heading"><div class="section-heading"><div><p class="eyebrow">Benchmark results</p><h2 id="sphragis-metre-heading">Sphragis-Metre: Human-scanned verse + machine-augmented CoNLL-U</h2></div> <p class="result-count">10 models</p></div> <div class="controls"><label class="search-field"><span class="sr-only">Search models</span><span aria-hidden="true">⌕</span><input value="" type="search" placeholder="Search models…"/></label> <p class="interaction-hint">Select a row to expand its details and compare accuracy by author</p></div> <div class="table-scroll"><table><thead><tr class="group-row"><th class="sticky model-column" rowspan="2"><button class="sort-button left" type="button"><span>Representation</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Representation" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="dimension-column" rowspan="2"><button class="sort-button left" type="button"><span>Dimensionality</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Dimensionality" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="classifier-column" rowspan="2"><button class="sort-button left" type="button"><span>Classifier</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Classifier" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="task-group" colspan="4">Metrical lines</th><th rowspan="2" class="status-column"><button class="sort-button left" type="button"><span>Status</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Status" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th></tr><tr><!--[--><th class="score-header"><button class="sort-button" type="button"><span>1 line</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 1 line" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon active" aria-hidden="true">↓</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>10 lines</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 10 lines" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>50 lines</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 50 lines" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>100 lines</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 100 lines" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><!--]--></tr></thead><tbody><!--[--><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Char 4-gram with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Char 4-gram</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">136,626</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 68.04833340973087%">68.05</td><td class="score-cell" style="--score: 95.758692852077%">95.76</td><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell missing" style="--score: 0%">—</td><!--]--><td class="status-cell"><span class="status-badge">Validation winner for 1 and 10 lines; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for GreBerta with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://huggingface.co/bowphs/GreBerta" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>GreBerta</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">768</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 60.20776732%">60.21</td><td class="score-cell" style="--score: 95.4408459%">95.44</td><td class="score-cell" style="--score: 99.75095123%">99.75</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Text-only ablation; validation-selected; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for TF-IDF lemma with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>TF-IDF lemma</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">51,277</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 53.74970156883729%">53.75</td><td class="score-cell" style="--score: 94.2806113726917%">94.28</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">All train lemmas; 5-point Optuna; validation saturates at 1.0 for 50 and 100 lines; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Syntax + metrical line features with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Syntax + metrical line features</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">8,358 / 8,914 / 3,522 / 3,522</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 46.6633271103721%">46.66</td><td class="score-cell" style="--score: 91.32743155497863%">91.33</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Each task's published syntax inventory concatenated with the 76 metrical line features; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Syntax with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Syntax</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">8,282 / 8,838 / 3,446 / 3,446</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 35.20756584968744%">35.21</td><td class="score-cell" style="--score: 84.56604777365553%">84.57</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Validation-selected inclusion: count ≥2 / all train / 0.1% / 0.1% for 1/10/50/100 lines; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Burrows Delta with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Burrows Delta</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">1,000 / 1,000 / 500 / 100</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 31.97262098817016%">31.97</td><td class="score-cell" style="--score: 84.81954643694266%">84.82</td><td class="score-cell" style="--score: 100%">100.00</td><td class="score-cell" style="--score: 99.49509116409537%">99.50</td><!--]--><td class="status-cell"><span class="status-badge">Validation-selected MFW and PyTorch learning rate; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Metrical line features with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Metrical line features</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">76</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell" style="--score: 23.526496730432843%">23.53</td><td class="score-cell" style="--score: 57.473164925194865%">57.47</td><td class="score-cell" style="--score: 82.29999850137149%">82.30</td><td class="score-cell" style="--score: 93.03703703703704%">93.04</td><!--]--><td class="status-cell"><span class="status-badge">Every metrical feature observed in atomic training lines; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Majority baseline with Constant predictor"><th class="sticky model-column" scope="row"><a class="model-link" href="https://huggingface.co/datasets/Urdatorn/sphragis-metre" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Majority baseline</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">—</td><td class="classifier-column">Constant predictor</td><!--[--><td class="score-cell" style="--score: 2.8%">2.80</td><td class="score-cell" style="--score: 2.8%">2.80</td><td class="score-cell" style="--score: 2.8%">2.80</td><td class="score-cell" style="--score: 2.8%">2.80</td><!--]--><td class="status-cell"><span class="status-badge">Trivial training-only baseline</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Burrows Delta with Nearest author centroid"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Burrows Delta</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">100</td><td class="classifier-column">Nearest author centroid</td><!--[--><td class="score-cell" style="--score: 0.19235164548123704%">0.19</td><td class="score-cell" style="--score: 6.735397657650662%">6.74</td><td class="score-cell" style="--score: 82.84205185200338%">82.84</td><td class="score-cell" style="--score: 97.03703703703704%">97.04</td><!--]--><td class="status-cell"><span class="status-badge">Validation-selected MFW: 100 for all line counts; test evaluated once</span></td></tr><tr class="selectable-row" tabindex="0" aria-expanded="false" aria-label="Show per-author accuracy for Char 2-gram with Logistic regression"><th class="sticky model-column" scope="row"><a class="model-link" href="https://github.com/Urdatorn/sphragis_models" target="_blank" rel="noreferrer"><!--[-1--><!--]--><strong>Char 2-gram</strong><span class="external" aria-hidden="true">↗</span></a></th><td class="dimension-column">4,280</td><td class="classifier-column">Logistic regression</td><!--[--><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell missing" style="--score: 0%">—</td><td class="score-cell" style="--score: 94.6787603930461%">94.68</td><td class="score-cell" style="--score: 100%">100.00</td><!--]--><td class="status-cell"><span class="status-badge">Parsimonious validation winner for 50 and 100 lines; test evaluated once</span></td></tr><!--]--></tbody></table></div> <p class="table-caption"><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Scores" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!----> Scores are test macro-F1 (%). Select a row for per-author accuracy.</p> <!--[-1--><!--]--></section><!----></main><!--]--><!----><!--]--><!--]--> <!--[-1--><!--]--><!--]-->
23
 
24
  <script>
25
  {
26
- __sveltekit_1pru93l = {
27
  base: new URL(".", location).pathname.slice(0, -1)
28
  };
29
 
30
  const element = document.currentScript.parentElement;
31
 
32
  Promise.all([
33
- import("./_app/immutable/entry/start.wBq0CBz0.js"),
34
- import("./_app/immutable/entry/app.7UldMKJU.js")
35
  ]).then(([kit, app]) => {
36
  kit.start(app, element, {
37
  node_ids: [0, 2],
 
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
  <meta name="theme-color" content="#f7f5ef" />
7
+ <link href="./_app/immutable/entry/start.2uEN93Rh.js" rel="modulepreload">
8
+ <link href="./_app/immutable/chunks/BPOa35me.js" rel="modulepreload">
9
+ <link href="./_app/immutable/chunks/BbCnN6uz.js" rel="modulepreload">
10
+ <link href="./_app/immutable/chunks/BS2jcRN4.js" rel="modulepreload">
11
+ <link href="./_app/immutable/entry/app.m6uYwNyL.js" rel="modulepreload">
12
+ <link href="./_app/immutable/chunks/DDj9FNNG.js" rel="modulepreload">
13
+ <link href="./_app/immutable/chunks/CZyhMBTx.js" rel="modulepreload">
14
+ <link href="./_app/immutable/chunks/BcBLKmPk.js" rel="modulepreload">
15
+ <link href="./_app/immutable/chunks/DulwI2VJ.js" rel="modulepreload">
16
+ <link href="./_app/immutable/nodes/0.ByqCz_j3.js" rel="modulepreload">
17
+ <link href="./_app/immutable/nodes/2.XoCX03N0.js" rel="modulepreload">
18
+ <!--1uha8ag--><meta name="description" content="Reproducible Ancient Greek authorship-attribution results for the current Sphragis and Sphragis-Metre tasks."/><!----><title>Sphragis benchmark leaderboard</title>
19
+ <link href="./_app/immutable/assets/0.hj8St4wC.css" rel="stylesheet">
20
  </head>
21
  <body data-sveltekit-preload-data="hover">
22
+ <div style="display: contents"><!--[--><!--[0--><!--[--><!--[--><header class="topbar"><a class="brand" href="/" aria-label="Sphragis leaderboard home"><span class="brand-mark">Σ</span> <span>Sphragis</span></a> <nav aria-label="Resources"><a href="https://huggingface.co/datasets/Urdatorn/sphragis" target="_blank" rel="noreferrer">Dataset ↗</a> <button class="theme-toggle" type="button" aria-label="Toggle color theme">☾</button></nav></header> <main><section class="leaderboard-section" aria-labelledby="sphragis-heading"><div class="section-heading"><div><p class="eyebrow">Benchmark results</p><h2 id="sphragis-heading">Sphragis</h2></div> <p class="result-count">Awaiting results</p></div> <!--[-1--><!--]--> <div class="table-scroll"><table><thead><tr class="group-row"><th class="sticky model-column" rowspan="2"><button class="sort-button left" type="button"><span>Representation</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Representation" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon active" aria-hidden="true">↓</span></button><!----></th><th class="dimension-column" rowspan="2"><button class="sort-button left" type="button"><span>Dimensionality</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Dimensionality" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="classifier-column" rowspan="2"><button class="sort-button left" type="button"><span>Classifier</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Classifier" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><!--[--><th class="task-group" colspan="4">Sentence tasks</th><th class="task-group" colspan="4">Source-held-out tasks</th><!--]--><th rowspan="2" class="status-column"><button class="sort-button left" type="button"><span>Status</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Status" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th></tr><tr><!--[--><th class="score-header"><button class="sort-button" type="button"><span>1 sentence</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 1 sentence" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>5 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 5 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>10 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 10 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>50 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 50 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>1 sentence</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 1 sentence" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>5 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 5 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>10 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 10 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>50 sentences</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 50 sentences" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><!--]--></tr></thead><tbody><!--[!--><tr><td class="empty" colspan="12">No results have been published for the rebuilt benchmark yet.</td></tr><!--]--></tbody></table></div> <p class="table-caption"><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Scores" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!----> Scores are held-out test macro-F1 (%).</p> <!--[-1--><!--]--></section><!----> <section class="leaderboard-section" aria-labelledby="sphragis-metre-heading"><div class="section-heading"><div><p class="eyebrow">Benchmark results</p><h2 id="sphragis-metre-heading">Sphragis-Metre</h2></div> <p class="result-count">Awaiting results</p></div> <!--[-1--><!--]--> <div class="table-scroll"><table><thead><tr class="group-row"><th class="sticky model-column" rowspan="2"><button class="sort-button left" type="button"><span>Representation</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Representation" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon active" aria-hidden="true">↓</span></button><!----></th><th class="dimension-column" rowspan="2"><button class="sort-button left" type="button"><span>Dimensionality</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Dimensionality" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="classifier-column" rowspan="2"><button class="sort-button left" type="button"><span>Classifier</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Classifier" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><!--[--><th class="task-group" colspan="4">Verse tasks</th><!--]--><th rowspan="2" class="status-column"><button class="sort-button left" type="button"><span>Status</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Status" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th></tr><tr><!--[--><th class="score-header"><button class="sort-button" type="button"><span>1 line</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 1 line" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>5 lines</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 5 lines" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>10 lines</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 10 lines" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><th class="score-header"><button class="sort-button" type="button"><span>50 lines</span> <!--[0--><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About 50 lines" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!--]--> <span class="sort-icon" aria-hidden="true">↕</span></button><!----></th><!--]--></tr></thead><tbody><!--[!--><tr><td class="empty" colspan="8">No results have been published for the rebuilt benchmark yet.</td></tr><!--]--></tbody></table></div> <p class="table-caption"><span class="tip-wrap" role="presentation"><button class="info-dot" type="button" aria-label="About Scores" aria-expanded="false">?</button> <!--[-1--><!--]--></span><!----> Scores are held-out test macro-F1 (%).</p> <!--[-1--><!--]--></section><!----></main><!--]--><!----><!--]--><!--]--> <!--[-1--><!--]--><!--]-->
23
 
24
  <script>
25
  {
26
+ __sveltekit_47wdub = {
27
  base: new URL(".", location).pathname.slice(0, -1)
28
  };
29
 
30
  const element = document.currentScript.parentElement;
31
 
32
  Promise.all([
33
+ import("./_app/immutable/entry/start.2uEN93Rh.js"),
34
+ import("./_app/immutable/entry/app.m6uYwNyL.js")
35
  ]).then(([kit, app]) => {
36
  kit.start(app, element, {
37
  node_ids: [0, 2],
src/lib/burrowsLogregDiagnostics.ts DELETED
@@ -1,11 +0,0 @@
1
- import type { ConfusionSet } from './confusions';
2
- import type { ResultRow } from './data';
3
-
4
- export const burrowsLogregConfusions: ConfusionSet = {"sentence1":{"Aeschylus":{"Aeschylus":155,"Aristophanes":15,"Athenaeus":6,"Demosthenes":2,"Diodorus Siculus":2,"Herodotus":6,"Homeric-Iliad":21,"Homeric-Odyssey":11,"Josephus":1,"Plato":1,"Polybius":2,"Procopius":2,"Sophocles":68,"Thucydides":1,"Xenophon":7},"Aristophanes":{"Aeschylus":9,"Aristophanes":40,"Athenaeus":3,"Demosthenes":5,"Herodotus":2,"Homeric-Iliad":7,"Homeric-Odyssey":4,"Plato":1,"Plutarch":1,"Procopius":1,"Sophocles":22,"Xenophon":5},"Athenaeus":{"Aeschylus":6,"Aristophanes":9,"Athenaeus":89,"Demosthenes":8,"Diodorus Siculus":4,"Herodotus":12,"Homeric-Iliad":4,"Homeric-Odyssey":2,"Josephus":4,"Plato":1,"Plutarch":10,"Polybius":13,"Procopius":1,"Sophocles":9,"Thucydides":1,"Xenophon":27},"Demosthenes":{"Aeschylus":1,"Aristophanes":10,"Athenaeus":2,"Demosthenes":181,"Diodorus Siculus":1,"Dionysius of Halicarnassus":3,"Herodotus":11,"Homeric-Iliad":2,"Homeric-Odyssey":1,"Josephus":2,"Plato":7,"Plutarch":5,"Polybius":23,"Sophocles":8,"Thucydides":2,"Xenophon":41},"Diodorus Siculus":{"Athenaeus":1,"Demosthenes":1,"Diodorus Siculus":67,"Dionysius of Halicarnassus":1,"Herodotus":5,"Plutarch":3,"Polybius":11,"Procopius":2,"Thucydides":2,"Xenophon":7},"Dionysius of Halicarnassus":{"Athenaeus":2,"Demosthenes":2,"Dionysius of Halicarnassus":52,"Herodotus":9,"Josephus":3,"Plato":2,"Plutarch":1,"Polybius":17,"Xenophon":12},"Herodotus":{"Aeschylus":4,"Aristophanes":2,"Athenaeus":5,"Demosthenes":6,"Diodorus Siculus":4,"Dionysius of Halicarnassus":2,"Herodotus":609,"Homeric-Iliad":10,"Homeric-Odyssey":3,"Josephus":3,"Plato":2,"Plutarch":4,"Polybius":5,"Procopius":7,"Sophocles":11,"Thucydides":3,"Xenophon":20},"Homeric-Iliad":{"Aeschylus":16,"Aristophanes":6,"Athenaeus":4,"Demosthenes":2,"Herodotus":4,"Homeric-Iliad":528,"Homeric-Odyssey":107,"Plato":1,"Plutarch":2,"Procopius":2,"Sophocles":19,"Thucydides":2,"Xenophon":7},"Homeric-Odyssey":{"Aeschylus":19,"Aristophanes":3,"Athenaeus":9,"Herodotus":3,"Homeric-Iliad":142,"Homeric-Odyssey":406,"Plutarch":1,"Sophocles":14,"Thucydides":1,"Xenophon":2},"Josephus":{"Athenaeus":10,"Demosthenes":3,"Diodorus Siculus":2,"Dionysius of Halicarnassus":3,"Herodotus":5,"Josephus":45,"Plato":1,"Plutarch":6,"Polybius":16,"Xenophon":9},"Plato":{"Aristophanes":4,"Athenaeus":2,"Demosthenes":17,"Dionysius of Halicarnassus":2,"Herodotus":5,"Homeric-Odyssey":1,"Plato":36,"Plutarch":1,"Polybius":1,"Sophocles":6,"Xenophon":25},"Plutarch":{"Athenaeus":6,"Demosthenes":7,"Diodorus Siculus":2,"Dionysius of Halicarnassus":2,"Herodotus":6,"Homeric-Iliad":1,"Josephus":8,"Plato":2,"Plutarch":40,"Polybius":7,"Sophocles":2,"Thucydides":1,"Xenophon":16},"Polybius":{"Athenaeus":4,"Demosthenes":10,"Diodorus Siculus":5,"Herodotus":4,"Josephus":1,"Plato":1,"Plutarch":4,"Polybius":258,"Xenophon":13},"Procopius":{"Aeschylus":1,"Athenaeus":3,"Demosthenes":2,"Diodorus Siculus":4,"Herodotus":8,"Homeric-Iliad":2,"Polybius":1,"Procopius":68,"Xenophon":11},"Sophocles":{"Aeschylus":44,"Aristophanes":21,"Athenaeus":9,"Demosthenes":1,"Diodorus Siculus":1,"Herodotus":5,"Homeric-Iliad":20,"Homeric-Odyssey":11,"Plato":3,"Plutarch":1,"Polybius":1,"Procopius":2,"Sophocles":173,"Thucydides":2,"Xenophon":6},"Thucydides":{"Aeschylus":1,"Athenaeus":3,"Demosthenes":6,"Diodorus Siculus":4,"Dionysius of Halicarnassus":1,"Herodotus":13,"Homeric-Odyssey":1,"Josephus":3,"Plato":2,"Plutarch":2,"Polybius":10,"Thucydides":39,"Xenophon":15},"Xenophon":{"Aeschylus":4,"Aristophanes":10,"Athenaeus":13,"Demosthenes":30,"Diodorus Siculus":3,"Dionysius of Halicarnassus":3,"Herodotus":26,"Homeric-Iliad":10,"Homeric-Odyssey":3,"Josephus":5,"Plato":9,"Plutarch":7,"Polybius":22,"Procopius":3,"Sophocles":10,"Thucydides":5,"Xenophon":437}},"sentence10":{"Aeschylus":{"Aeschylus":28,"Sophocles":2},"Aristophanes":{"Aristophanes":8,"Athenaeus":1,"Xenophon":1},"Athenaeus":{"Athenaeus":18,"Plutarch":1,"Sophocles":1},"Demosthenes":{"Demosthenes":29,"Xenophon":1},"Diodorus Siculus":{"Diodorus Siculus":10},"Dionysius of Halicarnassus":{"Dionysius of Halicarnassus":10},"Herodotus":{"Herodotus":68,"Polybius":1,"Procopius":1},"Homeric-Iliad":{"Homeric-Iliad":66,"Homeric-Odyssey":4},"Homeric-Odyssey":{"Homeric-Iliad":4,"Homeric-Odyssey":56},"Josephus":{"Josephus":9,"Polybius":1},"Plato":{"Plato":9,"Xenophon":1},"Plutarch":{"Plutarch":10},"Polybius":{"Josephus":1,"Polybius":29},"Procopius":{"Procopius":10},"Sophocles":{"Aeschylus":2,"Sophocles":28},"Thucydides":{"Thucydides":10},"Xenophon":{"Demosthenes":1,"Dionysius of Halicarnassus":1,"Plutarch":1,"Thucydides":1,"Xenophon":56}},"sentence50":{"Aeschylus":{"Aeschylus":6},"Aristophanes":{"Aristophanes":2},"Athenaeus":{"Athenaeus":4},"Demosthenes":{"Demosthenes":6},"Diodorus Siculus":{"Diodorus Siculus":2},"Dionysius of Halicarnassus":{"Dionysius of Halicarnassus":2},"Herodotus":{"Herodotus":14},"Homeric-Iliad":{"Homeric-Iliad":14},"Homeric-Odyssey":{"Homeric-Odyssey":12},"Josephus":{"Josephus":2},"Plato":{"Plato":2},"Plutarch":{"Plutarch":2},"Polybius":{"Polybius":6},"Procopius":{"Procopius":2},"Sophocles":{"Sophocles":6},"Thucydides":{"Thucydides":2},"Xenophon":{"Xenophon":12}},"sentence100":{"Aeschylus":{"Aeschylus":3},"Aristophanes":{"Aristophanes":1},"Athenaeus":{"Athenaeus":2},"Demosthenes":{"Demosthenes":3},"Diodorus Siculus":{"Diodorus Siculus":1},"Dionysius of Halicarnassus":{"Dionysius of Halicarnassus":1},"Herodotus":{"Herodotus":7},"Homeric-Iliad":{"Homeric-Iliad":7},"Homeric-Odyssey":{"Homeric-Odyssey":6},"Josephus":{"Josephus":1},"Plato":{"Plato":1},"Plutarch":{"Plutarch":1},"Polybius":{"Polybius":3},"Procopius":{"Procopius":1},"Sophocles":{"Sophocles":3},"Thucydides":{"Thucydides":1},"Xenophon":{"Xenophon":6}}};
5
-
6
- export const burrowsLogregAuthorAccuracy: ResultRow['authorAccuracy'] = {"Aeschylus":{"sentence1":51.666666666666664,"sentence10":93.33333333333333,"sentence50":100.0,"sentence100":100.0},"Aristophanes":{"sentence1":40.0,"sentence10":80.0,"sentence50":100.0,"sentence100":100.0},"Athenaeus":{"sentence1":44.5,"sentence10":90.0,"sentence50":100.0,"sentence100":100.0},"Demosthenes":{"sentence1":60.333333333333336,"sentence10":96.66666666666667,"sentence50":100.0,"sentence100":100.0},"Diodorus Siculus":{"sentence1":67.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Dionysius of Halicarnassus":{"sentence1":52.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Herodotus":{"sentence1":87.0,"sentence10":97.14285714285714,"sentence50":100.0,"sentence100":100.0},"Homeric-Iliad":{"sentence1":75.42857142857143,"sentence10":94.28571428571429,"sentence50":100.0,"sentence100":100.0},"Homeric-Odyssey":{"sentence1":67.66666666666667,"sentence10":93.33333333333333,"sentence50":100.0,"sentence100":100.0},"Josephus":{"sentence1":45.0,"sentence10":90.0,"sentence50":100.0,"sentence100":100.0},"Plato":{"sentence1":36.0,"sentence10":90.0,"sentence50":100.0,"sentence100":100.0},"Plutarch":{"sentence1":40.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Polybius":{"sentence1":86.0,"sentence10":96.66666666666667,"sentence50":100.0,"sentence100":100.0},"Procopius":{"sentence1":68.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Sophocles":{"sentence1":57.666666666666664,"sentence10":93.33333333333333,"sentence50":100.0,"sentence100":100.0},"Thucydides":{"sentence1":39.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Xenophon":{"sentence1":72.83333333333333,"sentence10":93.33333333333333,"sentence50":100.0,"sentence100":100.0}};
7
-
8
- export const metreBurrowsLogregConfusions: ConfusionSet = {"sentence1":{"Aeschylus":{"Aeschylus":44,"Apollonius Rhodius":11,"Callimachus":2,"Hesiod":1,"Homeric-Iliad":10,"Homeric-Odyssey":12,"Lycophron":5,"Nicander":5,"Nonnus":66,"Oppian":9,"Pindar":9,"Quintus Smyrnaeus":11,"Theocritus":10,"Theognis":5},"Apollonius Rhodius":{"Aeschylus":12,"Apollonius Rhodius":139,"Aratus":2,"Callimachus":3,"Hesiod":1,"Homeric-Iliad":33,"Homeric-Odyssey":21,"Lycophron":10,"Nicander":1,"Nonnus":116,"Oppian":45,"Pindar":19,"Quintus Smyrnaeus":79,"Theocritus":15,"Theognis":4},"Aratus":{"Aeschylus":2,"Apollonius Rhodius":10,"Aratus":14,"Callimachus":2,"Homeric-Iliad":8,"Homeric-Odyssey":5,"Lycophron":1,"Nicander":1,"Nonnus":27,"Oppian":10,"Pindar":6,"Quintus Smyrnaeus":11,"Theocritus":3},"Callimachus":{"Aeschylus":2,"Apollonius Rhodius":9,"Aratus":1,"Callimachus":3,"Homeric-Iliad":3,"Homeric-Odyssey":6,"Lycophron":3,"Nonnus":48,"Oppian":6,"Pindar":4,"Quintus Smyrnaeus":5,"Theocritus":7,"Theognis":3},"Hesiod":{"Aeschylus":1,"Apollonius Rhodius":3,"Hesiod":9,"Homeric-Iliad":23,"Homeric-Odyssey":18,"Lycophron":1,"Nicander":3,"Nonnus":13,"Oppian":7,"Pindar":6,"Quintus Smyrnaeus":11,"Theocritus":1,"Theognis":4},"Homeric-Iliad":{"Aeschylus":3,"Apollonius Rhodius":14,"Aratus":3,"Callimachus":2,"Hesiod":13,"Homeric-Iliad":951,"Homeric-Odyssey":325,"Lycophron":1,"Nicander":3,"Nonnus":69,"Oppian":25,"Pindar":5,"Quintus Smyrnaeus":74,"Theocritus":7,"Theognis":5},"Homeric-Odyssey":{"Aeschylus":9,"Apollonius Rhodius":30,"Callimachus":1,"Hesiod":11,"Homeric-Iliad":303,"Homeric-Odyssey":718,"Nicander":2,"Nonnus":47,"Oppian":15,"Pindar":5,"Quintus Smyrnaeus":48,"Theocritus":5,"Theognis":6},"Lycophron":{"Aeschylus":4,"Apollonius Rhodius":7,"Callimachus":2,"Hesiod":1,"Homeric-Iliad":1,"Homeric-Odyssey":2,"Lycophron":7,"Nicander":1,"Nonnus":55,"Oppian":2,"Pindar":7,"Quintus Smyrnaeus":3,"Theocritus":7,"Theognis":1},"Nicander":{"Apollonius Rhodius":8,"Hesiod":1,"Homeric-Iliad":4,"Homeric-Odyssey":2,"Lycophron":1,"Nicander":10,"Nonnus":43,"Oppian":17,"Pindar":3,"Quintus Smyrnaeus":11},"Nonnus":{"Aeschylus":10,"Apollonius Rhodius":39,"Aratus":1,"Hesiod":2,"Homeric-Iliad":35,"Homeric-Odyssey":10,"Lycophron":2,"Nicander":2,"Nonnus":1873,"Oppian":41,"Pindar":20,"Quintus Smyrnaeus":52,"Theocritus":11,"Theognis":2},"Oppian":{"Aeschylus":2,"Apollonius Rhodius":38,"Aratus":7,"Callimachus":1,"Hesiod":1,"Homeric-Iliad":30,"Homeric-Odyssey":7,"Lycophron":10,"Nicander":4,"Nonnus":172,"Oppian":144,"Pindar":13,"Quintus Smyrnaeus":61,"Theocritus":4,"Theognis":6},"Pindar":{"Aeschylus":16,"Apollonius Rhodius":30,"Aratus":3,"Callimachus":2,"Homeric-Iliad":17,"Homeric-Odyssey":6,"Lycophron":1,"Nicander":5,"Nonnus":116,"Oppian":18,"Pindar":58,"Quintus Smyrnaeus":18,"Theocritus":9,"Theognis":1},"Quintus Smyrnaeus":{"Aeschylus":4,"Apollonius Rhodius":50,"Aratus":2,"Hesiod":1,"Homeric-Iliad":99,"Homeric-Odyssey":24,"Lycophron":4,"Nicander":5,"Nonnus":118,"Oppian":35,"Pindar":8,"Quintus Smyrnaeus":439,"Theocritus":6,"Theognis":5},"Theocritus":{"Aeschylus":2,"Apollonius Rhodius":17,"Aratus":2,"Callimachus":3,"Hesiod":1,"Homeric-Iliad":21,"Homeric-Odyssey":8,"Nicander":2,"Nonnus":57,"Oppian":14,"Pindar":14,"Quintus Smyrnaeus":21,"Theocritus":37,"Theognis":1},"Theognis":{"Aeschylus":4,"Apollonius Rhodius":9,"Callimachus":2,"Hesiod":1,"Homeric-Iliad":10,"Homeric-Odyssey":7,"Nicander":1,"Nonnus":20,"Oppian":5,"Pindar":6,"Quintus Smyrnaeus":6,"Theocritus":5,"Theognis":24}},"sentence10":{"Aeschylus":{"Aeschylus":18,"Pindar":1,"Theognis":1},"Apollonius Rhodius":{"Apollonius Rhodius":50},"Aratus":{"Aratus":10},"Callimachus":{"Callimachus":8,"Theocritus":2},"Hesiod":{"Hesiod":6,"Homeric-Iliad":2,"Homeric-Odyssey":1,"Theognis":1},"Homeric-Iliad":{"Homeric-Iliad":134,"Homeric-Odyssey":13,"Pindar":1,"Quintus Smyrnaeus":2},"Homeric-Odyssey":{"Apollonius Rhodius":1,"Homeric-Iliad":11,"Homeric-Odyssey":107,"Theognis":1},"Lycophron":{"Aeschylus":1,"Lycophron":9},"Nicander":{"Apollonius Rhodius":2,"Lycophron":1,"Nicander":5,"Oppian":2},"Nonnus":{"Apollonius Rhodius":2,"Nonnus":208},"Oppian":{"Callimachus":1,"Nicander":2,"Nonnus":1,"Oppian":44,"Quintus Smyrnaeus":1,"Theocritus":1},"Pindar":{"Aeschylus":1,"Apollonius Rhodius":1,"Pindar":27,"Theocritus":1},"Quintus Smyrnaeus":{"Homeric-Iliad":1,"Oppian":2,"Quintus Smyrnaeus":76,"Theocritus":1},"Theocritus":{"Apollonius Rhodius":1,"Aratus":1,"Callimachus":1,"Hesiod":1,"Homeric-Odyssey":1,"Nonnus":1,"Pindar":1,"Theocritus":13},"Theognis":{"Pindar":1,"Theocritus":1,"Theognis":8}},"sentence50":{"Aeschylus":{"Aeschylus":4},"Apollonius Rhodius":{"Apollonius Rhodius":10},"Aratus":{"Aratus":2},"Callimachus":{"Callimachus":2},"Hesiod":{"Hesiod":2},"Homeric-Iliad":{"Homeric-Iliad":30},"Homeric-Odyssey":{"Homeric-Odyssey":24},"Lycophron":{"Lycophron":2},"Nicander":{"Nicander":2},"Nonnus":{"Nonnus":42},"Oppian":{"Oppian":10},"Pindar":{"Pindar":6},"Quintus Smyrnaeus":{"Quintus Smyrnaeus":16},"Theocritus":{"Theocritus":4},"Theognis":{"Theognis":2}},"sentence100":{"Aeschylus":{"Aeschylus":2},"Apollonius Rhodius":{"Apollonius Rhodius":5},"Aratus":{"Aratus":1},"Callimachus":{"Callimachus":1},"Hesiod":{"Hesiod":1},"Homeric-Iliad":{"Homeric-Iliad":15},"Homeric-Odyssey":{"Homeric-Iliad":1,"Homeric-Odyssey":11},"Lycophron":{"Lycophron":1},"Nicander":{"Nicander":1},"Nonnus":{"Nonnus":21},"Oppian":{"Oppian":5},"Pindar":{"Pindar":3},"Quintus Smyrnaeus":{"Quintus Smyrnaeus":8},"Theocritus":{"Theocritus":2},"Theognis":{"Theognis":1}}};
9
-
10
- export const metreBurrowsLogregAuthorAccuracy: ResultRow['authorAccuracy'] = {"Aeschylus":{"sentence1":22.0,"sentence10":90.0,"sentence50":100.0,"sentence100":100.0},"Apollonius Rhodius":{"sentence1":27.8,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Aratus":{"sentence1":14.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Callimachus":{"sentence1":3.0,"sentence10":80.0,"sentence50":100.0,"sentence100":100.0},"Hesiod":{"sentence1":9.0,"sentence10":60.0,"sentence50":100.0,"sentence100":100.0},"Homeric-Iliad":{"sentence1":63.4,"sentence10":89.33333333333333,"sentence50":100.0,"sentence100":100.0},"Homeric-Odyssey":{"sentence1":59.833333333333336,"sentence10":89.16666666666667,"sentence50":100.0,"sentence100":91.66666666666667},"Lycophron":{"sentence1":7.0,"sentence10":90.0,"sentence50":100.0,"sentence100":100.0},"Nicander":{"sentence1":10.0,"sentence10":50.0,"sentence50":100.0,"sentence100":100.0},"Nonnus":{"sentence1":89.19047619047619,"sentence10":99.04761904761905,"sentence50":100.0,"sentence100":100.0},"Oppian":{"sentence1":28.8,"sentence10":88.0,"sentence50":100.0,"sentence100":100.0},"Pindar":{"sentence1":19.333333333333332,"sentence10":90.0,"sentence50":100.0,"sentence100":100.0},"Quintus Smyrnaeus":{"sentence1":54.875,"sentence10":95.0,"sentence50":100.0,"sentence100":100.0},"Theocritus":{"sentence1":18.5,"sentence10":65.0,"sentence50":100.0,"sentence100":100.0},"Theognis":{"sentence1":24.0,"sentence10":80.0,"sentence50":100.0,"sentence100":100.0}};
11
-
 
 
 
 
 
 
 
 
 
 
 
 
src/lib/components/AuthorAccuracyChart.svelte CHANGED
@@ -13,7 +13,7 @@
13
  });
14
  const hiddenTasks = $derived(overrideRow === rowId && hiddenOverride ? hiddenOverride : defaultHidden);
15
  const visibleColumns = $derived(availableColumns.filter((column) => !hiddenTasks.has(column.key)));
16
- const authors = $derived(Object.keys(row.authorAccuracy));
17
  const width = 1180;
18
  const height = 510;
19
  const margin = { top: 30, right: 24, bottom: 150, left: 58 };
@@ -69,7 +69,7 @@
69
  {#each authors as author, authorIndex}
70
  {@const center = margin.left + authorStep * (authorIndex + 0.5)}
71
  {#each visibleColumns as task, taskIndex}
72
- {@const value = row.authorAccuracy[author][task.key]}
73
  {#if value !== undefined}
74
  {@const barHeight = chartHeight * value / 100}
75
  {@const offset = (taskIndex - (visibleColumns.length - 1) / 2) * 8}
 
13
  });
14
  const hiddenTasks = $derived(overrideRow === rowId && hiddenOverride ? hiddenOverride : defaultHidden);
15
  const visibleColumns = $derived(availableColumns.filter((column) => !hiddenTasks.has(column.key)));
16
+ const authors = $derived(Object.keys(row.authorAccuracy ?? {}));
17
  const width = 1180;
18
  const height = 510;
19
  const margin = { top: 30, right: 24, bottom: 150, left: 58 };
 
69
  {#each authors as author, authorIndex}
70
  {@const center = margin.left + authorStep * (authorIndex + 0.5)}
71
  {#each visibleColumns as task, taskIndex}
72
+ {@const value = row.authorAccuracy?.[author]?.[task.key]}
73
  {#if value !== undefined}
74
  {@const barHeight = chartHeight * value / 100}
75
  {@const offset = (taskIndex - (visibleColumns.length - 1) / 2) * 8}
src/lib/components/ConfusionMatrices.svelte CHANGED
@@ -1,11 +1,10 @@
1
  <script lang="ts">
2
- import type { ResultRow, TaskColumn } from '$lib/data';
3
- import type { SparseConfusion } from '$lib/confusions';
4
  let { row, columns, selectedAuthor }: { row: ResultRow; columns: TaskColumn[]; selectedAuthor: string | null } = $props();
5
- const availableColumns = $derived(columns.filter((column) => row.confusions[column.key] !== undefined));
6
- const labels = $derived(Object.keys(row.authorAccuracy));
7
  const short = (label: string) => label.replace('Dionysius of Halicarnassus', 'Dionysius H.').replace('Diodorus Siculus', 'Diodorus').replace('Homeric-', 'Hom. ');
8
- const confusionFor = (key: TaskColumn['key']): SparseConfusion => row.confusions[key] ?? {};
9
  </script>
10
 
11
  <section class="confusion-section" aria-labelledby="confusion-title">
 
1
  <script lang="ts">
2
+ import type { ResultRow, SparseConfusion, TaskColumn } from '$lib/data';
 
3
  let { row, columns, selectedAuthor }: { row: ResultRow; columns: TaskColumn[]; selectedAuthor: string | null } = $props();
4
+ const availableColumns = $derived(columns.filter((column) => row.confusions?.[column.key] !== undefined));
5
+ const labels = $derived(Object.keys(row.authorAccuracy ?? {}));
6
  const short = (label: string) => label.replace('Dionysius of Halicarnassus', 'Dionysius H.').replace('Diodorus Siculus', 'Diodorus').replace('Homeric-', 'Hom. ');
7
+ const confusionFor = (key: TaskColumn['key']): SparseConfusion => row.confusions?.[key] ?? {};
8
  </script>
9
 
10
  <section class="confusion-section" aria-labelledby="confusion-title">
src/lib/components/LeaderboardTable.svelte CHANGED
@@ -1,14 +1,27 @@
1
  <script lang="ts">
2
- import { displayScore, metreTaskColumns, schemeBaselineNote, schemeOnlyBaselines, sentenceTaskColumns, type ResultRow, type TaskKey } from '$lib/data';
3
  import AuthorAccuracyChart from './AuthorAccuracyChart.svelte';
4
  import ConfusionMatrices from './ConfusionMatrices.svelte';
5
  import InfoTip from './InfoTip.svelte';
6
  import SortHeader from './SortHeader.svelte';
 
7
  type SortDirection = 'asc' | 'desc';
8
- let { title, headingId, rows, unit }: { title: string; headingId: string; rows: ResultRow[]; unit: 'sentence' | 'line' } = $props();
9
- const columns = $derived(unit === 'sentence' ? sentenceTaskColumns : metreTaskColumns);
 
 
 
 
 
 
 
 
 
 
 
 
10
  let query = $state('');
11
- let sortField = $state<string>('sentence1');
12
  let sortDirection = $state<SortDirection>('desc');
13
  let selectedKey = $state<string | null>(null);
14
  let selectedAuthor = $state<string | null>(null);
@@ -18,7 +31,9 @@
18
  return [...filteredRows].sort((a, b) => compare(a, b, sortField) * direction);
19
  });
20
  const rowKey = (row: ResultRow): string => `${row.model}\u0000${row.classifier}`;
 
21
  let selectedRow = $derived(rows.find((row) => rowKey(row) === selectedKey));
 
22
  function compare(a: ResultRow, b: ResultRow, field: string): number {
23
  if (field === 'model') return a.model.localeCompare(b.model);
24
  if (field === 'dimensionality') return a.dimensionality.localeCompare(b.dimensionality, undefined, { numeric: true });
@@ -33,11 +48,17 @@
33
  }
34
  return left - right;
35
  }
 
36
  function sort(field: string): void {
37
  if (sortField === field) sortDirection = sortDirection === 'asc' ? 'desc' : 'asc';
38
- else { sortField = field; sortDirection = field === 'model' || field === 'dimensionality' || field === 'classifier' || field === 'status' ? 'asc' : 'desc'; }
 
 
 
39
  }
 
40
  function select(row: ResultRow): void {
 
41
  selectedKey = selectedKey === rowKey(row) ? null : rowKey(row);
42
  selectedAuthor = null;
43
  }
@@ -46,20 +67,24 @@
46
  <section class="leaderboard-section" aria-labelledby={headingId}>
47
  <div class="section-heading">
48
  <div><p class="eyebrow">Benchmark results</p><h2 id={headingId}>{title}</h2></div>
49
- <p class="result-count">{filteredRows.length} {filteredRows.length === 1 ? 'model' : 'models'}</p>
50
- </div>
51
- <div class="controls">
52
- <label class="search-field"><span class="sr-only">Search models</span><span aria-hidden="true">⌕</span><input bind:value={query} type="search" placeholder="Search models…" /></label>
53
- <p class="interaction-hint">Select a row to expand its details and compare accuracy by author</p>
54
  </div>
 
 
 
 
 
 
 
 
55
  <div class="table-scroll">
56
  <table>
57
  <thead>
58
  <tr class="group-row">
59
  <th class="sticky model-column" rowspan="2"><SortHeader label="Representation" field="model" activeField={sortField} direction={sortDirection} align="left" info="Feature representation used for attribution." onclick={sort} /></th>
60
- <th class="dimension-column" rowspan="2"><SortHeader label="Dimensionality" field="dimensionality" activeField={sortField} direction={sortDirection} align="left" info="Feature-vector dimensions in 1/10/50/100 task order where they differ." onclick={sort} /></th>
61
  <th class="classifier-column" rowspan="2"><SortHeader label="Classifier" field="classifier" activeField={sortField} direction={sortDirection} align="left" info="Classifier applied to the representation." onclick={sort} /></th>
62
- <th class="task-group" colspan={columns.length}>{unit === 'sentence' ? 'Sentences' : 'Metrical lines'}</th>
63
  <th rowspan="2" class="status-column"><SortHeader label="Status" field="status" activeField={sortField} direction={sortDirection} align="left" info="Methodological qualification attached to this model configuration." onclick={sort} /></th>
64
  </tr>
65
  <tr>{#each columns as column}<th class="score-header"><SortHeader label={column.label} field={column.key} activeField={sortField} direction={sortDirection} info={column.description} onclick={sort} /></th>{/each}</tr>
@@ -69,34 +94,24 @@
69
  {@const separator = row.model.indexOf('/')}
70
  {@const owner = separator >= 0 ? row.model.slice(0, separator) : ''}
71
  {@const name = separator >= 0 ? row.model.slice(separator + 1) : row.model}
72
- <tr class:selected={selectedKey === rowKey(row)} class="selectable-row" tabindex="0" aria-expanded={selectedKey === rowKey(row)} aria-label={`Show per-author accuracy for ${row.model} with ${row.classifier}`} onkeydown={(event) => { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); select(row); } }} onclick={() => select(row)}>
 
73
  <th class="sticky model-column" scope="row"><a class="model-link" href={row.url} target="_blank" rel="noreferrer" onclick={(event) => event.stopPropagation()}>{#if owner}<span class="owner">{owner}/</span>{/if}<strong>{name}</strong><span class="external" aria-hidden="true">↗</span></a></th>
74
  <td class="dimension-column">{row.dimensionality}</td>
75
  <td class="classifier-column">{row.classifier}</td>
76
  {#each columns as column}{@const score = row.scores[column.key]}<td class="score-cell" class:missing={score === undefined} style={`--score: ${score ?? 0}%`}>{displayScore(score)}</td>{/each}
77
  <td class="status-cell"><span class="status-badge">{row.status}</span></td>
78
  </tr>
79
- {:else}<tr><td class="empty" colspan={columns.length + 4}>{rows.length ? 'No models match your search.' : 'No results yet.'}</td></tr>{/each}
 
 
80
  </tbody>
81
  </table>
82
  </div>
83
- <p class="table-caption"><InfoTip title="Scores" text="Values are held-out test macro-F1 percentages. Select a model row to inspect accuracy for each author." /> Scores are test macro-F1 (%). Select a row for per-author accuracy.</p>
84
- {#if unit === 'sentence' && schemeOnlyBaselines.length}
85
- <details class="scheme-note">
86
- <summary><InfoTip title="Scheme-only floor" text={schemeBaselineNote} /> Scheme-only floor: {schemeOnlyBaselines.map((baseline) => `${displayScore(baseline.scores.sentence1)} / ${displayScore(baseline.scores.sentence10)}`).join(', ')} on 1 / 10 sentences</summary>
87
- <p>{schemeBaselineNote} These classifiers see annotation markup and no Greek at all, so a model that does not clearly beat them has demonstrated source identification rather than authorship attribution.</p>
88
- <table class="scheme-table">
89
- <thead><tr><th>Probe</th>{#each columns as column}<th>{column.shortLabel}</th>{/each}</tr></thead>
90
- <tbody>
91
- {#each schemeOnlyBaselines as baseline}
92
- <tr><th scope="row">{baseline.probe}</th>{#each columns as column}<td>{displayScore(baseline.scores[column.key])}</td>{/each}</tr>
93
- {/each}
94
- </tbody>
95
- </table>
96
- <p class="scheme-source">Regenerate with <code>scripts/audit_leakage.py</code>; full report in <code>metadata/leakage_report.json</code>. The <code>source_held_out_*</code> configurations evaluate each author on a treebank absent from its training data.</p>
97
- </details>
98
- {/if}
99
- {#if selectedRow}
100
  <AuthorAccuracyChart row={selectedRow} {columns} onselectauthor={(author) => selectedAuthor = author} />
101
  <ConfusionMatrices row={selectedRow} {columns} {selectedAuthor} />
102
  {/if}
 
1
  <script lang="ts">
2
+ import { displayScore, type ResultRow, type TaskGroup, type TaskKey } from '$lib/data';
3
  import AuthorAccuracyChart from './AuthorAccuracyChart.svelte';
4
  import ConfusionMatrices from './ConfusionMatrices.svelte';
5
  import InfoTip from './InfoTip.svelte';
6
  import SortHeader from './SortHeader.svelte';
7
+
8
  type SortDirection = 'asc' | 'desc';
9
+
10
+ let {
11
+ title,
12
+ headingId,
13
+ rows,
14
+ taskGroups
15
+ }: {
16
+ title: string;
17
+ headingId: string;
18
+ rows: ResultRow[];
19
+ taskGroups: TaskGroup[];
20
+ } = $props();
21
+
22
+ const columns = $derived(taskGroups.flatMap((group) => group.columns));
23
  let query = $state('');
24
+ let sortField = $state<string>('model');
25
  let sortDirection = $state<SortDirection>('desc');
26
  let selectedKey = $state<string | null>(null);
27
  let selectedAuthor = $state<string | null>(null);
 
31
  return [...filteredRows].sort((a, b) => compare(a, b, sortField) * direction);
32
  });
33
  const rowKey = (row: ResultRow): string => `${row.model}\u0000${row.classifier}`;
34
+ const hasDiagnostics = (row: ResultRow): boolean => Object.keys(row.authorAccuracy ?? {}).length > 0;
35
  let selectedRow = $derived(rows.find((row) => rowKey(row) === selectedKey));
36
+
37
  function compare(a: ResultRow, b: ResultRow, field: string): number {
38
  if (field === 'model') return a.model.localeCompare(b.model);
39
  if (field === 'dimensionality') return a.dimensionality.localeCompare(b.dimensionality, undefined, { numeric: true });
 
48
  }
49
  return left - right;
50
  }
51
+
52
  function sort(field: string): void {
53
  if (sortField === field) sortDirection = sortDirection === 'asc' ? 'desc' : 'asc';
54
+ else {
55
+ sortField = field;
56
+ sortDirection = field === 'model' || field === 'dimensionality' || field === 'classifier' || field === 'status' ? 'asc' : 'desc';
57
+ }
58
  }
59
+
60
  function select(row: ResultRow): void {
61
+ if (!hasDiagnostics(row)) return;
62
  selectedKey = selectedKey === rowKey(row) ? null : rowKey(row);
63
  selectedAuthor = null;
64
  }
 
67
  <section class="leaderboard-section" aria-labelledby={headingId}>
68
  <div class="section-heading">
69
  <div><p class="eyebrow">Benchmark results</p><h2 id={headingId}>{title}</h2></div>
70
+ <p class="result-count">{rows.length ? `${filteredRows.length} ${filteredRows.length === 1 ? 'model' : 'models'}` : 'Awaiting results'}</p>
 
 
 
 
71
  </div>
72
+
73
+ {#if rows.length}
74
+ <div class="controls">
75
+ <label class="search-field"><span class="sr-only">Search models</span><span aria-hidden="true">⌕</span><input bind:value={query} type="search" placeholder="Search models…" /></label>
76
+ <p class="interaction-hint">Select a row with diagnostics to compare accuracy by author</p>
77
+ </div>
78
+ {/if}
79
+
80
  <div class="table-scroll">
81
  <table>
82
  <thead>
83
  <tr class="group-row">
84
  <th class="sticky model-column" rowspan="2"><SortHeader label="Representation" field="model" activeField={sortField} direction={sortDirection} align="left" info="Feature representation used for attribution." onclick={sort} /></th>
85
+ <th class="dimension-column" rowspan="2"><SortHeader label="Dimensionality" field="dimensionality" activeField={sortField} direction={sortDirection} align="left" info="Feature-vector dimensionality for the reported configuration." onclick={sort} /></th>
86
  <th class="classifier-column" rowspan="2"><SortHeader label="Classifier" field="classifier" activeField={sortField} direction={sortDirection} align="left" info="Classifier applied to the representation." onclick={sort} /></th>
87
+ {#each taskGroups as group}<th class="task-group" colspan={group.columns.length}>{group.label}</th>{/each}
88
  <th rowspan="2" class="status-column"><SortHeader label="Status" field="status" activeField={sortField} direction={sortDirection} align="left" info="Methodological qualification attached to this model configuration." onclick={sort} /></th>
89
  </tr>
90
  <tr>{#each columns as column}<th class="score-header"><SortHeader label={column.label} field={column.key} activeField={sortField} direction={sortDirection} info={column.description} onclick={sort} /></th>{/each}</tr>
 
94
  {@const separator = row.model.indexOf('/')}
95
  {@const owner = separator >= 0 ? row.model.slice(0, separator) : ''}
96
  {@const name = separator >= 0 ? row.model.slice(separator + 1) : row.model}
97
+ {@const expandable = hasDiagnostics(row)}
98
+ <tr class:selected={selectedKey === rowKey(row)} class:selectable-row={expandable} tabindex={expandable ? 0 : undefined} aria-expanded={expandable ? selectedKey === rowKey(row) : undefined} aria-label={expandable ? `Show per-author accuracy for ${row.model} with ${row.classifier}` : undefined} onkeydown={(event) => { if (expandable && (event.key === 'Enter' || event.key === ' ')) { event.preventDefault(); select(row); } }} onclick={() => select(row)}>
99
  <th class="sticky model-column" scope="row"><a class="model-link" href={row.url} target="_blank" rel="noreferrer" onclick={(event) => event.stopPropagation()}>{#if owner}<span class="owner">{owner}/</span>{/if}<strong>{name}</strong><span class="external" aria-hidden="true">↗</span></a></th>
100
  <td class="dimension-column">{row.dimensionality}</td>
101
  <td class="classifier-column">{row.classifier}</td>
102
  {#each columns as column}{@const score = row.scores[column.key]}<td class="score-cell" class:missing={score === undefined} style={`--score: ${score ?? 0}%`}>{displayScore(score)}</td>{/each}
103
  <td class="status-cell"><span class="status-badge">{row.status}</span></td>
104
  </tr>
105
+ {:else}
106
+ <tr><td class="empty" colspan={columns.length + 4}>{rows.length ? 'No models match your search.' : 'No results have been published for the rebuilt benchmark yet.'}</td></tr>
107
+ {/each}
108
  </tbody>
109
  </table>
110
  </div>
111
+
112
+ <p class="table-caption"><InfoTip title="Scores" text="Values are held-out test macro-F1 percentages. Per-author accuracy and confusion matrices will be derived from each model's saved test predictions." /> Scores are held-out test macro-F1 (%).</p>
113
+
114
+ {#if selectedRow && hasDiagnostics(selectedRow)}
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  <AuthorAccuracyChart row={selectedRow} {columns} onselectauthor={(author) => selectedAuthor = author} />
116
  <ConfusionMatrices row={selectedRow} {columns} {selectedAuthor} />
117
  {/if}
src/lib/confusions.ts DELETED
@@ -1,1916 +0,0 @@
1
- import type { TaskKey } from './data';
2
-
3
- export type SparseConfusion = Record<string, Record<string, number>>;
4
- export type ConfusionSet = Partial<Record<TaskKey, SparseConfusion>>;
5
-
6
- export const grebertaConfusions: ConfusionSet = {
7
- sentence1: {
8
- Aeschylus:{Aeschylus:218,Aristophanes:2,Athenaeus:4,'Homeric-Iliad':1,Sophocles:75},
9
- Aristophanes:{Aeschylus:2,Aristophanes:68,Athenaeus:5,Demosthenes:10,Herodotus:3,Sophocles:10,Xenophon:2},
10
- Athenaeus:{Aeschylus:5,Aristophanes:12,Athenaeus:137,Demosthenes:3,'Diodorus Siculus':1,'Dionysius of Halicarnassus':3,Herodotus:1,'Homeric-Odyssey':1,Josephus:1,Plato:2,Plutarch:10,Polybius:5,Procopius:1,Sophocles:3,Xenophon:15},
11
- Demosthenes:{Aristophanes:8,Athenaeus:2,Demosthenes:266,'Dionysius of Halicarnassus':1,Herodotus:1,Josephus:1,Plato:2,Polybius:3,Sophocles:1,Thucydides:1,Xenophon:14},
12
- 'Diodorus Siculus':{Athenaeus:2,Demosthenes:1,'Diodorus Siculus':74,'Dionysius of Halicarnassus':3,Plutarch:3,Polybius:15,Xenophon:2},
13
- 'Dionysius of Halicarnassus':{Aeschylus:1,Athenaeus:6,Demosthenes:1,'Diodorus Siculus':1,'Dionysius of Halicarnassus':72,Herodotus:2,Josephus:4,Plutarch:3,Polybius:5,Sophocles:1,Thucydides:1,Xenophon:3},
14
- Herodotus:{Aristophanes:2,Athenaeus:4,Demosthenes:2,Herodotus:672,'Homeric-Iliad':3,'Homeric-Odyssey':1,Josephus:1,Plutarch:1,Sophocles:1,Thucydides:2,Xenophon:11},
15
- 'Homeric-Iliad':{Aeschylus:4,'Homeric-Iliad':608,'Homeric-Odyssey':86,Plato:1,Sophocles:1},
16
- 'Homeric-Odyssey':{Herodotus:2,'Homeric-Iliad':157,'Homeric-Odyssey':438,Sophocles:1,Xenophon:2},
17
- Josephus:{Athenaeus:5,Demosthenes:2,'Dionysius of Halicarnassus':6,Josephus:80,Plutarch:3,Polybius:1,Xenophon:3},
18
- Plato:{Aeschylus:2,Aristophanes:2,Athenaeus:2,Demosthenes:7,Plato:57,Sophocles:3,Thucydides:1,Xenophon:26},
19
- Plutarch:{Aristophanes:2,Athenaeus:6,Demosthenes:2,'Diodorus Siculus':3,'Dionysius of Halicarnassus':2,'Homeric-Odyssey':1,Josephus:1,Plato:1,Plutarch:74,Polybius:1,Sophocles:2,Xenophon:5},
20
- Polybius:{Athenaeus:2,Demosthenes:4,'Diodorus Siculus':10,'Dionysius of Halicarnassus':1,'Homeric-Iliad':1,Josephus:1,Plutarch:1,Polybius:277,Xenophon:3},
21
- Procopius:{Aristophanes:1,Athenaeus:1,'Diodorus Siculus':1,'Dionysius of Halicarnassus':2,Herodotus:1,Procopius:84,Thucydides:2,Xenophon:8},
22
- Sophocles:{Aeschylus:52,Aristophanes:9,Athenaeus:3,'Diodorus Siculus':1,Herodotus:2,'Homeric-Iliad':2,Plato:4,Sophocles:226,Xenophon:1},
23
- Thucydides:{Aristophanes:1,Athenaeus:1,Demosthenes:3,'Diodorus Siculus':2,'Dionysius of Halicarnassus':4,Plato:1,Polybius:1,Procopius:2,Thucydides:77,Xenophon:8},
24
- Xenophon:{Aeschylus:4,Aristophanes:2,Athenaeus:5,Demosthenes:10,'Diodorus Siculus':2,'Dionysius of Halicarnassus':2,Herodotus:10,Josephus:2,Plato:9,Plutarch:4,Polybius:1,Procopius:1,Thucydides:4,Xenophon:544}
25
- },
26
- sentence10: {
27
- Aeschylus:{Aeschylus:28,Sophocles:2},Aristophanes:{Aristophanes:10},Athenaeus:{Athenaeus:20},Demosthenes:{Demosthenes:30},'Diodorus Siculus':{'Diodorus Siculus':10},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':10},Herodotus:{Herodotus:70},'Homeric-Iliad':{'Homeric-Iliad':67,'Homeric-Odyssey':3},'Homeric-Odyssey':{'Homeric-Iliad':2,'Homeric-Odyssey':58},Josephus:{Josephus:10},Plato:{Demosthenes:1,Plato:9},Plutarch:{Plutarch:10},Polybius:{Polybius:30},Procopius:{Procopius:10},Sophocles:{Aeschylus:1,Sophocles:29},Thucydides:{Thucydides:10},Xenophon:{Xenophon:60}
28
- },
29
- sentence50: {
30
- Aeschylus:{Aeschylus:6},Aristophanes:{Aristophanes:2},Athenaeus:{Athenaeus:4},Demosthenes:{Demosthenes:6},'Diodorus Siculus':{'Diodorus Siculus':2},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':2},Herodotus:{Herodotus:14},'Homeric-Iliad':{'Homeric-Iliad':14},'Homeric-Odyssey':{'Homeric-Odyssey':12},Josephus:{Josephus:2},Plato:{Plato:2},Plutarch:{Plutarch:2},Polybius:{Polybius:6},Procopius:{Procopius:2},Sophocles:{Sophocles:6},Thucydides:{Thucydides:2},Xenophon:{Xenophon:12}
31
- },
32
- sentence100: {
33
- Aeschylus:{Aeschylus:3},Aristophanes:{Aristophanes:1},Athenaeus:{Athenaeus:2},Demosthenes:{Demosthenes:3},'Diodorus Siculus':{'Diodorus Siculus':1},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':1},Herodotus:{Herodotus:7},'Homeric-Iliad':{'Homeric-Iliad':7},'Homeric-Odyssey':{'Homeric-Odyssey':6},Josephus:{Josephus:1},Plato:{Plato:1},Plutarch:{Plutarch:1},Polybius:{Polybius:3},Procopius:{Procopius:1},Sophocles:{Sophocles:3},Thucydides:{Thucydides:1},Xenophon:{Xenophon:6}
34
- }
35
- };
36
-
37
- const sentenceTotals = {Aeschylus:[300,30,6,3],Aristophanes:[100,10,2,1],Athenaeus:[200,20,4,2],Demosthenes:[300,30,6,3],'Diodorus Siculus':[100,10,2,1],'Dionysius of Halicarnassus':[100,10,2,1],Herodotus:[700,70,14,7],'Homeric-Iliad':[700,70,14,7],'Homeric-Odyssey':[600,60,12,6],Josephus:[100,10,2,1],Plato:[100,10,2,1],Plutarch:[100,10,2,1],Polybius:[300,30,6,3],Procopius:[100,10,2,1],Sophocles:[300,30,6,3],Thucydides:[100,10,2,1],Xenophon:[600,60,12,6]};
38
- const metreTotals = {Aeschylus:[200,20,4,2],'Apollonius Rhodius':[500,50,10,5],Aratus:[100,10,2,1],Callimachus:[100,10,2,1],Hesiod:[100,10,2,1],'Homeric-Iliad':[1500,150,30,15],'Homeric-Odyssey':[1200,120,24,12],Lycophron:[100,10,2,1],Nicander:[100,10,2,1],Nonnus:[2100,210,42,21],Oppian:[500,50,10,5],Pindar:[300,30,6,3],'Quintus Smyrnaeus':[800,80,16,8],Theocritus:[200,20,4,2],Theognis:[100,10,2,1]};
39
- function majorityMatrix(totals: Record<string, number[]>, majorityLabel: string, index: number): SparseConfusion {
40
- return Object.fromEntries(Object.entries(totals).map(([author,values]) => [author,{[majorityLabel]:values[index]}]));
41
- }
42
- export const baselineConfusions: ConfusionSet = {
43
- sentence1: majorityMatrix(sentenceTotals, 'Homeric-Iliad', 0),
44
- sentence10: majorityMatrix(sentenceTotals, 'Homeric-Iliad', 1),
45
- sentence50: majorityMatrix(sentenceTotals, 'Homeric-Iliad', 2),
46
- sentence100: majorityMatrix(sentenceTotals, 'Homeric-Iliad', 3)
47
- };
48
- export const metreBaselineConfusions: ConfusionSet = {
49
- sentence1: majorityMatrix(metreTotals, 'Nonnus', 0),
50
- sentence10: majorityMatrix(metreTotals, 'Nonnus', 1),
51
- sentence50: majorityMatrix(metreTotals, 'Nonnus', 2),
52
- sentence100: majorityMatrix(metreTotals, 'Nonnus', 3)
53
- };
54
-
55
- export const burrowsDeltaConfusions: ConfusionSet = {
56
- sentence1: {
57
- Aeschylus:{Aeschylus:228,Aristophanes:2,Athenaeus:1,'Diodorus Siculus':46,'Homeric-Iliad':22,Procopius:1},
58
- Aristophanes:{Aeschylus:69,Aristophanes:3,Athenaeus:2,'Diodorus Siculus':24,'Homeric-Iliad':2},
59
- Athenaeus:{Aeschylus:19,Aristophanes:3,Athenaeus:10,'Diodorus Siculus':100,'Dionysius of Halicarnassus':1,'Homeric-Iliad':3,Josephus:64},
60
- Demosthenes:{Aeschylus:51,Aristophanes:1,Athenaeus:4,Demosthenes:3,'Diodorus Siculus':117,'Dionysius of Halicarnassus':7,'Homeric-Iliad':3,Josephus:105,Polybius:5,Procopius:4},
61
- 'Diodorus Siculus':{'Diodorus Siculus':68,Josephus:32},
62
- 'Dionysius of Halicarnassus':{'Diodorus Siculus':9,'Dionysius of Halicarnassus':5,Josephus:84,Polybius:2},
63
- Herodotus:{Aeschylus:45,Aristophanes:1,Athenaeus:2,'Diodorus Siculus':521,Herodotus:3,'Homeric-Iliad':5,Josephus:118,Plutarch:1,Procopius:4},
64
- 'Homeric-Iliad':{Aeschylus:219,Aristophanes:2,Athenaeus:4,'Diodorus Siculus':173,'Homeric-Iliad':297,Procopius:5},
65
- 'Homeric-Odyssey':{Aeschylus:204,Athenaeus:2,'Diodorus Siculus':120,'Homeric-Iliad':187,'Homeric-Odyssey':83,Josephus:2,Procopius:2},
66
- Josephus:{'Diodorus Siculus':14,Josephus:86},
67
- Plato:{Aeschylus:14,Aristophanes:4,Athenaeus:4,'Diodorus Siculus':10,'Dionysius of Halicarnassus':2,'Homeric-Iliad':4,Josephus:61,Plato:1},
68
- Plutarch:{Aeschylus:3,'Diodorus Siculus':28,'Dionysius of Halicarnassus':1,'Homeric-Iliad':1,Josephus:67},
69
- Polybius:{'Diodorus Siculus':48,Josephus:227,Plutarch:1,Polybius:24},
70
- Procopius:{Aeschylus:12,'Diodorus Siculus':65,Josephus:1,Procopius:22},
71
- Sophocles:{Aeschylus:202,Aristophanes:4,Athenaeus:1,'Diodorus Siculus':73,'Homeric-Iliad':18,Josephus:1,Procopius:1},
72
- Thucydides:{Aeschylus:2,Athenaeus:1,'Diodorus Siculus':41,'Dionysius of Halicarnassus':2,'Homeric-Iliad':1,Josephus:50,Polybius:1,Procopius:2},
73
- Xenophon:{Aeschylus:70,Aristophanes:5,Athenaeus:14,'Diodorus Siculus':239,'Dionysius of Halicarnassus':1,'Homeric-Iliad':21,Josephus:237,Polybius:1,Procopius:9,Sophocles:3}
74
- },
75
- sentence10: {
76
- Aeschylus:{Aeschylus:29,'Homeric-Iliad':1},Aristophanes:{Aeschylus:2,Aristophanes:8},Athenaeus:{Athenaeus:11,'Diodorus Siculus':2,Josephus:6,Plutarch:1},
77
- Demosthenes:{Demosthenes:19,'Diodorus Siculus':2,'Dionysius of Halicarnassus':4,Josephus:1,Plutarch:1,Polybius:2,Procopius:1},'Diodorus Siculus':{'Diodorus Siculus':10},
78
- 'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':9,Josephus:1},Herodotus:{Athenaeus:1,'Diodorus Siculus':24,Herodotus:25,Josephus:12,Plutarch:3,Procopius:5},
79
- 'Homeric-Iliad':{Aeschylus:1,'Homeric-Iliad':68,'Homeric-Odyssey':1},'Homeric-Odyssey':{'Homeric-Iliad':7,'Homeric-Odyssey':53},Josephus:{Josephus:10},
80
- Plato:{Aristophanes:2,Plato:8},Plutarch:{'Diodorus Siculus':1,Josephus:2,Plutarch:7},Polybius:{'Diodorus Siculus':1,Josephus:5,Plutarch:1,Polybius:23},
81
- Procopius:{Procopius:10},Sophocles:{Aeschylus:14,Aristophanes:2,Sophocles:14},Thucydides:{'Diodorus Siculus':3,Josephus:3,Polybius:1,Thucydides:3},
82
- Xenophon:{Aeschylus:1,Aristophanes:2,Athenaeus:7,'Diodorus Siculus':7,'Dionysius of Halicarnassus':2,'Homeric-Iliad':1,'Homeric-Odyssey':1,Josephus:12,Plato:4,Plutarch:6,Polybius:3,Procopius:4,Sophocles:1,Xenophon:9}
83
- },
84
- sentence50: {
85
- Aeschylus:{Aeschylus:6},Aristophanes:{Aristophanes:2},Athenaeus:{Athenaeus:4},Demosthenes:{Demosthenes:6},'Diodorus Siculus':{'Diodorus Siculus':2},
86
- 'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':2},Herodotus:{Athenaeus:2,Herodotus:12},'Homeric-Iliad':{'Homeric-Iliad':14},
87
- 'Homeric-Odyssey':{'Homeric-Odyssey':12},Josephus:{Josephus:2},Plato:{Plato:2},Plutarch:{Plutarch:2},Polybius:{Polybius:6},Procopius:{Procopius:2},
88
- Sophocles:{Sophocles:6},Thucydides:{Thucydides:2},Xenophon:{Aristophanes:1,Thucydides:1,Xenophon:10}
89
- },
90
- sentence100: {
91
- Aeschylus:{Aeschylus:3},Aristophanes:{Aristophanes:1},Athenaeus:{Athenaeus:2},Demosthenes:{Demosthenes:3},'Diodorus Siculus':{'Diodorus Siculus':1},
92
- 'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':1},Herodotus:{Herodotus:7},'Homeric-Iliad':{'Homeric-Iliad':7},
93
- 'Homeric-Odyssey':{'Homeric-Odyssey':6},Josephus:{Josephus:1},Plato:{Plato:1},Plutarch:{Plutarch:1},Polybius:{Polybius:3},Procopius:{Procopius:1},
94
- Sophocles:{Sophocles:3},Thucydides:{Thucydides:1},Xenophon:{Josephus:1,Xenophon:5}
95
- }
96
- };
97
-
98
- export const metreGrebertaConfusions: ConfusionSet = {
99
- sentence1: {
100
- Aeschylus:{Aeschylus:160,'Apollonius Rhodius':1,Callimachus:4,'Homeric-Odyssey':2,Lycophron:9,Nonnus:2,Pindar:18,'Quintus Smyrnaeus':1,Theocritus:2,Theognis:1},
101
- 'Apollonius Rhodius':{'Apollonius Rhodius':249,Aratus:5,Callimachus:1,Hesiod:3,'Homeric-Iliad':19,'Homeric-Odyssey':31,Nicander:4,Nonnus:52,Oppian:29,Pindar:3,'Quintus Smyrnaeus':97,Theocritus:5,Theognis:2},
102
- Aratus:{'Apollonius Rhodius':8,Aratus:48,Callimachus:1,Hesiod:5,'Homeric-Odyssey':3,Lycophron:1,Nicander:2,Nonnus:11,Oppian:14,'Quintus Smyrnaeus':2,Theocritus:4,Theognis:1},
103
- Callimachus:{Aeschylus:2,'Apollonius Rhodius':7,Aratus:1,Callimachus:20,'Homeric-Odyssey':2,Lycophron:1,Nicander:2,Nonnus:36,Oppian:8,Pindar:2,'Quintus Smyrnaeus':4,Theocritus:12,Theognis:3},
104
- Hesiod:{'Apollonius Rhodius':6,Aratus:2,Hesiod:30,'Homeric-Iliad':16,'Homeric-Odyssey':18,Nicander:1,Nonnus:8,Oppian:8,Pindar:1,'Quintus Smyrnaeus':7,Theognis:3},
105
- 'Homeric-Iliad':{'Apollonius Rhodius':21,Aratus:2,Hesiod:14,'Homeric-Iliad':1050,'Homeric-Odyssey':319,Lycophron:1,Nicander:1,Nonnus:27,Oppian:6,Pindar:1,'Quintus Smyrnaeus':54,Theocritus:1,Theognis:3},
106
- 'Homeric-Odyssey':{Aeschylus:1,'Apollonius Rhodius':27,Aratus:1,Callimachus:1,Hesiod:8,'Homeric-Iliad':296,'Homeric-Odyssey':798,Nicander:1,Nonnus:22,Oppian:9,Pindar:2,'Quintus Smyrnaeus':31,Theocritus:2,Theognis:1},
107
- Lycophron:{Aeschylus:13,Callimachus:1,Lycophron:75,Nonnus:7,Pindar:2,Theocritus:1,Theognis:1},
108
- Nicander:{'Apollonius Rhodius':2,Aratus:2,Hesiod:1,'Homeric-Iliad':2,'Homeric-Odyssey':3,Nicander:52,Nonnus:12,Oppian:21,'Quintus Smyrnaeus':2,Theocritus:2,Theognis:1},
109
- Nonnus:{Aeschylus:2,'Apollonius Rhodius':22,Aratus:2,Callimachus:5,Hesiod:2,'Homeric-Iliad':13,'Homeric-Odyssey':8,Lycophron:2,Nicander:6,Nonnus:1929,Oppian:48,Pindar:12,'Quintus Smyrnaeus':33,Theocritus:12,Theognis:4},
110
- Oppian:{Aeschylus:1,'Apollonius Rhodius':34,Aratus:10,Callimachus:1,Hesiod:5,'Homeric-Iliad':9,'Homeric-Odyssey':15,Lycophron:1,Nicander:18,Nonnus:91,Oppian:273,Pindar:2,'Quintus Smyrnaeus':30,Theocritus:6,Theognis:4},
111
- Pindar:{Aeschylus:22,'Apollonius Rhodius':3,Aratus:1,Callimachus:3,Hesiod:1,'Homeric-Iliad':1,'Homeric-Odyssey':1,Lycophron:8,Nonnus:15,Oppian:2,Pindar:212,'Quintus Smyrnaeus':3,Theocritus:20,Theognis:8},
112
- 'Quintus Smyrnaeus':{'Apollonius Rhodius':66,Aratus:1,Hesiod:5,'Homeric-Iliad':88,'Homeric-Odyssey':28,Nicander:2,Nonnus:61,Oppian:23,Pindar:1,'Quintus Smyrnaeus':520,Theocritus:3,Theognis:2},
113
- Theocritus:{'Apollonius Rhodius':9,Aratus:5,Callimachus:4,Hesiod:3,'Homeric-Iliad':11,'Homeric-Odyssey':10,Lycophron:1,Nonnus:25,Oppian:20,Pindar:13,'Quintus Smyrnaeus':2,Theocritus:92,Theognis:5},
114
- Theognis:{'Apollonius Rhodius':5,Aratus:2,Hesiod:3,'Homeric-Iliad':4,'Homeric-Odyssey':2,Nonnus:6,Oppian:7,Pindar:4,'Quintus Smyrnaeus':2,Theocritus:8,Theognis:57}
115
- },
116
- sentence10: {
117
- Aeschylus:{Aeschylus:20},'Apollonius Rhodius':{'Apollonius Rhodius':47,'Quintus Smyrnaeus':3},Aratus:{Aratus:10},Callimachus:{Callimachus:8,Nonnus:1,Theocritus:1},Hesiod:{Hesiod:8,'Homeric-Odyssey':1,Nicander:1},'Homeric-Iliad':{'Homeric-Iliad':138,'Homeric-Odyssey':12},'Homeric-Odyssey':{'Homeric-Iliad':11,'Homeric-Odyssey':109},Lycophron:{Lycophron:10},Nicander:{Nicander:10},Nonnus:{Nonnus:210},Oppian:{'Apollonius Rhodius':1,Oppian:49},Pindar:{Pindar:30},'Quintus Smyrnaeus':{'Quintus Smyrnaeus':80},Theocritus:{'Homeric-Odyssey':1,Oppian:1,Theocritus:18},Theognis:{Theocritus:1,Theognis:9}
118
- },
119
- sentence50: {
120
- Aeschylus:{Aeschylus:4},'Apollonius Rhodius':{'Apollonius Rhodius':10},Aratus:{Aratus:2},Callimachus:{Callimachus:2},Hesiod:{Hesiod:2},'Homeric-Iliad':{'Homeric-Iliad':29,'Homeric-Odyssey':1},'Homeric-Odyssey':{'Homeric-Odyssey':24},Lycophron:{Lycophron:2},Nicander:{Nicander:2},Nonnus:{Nonnus:42},Oppian:{Oppian:10},Pindar:{Pindar:6},'Quintus Smyrnaeus':{'Quintus Smyrnaeus':16},Theocritus:{Theocritus:4},Theognis:{Theognis:2}
121
- },
122
- sentence100: {
123
- Aeschylus:{Aeschylus:2},'Apollonius Rhodius':{'Apollonius Rhodius':5},Aratus:{Aratus:1},Callimachus:{Callimachus:1},Hesiod:{Hesiod:1},'Homeric-Iliad':{'Homeric-Iliad':15},'Homeric-Odyssey':{'Homeric-Odyssey':12},Lycophron:{Lycophron:1},Nicander:{Nicander:1},Nonnus:{Nonnus:21},Oppian:{Oppian:5},Pindar:{Pindar:3},'Quintus Smyrnaeus':{'Quintus Smyrnaeus':8},Theocritus:{Theocritus:2},Theognis:{Theognis:1}
124
- }
125
- };
126
-
127
- export const metreSyntaxConfusions: ConfusionSet = {
128
- "sentence1": {
129
- "Homeric-Iliad": {
130
- "Homeric-Iliad": 1133,
131
- "Nonnus": 30,
132
- "Homeric-Odyssey": 291,
133
- "Pindar": 7,
134
- "Aeschylus": 7,
135
- "Nicander": 2,
136
- "Hesiod": 5,
137
- "Apollonius Rhodius": 6,
138
- "Lycophron": 2,
139
- "Quintus Smyrnaeus": 10,
140
- "Oppian": 4,
141
- "Theocritus": 2,
142
- "Theognis": 1
143
- },
144
- "Homeric-Odyssey": {
145
- "Homeric-Odyssey": 648,
146
- "Nonnus": 33,
147
- "Homeric-Iliad": 460,
148
- "Aeschylus": 5,
149
- "Apollonius Rhodius": 12,
150
- "Pindar": 3,
151
- "Oppian": 13,
152
- "Hesiod": 3,
153
- "Quintus Smyrnaeus": 20,
154
- "Nicander": 2,
155
- "Lycophron": 1
156
- },
157
- "Hesiod": {
158
- "Homeric-Odyssey": 13,
159
- "Pindar": 5,
160
- "Homeric-Iliad": 29,
161
- "Hesiod": 3,
162
- "Nonnus": 12,
163
- "Aeschylus": 1,
164
- "Quintus Smyrnaeus": 20,
165
- "Oppian": 3,
166
- "Apollonius Rhodius": 11,
167
- "Callimachus": 1,
168
- "Lycophron": 1,
169
- "Theocritus": 1
170
- },
171
- "Aeschylus": {
172
- "Homeric-Iliad": 20,
173
- "Nonnus": 40,
174
- "Homeric-Odyssey": 16,
175
- "Aeschylus": 30,
176
- "Nicander": 1,
177
- "Oppian": 12,
178
- "Lycophron": 12,
179
- "Pindar": 27,
180
- "Apollonius Rhodius": 17,
181
- "Hesiod": 2,
182
- "Theocritus": 5,
183
- "Quintus Smyrnaeus": 13,
184
- "Theognis": 4,
185
- "Aratus": 1
186
- },
187
- "Apollonius Rhodius": {
188
- "Quintus Smyrnaeus": 136,
189
- "Oppian": 56,
190
- "Nonnus": 100,
191
- "Nicander": 7,
192
- "Apollonius Rhodius": 125,
193
- "Pindar": 18,
194
- "Theocritus": 13,
195
- "Aeschylus": 5,
196
- "Homeric-Iliad": 20,
197
- "Theognis": 3,
198
- "Aratus": 6,
199
- "Callimachus": 2,
200
- "Hesiod": 4,
201
- "Homeric-Odyssey": 4,
202
- "Lycophron": 1
203
- },
204
- "Aratus": {
205
- "Hesiod": 1,
206
- "Oppian": 17,
207
- "Nonnus": 24,
208
- "Aratus": 14,
209
- "Quintus Smyrnaeus": 19,
210
- "Theocritus": 4,
211
- "Nicander": 4,
212
- "Callimachus": 1,
213
- "Pindar": 3,
214
- "Apollonius Rhodius": 8,
215
- "Homeric-Iliad": 2,
216
- "Theognis": 1,
217
- "Aeschylus": 1,
218
- "Homeric-Odyssey": 1
219
- },
220
- "Callimachus": {
221
- "Nonnus": 37,
222
- "Theognis": 4,
223
- "Pindar": 3,
224
- "Apollonius Rhodius": 15,
225
- "Aeschylus": 3,
226
- "Theocritus": 7,
227
- "Oppian": 14,
228
- "Callimachus": 4,
229
- "Quintus Smyrnaeus": 10,
230
- "Hesiod": 1,
231
- "Homeric-Iliad": 2
232
- },
233
- "Nonnus": {
234
- "Nonnus": 1875,
235
- "Quintus Smyrnaeus": 96,
236
- "Pindar": 14,
237
- "Theognis": 4,
238
- "Theocritus": 11,
239
- "Oppian": 37,
240
- "Homeric-Iliad": 14,
241
- "Lycophron": 9,
242
- "Apollonius Rhodius": 26,
243
- "Nicander": 3,
244
- "Homeric-Odyssey": 2,
245
- "Aratus": 3,
246
- "Aeschylus": 1,
247
- "Callimachus": 4,
248
- "Hesiod": 1
249
- },
250
- "Pindar": {
251
- "Apollonius Rhodius": 24,
252
- "Oppian": 27,
253
- "Nonnus": 92,
254
- "Quintus Smyrnaeus": 19,
255
- "Pindar": 86,
256
- "Aeschylus": 15,
257
- "Callimachus": 3,
258
- "Lycophron": 7,
259
- "Theognis": 6,
260
- "Theocritus": 7,
261
- "Homeric-Iliad": 10,
262
- "Nicander": 3,
263
- "Homeric-Odyssey": 1
264
- },
265
- "Lycophron": {
266
- "Lycophron": 39,
267
- "Quintus Smyrnaeus": 10,
268
- "Nonnus": 31,
269
- "Pindar": 10,
270
- "Oppian": 1,
271
- "Homeric-Iliad": 2,
272
- "Theognis": 1,
273
- "Apollonius Rhodius": 3,
274
- "Theocritus": 1,
275
- "Callimachus": 1,
276
- "Aeschylus": 1
277
- },
278
- "Nicander": {
279
- "Apollonius Rhodius": 9,
280
- "Homeric-Iliad": 2,
281
- "Oppian": 23,
282
- "Theognis": 1,
283
- "Lycophron": 1,
284
- "Nonnus": 32,
285
- "Nicander": 13,
286
- "Quintus Smyrnaeus": 13,
287
- "Homeric-Odyssey": 2,
288
- "Pindar": 2,
289
- "Aratus": 1,
290
- "Callimachus": 1
291
- },
292
- "Oppian": {
293
- "Oppian": 207,
294
- "Nonnus": 134,
295
- "Quintus Smyrnaeus": 74,
296
- "Aratus": 9,
297
- "Lycophron": 3,
298
- "Apollonius Rhodius": 23,
299
- "Theognis": 6,
300
- "Nicander": 8,
301
- "Homeric-Odyssey": 5,
302
- "Homeric-Iliad": 9,
303
- "Pindar": 11,
304
- "Aeschylus": 2,
305
- "Theocritus": 6,
306
- "Hesiod": 2,
307
- "Callimachus": 1
308
- },
309
- "Quintus Smyrnaeus": {
310
- "Quintus Smyrnaeus": 435,
311
- "Pindar": 12,
312
- "Theognis": 3,
313
- "Oppian": 66,
314
- "Nonnus": 155,
315
- "Apollonius Rhodius": 79,
316
- "Nicander": 2,
317
- "Lycophron": 1,
318
- "Homeric-Iliad": 21,
319
- "Theocritus": 8,
320
- "Aratus": 4,
321
- "Callimachus": 3,
322
- "Aeschylus": 3,
323
- "Homeric-Odyssey": 6,
324
- "Hesiod": 2
325
- },
326
- "Theocritus": {
327
- "Nonnus": 50,
328
- "Theocritus": 42,
329
- "Apollonius Rhodius": 22,
330
- "Quintus Smyrnaeus": 27,
331
- "Oppian": 22,
332
- "Theognis": 6,
333
- "Nicander": 4,
334
- "Callimachus": 4,
335
- "Homeric-Iliad": 4,
336
- "Pindar": 10,
337
- "Aeschylus": 3,
338
- "Lycophron": 3,
339
- "Hesiod": 1,
340
- "Homeric-Odyssey": 2
341
- },
342
- "Theognis": {
343
- "Quintus Smyrnaeus": 14,
344
- "Nonnus": 29,
345
- "Theognis": 22,
346
- "Oppian": 10,
347
- "Pindar": 9,
348
- "Callimachus": 1,
349
- "Theocritus": 5,
350
- "Apollonius Rhodius": 1,
351
- "Homeric-Iliad": 1,
352
- "Lycophron": 1,
353
- "Nicander": 3,
354
- "Homeric-Odyssey": 2,
355
- "Aeschylus": 2
356
- }
357
- },
358
- "sentence10": {
359
- "Aeschylus": {
360
- "Aeschylus": 14,
361
- "Callimachus": 1,
362
- "Pindar": 2,
363
- "Hesiod": 1,
364
- "Theognis": 1,
365
- "Nonnus": 1
366
- },
367
- "Apollonius Rhodius": {
368
- "Apollonius Rhodius": 43,
369
- "Quintus Smyrnaeus": 3,
370
- "Oppian": 2,
371
- "Callimachus": 1,
372
- "Pindar": 1
373
- },
374
- "Aratus": {
375
- "Nonnus": 1,
376
- "Apollonius Rhodius": 1,
377
- "Aratus": 7,
378
- "Oppian": 1
379
- },
380
- "Callimachus": {
381
- "Callimachus": 4,
382
- "Theocritus": 2,
383
- "Oppian": 2,
384
- "Apollonius Rhodius": 2
385
- },
386
- "Hesiod": {
387
- "Hesiod": 8,
388
- "Quintus Smyrnaeus": 1,
389
- "Homeric-Iliad": 1
390
- },
391
- "Homeric-Iliad": {
392
- "Homeric-Iliad": 140,
393
- "Homeric-Odyssey": 10
394
- },
395
- "Homeric-Odyssey": {
396
- "Homeric-Odyssey": 110,
397
- "Homeric-Iliad": 9,
398
- "Hesiod": 1
399
- },
400
- "Lycophron": {
401
- "Lycophron": 9,
402
- "Pindar": 1
403
- },
404
- "Nicander": {
405
- "Nicander": 8,
406
- "Oppian": 2
407
- },
408
- "Nonnus": {
409
- "Nonnus": 210
410
- },
411
- "Oppian": {
412
- "Oppian": 46,
413
- "Apollonius Rhodius": 2,
414
- "Quintus Smyrnaeus": 2
415
- },
416
- "Pindar": {
417
- "Apollonius Rhodius": 1,
418
- "Pindar": 28,
419
- "Aeschylus": 1
420
- },
421
- "Quintus Smyrnaeus": {
422
- "Quintus Smyrnaeus": 75,
423
- "Apollonius Rhodius": 3,
424
- "Pindar": 1,
425
- "Theognis": 1
426
- },
427
- "Theocritus": {
428
- "Theocritus": 13,
429
- "Oppian": 2,
430
- "Apollonius Rhodius": 5
431
- },
432
- "Theognis": {
433
- "Theognis": 9,
434
- "Theocritus": 1
435
- }
436
- },
437
- "sentence50": {
438
- "Aeschylus": {
439
- "Aeschylus": 4
440
- },
441
- "Apollonius Rhodius": {
442
- "Apollonius Rhodius": 10
443
- },
444
- "Aratus": {
445
- "Aratus": 2
446
- },
447
- "Callimachus": {
448
- "Callimachus": 2
449
- },
450
- "Hesiod": {
451
- "Hesiod": 2
452
- },
453
- "Homeric-Iliad": {
454
- "Homeric-Iliad": 30
455
- },
456
- "Homeric-Odyssey": {
457
- "Homeric-Odyssey": 24
458
- },
459
- "Lycophron": {
460
- "Lycophron": 2
461
- },
462
- "Nicander": {
463
- "Nicander": 2
464
- },
465
- "Nonnus": {
466
- "Nonnus": 42
467
- },
468
- "Oppian": {
469
- "Oppian": 10
470
- },
471
- "Pindar": {
472
- "Pindar": 6
473
- },
474
- "Quintus Smyrnaeus": {
475
- "Quintus Smyrnaeus": 16
476
- },
477
- "Theocritus": {
478
- "Theocritus": 4
479
- },
480
- "Theognis": {
481
- "Theognis": 2
482
- }
483
- },
484
- "sentence100": {
485
- "Aeschylus": {
486
- "Aeschylus": 2
487
- },
488
- "Apollonius Rhodius": {
489
- "Apollonius Rhodius": 5
490
- },
491
- "Aratus": {
492
- "Aratus": 1
493
- },
494
- "Callimachus": {
495
- "Callimachus": 1
496
- },
497
- "Hesiod": {
498
- "Hesiod": 1
499
- },
500
- "Homeric-Iliad": {
501
- "Homeric-Iliad": 15
502
- },
503
- "Homeric-Odyssey": {
504
- "Homeric-Odyssey": 12
505
- },
506
- "Lycophron": {
507
- "Lycophron": 1
508
- },
509
- "Nicander": {
510
- "Nicander": 1
511
- },
512
- "Nonnus": {
513
- "Nonnus": 21
514
- },
515
- "Oppian": {
516
- "Oppian": 5
517
- },
518
- "Pindar": {
519
- "Pindar": 3
520
- },
521
- "Quintus Smyrnaeus": {
522
- "Quintus Smyrnaeus": 8
523
- },
524
- "Theocritus": {
525
- "Theocritus": 2
526
- },
527
- "Theognis": {
528
- "Theognis": 1
529
- }
530
- }
531
- };
532
-
533
- export const gormanD2Confusions: ConfusionSet = {
534
- sentence1: {
535
- Aeschylus:{Aeschylus:185,Aristophanes:7,Athenaeus:3,Demosthenes:4,'Dionysius of Halicarnassus':1,Herodotus:1,'Homeric-Iliad':13,'Homeric-Odyssey':27,Plato:5,Polybius:1,Sophocles:48,Xenophon:5},
536
- Aristophanes:{Aeschylus:5,Aristophanes:71,Athenaeus:1,Demosthenes:2,Herodotus:1,'Homeric-Odyssey':3,Plato:4,Procopius:1,Sophocles:7,Xenophon:5},
537
- Athenaeus:{Aeschylus:4,Aristophanes:3,Athenaeus:97,Demosthenes:8,'Diodorus Siculus':9,'Dionysius of Halicarnassus':2,Herodotus:19,'Homeric-Iliad':4,'Homeric-Odyssey':2,Josephus:1,Plato:1,Plutarch:6,Polybius:13,Procopius:1,Sophocles:6,Thucydides:8,Xenophon:16},
538
- Demosthenes:{Aeschylus:5,Aristophanes:7,Athenaeus:4,Demosthenes:159,'Dionysius of Halicarnassus':2,Herodotus:2,'Homeric-Odyssey':1,Josephus:1,Plato:3,Plutarch:8,Polybius:24,Procopius:4,Sophocles:5,Xenophon:75},
539
- 'Diodorus Siculus':{Athenaeus:5,Demosthenes:1,'Diodorus Siculus':58,'Dionysius of Halicarnassus':2,Herodotus:4,Josephus:4,Plutarch:5,Polybius:14,Procopius:1,Thucydides:2,Xenophon:4},
540
- 'Dionysius of Halicarnassus':{Aeschylus:2,Demosthenes:7,'Diodorus Siculus':1,'Dionysius of Halicarnassus':45,Herodotus:1,'Homeric-Odyssey':1,Josephus:2,Plato:1,Plutarch:3,Polybius:17,Procopius:4,Thucydides:1,Xenophon:15},
541
- Herodotus:{Athenaeus:21,Demosthenes:4,'Diodorus Siculus':5,Herodotus:638,'Homeric-Iliad':5,Plutarch:8,Polybius:3,Sophocles:3,Thucydides:7,Xenophon:6},
542
- 'Homeric-Iliad':{Aeschylus:13,Aristophanes:5,Athenaeus:4,Demosthenes:1,Herodotus:3,'Homeric-Iliad':558,'Homeric-Odyssey':82,Plato:2,Polybius:1,Sophocles:27,Xenophon:4},
543
- 'Homeric-Odyssey':{Aeschylus:21,Aristophanes:1,Athenaeus:1,Demosthenes:3,Herodotus:1,'Homeric-Iliad':53,'Homeric-Odyssey':503,Plato:3,Plutarch:1,Polybius:1,Sophocles:7,Xenophon:5},
544
- Josephus:{Aeschylus:1,Aristophanes:2,Athenaeus:4,Demosthenes:2,'Dionysius of Halicarnassus':9,Herodotus:2,Josephus:38,Plutarch:6,Polybius:19,Thucydides:2,Xenophon:15},
545
- Plato:{Aeschylus:4,Aristophanes:4,Athenaeus:2,Demosthenes:18,'Dionysius of Halicarnassus':2,'Homeric-Iliad':3,'Homeric-Odyssey':3,Plato:35,Polybius:1,Procopius:1,Sophocles:7,Xenophon:20},
546
- Plutarch:{Aeschylus:3,Athenaeus:5,Demosthenes:3,'Diodorus Siculus':5,'Dionysius of Halicarnassus':2,Herodotus:6,'Homeric-Iliad':1,'Homeric-Odyssey':1,Josephus:3,Plato:2,Plutarch:36,Polybius:8,Sophocles:3,Thucydides:1,Xenophon:21},
547
- Polybius:{Aristophanes:1,Athenaeus:5,Demosthenes:15,'Diodorus Siculus':4,'Dionysius of Halicarnassus':6,'Homeric-Odyssey':1,Josephus:5,Plato:2,Plutarch:4,Polybius:215,Procopius:3,Thucydides:1,Xenophon:38},
548
- Procopius:{Athenaeus:1,Demosthenes:2,'Dionysius of Halicarnassus':1,Josephus:2,Polybius:6,Procopius:71,Xenophon:17},
549
- Sophocles:{Aeschylus:37,Aristophanes:9,Athenaeus:6,Demosthenes:3,Herodotus:1,'Homeric-Iliad':18,'Homeric-Odyssey':16,Josephus:1,Plato:2,Plutarch:1,Polybius:2,Procopius:1,Sophocles:201,Xenophon:2},
550
- Thucydides:{Aristophanes:1,Athenaeus:7,Demosthenes:3,'Diodorus Siculus':7,'Dionysius of Halicarnassus':2,Herodotus:11,Plato:1,Plutarch:3,Polybius:8,Procopius:1,Thucydides:34,Xenophon:22},
551
- Xenophon:{Aeschylus:3,Aristophanes:5,Athenaeus:2,Demosthenes:41,'Diodorus Siculus':2,'Dionysius of Halicarnassus':4,Herodotus:2,'Homeric-Iliad':1,'Homeric-Odyssey':3,Josephus:7,Plato:16,Plutarch:8,Polybius:32,Procopius:5,Thucydides:4,Xenophon:465}
552
- },
553
- sentence10: {
554
- Aeschylus:{Aeschylus:29,'Homeric-Iliad':1},Aristophanes:{Aristophanes:10},Athenaeus:{Athenaeus:15,Plutarch:1,Polybius:1,Thucydides:1,Xenophon:2},Demosthenes:{Demosthenes:29,Xenophon:1},'Diodorus Siculus':{'Diodorus Siculus':8,Polybius:2},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':10},Herodotus:{Athenaeus:3,Herodotus:66,Thucydides:1},'Homeric-Iliad':{'Homeric-Iliad':57,'Homeric-Odyssey':13},'Homeric-Odyssey':{'Homeric-Odyssey':60},Josephus:{Josephus:10},Plato:{Demosthenes:1,Plato:9},Plutarch:{Demosthenes:1,Plutarch:9},Polybius:{Polybius:30},Procopius:{Procopius:10},Sophocles:{Sophocles:30},Thucydides:{Thucydides:10},Xenophon:{Xenophon:60}
555
- },
556
- sentence50: {
557
- Aeschylus:{Aeschylus:6},Aristophanes:{Aristophanes:2},Athenaeus:{Athenaeus:3,Plutarch:1},Demosthenes:{Demosthenes:6},'Diodorus Siculus':{'Diodorus Siculus':1,Polybius:1},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':2},Herodotus:{Athenaeus:1,Herodotus:13},'Homeric-Iliad':{'Homeric-Iliad':10,'Homeric-Odyssey':4},'Homeric-Odyssey':{'Homeric-Odyssey':12},Josephus:{Josephus:2},Plato:{Plato:2},Plutarch:{Plutarch:2},Polybius:{Polybius:6},Procopius:{Procopius:2},Sophocles:{Sophocles:6},Thucydides:{Thucydides:2},Xenophon:{Xenophon:12}
558
- },
559
- sentence100: {
560
- Aeschylus:{Aeschylus:3},Aristophanes:{Aristophanes:1},Athenaeus:{Athenaeus:2},Demosthenes:{Demosthenes:3},'Diodorus Siculus':{'Diodorus Siculus':1},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':1},Herodotus:{Herodotus:7},'Homeric-Iliad':{'Homeric-Iliad':5,'Homeric-Odyssey':2},'Homeric-Odyssey':{'Homeric-Odyssey':6},Josephus:{Josephus:1},Plato:{Plato:1},Plutarch:{Plutarch:1},Polybius:{Polybius:3},Procopius:{Procopius:1},Sophocles:{Sophocles:3},Thucydides:{Thucydides:1},Xenophon:{Xenophon:6}
561
- }
562
- };
563
-
564
- export const char4Confusions: ConfusionSet = {
565
- sentence1: {
566
- Aeschylus:{Aeschylus:205,Aristophanes:2,Demosthenes:3,Herodotus:4,'Homeric-Iliad':4,'Homeric-Odyssey':10,Plato:1,Plutarch:1,Polybius:1,Sophocles:68,Xenophon:1},
567
- Aristophanes:{Aeschylus:7,Aristophanes:56,Athenaeus:2,Demosthenes:7,Herodotus:4,'Homeric-Iliad':3,'Homeric-Odyssey':3,Plato:2,Polybius:1,Procopius:1,Sophocles:6,Xenophon:8},
568
- Athenaeus:{Aeschylus:4,Aristophanes:2,Athenaeus:127,Demosthenes:6,'Diodorus Siculus':2,'Dionysius of Halicarnassus':1,Herodotus:4,'Homeric-Iliad':2,'Homeric-Odyssey':4,Josephus:4,Plutarch:8,Polybius:5,Sophocles:7,Thucydides:1,Xenophon:23},
569
- Demosthenes:{Aristophanes:4,Athenaeus:3,Demosthenes:255,Herodotus:2,'Homeric-Odyssey':1,Plato:2,Plutarch:2,Polybius:5,Sophocles:4,Thucydides:2,Xenophon:20},
570
- 'Diodorus Siculus':{'Diodorus Siculus':82,'Dionysius of Halicarnassus':1,Herodotus:1,Plutarch:1,Polybius:11,Xenophon:4},
571
- 'Dionysius of Halicarnassus':{Athenaeus:2,Demosthenes:2,'Diodorus Siculus':1,'Dionysius of Halicarnassus':75,Herodotus:3,Josephus:2,Polybius:6,Thucydides:1,Xenophon:8},
572
- Herodotus:{Aeschylus:4,Aristophanes:3,Athenaeus:3,Demosthenes:5,'Diodorus Siculus':2,'Dionysius of Halicarnassus':1,Herodotus:646,'Homeric-Iliad':4,'Homeric-Odyssey':4,Josephus:1,Plato:2,Plutarch:1,Polybius:2,Sophocles:2,Thucydides:2,Xenophon:18},
573
- 'Homeric-Iliad':{Aeschylus:2,Aristophanes:1,Athenaeus:1,Herodotus:2,'Homeric-Iliad':600,'Homeric-Odyssey':90,Plato:1,Sophocles:2,Xenophon:1},
574
- 'Homeric-Odyssey':{Aeschylus:2,Herodotus:4,'Homeric-Iliad':131,'Homeric-Odyssey':457,Plato:1,Procopius:1,Sophocles:2,Xenophon:2},
575
- Josephus:{Athenaeus:4,Demosthenes:3,Herodotus:1,Josephus:69,Plutarch:6,Polybius:10,Xenophon:7},
576
- Plato:{Aeschylus:1,Aristophanes:1,Demosthenes:6,Herodotus:1,'Homeric-Iliad':1,Plato:54,Plutarch:1,Sophocles:1,Xenophon:34},
577
- Plutarch:{Aeschylus:1,Aristophanes:1,Athenaeus:11,Demosthenes:2,'Diodorus Siculus':2,'Homeric-Odyssey':2,Josephus:1,Plutarch:66,Polybius:6,Sophocles:1,Xenophon:7},
578
- Polybius:{Aristophanes:1,Athenaeus:1,Demosthenes:3,'Diodorus Siculus':2,'Dionysius of Halicarnassus':3,Herodotus:1,Plato:1,Plutarch:1,Polybius:281,Xenophon:6},
579
- Procopius:{Herodotus:6,Polybius:1,Procopius:83,Thucydides:2,Xenophon:8},
580
- Sophocles:{Aeschylus:37,Aristophanes:5,Athenaeus:3,Demosthenes:3,'Diodorus Siculus':2,Herodotus:2,'Homeric-Iliad':8,'Homeric-Odyssey':2,Plato:2,Polybius:3,Sophocles:228,Xenophon:5},
581
- Thucydides:{Demosthenes:2,'Diodorus Siculus':1,'Dionysius of Halicarnassus':1,Herodotus:2,Polybius:2,Procopius:2,Thucydides:72,Xenophon:18},
582
- Xenophon:{Aeschylus:2,Aristophanes:3,Athenaeus:4,Demosthenes:7,'Diodorus Siculus':1,'Dionysius of Halicarnassus':4,Herodotus:14,'Homeric-Iliad':1,Josephus:2,Plato:1,Plutarch:4,Polybius:3,Sophocles:1,Thucydides:2,Xenophon:551}
583
- },
584
- sentence10: {
585
- Aeschylus:{Aeschylus:29,Sophocles:1},Aristophanes:{Aristophanes:10},Athenaeus:{Athenaeus:20},Demosthenes:{Demosthenes:30},'Diodorus Siculus':{'Diodorus Siculus':10},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':10},Herodotus:{Herodotus:70},'Homeric-Iliad':{'Homeric-Iliad':69,'Homeric-Odyssey':1},'Homeric-Odyssey':{'Homeric-Iliad':1,'Homeric-Odyssey':59},Josephus:{Josephus:10},Plato:{Plato:10},Plutarch:{Plutarch:10},Polybius:{Polybius:30},Procopius:{Procopius:10},Sophocles:{Sophocles:30},Thucydides:{Thucydides:10},Xenophon:{Xenophon:60}
586
- },
587
- sentence100: {
588
- Aeschylus:{Aeschylus:3},Aristophanes:{Aristophanes:1},Athenaeus:{Athenaeus:2},Demosthenes:{Demosthenes:3},'Diodorus Siculus':{'Diodorus Siculus':1},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':1},Herodotus:{Herodotus:7},'Homeric-Iliad':{'Homeric-Iliad':7},'Homeric-Odyssey':{'Homeric-Odyssey':6},Josephus:{Josephus:1},Plato:{Plato:1},Plutarch:{Plutarch:1},Polybius:{Polybius:3},Procopius:{Procopius:1},Sophocles:{Sophocles:3},Thucydides:{Thucydides:1},Xenophon:{Xenophon:6}
589
- }
590
- };
591
-
592
- export const char2Sentence50Confusions: ConfusionSet = {
593
- sentence50: {
594
- Aeschylus:{Aeschylus:6},Aristophanes:{Aristophanes:2},Athenaeus:{Athenaeus:4},Demosthenes:{Demosthenes:6},'Diodorus Siculus':{'Diodorus Siculus':2},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':2},Herodotus:{Herodotus:14},'Homeric-Iliad':{'Homeric-Iliad':14},'Homeric-Odyssey':{'Homeric-Odyssey':12},Josephus:{Josephus:2},Plato:{Plato:2},Plutarch:{Plutarch:2},Polybius:{Polybius:6},Procopius:{Procopius:2},Sophocles:{Sophocles:6},Thucydides:{Thucydides:2},Xenophon:{Xenophon:12}
595
- }
596
- };
597
-
598
-
599
- export const grebertaSelectedCharConfusions: ConfusionSet = {
600
- "sentence1": {
601
- "Aeschylus": {
602
- "Aeschylus": 200,
603
- "Aristophanes": 3,
604
- "Athenaeus": 4,
605
- "Homeric-Iliad": 1,
606
- "Homeric-Odyssey": 1,
607
- "Sophocles": 90,
608
- "Xenophon": 1
609
- },
610
- "Aristophanes": {
611
- "Aeschylus": 2,
612
- "Aristophanes": 70,
613
- "Athenaeus": 5,
614
- "Demosthenes": 10,
615
- "Herodotus": 2,
616
- "Sophocles": 9,
617
- "Xenophon": 2
618
- },
619
- "Athenaeus": {
620
- "Aeschylus": 3,
621
- "Aristophanes": 12,
622
- "Athenaeus": 142,
623
- "Demosthenes": 4,
624
- "Diodorus Siculus": 1,
625
- "Dionysius of Halicarnassus": 2,
626
- "Herodotus": 1,
627
- "Homeric-Odyssey": 1,
628
- "Josephus": 1,
629
- "Plato": 2,
630
- "Plutarch": 9,
631
- "Polybius": 5,
632
- "Procopius": 1,
633
- "Sophocles": 3,
634
- "Xenophon": 13
635
- },
636
- "Demosthenes": {
637
- "Aristophanes": 7,
638
- "Athenaeus": 3,
639
- "Demosthenes": 270,
640
- "Dionysius of Halicarnassus": 1,
641
- "Josephus": 1,
642
- "Plato": 1,
643
- "Polybius": 3,
644
- "Sophocles": 3,
645
- "Xenophon": 11
646
- },
647
- "Diodorus Siculus": {
648
- "Athenaeus": 1,
649
- "Demosthenes": 1,
650
- "Diodorus Siculus": 76,
651
- "Dionysius of Halicarnassus": 3,
652
- "Plutarch": 3,
653
- "Polybius": 14,
654
- "Xenophon": 2
655
- },
656
- "Dionysius of Halicarnassus": {
657
- "Athenaeus": 7,
658
- "Demosthenes": 1,
659
- "Diodorus Siculus": 1,
660
- "Dionysius of Halicarnassus": 73,
661
- "Herodotus": 2,
662
- "Josephus": 4,
663
- "Plutarch": 4,
664
- "Polybius": 3,
665
- "Sophocles": 1,
666
- "Thucydides": 1,
667
- "Xenophon": 3
668
- },
669
- "Herodotus": {
670
- "Aristophanes": 1,
671
- "Athenaeus": 4,
672
- "Demosthenes": 3,
673
- "Herodotus": 674,
674
- "Homeric-Iliad": 2,
675
- "Homeric-Odyssey": 1,
676
- "Josephus": 1,
677
- "Plato": 1,
678
- "Plutarch": 1,
679
- "Sophocles": 1,
680
- "Thucydides": 1,
681
- "Xenophon": 10
682
- },
683
- "Homeric-Iliad": {
684
- "Aeschylus": 2,
685
- "Homeric-Iliad": 608,
686
- "Homeric-Odyssey": 87,
687
- "Plato": 1,
688
- "Sophocles": 2
689
- },
690
- "Homeric-Odyssey": {
691
- "Athenaeus": 1,
692
- "Herodotus": 1,
693
- "Homeric-Iliad": 119,
694
- "Homeric-Odyssey": 476,
695
- "Plato": 1,
696
- "Sophocles": 1,
697
- "Xenophon": 1
698
- },
699
- "Josephus": {
700
- "Athenaeus": 5,
701
- "Demosthenes": 3,
702
- "Dionysius of Halicarnassus": 5,
703
- "Josephus": 80,
704
- "Plutarch": 2,
705
- "Polybius": 1,
706
- "Procopius": 1,
707
- "Xenophon": 3
708
- },
709
- "Plato": {
710
- "Aeschylus": 2,
711
- "Aristophanes": 2,
712
- "Athenaeus": 2,
713
- "Demosthenes": 6,
714
- "Plato": 64,
715
- "Sophocles": 4,
716
- "Xenophon": 20
717
- },
718
- "Plutarch": {
719
- "Aristophanes": 1,
720
- "Athenaeus": 9,
721
- "Demosthenes": 5,
722
- "Diodorus Siculus": 3,
723
- "Dionysius of Halicarnassus": 2,
724
- "Homeric-Odyssey": 1,
725
- "Josephus": 1,
726
- "Plutarch": 70,
727
- "Polybius": 1,
728
- "Sophocles": 2,
729
- "Xenophon": 5
730
- },
731
- "Polybius": {
732
- "Athenaeus": 3,
733
- "Demosthenes": 5,
734
- "Diodorus Siculus": 8,
735
- "Dionysius of Halicarnassus": 1,
736
- "Homeric-Iliad": 1,
737
- "Plutarch": 1,
738
- "Polybius": 279,
739
- "Xenophon": 2
740
- },
741
- "Procopius": {
742
- "Aristophanes": 1,
743
- "Demosthenes": 1,
744
- "Diodorus Siculus": 1,
745
- "Procopius": 88,
746
- "Thucydides": 1,
747
- "Xenophon": 8
748
- },
749
- "Sophocles": {
750
- "Aeschylus": 34,
751
- "Aristophanes": 10,
752
- "Athenaeus": 3,
753
- "Herodotus": 1,
754
- "Homeric-Iliad": 3,
755
- "Plato": 4,
756
- "Sophocles": 244,
757
- "Xenophon": 1
758
- },
759
- "Thucydides": {
760
- "Aristophanes": 1,
761
- "Athenaeus": 1,
762
- "Demosthenes": 4,
763
- "Diodorus Siculus": 2,
764
- "Dionysius of Halicarnassus": 1,
765
- "Plato": 1,
766
- "Polybius": 1,
767
- "Procopius": 2,
768
- "Thucydides": 79,
769
- "Xenophon": 8
770
- },
771
- "Xenophon": {
772
- "Aeschylus": 2,
773
- "Aristophanes": 3,
774
- "Athenaeus": 6,
775
- "Demosthenes": 13,
776
- "Diodorus Siculus": 2,
777
- "Dionysius of Halicarnassus": 2,
778
- "Herodotus": 6,
779
- "Josephus": 2,
780
- "Plato": 9,
781
- "Plutarch": 4,
782
- "Polybius": 1,
783
- "Procopius": 1,
784
- "Sophocles": 1,
785
- "Thucydides": 4,
786
- "Xenophon": 544
787
- }
788
- },
789
- "sentence10": {
790
- "Aeschylus": {
791
- "Aeschylus": 27,
792
- "Sophocles": 3
793
- },
794
- "Aristophanes": {
795
- "Aristophanes": 10
796
- },
797
- "Athenaeus": {
798
- "Athenaeus": 20
799
- },
800
- "Demosthenes": {
801
- "Demosthenes": 30
802
- },
803
- "Diodorus Siculus": {
804
- "Diodorus Siculus": 10
805
- },
806
- "Dionysius of Halicarnassus": {
807
- "Dionysius of Halicarnassus": 10
808
- },
809
- "Herodotus": {
810
- "Herodotus": 70
811
- },
812
- "Homeric-Iliad": {
813
- "Homeric-Iliad": 68,
814
- "Homeric-Odyssey": 2
815
- },
816
- "Homeric-Odyssey": {
817
- "Homeric-Iliad": 2,
818
- "Homeric-Odyssey": 58
819
- },
820
- "Josephus": {
821
- "Josephus": 10
822
- },
823
- "Plato": {
824
- "Demosthenes": 1,
825
- "Plato": 9
826
- },
827
- "Plutarch": {
828
- "Plutarch": 10
829
- },
830
- "Polybius": {
831
- "Polybius": 30
832
- },
833
- "Procopius": {
834
- "Procopius": 10
835
- },
836
- "Sophocles": {
837
- "Sophocles": 30
838
- },
839
- "Thucydides": {
840
- "Thucydides": 10
841
- },
842
- "Xenophon": {
843
- "Demosthenes": 1,
844
- "Xenophon": 59
845
- }
846
- },
847
- "sentence50": {
848
- "Aeschylus": {
849
- "Aeschylus": 6
850
- },
851
- "Aristophanes": {
852
- "Aristophanes": 2
853
- },
854
- "Athenaeus": {
855
- "Athenaeus": 4
856
- },
857
- "Demosthenes": {
858
- "Demosthenes": 6
859
- },
860
- "Diodorus Siculus": {
861
- "Diodorus Siculus": 2
862
- },
863
- "Dionysius of Halicarnassus": {
864
- "Dionysius of Halicarnassus": 2
865
- },
866
- "Herodotus": {
867
- "Herodotus": 14
868
- },
869
- "Homeric-Iliad": {
870
- "Homeric-Iliad": 14
871
- },
872
- "Homeric-Odyssey": {
873
- "Homeric-Odyssey": 12
874
- },
875
- "Josephus": {
876
- "Josephus": 2
877
- },
878
- "Plato": {
879
- "Plato": 2
880
- },
881
- "Plutarch": {
882
- "Plutarch": 2
883
- },
884
- "Polybius": {
885
- "Polybius": 6
886
- },
887
- "Procopius": {
888
- "Procopius": 2
889
- },
890
- "Sophocles": {
891
- "Sophocles": 6
892
- },
893
- "Thucydides": {
894
- "Thucydides": 2
895
- },
896
- "Xenophon": {
897
- "Xenophon": 12
898
- }
899
- },
900
- "sentence100": {
901
- "Aeschylus": {
902
- "Aeschylus": 3
903
- },
904
- "Aristophanes": {
905
- "Aristophanes": 1
906
- },
907
- "Athenaeus": {
908
- "Athenaeus": 2
909
- },
910
- "Demosthenes": {
911
- "Demosthenes": 3
912
- },
913
- "Diodorus Siculus": {
914
- "Diodorus Siculus": 1
915
- },
916
- "Dionysius of Halicarnassus": {
917
- "Dionysius of Halicarnassus": 1
918
- },
919
- "Herodotus": {
920
- "Herodotus": 7
921
- },
922
- "Homeric-Iliad": {
923
- "Homeric-Iliad": 7
924
- },
925
- "Homeric-Odyssey": {
926
- "Homeric-Odyssey": 6
927
- },
928
- "Josephus": {
929
- "Josephus": 1
930
- },
931
- "Plato": {
932
- "Plato": 1
933
- },
934
- "Plutarch": {
935
- "Plutarch": 1
936
- },
937
- "Polybius": {
938
- "Polybius": 3
939
- },
940
- "Procopius": {
941
- "Procopius": 1
942
- },
943
- "Sophocles": {
944
- "Sophocles": 3
945
- },
946
- "Thucydides": {
947
- "Thucydides": 1
948
- },
949
- "Xenophon": {
950
- "Xenophon": 6
951
- }
952
- }
953
- };
954
-
955
- export const metreBurrowsDeltaConfusions: ConfusionSet = {
956
- "sentence1": {
957
- "Aeschylus": {
958
- "Lycophron": 200
959
- },
960
- "Apollonius Rhodius": {
961
- "Lycophron": 500
962
- },
963
- "Aratus": {
964
- "Lycophron": 100
965
- },
966
- "Callimachus": {
967
- "Lycophron": 100
968
- },
969
- "Hesiod": {
970
- "Lycophron": 99,
971
- "Nonnus": 1
972
- },
973
- "Homeric-Iliad": {
974
- "Lycophron": 1486,
975
- "Nonnus": 14
976
- },
977
- "Homeric-Odyssey": {
978
- "Lycophron": 1192,
979
- "Nonnus": 8
980
- },
981
- "Lycophron": {
982
- "Lycophron": 100
983
- },
984
- "Nicander": {
985
- "Lycophron": 100
986
- },
987
- "Nonnus": {
988
- "Lycophron": 2096,
989
- "Nonnus": 4
990
- },
991
- "Oppian": {
992
- "Lycophron": 500
993
- },
994
- "Pindar": {
995
- "Lycophron": 300
996
- },
997
- "Quintus Smyrnaeus": {
998
- "Lycophron": 797,
999
- "Nonnus": 3
1000
- },
1001
- "Theocritus": {
1002
- "Lycophron": 198,
1003
- "Nonnus": 2
1004
- },
1005
- "Theognis": {
1006
- "Lycophron": 100
1007
- }
1008
- },
1009
- "sentence10": {
1010
- "Aeschylus": {
1011
- "Aeschylus": 1,
1012
- "Lycophron": 19
1013
- },
1014
- "Apollonius Rhodius": {
1015
- "Lycophron": 49,
1016
- "Nonnus": 1
1017
- },
1018
- "Aratus": {
1019
- "Aratus": 2,
1020
- "Lycophron": 6,
1021
- "Nicander": 2
1022
- },
1023
- "Callimachus": {
1024
- "Lycophron": 10
1025
- },
1026
- "Hesiod": {
1027
- "Lycophron": 6,
1028
- "Nicander": 4
1029
- },
1030
- "Homeric-Iliad": {
1031
- "Aeschylus": 9,
1032
- "Lycophron": 117,
1033
- "Nicander": 14,
1034
- "Nonnus": 9,
1035
- "Oppian": 1
1036
- },
1037
- "Homeric-Odyssey": {
1038
- "Aeschylus": 13,
1039
- "Homeric-Odyssey": 1,
1040
- "Lycophron": 75,
1041
- "Nicander": 17,
1042
- "Nonnus": 11,
1043
- "Pindar": 1,
1044
- "Theognis": 2
1045
- },
1046
- "Lycophron": {
1047
- "Lycophron": 10
1048
- },
1049
- "Nicander": {
1050
- "Lycophron": 6,
1051
- "Nicander": 4
1052
- },
1053
- "Nonnus": {
1054
- "Lycophron": 145,
1055
- "Nonnus": 65
1056
- },
1057
- "Oppian": {
1058
- "Lycophron": 45,
1059
- "Nicander": 4,
1060
- "Oppian": 1
1061
- },
1062
- "Pindar": {
1063
- "Lycophron": 28,
1064
- "Nicander": 1,
1065
- "Nonnus": 1
1066
- },
1067
- "Quintus Smyrnaeus": {
1068
- "Aratus": 1,
1069
- "Lycophron": 75,
1070
- "Nicander": 2,
1071
- "Nonnus": 2
1072
- },
1073
- "Theocritus": {
1074
- "Lycophron": 19,
1075
- "Nicander": 1
1076
- },
1077
- "Theognis": {
1078
- "Aeschylus": 1,
1079
- "Lycophron": 9
1080
- }
1081
- },
1082
- "sentence50": {
1083
- "Aeschylus": {
1084
- "Aeschylus": 4
1085
- },
1086
- "Apollonius Rhodius": {
1087
- "Aeschylus": 1,
1088
- "Apollonius Rhodius": 8,
1089
- "Oppian": 1
1090
- },
1091
- "Aratus": {
1092
- "Aratus": 2
1093
- },
1094
- "Callimachus": {
1095
- "Callimachus": 1,
1096
- "Lycophron": 1
1097
- },
1098
- "Hesiod": {
1099
- "Hesiod": 2
1100
- },
1101
- "Homeric-Iliad": {
1102
- "Homeric-Iliad": 29,
1103
- "Homeric-Odyssey": 1
1104
- },
1105
- "Homeric-Odyssey": {
1106
- "Homeric-Iliad": 1,
1107
- "Homeric-Odyssey": 23
1108
- },
1109
- "Lycophron": {
1110
- "Lycophron": 2
1111
- },
1112
- "Nicander": {
1113
- "Nicander": 2
1114
- },
1115
- "Nonnus": {
1116
- "Lycophron": 1,
1117
- "Nonnus": 41
1118
- },
1119
- "Oppian": {
1120
- "Lycophron": 1,
1121
- "Nicander": 2,
1122
- "Oppian": 7
1123
- },
1124
- "Pindar": {
1125
- "Lycophron": 2,
1126
- "Pindar": 4
1127
- },
1128
- "Quintus Smyrnaeus": {
1129
- "Oppian": 1,
1130
- "Quintus Smyrnaeus": 15
1131
- },
1132
- "Theocritus": {
1133
- "Apollonius Rhodius": 1,
1134
- "Callimachus": 1,
1135
- "Theocritus": 2
1136
- },
1137
- "Theognis": {
1138
- "Theognis": 2
1139
- }
1140
- },
1141
- "sentence100": {
1142
- "Aeschylus": {
1143
- "Aeschylus": 2
1144
- },
1145
- "Apollonius Rhodius": {
1146
- "Apollonius Rhodius": 5
1147
- },
1148
- "Aratus": {
1149
- "Aratus": 1
1150
- },
1151
- "Callimachus": {
1152
- "Callimachus": 1
1153
- },
1154
- "Hesiod": {
1155
- "Hesiod": 1
1156
- },
1157
- "Homeric-Iliad": {
1158
- "Homeric-Iliad": 15
1159
- },
1160
- "Homeric-Odyssey": {
1161
- "Homeric-Odyssey": 12
1162
- },
1163
- "Lycophron": {
1164
- "Lycophron": 1
1165
- },
1166
- "Nicander": {
1167
- "Nicander": 1
1168
- },
1169
- "Nonnus": {
1170
- "Nonnus": 21
1171
- },
1172
- "Oppian": {
1173
- "Nicander": 1,
1174
- "Oppian": 4
1175
- },
1176
- "Pindar": {
1177
- "Pindar": 3
1178
- },
1179
- "Quintus Smyrnaeus": {
1180
- "Quintus Smyrnaeus": 8
1181
- },
1182
- "Theocritus": {
1183
- "Theocritus": 2
1184
- },
1185
- "Theognis": {
1186
- "Theognis": 1
1187
- }
1188
- }
1189
- };
1190
-
1191
- export const selectedCharNgramConfusions: ConfusionSet = {
1192
- sentence1: char4Confusions.sentence1,
1193
- sentence10: char4Confusions.sentence10,
1194
- sentence50: char2Sentence50Confusions.sentence50,
1195
- sentence100: char4Confusions.sentence100
1196
- };
1197
-
1198
- export const metreCharNgramConfusions: ConfusionSet = {
1199
- sentence1: {
1200
- 'Homeric-Iliad':{'Homeric-Iliad':1199,'Homeric-Odyssey':237,'Quintus Smyrnaeus':30,Oppian:9,Nonnus:12,Hesiod:5,'Apollonius Rhodius':4,Nicander:2,Theognis:1,Theocritus:1},
1201
- 'Homeric-Odyssey':{'Homeric-Odyssey':898,'Homeric-Iliad':233,'Apollonius Rhodius':12,Nonnus:8,Oppian:9,'Quintus Smyrnaeus':22,Theognis:5,Hesiod:7,Aratus:1,Theocritus:2,Callimachus:1,Pindar:2},
1202
- Hesiod:{'Homeric-Iliad':24,Hesiod:38,'Apollonius Rhodius':6,'Homeric-Odyssey':14,'Quintus Smyrnaeus':10,Theognis:3,Nonnus:1,Oppian:4},
1203
- Aeschylus:{Aeschylus:120,Lycophron:5,'Homeric-Iliad':10,Oppian:6,Pindar:20,'Homeric-Odyssey':9,'Apollonius Rhodius':9,Nonnus:8,Theocritus:3,Callimachus:1,'Quintus Smyrnaeus':9},
1204
- 'Apollonius Rhodius':{'Apollonius Rhodius':326,'Quintus Smyrnaeus':61,'Homeric-Odyssey':27,'Homeric-Iliad':34,Oppian:28,Nonnus:16,Hesiod:2,Pindar:2,Callimachus:1,Theocritus:2,Aratus:1},
1205
- Aratus:{Aratus:55,Oppian:15,Theocritus:3,Hesiod:1,Nonnus:8,'Homeric-Odyssey':4,'Homeric-Iliad':7,'Apollonius Rhodius':3,Nicander:1,'Quintus Smyrnaeus':2,Callimachus:1},
1206
- Callimachus:{'Homeric-Odyssey':14,'Homeric-Iliad':10,Theocritus:14,Callimachus:14,Nonnus:26,Aeschylus:3,'Quintus Smyrnaeus':3,'Apollonius Rhodius':5,Oppian:9,Nicander:1,Pindar:1},
1207
- Nonnus:{Nonnus:2060,Oppian:11,'Homeric-Iliad':14,Pindar:1,'Quintus Smyrnaeus':6,Aratus:1,'Apollonius Rhodius':3,'Homeric-Odyssey':3,Callimachus:1},
1208
- Pindar:{Pindar:227,Nonnus:12,'Homeric-Iliad':15,Oppian:6,Theocritus:9,'Apollonius Rhodius':11,'Homeric-Odyssey':8,'Quintus Smyrnaeus':4,Theognis:1,Aeschylus:4,Callimachus:2,Hesiod:1},
1209
- Lycophron:{Lycophron:74,Pindar:2,'Homeric-Odyssey':2,Aeschylus:5,'Apollonius Rhodius':3,Hesiod:2,'Quintus Smyrnaeus':2,Nonnus:8,Theocritus:1,Callimachus:1},
1210
- Nicander:{Nicander:47,Nonnus:10,Oppian:19,'Apollonius Rhodius':7,'Homeric-Odyssey':3,'Homeric-Iliad':4,'Quintus Smyrnaeus':4,Aratus:4,Theocritus:2},
1211
- Oppian:{Oppian:387,Theocritus:2,'Homeric-Iliad':14,Nonnus:44,Theognis:1,'Homeric-Odyssey':14,'Apollonius Rhodius':13,Nicander:4,Pindar:2,'Quintus Smyrnaeus':18,Callimachus:1},
1212
- 'Quintus Smyrnaeus':{'Quintus Smyrnaeus':653,'Homeric-Iliad':48,Oppian:11,'Homeric-Odyssey':27,'Apollonius Rhodius':38,Hesiod:4,Nonnus:17,Theocritus:1,Aeschylus:1},
1213
- Theocritus:{Theocritus:98,Nonnus:21,'Homeric-Odyssey':16,Pindar:6,'Homeric-Iliad':19,'Apollonius Rhodius':7,Oppian:21,'Quintus Smyrnaeus':3,Callimachus:4,Lycophron:1,Aratus:2,Theognis:1,Aeschylus:1},
1214
- Theognis:{Theognis:56,'Homeric-Odyssey':10,Theocritus:6,'Homeric-Iliad':6,Oppian:6,Nonnus:5,Hesiod:1,'Apollonius Rhodius':5,Aeschylus:1,Pindar:1,Callimachus:1,'Quintus Smyrnaeus':1,Aratus:1}
1215
- },
1216
- sentence10: {
1217
- Aeschylus:{Aeschylus:19,Theocritus:1},'Apollonius Rhodius':{'Apollonius Rhodius':50},Aratus:{Aratus:10},Callimachus:{Callimachus:5,Theocritus:3,Nonnus:2},Hesiod:{Hesiod:9,'Homeric-Odyssey':1},'Homeric-Iliad':{'Homeric-Iliad':147,'Homeric-Odyssey':3},'Homeric-Odyssey':{'Homeric-Odyssey':116,'Homeric-Iliad':4},Lycophron:{Lycophron:10},Nicander:{Nicander:10},Nonnus:{Nonnus:210},Oppian:{Oppian:50},Pindar:{Pindar:30},'Quintus Smyrnaeus':{'Quintus Smyrnaeus':80},Theocritus:{Theocritus:18,Pindar:1,'Homeric-Odyssey':1},Theognis:{Theognis:10}
1218
- },
1219
- sentence50: {
1220
- Aeschylus:{Aeschylus:4},'Apollonius Rhodius':{'Apollonius Rhodius':10},Aratus:{Aratus:2},Callimachus:{Callimachus:1,Theocritus:1},Hesiod:{Hesiod:1,'Homeric-Odyssey':1},'Homeric-Iliad':{'Homeric-Iliad':30},'Homeric-Odyssey':{'Homeric-Odyssey':24},Lycophron:{Lycophron:2},Nicander:{Nicander:2},Nonnus:{Nonnus:42},Oppian:{Oppian:10},Pindar:{Pindar:6},'Quintus Smyrnaeus':{'Quintus Smyrnaeus':16},Theocritus:{Theocritus:4},Theognis:{Theognis:2}
1221
- },
1222
- sentence100: {
1223
- Aeschylus:{Aeschylus:2},'Apollonius Rhodius':{'Apollonius Rhodius':5},Aratus:{Aratus:1},Callimachus:{Callimachus:1},Hesiod:{Hesiod:1},'Homeric-Iliad':{'Homeric-Iliad':15},'Homeric-Odyssey':{'Homeric-Odyssey':12},Lycophron:{Lycophron:1},Nicander:{Nicander:1},Nonnus:{Nonnus:21},Oppian:{Oppian:5},Pindar:{Pindar:3},'Quintus Smyrnaeus':{'Quintus Smyrnaeus':8},Theocritus:{Theocritus:2},Theognis:{Theognis:1}
1224
- }
1225
- };
1226
-
1227
- export const metreLineConfusions: ConfusionSet = {
1228
- "sentence1": {
1229
- "Homeric-Iliad": {
1230
- "Homeric-Iliad": 989,
1231
- "Quintus Smyrnaeus": 48,
1232
- "Nonnus": 400,
1233
- "Homeric-Odyssey": 59,
1234
- "Oppian": 1,
1235
- "Lycophron": 3
1236
- },
1237
- "Homeric-Odyssey": {
1238
- "Homeric-Iliad": 791,
1239
- "Nonnus": 314,
1240
- "Homeric-Odyssey": 60,
1241
- "Quintus Smyrnaeus": 31,
1242
- "Lycophron": 4
1243
- },
1244
- "Hesiod": {
1245
- "Homeric-Iliad": 52,
1246
- "Quintus Smyrnaeus": 3,
1247
- "Nonnus": 43,
1248
- "Lycophron": 1,
1249
- "Pindar": 1
1250
- },
1251
- "Aeschylus": {
1252
- "Aeschylus": 101,
1253
- "Pindar": 40,
1254
- "Lycophron": 45,
1255
- "Homeric-Odyssey": 2,
1256
- "Theocritus": 1,
1257
- "Nonnus": 5,
1258
- "Theognis": 1,
1259
- "Homeric-Iliad": 5
1260
- },
1261
- "Apollonius Rhodius": {
1262
- "Nonnus": 192,
1263
- "Homeric-Iliad": 284,
1264
- "Quintus Smyrnaeus": 16,
1265
- "Homeric-Odyssey": 4,
1266
- "Oppian": 1,
1267
- "Lycophron": 1,
1268
- "Pindar": 2
1269
- },
1270
- "Aratus": {
1271
- "Quintus Smyrnaeus": 3,
1272
- "Nonnus": 21,
1273
- "Homeric-Iliad": 74,
1274
- "Oppian": 1,
1275
- "Homeric-Odyssey": 1
1276
- },
1277
- "Callimachus": {
1278
- "Nonnus": 45,
1279
- "Aeschylus": 1,
1280
- "Homeric-Iliad": 40,
1281
- "Theognis": 5,
1282
- "Pindar": 4,
1283
- "Quintus Smyrnaeus": 5
1284
- },
1285
- "Nonnus": {
1286
- "Homeric-Iliad": 204,
1287
- "Nonnus": 1835,
1288
- "Quintus Smyrnaeus": 52,
1289
- "Oppian": 2,
1290
- "Homeric-Odyssey": 7
1291
- },
1292
- "Pindar": {
1293
- "Pindar": 192,
1294
- "Lycophron": 15,
1295
- "Aeschylus": 58,
1296
- "Homeric-Iliad": 17,
1297
- "Callimachus": 3,
1298
- "Nonnus": 10,
1299
- "Theocritus": 1,
1300
- "Quintus Smyrnaeus": 1,
1301
- "Oppian": 1,
1302
- "Homeric-Odyssey": 1,
1303
- "Theognis": 1
1304
- },
1305
- "Lycophron": {
1306
- "Lycophron": 73,
1307
- "Pindar": 10,
1308
- "Aeschylus": 15,
1309
- "Homeric-Iliad": 2
1310
- },
1311
- "Nicander": {
1312
- "Homeric-Iliad": 56,
1313
- "Nonnus": 36,
1314
- "Quintus Smyrnaeus": 5,
1315
- "Oppian": 1,
1316
- "Homeric-Odyssey": 2
1317
- },
1318
- "Oppian": {
1319
- "Nonnus": 262,
1320
- "Homeric-Iliad": 215,
1321
- "Quintus Smyrnaeus": 17,
1322
- "Homeric-Odyssey": 5,
1323
- "Oppian": 1
1324
- },
1325
- "Quintus Smyrnaeus": {
1326
- "Homeric-Iliad": 312,
1327
- "Nonnus": 413,
1328
- "Quintus Smyrnaeus": 59,
1329
- "Homeric-Odyssey": 9,
1330
- "Oppian": 7
1331
- },
1332
- "Theocritus": {
1333
- "Homeric-Iliad": 122,
1334
- "Nonnus": 57,
1335
- "Quintus Smyrnaeus": 7,
1336
- "Homeric-Odyssey": 8,
1337
- "Pindar": 3,
1338
- "Theognis": 1,
1339
- "Theocritus": 1,
1340
- "Callimachus": 1
1341
- },
1342
- "Theognis": {
1343
- "Homeric-Iliad": 50,
1344
- "Theognis": 29,
1345
- "Homeric-Odyssey": 5,
1346
- "Nonnus": 12,
1347
- "Lycophron": 1,
1348
- "Pindar": 2,
1349
- "Callimachus": 1
1350
- }
1351
- },
1352
- "sentence10": {
1353
- "Homeric-Iliad": {
1354
- "Homeric-Iliad": 118,
1355
- "Homeric-Odyssey": 17,
1356
- "Quintus Smyrnaeus": 3,
1357
- "Apollonius Rhodius": 6,
1358
- "Nicander": 1,
1359
- "Oppian": 2,
1360
- "Theocritus": 2,
1361
- "Nonnus": 1
1362
- },
1363
- "Homeric-Odyssey": {
1364
- "Homeric-Iliad": 92,
1365
- "Homeric-Odyssey": 23,
1366
- "Apollonius Rhodius": 3,
1367
- "Quintus Smyrnaeus": 1,
1368
- "Theocritus": 1
1369
- },
1370
- "Hesiod": {
1371
- "Oppian": 2,
1372
- "Homeric-Iliad": 7,
1373
- "Theocritus": 1
1374
- },
1375
- "Aeschylus": {
1376
- "Aeschylus": 18,
1377
- "Pindar": 1,
1378
- "Lycophron": 1
1379
- },
1380
- "Apollonius Rhodius": {
1381
- "Oppian": 7,
1382
- "Apollonius Rhodius": 19,
1383
- "Homeric-Iliad": 15,
1384
- "Quintus Smyrnaeus": 6,
1385
- "Homeric-Odyssey": 1,
1386
- "Aratus": 2
1387
- },
1388
- "Aratus": {
1389
- "Homeric-Iliad": 7,
1390
- "Quintus Smyrnaeus": 2,
1391
- "Aratus": 1
1392
- },
1393
- "Callimachus": {
1394
- "Callimachus": 3,
1395
- "Quintus Smyrnaeus": 2,
1396
- "Nicander": 1,
1397
- "Oppian": 3,
1398
- "Homeric-Iliad": 1
1399
- },
1400
- "Nonnus": {
1401
- "Nonnus": 208,
1402
- "Quintus Smyrnaeus": 2
1403
- },
1404
- "Pindar": {
1405
- "Pindar": 28,
1406
- "Aeschylus": 2
1407
- },
1408
- "Lycophron": {
1409
- "Lycophron": 10
1410
- },
1411
- "Nicander": {
1412
- "Nicander": 4,
1413
- "Homeric-Iliad": 4,
1414
- "Oppian": 2
1415
- },
1416
- "Oppian": {
1417
- "Oppian": 30,
1418
- "Quintus Smyrnaeus": 7,
1419
- "Apollonius Rhodius": 6,
1420
- "Nonnus": 3,
1421
- "Homeric-Iliad": 4
1422
- },
1423
- "Quintus Smyrnaeus": {
1424
- "Homeric-Iliad": 8,
1425
- "Quintus Smyrnaeus": 54,
1426
- "Nonnus": 8,
1427
- "Oppian": 3,
1428
- "Homeric-Odyssey": 2,
1429
- "Theocritus": 1,
1430
- "Nicander": 1,
1431
- "Apollonius Rhodius": 3
1432
- },
1433
- "Theocritus": {
1434
- "Homeric-Iliad": 7,
1435
- "Theocritus": 4,
1436
- "Homeric-Odyssey": 4,
1437
- "Apollonius Rhodius": 1,
1438
- "Nonnus": 1,
1439
- "Quintus Smyrnaeus": 1,
1440
- "Oppian": 1,
1441
- "Pindar": 1
1442
- },
1443
- "Theognis": {
1444
- "Theognis": 9,
1445
- "Homeric-Iliad": 1
1446
- }
1447
- },
1448
- "sentence50": {
1449
- "Homeric-Iliad": {
1450
- "Homeric-Iliad": 25,
1451
- "Homeric-Odyssey": 4,
1452
- "Theocritus": 1
1453
- },
1454
- "Homeric-Odyssey": {
1455
- "Homeric-Odyssey": 10,
1456
- "Homeric-Iliad": 13,
1457
- "Apollonius Rhodius": 1
1458
- },
1459
- "Hesiod": {
1460
- "Homeric-Iliad": 1,
1461
- "Theocritus": 1
1462
- },
1463
- "Aeschylus": {
1464
- "Aeschylus": 4
1465
- },
1466
- "Apollonius Rhodius": {
1467
- "Apollonius Rhodius": 9,
1468
- "Hesiod": 1
1469
- },
1470
- "Aratus": {
1471
- "Aratus": 2
1472
- },
1473
- "Callimachus": {
1474
- "Quintus Smyrnaeus": 1,
1475
- "Callimachus": 1
1476
- },
1477
- "Nonnus": {
1478
- "Nonnus": 42
1479
- },
1480
- "Pindar": {
1481
- "Pindar": 6
1482
- },
1483
- "Lycophron": {
1484
- "Lycophron": 2
1485
- },
1486
- "Nicander": {
1487
- "Nicander": 2
1488
- },
1489
- "Oppian": {
1490
- "Oppian": 9,
1491
- "Apollonius Rhodius": 1
1492
- },
1493
- "Quintus Smyrnaeus": {
1494
- "Quintus Smyrnaeus": 16
1495
- },
1496
- "Theocritus": {
1497
- "Theocritus": 3,
1498
- "Homeric-Odyssey": 1
1499
- },
1500
- "Theognis": {
1501
- "Theognis": 2
1502
- }
1503
- },
1504
- "sentence100": {
1505
- "Homeric-Iliad": {
1506
- "Homeric-Odyssey": 4,
1507
- "Homeric-Iliad": 11
1508
- },
1509
- "Homeric-Odyssey": {
1510
- "Homeric-Odyssey": 8,
1511
- "Homeric-Iliad": 4
1512
- },
1513
- "Hesiod": {
1514
- "Hesiod": 1
1515
- },
1516
- "Aeschylus": {
1517
- "Aeschylus": 2
1518
- },
1519
- "Apollonius Rhodius": {
1520
- "Apollonius Rhodius": 4,
1521
- "Hesiod": 1
1522
- },
1523
- "Aratus": {
1524
- "Aratus": 1
1525
- },
1526
- "Callimachus": {
1527
- "Callimachus": 1
1528
- },
1529
- "Nonnus": {
1530
- "Nonnus": 21
1531
- },
1532
- "Pindar": {
1533
- "Pindar": 3
1534
- },
1535
- "Lycophron": {
1536
- "Lycophron": 1
1537
- },
1538
- "Nicander": {
1539
- "Nicander": 1
1540
- },
1541
- "Oppian": {
1542
- "Oppian": 5
1543
- },
1544
- "Quintus Smyrnaeus": {
1545
- "Quintus Smyrnaeus": 8
1546
- },
1547
- "Theocritus": {
1548
- "Theocritus": 2
1549
- },
1550
- "Theognis": {
1551
- "Theognis": 1
1552
- }
1553
- }
1554
- };
1555
-
1556
- export const metreSyntaxPlusMetreConfusions: ConfusionSet = {
1557
- "sentence1": {
1558
- "Homeric-Iliad": {
1559
- "Homeric-Iliad": 1138,
1560
- "Homeric-Odyssey": 299,
1561
- "Nonnus": 24,
1562
- "Oppian": 4,
1563
- "Nicander": 1,
1564
- "Hesiod": 7,
1565
- "Apollonius Rhodius": 11,
1566
- "Lycophron": 1,
1567
- "Quintus Smyrnaeus": 12,
1568
- "Pindar": 1,
1569
- "Theocritus": 2
1570
- },
1571
- "Homeric-Odyssey": {
1572
- "Homeric-Odyssey": 648,
1573
- "Nonnus": 19,
1574
- "Homeric-Iliad": 476,
1575
- "Apollonius Rhodius": 21,
1576
- "Quintus Smyrnaeus": 15,
1577
- "Hesiod": 4,
1578
- "Oppian": 11,
1579
- "Nicander": 3,
1580
- "Theognis": 1,
1581
- "Theocritus": 1,
1582
- "Lycophron": 1
1583
- },
1584
- "Hesiod": {
1585
- "Hesiod": 6,
1586
- "Apollonius Rhodius": 14,
1587
- "Homeric-Iliad": 32,
1588
- "Homeric-Odyssey": 13,
1589
- "Oppian": 6,
1590
- "Nonnus": 11,
1591
- "Quintus Smyrnaeus": 14,
1592
- "Callimachus": 2,
1593
- "Pindar": 1,
1594
- "Aratus": 1
1595
- },
1596
- "Aeschylus": {
1597
- "Aeschylus": 109,
1598
- "Pindar": 44,
1599
- "Theognis": 8,
1600
- "Lycophron": 27,
1601
- "Nonnus": 4,
1602
- "Oppian": 2,
1603
- "Homeric-Odyssey": 2,
1604
- "Quintus Smyrnaeus": 1,
1605
- "Homeric-Iliad": 2,
1606
- "Theocritus": 1
1607
- },
1608
- "Apollonius Rhodius": {
1609
- "Quintus Smyrnaeus": 123,
1610
- "Nonnus": 86,
1611
- "Oppian": 48,
1612
- "Apollonius Rhodius": 174,
1613
- "Nicander": 11,
1614
- "Theocritus": 15,
1615
- "Homeric-Iliad": 23,
1616
- "Lycophron": 1,
1617
- "Aratus": 5,
1618
- "Callimachus": 2,
1619
- "Pindar": 1,
1620
- "Hesiod": 3,
1621
- "Theognis": 1,
1622
- "Homeric-Odyssey": 7
1623
- },
1624
- "Aratus": {
1625
- "Hesiod": 2,
1626
- "Oppian": 20,
1627
- "Nonnus": 15,
1628
- "Aratus": 17,
1629
- "Nicander": 6,
1630
- "Apollonius Rhodius": 16,
1631
- "Quintus Smyrnaeus": 13,
1632
- "Theocritus": 6,
1633
- "Homeric-Iliad": 3,
1634
- "Theognis": 2
1635
- },
1636
- "Callimachus": {
1637
- "Nonnus": 34,
1638
- "Theognis": 6,
1639
- "Theocritus": 9,
1640
- "Callimachus": 8,
1641
- "Aeschylus": 1,
1642
- "Pindar": 3,
1643
- "Oppian": 11,
1644
- "Quintus Smyrnaeus": 10,
1645
- "Apollonius Rhodius": 16,
1646
- "Aratus": 1,
1647
- "Hesiod": 1
1648
- },
1649
- "Nonnus": {
1650
- "Nonnus": 1935,
1651
- "Apollonius Rhodius": 26,
1652
- "Pindar": 1,
1653
- "Theocritus": 9,
1654
- "Quintus Smyrnaeus": 83,
1655
- "Homeric-Iliad": 9,
1656
- "Oppian": 25,
1657
- "Nicander": 3,
1658
- "Theognis": 3,
1659
- "Aratus": 1,
1660
- "Callimachus": 3,
1661
- "Homeric-Odyssey": 2
1662
- },
1663
- "Pindar": {
1664
- "Pindar": 212,
1665
- "Theognis": 9,
1666
- "Lycophron": 14,
1667
- "Aeschylus": 35,
1668
- "Quintus Smyrnaeus": 5,
1669
- "Nonnus": 11,
1670
- "Apollonius Rhodius": 4,
1671
- "Theocritus": 4,
1672
- "Homeric-Iliad": 2,
1673
- "Oppian": 2,
1674
- "Hesiod": 1,
1675
- "Callimachus": 1
1676
- },
1677
- "Lycophron": {
1678
- "Lycophron": 77,
1679
- "Pindar": 15,
1680
- "Theognis": 2,
1681
- "Aeschylus": 6
1682
- },
1683
- "Nicander": {
1684
- "Aratus": 5,
1685
- "Homeric-Iliad": 2,
1686
- "Oppian": 26,
1687
- "Theognis": 1,
1688
- "Quintus Smyrnaeus": 12,
1689
- "Nonnus": 24,
1690
- "Nicander": 18,
1691
- "Apollonius Rhodius": 7,
1692
- "Hesiod": 1,
1693
- "Theocritus": 2,
1694
- "Homeric-Odyssey": 2
1695
- },
1696
- "Oppian": {
1697
- "Oppian": 216,
1698
- "Nonnus": 114,
1699
- "Quintus Smyrnaeus": 85,
1700
- "Aratus": 8,
1701
- "Apollonius Rhodius": 38,
1702
- "Homeric-Iliad": 9,
1703
- "Nicander": 12,
1704
- "Lycophron": 2,
1705
- "Theocritus": 6,
1706
- "Callimachus": 3,
1707
- "Hesiod": 5,
1708
- "Pindar": 1,
1709
- "Homeric-Odyssey": 1
1710
- },
1711
- "Quintus Smyrnaeus": {
1712
- "Quintus Smyrnaeus": 422,
1713
- "Oppian": 68,
1714
- "Nonnus": 153,
1715
- "Theocritus": 15,
1716
- "Apollonius Rhodius": 100,
1717
- "Nicander": 3,
1718
- "Homeric-Iliad": 20,
1719
- "Hesiod": 3,
1720
- "Aratus": 4,
1721
- "Callimachus": 2,
1722
- "Homeric-Odyssey": 8,
1723
- "Theognis": 2
1724
- },
1725
- "Theocritus": {
1726
- "Oppian": 24,
1727
- "Theocritus": 52,
1728
- "Apollonius Rhodius": 26,
1729
- "Quintus Smyrnaeus": 33,
1730
- "Theognis": 9,
1731
- "Nicander": 5,
1732
- "Nonnus": 32,
1733
- "Callimachus": 8,
1734
- "Homeric-Iliad": 3,
1735
- "Hesiod": 3,
1736
- "Homeric-Odyssey": 2,
1737
- "Pindar": 3
1738
- },
1739
- "Theognis": {
1740
- "Theocritus": 5,
1741
- "Theognis": 50,
1742
- "Homeric-Odyssey": 1,
1743
- "Nonnus": 11,
1744
- "Oppian": 11,
1745
- "Quintus Smyrnaeus": 6,
1746
- "Callimachus": 2,
1747
- "Pindar": 6,
1748
- "Apollonius Rhodius": 2,
1749
- "Lycophron": 2,
1750
- "Homeric-Iliad": 2,
1751
- "Nicander": 1,
1752
- "Aeschylus": 1
1753
- }
1754
- },
1755
- "sentence10": {
1756
- "Homeric-Iliad": {
1757
- "Homeric-Iliad": 140,
1758
- "Homeric-Odyssey": 10
1759
- },
1760
- "Homeric-Odyssey": {
1761
- "Homeric-Odyssey": 110,
1762
- "Homeric-Iliad": 9,
1763
- "Hesiod": 1
1764
- },
1765
- "Hesiod": {
1766
- "Hesiod": 8,
1767
- "Quintus Smyrnaeus": 1,
1768
- "Homeric-Iliad": 1
1769
- },
1770
- "Aeschylus": {
1771
- "Aeschylus": 19,
1772
- "Pindar": 1
1773
- },
1774
- "Apollonius Rhodius": {
1775
- "Apollonius Rhodius": 46,
1776
- "Quintus Smyrnaeus": 2,
1777
- "Oppian": 2
1778
- },
1779
- "Aratus": {
1780
- "Aratus": 9,
1781
- "Apollonius Rhodius": 1
1782
- },
1783
- "Callimachus": {
1784
- "Callimachus": 6,
1785
- "Oppian": 2,
1786
- "Apollonius Rhodius": 2
1787
- },
1788
- "Nonnus": {
1789
- "Nonnus": 210
1790
- },
1791
- "Pindar": {
1792
- "Pindar": 29,
1793
- "Aeschylus": 1
1794
- },
1795
- "Lycophron": {
1796
- "Lycophron": 10
1797
- },
1798
- "Nicander": {
1799
- "Nicander": 9,
1800
- "Oppian": 1
1801
- },
1802
- "Oppian": {
1803
- "Oppian": 46,
1804
- "Apollonius Rhodius": 3,
1805
- "Quintus Smyrnaeus": 1
1806
- },
1807
- "Quintus Smyrnaeus": {
1808
- "Quintus Smyrnaeus": 75,
1809
- "Apollonius Rhodius": 3,
1810
- "Oppian": 2
1811
- },
1812
- "Theocritus": {
1813
- "Theocritus": 13,
1814
- "Oppian": 2,
1815
- "Quintus Smyrnaeus": 1,
1816
- "Apollonius Rhodius": 4
1817
- },
1818
- "Theognis": {
1819
- "Theognis": 10
1820
- }
1821
- },
1822
- "sentence50": {
1823
- "Homeric-Iliad": {
1824
- "Homeric-Iliad": 30
1825
- },
1826
- "Homeric-Odyssey": {
1827
- "Homeric-Odyssey": 24
1828
- },
1829
- "Hesiod": {
1830
- "Hesiod": 2
1831
- },
1832
- "Aeschylus": {
1833
- "Aeschylus": 4
1834
- },
1835
- "Apollonius Rhodius": {
1836
- "Apollonius Rhodius": 10
1837
- },
1838
- "Aratus": {
1839
- "Aratus": 2
1840
- },
1841
- "Callimachus": {
1842
- "Callimachus": 2
1843
- },
1844
- "Nonnus": {
1845
- "Nonnus": 42
1846
- },
1847
- "Pindar": {
1848
- "Pindar": 6
1849
- },
1850
- "Lycophron": {
1851
- "Lycophron": 2
1852
- },
1853
- "Nicander": {
1854
- "Nicander": 2
1855
- },
1856
- "Oppian": {
1857
- "Oppian": 10
1858
- },
1859
- "Quintus Smyrnaeus": {
1860
- "Quintus Smyrnaeus": 16
1861
- },
1862
- "Theocritus": {
1863
- "Theocritus": 4
1864
- },
1865
- "Theognis": {
1866
- "Theognis": 2
1867
- }
1868
- },
1869
- "sentence100": {
1870
- "Homeric-Iliad": {
1871
- "Homeric-Iliad": 15
1872
- },
1873
- "Homeric-Odyssey": {
1874
- "Homeric-Odyssey": 12
1875
- },
1876
- "Hesiod": {
1877
- "Hesiod": 1
1878
- },
1879
- "Aeschylus": {
1880
- "Aeschylus": 2
1881
- },
1882
- "Apollonius Rhodius": {
1883
- "Apollonius Rhodius": 5
1884
- },
1885
- "Aratus": {
1886
- "Aratus": 1
1887
- },
1888
- "Callimachus": {
1889
- "Callimachus": 1
1890
- },
1891
- "Nonnus": {
1892
- "Nonnus": 21
1893
- },
1894
- "Pindar": {
1895
- "Pindar": 3
1896
- },
1897
- "Lycophron": {
1898
- "Lycophron": 1
1899
- },
1900
- "Nicander": {
1901
- "Nicander": 1
1902
- },
1903
- "Oppian": {
1904
- "Oppian": 5
1905
- },
1906
- "Quintus Smyrnaeus": {
1907
- "Quintus Smyrnaeus": 8
1908
- },
1909
- "Theocritus": {
1910
- "Theocritus": 2
1911
- },
1912
- "Theognis": {
1913
- "Theognis": 1
1914
- }
1915
- }
1916
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/lib/data.ts CHANGED
@@ -1,9 +1,20 @@
1
- import { baselineConfusions, burrowsDeltaConfusions, gormanD2Confusions, grebertaConfusions, grebertaSelectedCharConfusions, metreBaselineConfusions, metreBurrowsDeltaConfusions, metreCharNgramConfusions, metreGrebertaConfusions, metreLineConfusions, metreSyntaxConfusions, metreSyntaxPlusMetreConfusions, selectedCharNgramConfusions, type ConfusionSet } from './confusions';
2
- import { burrowsLogregAuthorAccuracy, burrowsLogregConfusions, metreBurrowsLogregAuthorAccuracy, metreBurrowsLogregConfusions } from './burrowsLogregDiagnostics';
3
- import { metreTfidfLemmaAuthorAccuracy, metreTfidfLemmaConfusions, tfidfLemmaAuthorAccuracy, tfidfLemmaConfusions } from './tfidfDiagnostics';
4
- import { grebertaFinetuneAuthorAccuracy, grebertaFinetuneConfusions } from './grebertaFinetuneDiagnostics';
 
 
 
 
 
 
 
 
 
5
 
6
- export type TaskKey = 'sentence1' | 'sentence10' | 'sentence50' | 'sentence100';
 
 
7
 
8
  export interface ResultRow {
9
  model: string;
@@ -12,8 +23,8 @@ export interface ResultRow {
12
  classifier: string;
13
  status: string;
14
  scores: Partial<Record<TaskKey, number>>;
15
- authorAccuracy: Record<string, Partial<Record<TaskKey, number>>>;
16
- confusions: ConfusionSet;
17
  }
18
 
19
  export interface TaskColumn {
@@ -24,810 +35,59 @@ export interface TaskColumn {
24
  color: string;
25
  }
26
 
27
- export const sentenceTaskColumns: TaskColumn[] = [
28
- { key: 'sentence1', label: '1 sentence', shortLabel: '1 sent.', description: 'Macro-F1 on held-out single-sentence examples.', color: '#2878b5' },
29
- { key: 'sentence10', label: '10 sentences', shortLabel: '10 sent.', description: 'Macro-F1 on held-out ten-sentence chunks.', color: '#d06732' },
30
- { key: 'sentence50', label: '50 sentences', shortLabel: '50 sent.', description: 'Macro-F1 on held-out fifty-sentence chunks.', color: '#8c5fbf' },
31
- { key: 'sentence100', label: '100 sentences', shortLabel: '100 sent.', description: 'Macro-F1 on held-out one-hundred-sentence chunks.', color: '#32845e' }
32
- ];
33
-
34
- export const metreTaskColumns: TaskColumn[] = [
35
- { key: 'sentence1', label: '1 line', shortLabel: '1 line', description: 'Macro-F1 on held-out single-line examples.', color: '#2878b5' },
36
- { key: 'sentence10', label: '10 lines', shortLabel: '10 lines', description: 'Macro-F1 on held-out ten-line chunks.', color: '#d06732' },
37
- { key: 'sentence50', label: '50 lines', shortLabel: '50 lines', description: 'Macro-F1 on held-out fifty-line chunks.', color: '#8c5fbf' },
38
- { key: 'sentence100', label: '100 lines', shortLabel: '100 lines', description: 'Macro-F1 on held-out one-hundred-line chunks.', color: '#32845e' }
39
- ];
40
-
41
- const selectedCharAuthorAccuracy: ResultRow['authorAccuracy'] = {
42
- 'Aeschylus': { sentence1: 68.33333333, sentence10: 96.66666667, sentence50: 100, sentence100: 100 },
43
- 'Aristophanes': { sentence1: 56, sentence10: 100, sentence50: 100, sentence100: 100 },
44
- 'Athenaeus': { sentence1: 63.5, sentence10: 100, sentence50: 100, sentence100: 100 },
45
- 'Demosthenes': { sentence1: 85, sentence10: 100, sentence50: 100, sentence100: 100 },
46
- 'Diodorus Siculus': { sentence1: 82, sentence10: 100, sentence50: 100, sentence100: 100 },
47
- 'Dionysius of Halicarnassus': { sentence1: 75, sentence10: 100, sentence50: 100, sentence100: 100 },
48
- 'Herodotus': { sentence1: 92.28571429, sentence10: 100, sentence50: 100, sentence100: 100 },
49
- 'Homeric-Iliad': { sentence1: 85.71428571, sentence10: 98.57142857, sentence50: 100, sentence100: 100 },
50
- 'Homeric-Odyssey': { sentence1: 76.16666667, sentence10: 98.33333333, sentence50: 100, sentence100: 100 },
51
- 'Josephus': { sentence1: 69, sentence10: 100, sentence50: 100, sentence100: 100 },
52
- 'Plato': { sentence1: 54, sentence10: 100, sentence50: 100, sentence100: 100 },
53
- 'Plutarch': { sentence1: 66, sentence10: 100, sentence50: 100, sentence100: 100 },
54
- 'Polybius': { sentence1: 93.66666667, sentence10: 100, sentence50: 100, sentence100: 100 },
55
- 'Procopius': { sentence1: 83, sentence10: 100, sentence50: 100, sentence100: 100 },
56
- 'Sophocles': { sentence1: 76, sentence10: 100, sentence50: 100, sentence100: 100 },
57
- 'Thucydides': { sentence1: 72, sentence10: 100, sentence50: 100, sentence100: 100 },
58
- 'Xenophon': { sentence1: 91.83333333, sentence10: 100, sentence50: 100, sentence100: 100 }
59
- };
60
-
61
- function taskAccuracies(...tasks: TaskKey[]): ResultRow['authorAccuracy'] {
62
- return Object.fromEntries(Object.entries(selectedCharAuthorAccuracy).map(([author, values]) => [
63
- author,
64
- Object.fromEntries(tasks.map((task) => [task, values[task]]))
65
- ]));
66
  }
67
 
68
- export const results: ResultRow[] = [
69
- {
70
- model: 'Majority baseline',
71
- url: 'https://huggingface.co/datasets/Urdatorn/sphragis',
72
- dimensionality: '—',
73
- classifier: 'Constant predictor',
74
- status: 'Trivial training-only baseline',
75
- scores: { sentence1: 1.4973262, sentence10: 1.4973262, sentence50: 1.4973262, sentence100: 1.4973262 },
76
- authorAccuracy: {
77
- 'Aeschylus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
78
- 'Aristophanes': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
79
- 'Athenaeus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
80
- 'Demosthenes': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
81
- 'Diodorus Siculus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
82
- 'Dionysius of Halicarnassus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
83
- 'Herodotus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
84
- 'Homeric-Iliad': { sentence1: 100, sentence10: 100, sentence50: 100, sentence100: 100 },
85
- 'Homeric-Odyssey': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
86
- 'Josephus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
87
- 'Plato': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
88
- 'Plutarch': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
89
- 'Polybius': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
90
- 'Procopius': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
91
- 'Sophocles': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
92
- 'Thucydides': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
93
- 'Xenophon': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 }
94
- },
95
- confusions: baselineConfusions
96
- },
97
- {
98
- model: 'Burrows Delta',
99
- url: 'https://github.com/Urdatorn/sphragis_models',
100
- dimensionality: '100 / 100 / 1,000 / 100',
101
- classifier: 'Nearest author centroid',
102
- status: 'Validation-selected MFW: 100/100/1000/100 for 1/10/50/100 sentences; test evaluated once',
103
- scores: { sentence1: 11.43745195, sentence10: 61.82149668, sentence50: 95.48334019, sentence100: 97.50445633 },
104
- authorAccuracy: {
105
- 'Aeschylus': { sentence1: 76, sentence10: 96.66666667, sentence50: 100, sentence100: 100 },
106
- 'Aristophanes': { sentence1: 3, sentence10: 80, sentence50: 100, sentence100: 100 },
107
- 'Athenaeus': { sentence1: 5, sentence10: 55, sentence50: 100, sentence100: 100 },
108
- 'Demosthenes': { sentence1: 1, sentence10: 63.33333333, sentence50: 100, sentence100: 100 },
109
- 'Diodorus Siculus': { sentence1: 68, sentence10: 100, sentence50: 100, sentence100: 100 },
110
- 'Dionysius of Halicarnassus': { sentence1: 5, sentence10: 90, sentence50: 100, sentence100: 100 },
111
- 'Herodotus': { sentence1: 0.4285714286, sentence10: 35.71428571, sentence50: 85.71428571, sentence100: 100 },
112
- 'Homeric-Iliad': { sentence1: 42.42857143, sentence10: 97.14285714, sentence50: 100, sentence100: 100 },
113
- 'Homeric-Odyssey': { sentence1: 13.83333333, sentence10: 88.33333333, sentence50: 100, sentence100: 100 },
114
- 'Josephus': { sentence1: 86, sentence10: 100, sentence50: 100, sentence100: 100 },
115
- 'Plato': { sentence1: 1, sentence10: 80, sentence50: 100, sentence100: 100 },
116
- 'Plutarch': { sentence1: 0, sentence10: 70, sentence50: 100, sentence100: 100 },
117
- 'Polybius': { sentence1: 8, sentence10: 76.66666667, sentence50: 100, sentence100: 100 },
118
- 'Procopius': { sentence1: 22, sentence10: 100, sentence50: 100, sentence100: 100 },
119
- 'Sophocles': { sentence1: 0, sentence10: 46.66666667, sentence50: 100, sentence100: 100 },
120
- 'Thucydides': { sentence1: 0, sentence10: 30, sentence50: 100, sentence100: 100 },
121
- 'Xenophon': { sentence1: 0, sentence10: 15, sentence50: 83.33333333, sentence100: 83.33333333 }
122
- },
123
- confusions: burrowsDeltaConfusions
124
- },
125
- {
126
- model: 'Burrows Delta',
127
- url: 'https://github.com/Urdatorn/sphragis_models',
128
- dimensionality: '1,000 / 500 / 500 / 100',
129
- classifier: 'Logistic regression',
130
- status: 'Validation-selected MFW and PyTorch learning rate; test evaluated once',
131
- scores: { sentence1: 59.74126124772063, sentence10: 94.10173324367133, sentence50: 100, sentence100: 100 },
132
- authorAccuracy: burrowsLogregAuthorAccuracy,
133
- confusions: burrowsLogregConfusions
134
- },
135
- {
136
- model: 'TF-IDF lemma',
137
- url: 'https://github.com/Urdatorn/sphragis_models',
138
- dimensionality: '26,299',
139
- classifier: 'Logistic regression',
140
- status: 'All train lemmas; 5-point Optuna; validation saturates at 1.0 for 50 and 100 sentences; test evaluated once',
141
- scores: { sentence1: 75.17538929435734, sentence10: 99.71293351423791, sentence50: 100, sentence100: 100 },
142
- authorAccuracy: tfidfLemmaAuthorAccuracy,
143
- confusions: tfidfLemmaConfusions
144
- },
145
- {
146
- model: 'GreBerta',
147
- url: 'https://huggingface.co/bowphs/GreBerta',
148
- dimensionality: '768',
149
- classifier: 'Logistic regression',
150
- status: 'Validation-selected; test evaluated once',
151
- scores: { sentence1: 79.2974591, sentence10: 98.55090386, sentence50: 100, sentence100: 100 },
152
- authorAccuracy: {
153
- 'Aeschylus': { sentence1: 72.66666667, sentence10: 93.33333333, sentence50: 100, sentence100: 100 },
154
- 'Aristophanes': { sentence1: 68, sentence10: 100, sentence50: 100, sentence100: 100 },
155
- 'Athenaeus': { sentence1: 68.5, sentence10: 100, sentence50: 100, sentence100: 100 },
156
- 'Demosthenes': { sentence1: 88.66666667, sentence10: 100, sentence50: 100, sentence100: 100 },
157
- 'Diodorus Siculus': { sentence1: 74, sentence10: 100, sentence50: 100, sentence100: 100 },
158
- 'Dionysius of Halicarnassus': { sentence1: 72, sentence10: 100, sentence50: 100, sentence100: 100 },
159
- 'Herodotus': { sentence1: 96, sentence10: 100, sentence50: 100, sentence100: 100 },
160
- 'Homeric-Iliad': { sentence1: 86.85714286, sentence10: 95.71428571, sentence50: 100, sentence100: 100 },
161
- 'Homeric-Odyssey': { sentence1: 73, sentence10: 96.66666667, sentence50: 100, sentence100: 100 },
162
- 'Josephus': { sentence1: 80, sentence10: 100, sentence50: 100, sentence100: 100 },
163
- 'Plato': { sentence1: 57, sentence10: 90, sentence50: 100, sentence100: 100 },
164
- 'Plutarch': { sentence1: 74, sentence10: 100, sentence50: 100, sentence100: 100 },
165
- 'Polybius': { sentence1: 92.33333333, sentence10: 100, sentence50: 100, sentence100: 100 },
166
- 'Procopius': { sentence1: 84, sentence10: 100, sentence50: 100, sentence100: 100 },
167
- 'Sophocles': { sentence1: 75.33333333, sentence10: 96.66666667, sentence50: 100, sentence100: 100 },
168
- 'Thucydides': { sentence1: 77, sentence10: 100, sentence50: 100, sentence100: 100 },
169
- 'Xenophon': { sentence1: 90.66666667, sentence10: 100, sentence50: 100, sentence100: 100 }
170
- },
171
- confusions: grebertaConfusions
172
- },
173
- {
174
- model: 'GreBerta (fine-tuned)',
175
- url: 'https://github.com/Urdatorn/sphragis_models',
176
- dimensionality: '125,991,185 trainable parameters',
177
- classifier: 'End-to-end softmax classifier',
178
- status: 'Best sentence-1 checkpoint selected by validation macro-F1; larger tasks average constituent logits; test evaluated once',
179
- scores: { sentence1: 85.16662012054707, sentence10: 99.33317135437139, sentence50: 100, sentence100: 100 },
180
- authorAccuracy: grebertaFinetuneAuthorAccuracy,
181
- confusions: grebertaFinetuneConfusions
182
- },
183
- {
184
- model: 'Char 4-gram',
185
- url: 'https://github.com/Urdatorn/sphragis_models',
186
- dimensionality: '156,849',
187
- classifier: 'Logistic regression',
188
- status: 'Validation winner for 1 sentence; test evaluated once',
189
- scores: { sentence1: 78.31423242 },
190
- authorAccuracy: taskAccuracies('sentence1'),
191
- confusions: { sentence1: selectedCharNgramConfusions.sentence1 }
192
- },
193
- {
194
- model: 'Char 3-gram',
195
- url: 'https://github.com/Urdatorn/sphragis_models',
196
- dimensionality: '33,961',
197
- classifier: 'Logistic regression',
198
- status: 'Validation winner for 10 sentences; test evaluated once',
199
- scores: { sentence10: 99.62179426 },
200
- authorAccuracy: taskAccuracies('sentence10'),
201
- confusions: { sentence10: selectedCharNgramConfusions.sentence10 }
202
- },
203
- {
204
- model: 'Char 2-gram',
205
- url: 'https://github.com/Urdatorn/sphragis_models',
206
- dimensionality: '3,960',
207
- classifier: 'Logistic regression',
208
- status: 'Validation winner for 50 and 100 sentences; test evaluated once',
209
- scores: { sentence50: 100, sentence100: 100 },
210
- authorAccuracy: taskAccuracies('sentence50', 'sentence100'),
211
- confusions: { sentence50: selectedCharNgramConfusions.sentence50, sentence100: selectedCharNgramConfusions.sentence100 }
212
- },
213
- {
214
- model: 'GreBerta + Char n-gram',
215
- url: 'https://github.com/Urdatorn/sphragis_models',
216
- dimensionality: '157,617 / 34,729 / 4,728 / 4,728',
217
- classifier: 'Logistic regression',
218
- status: 'Direct concatenation ablation; selected n=4/3/2/2 for 1/10/50/100; test evaluated once',
219
- scores: { sentence1: 80.72533308, sentence10: 98.49736239, sentence50: 100, sentence100: 100 },
220
- authorAccuracy: {
221
- "Aeschylus": {
222
- "sentence1": 66.66666666666667,
223
- "sentence10": 90,
224
- "sentence50": 100,
225
- "sentence100": 100
226
- },
227
- "Aristophanes": {
228
- "sentence1": 70,
229
- "sentence10": 100,
230
- "sentence50": 100,
231
- "sentence100": 100
232
- },
233
- "Athenaeus": {
234
- "sentence1": 71,
235
- "sentence10": 100,
236
- "sentence50": 100,
237
- "sentence100": 100
238
- },
239
- "Demosthenes": {
240
- "sentence1": 90,
241
- "sentence10": 100,
242
- "sentence50": 100,
243
- "sentence100": 100
244
- },
245
- "Diodorus Siculus": {
246
- "sentence1": 76,
247
- "sentence10": 100,
248
- "sentence50": 100,
249
- "sentence100": 100
250
- },
251
- "Dionysius of Halicarnassus": {
252
- "sentence1": 73,
253
- "sentence10": 100,
254
- "sentence50": 100,
255
- "sentence100": 100
256
- },
257
- "Herodotus": {
258
- "sentence1": 96.28571428571429,
259
- "sentence10": 100,
260
- "sentence50": 100,
261
- "sentence100": 100
262
- },
263
- "Homeric-Iliad": {
264
- "sentence1": 86.85714285714286,
265
- "sentence10": 97.14285714285714,
266
- "sentence50": 100,
267
- "sentence100": 100
268
- },
269
- "Homeric-Odyssey": {
270
- "sentence1": 79.33333333333333,
271
- "sentence10": 96.66666666666667,
272
- "sentence50": 100,
273
- "sentence100": 100
274
- },
275
- "Josephus": {
276
- "sentence1": 80,
277
- "sentence10": 100,
278
- "sentence50": 100,
279
- "sentence100": 100
280
- },
281
- "Plato": {
282
- "sentence1": 64,
283
- "sentence10": 90,
284
- "sentence50": 100,
285
- "sentence100": 100
286
- },
287
- "Plutarch": {
288
- "sentence1": 70,
289
- "sentence10": 100,
290
- "sentence50": 100,
291
- "sentence100": 100
292
- },
293
- "Polybius": {
294
- "sentence1": 93,
295
- "sentence10": 100,
296
- "sentence50": 100,
297
- "sentence100": 100
298
- },
299
- "Procopius": {
300
- "sentence1": 88,
301
- "sentence10": 100,
302
- "sentence50": 100,
303
- "sentence100": 100
304
- },
305
- "Sophocles": {
306
- "sentence1": 81.33333333333333,
307
- "sentence10": 100,
308
- "sentence50": 100,
309
- "sentence100": 100
310
- },
311
- "Thucydides": {
312
- "sentence1": 79,
313
- "sentence10": 100,
314
- "sentence50": 100,
315
- "sentence100": 100
316
- },
317
- "Xenophon": {
318
- "sentence1": 90.66666666666667,
319
- "sentence10": 98.33333333333333,
320
- "sentence50": 100,
321
- "sentence100": 100
322
- }
323
- },
324
- confusions: grebertaSelectedCharConfusions
325
- },
326
- {
327
- model: 'Syntax',
328
- url: 'https://huggingface.co/Urdatorn/Syntax2dim-logistic',
329
- dimensionality: '2,161',
330
- classifier: 'Logistic regression',
331
- status: '0.5% inclusion; 5-point Optuna; test evaluated once',
332
- scores: { sentence1: 61.36374141130661, sentence10: 94.47148238648299, sentence50: 92.90107495989849, sentence100: 98.17927170868347 },
333
- authorAccuracy: {
334
- 'Aeschylus': { sentence1: 61.66666667, sentence10: 96.66666667, sentence50: 100, sentence100: 100 },
335
- 'Aristophanes': { sentence1: 71, sentence10: 100, sentence50: 100, sentence100: 100 },
336
- 'Athenaeus': { sentence1: 48.5, sentence10: 75, sentence50: 75, sentence100: 100 },
337
- 'Demosthenes': { sentence1: 53, sentence10: 96.66666667, sentence50: 100, sentence100: 100 },
338
- 'Diodorus Siculus': { sentence1: 58, sentence10: 80, sentence50: 50, sentence100: 100 },
339
- 'Dionysius of Halicarnassus': { sentence1: 45, sentence10: 100, sentence50: 100, sentence100: 100 },
340
- 'Herodotus': { sentence1: 91.14285714, sentence10: 94.28571429, sentence50: 92.85714286, sentence100: 100 },
341
- 'Homeric-Iliad': { sentence1: 79.71428571, sentence10: 81.42857143, sentence50: 71.42857143, sentence100: 71.42857143 },
342
- 'Homeric-Odyssey': { sentence1: 83.83333333, sentence10: 100, sentence50: 100, sentence100: 100 },
343
- 'Josephus': { sentence1: 38, sentence10: 100, sentence50: 100, sentence100: 100 },
344
- 'Plato': { sentence1: 35, sentence10: 90, sentence50: 100, sentence100: 100 },
345
- 'Plutarch': { sentence1: 36, sentence10: 90, sentence50: 100, sentence100: 100 },
346
- 'Polybius': { sentence1: 71.66666667, sentence10: 100, sentence50: 100, sentence100: 100 },
347
- 'Procopius': { sentence1: 71, sentence10: 100, sentence50: 100, sentence100: 100 },
348
- 'Sophocles': { sentence1: 67, sentence10: 100, sentence50: 100, sentence100: 100 },
349
- 'Thucydides': { sentence1: 34, sentence10: 100, sentence50: 100, sentence100: 100 },
350
- 'Xenophon': { sentence1: 77.5, sentence10: 100, sentence50: 100, sentence100: 100 }
351
- },
352
- confusions: gormanD2Confusions
353
- }
354
- ];
355
-
356
- const metreCharAuthorAccuracy: ResultRow['authorAccuracy'] = {
357
- 'Aeschylus': { sentence1: 60, sentence10: 95, sentence50: 100, sentence100: 100 },
358
- 'Apollonius Rhodius': { sentence1: 65.2, sentence10: 100, sentence50: 100, sentence100: 100 },
359
- 'Aratus': { sentence1: 55, sentence10: 100, sentence50: 100, sentence100: 100 },
360
- 'Callimachus': { sentence1: 14, sentence10: 50, sentence50: 50, sentence100: 100 },
361
- 'Hesiod': { sentence1: 38, sentence10: 90, sentence50: 50, sentence100: 100 },
362
- 'Homeric-Iliad': { sentence1: 79.93333333333334, sentence10: 98, sentence50: 100, sentence100: 100 },
363
- 'Homeric-Odyssey': { sentence1: 74.83333333333333, sentence10: 96.66666666666667, sentence50: 100, sentence100: 100 },
364
- 'Lycophron': { sentence1: 74, sentence10: 100, sentence50: 100, sentence100: 100 },
365
- 'Nicander': { sentence1: 47, sentence10: 100, sentence50: 100, sentence100: 100 },
366
- 'Nonnus': { sentence1: 98.0952380952381, sentence10: 100, sentence50: 100, sentence100: 100 },
367
- 'Oppian': { sentence1: 77.4, sentence10: 100, sentence50: 100, sentence100: 100 },
368
- 'Pindar': { sentence1: 75.66666666666667, sentence10: 100, sentence50: 100, sentence100: 100 },
369
- 'Quintus Smyrnaeus': { sentence1: 81.625, sentence10: 100, sentence50: 100, sentence100: 100 },
370
- 'Theocritus': { sentence1: 49, sentence10: 90, sentence50: 100, sentence100: 100 },
371
- 'Theognis': { sentence1: 56, sentence10: 100, sentence50: 100, sentence100: 100 }
372
- };
373
-
374
- function metreCharTaskAccuracies(...tasks: TaskKey[]): ResultRow['authorAccuracy'] {
375
- return Object.fromEntries(Object.entries(metreCharAuthorAccuracy).map(([author, values]) => [
376
- author,
377
- Object.fromEntries(tasks.map((task) => [task, values[task]]))
378
- ]));
379
- }
380
 
381
- export const metreResults: ResultRow[] = [
382
- {
383
- model: 'Majority baseline',
384
- url: 'https://huggingface.co/datasets/Urdatorn/sphragis-metre',
385
- dimensionality: '',
386
- classifier: 'Constant predictor',
387
- status: 'Trivial training-only baseline',
388
- scores: { sentence1: 2.8, sentence10: 2.8, sentence50: 2.8, sentence100: 2.8 },
389
- authorAccuracy: {
390
- 'Aeschylus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
391
- 'Apollonius Rhodius': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
392
- 'Aratus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
393
- 'Callimachus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
394
- 'Hesiod': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
395
- 'Homeric-Iliad': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
396
- 'Homeric-Odyssey': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
397
- 'Lycophron': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
398
- 'Nicander': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
399
- 'Nonnus': { sentence1: 100, sentence10: 100, sentence50: 100, sentence100: 100 },
400
- 'Oppian': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
401
- 'Pindar': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
402
- 'Quintus Smyrnaeus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
403
- 'Theocritus': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 },
404
- 'Theognis': { sentence1: 0, sentence10: 0, sentence50: 0, sentence100: 0 }
405
- },
406
- confusions: metreBaselineConfusions
407
- },
408
- {
409
- model: 'Burrows Delta',
410
- url: 'https://github.com/Urdatorn/sphragis_models',
411
- dimensionality: '100',
412
- classifier: 'Nearest author centroid',
413
- status: 'Validation-selected MFW: 100 for all line counts; test evaluated once',
414
- scores: { sentence1: 0.19235164548123704, sentence10: 6.735397657650662, sentence50: 82.84205185200338, sentence100: 97.03703703703704 },
415
- authorAccuracy: {
416
- 'Aeschylus': { sentence1: 0, sentence10: 5, sentence50: 100, sentence100: 100 },
417
- 'Apollonius Rhodius': { sentence1: 0, sentence10: 0, sentence50: 80, sentence100: 100 },
418
- 'Aratus': { sentence1: 0, sentence10: 20, sentence50: 100, sentence100: 100 },
419
- 'Callimachus': { sentence1: 0, sentence10: 0, sentence50: 50, sentence100: 100 },
420
- 'Hesiod': { sentence1: 0, sentence10: 0, sentence50: 100, sentence100: 100 },
421
- 'Homeric-Iliad': { sentence1: 0, sentence10: 0, sentence50: 96.66666666666667, sentence100: 100 },
422
- 'Homeric-Odyssey': { sentence1: 0, sentence10: 0.8333333333333334, sentence50: 95.83333333333333, sentence100: 100 },
423
- 'Lycophron': { sentence1: 100, sentence10: 100, sentence50: 100, sentence100: 100 },
424
- 'Nicander': { sentence1: 0, sentence10: 40, sentence50: 100, sentence100: 100 },
425
- 'Nonnus': { sentence1: 0.19047619047619047, sentence10: 30.952380952380953, sentence50: 97.61904761904762, sentence100: 100 },
426
- 'Oppian': { sentence1: 0, sentence10: 2, sentence50: 70, sentence100: 80 },
427
- 'Pindar': { sentence1: 0, sentence10: 0, sentence50: 66.66666666666667, sentence100: 100 },
428
- 'Quintus Smyrnaeus': { sentence1: 0, sentence10: 0, sentence50: 93.75, sentence100: 100 },
429
- 'Theocritus': { sentence1: 0, sentence10: 0, sentence50: 50, sentence100: 100 },
430
- 'Theognis': { sentence1: 0, sentence10: 0, sentence50: 100, sentence100: 100 }
431
- },
432
- confusions: metreBurrowsDeltaConfusions
433
- },
434
- {
435
- model: 'Burrows Delta',
436
- url: 'https://github.com/Urdatorn/sphragis_models',
437
- dimensionality: '1,000 / 1,000 / 500 / 100',
438
- classifier: 'Logistic regression',
439
- status: 'Validation-selected MFW and PyTorch learning rate; test evaluated once',
440
- scores: { sentence1: 31.97262098817016, sentence10: 84.81954643694266, sentence50: 100, sentence100: 99.49509116409537 },
441
- authorAccuracy: metreBurrowsLogregAuthorAccuracy,
442
- confusions: metreBurrowsLogregConfusions
443
- },
444
- {
445
- model: 'TF-IDF lemma',
446
- url: 'https://github.com/Urdatorn/sphragis_models',
447
- dimensionality: '51,277',
448
- classifier: 'Logistic regression',
449
- status: 'All train lemmas; 5-point Optuna; validation saturates at 1.0 for 50 and 100 lines; test evaluated once',
450
- scores: { sentence1: 53.74970156883729, sentence10: 94.28061137269169, sentence50: 100, sentence100: 100 },
451
- authorAccuracy: metreTfidfLemmaAuthorAccuracy,
452
- confusions: metreTfidfLemmaConfusions
453
- },
454
- {
455
- model: 'GreBerta',
456
- url: 'https://huggingface.co/bowphs/GreBerta',
457
- dimensionality: '768',
458
- classifier: 'Logistic regression',
459
- status: 'Text-only ablation; validation-selected; test evaluated once',
460
- scores: { sentence1: 60.20776732, sentence10: 95.4408459, sentence50: 99.75095123, sentence100: 100 },
461
- authorAccuracy: {
462
- 'Aeschylus': { sentence1: 80, sentence10: 100, sentence50: 100, sentence100: 100 },
463
- 'Apollonius Rhodius': { sentence1: 49.8, sentence10: 94, sentence50: 100, sentence100: 100 },
464
- 'Aratus': { sentence1: 48, sentence10: 100, sentence50: 100, sentence100: 100 },
465
- 'Callimachus': { sentence1: 20, sentence10: 80, sentence50: 100, sentence100: 100 },
466
- 'Hesiod': { sentence1: 30, sentence10: 80, sentence50: 100, sentence100: 100 },
467
- 'Homeric-Iliad': { sentence1: 70, sentence10: 92, sentence50: 96.66666667, sentence100: 100 },
468
- 'Homeric-Odyssey': { sentence1: 66.5, sentence10: 90.83333333, sentence50: 100, sentence100: 100 },
469
- 'Lycophron': { sentence1: 75, sentence10: 100, sentence50: 100, sentence100: 100 },
470
- 'Nicander': { sentence1: 52, sentence10: 100, sentence50: 100, sentence100: 100 },
471
- 'Nonnus': { sentence1: 91.85714286, sentence10: 100, sentence50: 100, sentence100: 100 },
472
- 'Oppian': { sentence1: 54.6, sentence10: 98, sentence50: 100, sentence100: 100 },
473
- 'Pindar': { sentence1: 70.66666667, sentence10: 100, sentence50: 100, sentence100: 100 },
474
- 'Quintus Smyrnaeus': { sentence1: 65, sentence10: 100, sentence50: 100, sentence100: 100 },
475
- 'Theocritus': { sentence1: 46, sentence10: 90, sentence50: 100, sentence100: 100 },
476
- 'Theognis': { sentence1: 57, sentence10: 90, sentence50: 100, sentence100: 100 }
477
- },
478
- confusions: metreGrebertaConfusions
479
- },
480
- {
481
- model: 'Char 4-gram',
482
- url: 'https://github.com/Urdatorn/sphragis_models',
483
- dimensionality: '136,626',
484
- classifier: 'Logistic regression',
485
- status: 'Validation winner for 1 and 10 lines; test evaluated once',
486
- scores: { sentence1: 68.04833340973087, sentence10: 95.75869285207701 },
487
- authorAccuracy: metreCharTaskAccuracies('sentence1', 'sentence10'),
488
- confusions: { sentence1: metreCharNgramConfusions.sentence1, sentence10: metreCharNgramConfusions.sentence10 }
489
- },
490
- {
491
- model: 'Char 2-gram',
492
- url: 'https://github.com/Urdatorn/sphragis_models',
493
- dimensionality: '4,280',
494
- classifier: 'Logistic regression',
495
- status: 'Parsimonious validation winner for 50 and 100 lines; test evaluated once',
496
- scores: { sentence50: 94.67876039304611, sentence100: 100 },
497
- authorAccuracy: metreCharTaskAccuracies('sentence50', 'sentence100'),
498
- confusions: { sentence50: metreCharNgramConfusions.sentence50, sentence100: metreCharNgramConfusions.sentence100 }
499
- },
500
- {
501
- model: 'Syntax',
502
- url: 'https://github.com/Urdatorn/sphragis_models',
503
- dimensionality: '8,282 / 8,838 / 3,446 / 3,446',
504
- classifier: 'Logistic regression',
505
- status: 'Validation-selected inclusion: count ≥2 / all train / 0.1% / 0.1% for 1/10/50/100 lines; test evaluated once',
506
- scores: { sentence1: 35.20756584968744, sentence10: 84.56604777365553, sentence50: 100, sentence100: 100 },
507
- authorAccuracy: {
508
- "Homeric-Iliad": {
509
- "sentence1": 75.53333333333333,
510
- "sentence10": 93.33333333333333,
511
- "sentence50": 100,
512
- "sentence100": 100
513
- },
514
- "Homeric-Odyssey": {
515
- "sentence1": 54,
516
- "sentence10": 91.66666666666667,
517
- "sentence50": 100,
518
- "sentence100": 100
519
- },
520
- "Hesiod": {
521
- "sentence1": 3,
522
- "sentence10": 80,
523
- "sentence50": 100,
524
- "sentence100": 100
525
- },
526
- "Aeschylus": {
527
- "sentence1": 15,
528
- "sentence10": 70,
529
- "sentence50": 100,
530
- "sentence100": 100
531
- },
532
- "Apollonius Rhodius": {
533
- "sentence1": 25,
534
- "sentence10": 86,
535
- "sentence50": 100,
536
- "sentence100": 100
537
- },
538
- "Aratus": {
539
- "sentence1": 14,
540
- "sentence10": 70,
541
- "sentence50": 100,
542
- "sentence100": 100
543
- },
544
- "Callimachus": {
545
- "sentence1": 4,
546
- "sentence10": 40,
547
- "sentence50": 100,
548
- "sentence100": 100
549
- },
550
- "Nonnus": {
551
- "sentence1": 89.28571428571429,
552
- "sentence10": 100,
553
- "sentence50": 100,
554
- "sentence100": 100
555
- },
556
- "Pindar": {
557
- "sentence1": 28.666666666666668,
558
- "sentence10": 93.33333333333333,
559
- "sentence50": 100,
560
- "sentence100": 100
561
- },
562
- "Lycophron": {
563
- "sentence1": 39,
564
- "sentence10": 90,
565
- "sentence50": 100,
566
- "sentence100": 100
567
- },
568
- "Nicander": {
569
- "sentence1": 13,
570
- "sentence10": 80,
571
- "sentence50": 100,
572
- "sentence100": 100
573
- },
574
- "Oppian": {
575
- "sentence1": 41.4,
576
- "sentence10": 92,
577
- "sentence50": 100,
578
- "sentence100": 100
579
- },
580
- "Quintus Smyrnaeus": {
581
- "sentence1": 54.375,
582
- "sentence10": 93.75,
583
- "sentence50": 100,
584
- "sentence100": 100
585
- },
586
- "Theocritus": {
587
- "sentence1": 21,
588
- "sentence10": 65,
589
- "sentence50": 100,
590
- "sentence100": 100
591
- },
592
- "Theognis": {
593
- "sentence1": 22,
594
- "sentence10": 90,
595
- "sentence50": 100,
596
- "sentence100": 100
597
- }
598
- },
599
- confusions: metreSyntaxConfusions
600
- },
601
- {
602
- model: 'Metrical line features',
603
- url: 'https://github.com/Urdatorn/sphragis_models',
604
- dimensionality: '76',
605
- classifier: 'Logistic regression',
606
- status: 'Every metrical feature observed in atomic training lines; test evaluated once',
607
- scores: { sentence1: 23.526496730432843, sentence10: 57.473164925194865, sentence50: 82.29999850137149, sentence100: 93.03703703703704 },
608
- authorAccuracy: {
609
- "Homeric-Iliad": {
610
- "sentence1": 65.93333333333334,
611
- "sentence10": 78.66666666666666,
612
- "sentence50": 83.33333333333334,
613
- "sentence100": 73.33333333333333
614
- },
615
- "Homeric-Odyssey": {
616
- "sentence1": 5.0,
617
- "sentence10": 19.166666666666668,
618
- "sentence50": 41.66666666666667,
619
- "sentence100": 66.66666666666666
620
- },
621
- "Hesiod": {
622
- "sentence1": 0.0,
623
- "sentence10": 0.0,
624
- "sentence50": 0.0,
625
- "sentence100": 100.0
626
- },
627
- "Aeschylus": {
628
- "sentence1": 50.5,
629
- "sentence10": 90.0,
630
- "sentence50": 100.0,
631
- "sentence100": 100.0
632
- },
633
- "Apollonius Rhodius": {
634
- "sentence1": 0.0,
635
- "sentence10": 38.0,
636
- "sentence50": 90.0,
637
- "sentence100": 80.0
638
- },
639
- "Aratus": {
640
- "sentence1": 0.0,
641
- "sentence10": 10.0,
642
- "sentence50": 100.0,
643
- "sentence100": 100.0
644
- },
645
- "Callimachus": {
646
- "sentence1": 0.0,
647
- "sentence10": 30.0,
648
- "sentence50": 50.0,
649
- "sentence100": 100.0
650
- },
651
- "Nonnus": {
652
- "sentence1": 87.38095238095238,
653
- "sentence10": 99.04761904761905,
654
- "sentence50": 100.0,
655
- "sentence100": 100.0
656
- },
657
- "Pindar": {
658
- "sentence1": 64.0,
659
- "sentence10": 93.33333333333333,
660
- "sentence50": 100.0,
661
- "sentence100": 100.0
662
- },
663
- "Lycophron": {
664
- "sentence1": 73.0,
665
- "sentence10": 100.0,
666
- "sentence50": 100.0,
667
- "sentence100": 100.0
668
- },
669
- "Nicander": {
670
- "sentence1": 0.0,
671
- "sentence10": 40.0,
672
- "sentence50": 100.0,
673
- "sentence100": 100.0
674
- },
675
- "Oppian": {
676
- "sentence1": 0.2,
677
- "sentence10": 60.0,
678
- "sentence50": 90.0,
679
- "sentence100": 100.0
680
- },
681
- "Quintus Smyrnaeus": {
682
- "sentence1": 7.375,
683
- "sentence10": 67.5,
684
- "sentence50": 100.0,
685
- "sentence100": 100.0
686
- },
687
- "Theocritus": {
688
- "sentence1": 0.5,
689
- "sentence10": 20.0,
690
- "sentence50": 75.0,
691
- "sentence100": 100.0
692
- },
693
- "Theognis": {
694
- "sentence1": 28.999999999999996,
695
- "sentence10": 90.0,
696
- "sentence50": 100.0,
697
- "sentence100": 100.0
698
- }
699
- },
700
- confusions: metreLineConfusions
701
- },
702
- {
703
- model: 'Syntax + metrical line features',
704
- url: 'https://github.com/Urdatorn/sphragis_models',
705
- dimensionality: '8,358 / 8,914 / 3,522 / 3,522',
706
- classifier: 'Logistic regression',
707
- status: "Each task's published syntax inventory concatenated with the 76 metrical line features; test evaluated once",
708
- scores: { sentence1: 46.6633271103721, sentence10: 91.32743155497863, sentence50: 100.0, sentence100: 100.0 },
709
- authorAccuracy: {
710
- "Homeric-Iliad": {
711
- "sentence1": 75.86666666666667,
712
- "sentence10": 93.33333333333333,
713
- "sentence50": 100.0,
714
- "sentence100": 100.0
715
- },
716
- "Homeric-Odyssey": {
717
- "sentence1": 54.0,
718
- "sentence10": 91.66666666666666,
719
- "sentence50": 100.0,
720
- "sentence100": 100.0
721
- },
722
- "Hesiod": {
723
- "sentence1": 6.0,
724
- "sentence10": 80.0,
725
- "sentence50": 100.0,
726
- "sentence100": 100.0
727
- },
728
- "Aeschylus": {
729
- "sentence1": 54.50000000000001,
730
- "sentence10": 95.0,
731
- "sentence50": 100.0,
732
- "sentence100": 100.0
733
- },
734
- "Apollonius Rhodius": {
735
- "sentence1": 34.8,
736
- "sentence10": 92.0,
737
- "sentence50": 100.0,
738
- "sentence100": 100.0
739
- },
740
- "Aratus": {
741
- "sentence1": 17.0,
742
- "sentence10": 90.0,
743
- "sentence50": 100.0,
744
- "sentence100": 100.0
745
- },
746
- "Callimachus": {
747
- "sentence1": 8.0,
748
- "sentence10": 60.0,
749
- "sentence50": 100.0,
750
- "sentence100": 100.0
751
- },
752
- "Nonnus": {
753
- "sentence1": 92.14285714285714,
754
- "sentence10": 100.0,
755
- "sentence50": 100.0,
756
- "sentence100": 100.0
757
- },
758
- "Pindar": {
759
- "sentence1": 70.66666666666667,
760
- "sentence10": 96.66666666666667,
761
- "sentence50": 100.0,
762
- "sentence100": 100.0
763
- },
764
- "Lycophron": {
765
- "sentence1": 77.0,
766
- "sentence10": 100.0,
767
- "sentence50": 100.0,
768
- "sentence100": 100.0
769
- },
770
- "Nicander": {
771
- "sentence1": 18.0,
772
- "sentence10": 90.0,
773
- "sentence50": 100.0,
774
- "sentence100": 100.0
775
- },
776
- "Oppian": {
777
- "sentence1": 43.2,
778
- "sentence10": 92.0,
779
- "sentence50": 100.0,
780
- "sentence100": 100.0
781
- },
782
- "Quintus Smyrnaeus": {
783
- "sentence1": 52.75,
784
- "sentence10": 93.75,
785
- "sentence50": 100.0,
786
- "sentence100": 100.0
787
- },
788
- "Theocritus": {
789
- "sentence1": 26.0,
790
- "sentence10": 65.0,
791
- "sentence50": 100.0,
792
- "sentence100": 100.0
793
- },
794
- "Theognis": {
795
- "sentence1": 50.0,
796
- "sentence10": 100.0,
797
- "sentence50": 100.0,
798
- "sentence100": 100.0
799
- }
800
- },
801
- confusions: metreSyntaxPlusMetreConfusions
802
  }
803
  ];
804
 
805
- /**
806
- * Scheme-only baselines from `scripts/audit_leakage.py`.
807
- *
808
- * Sphragis merges seven annotation projects that do not overlap in authors, so
809
- * the annotation scheme is itself a partial answer key. These classifiers see
810
- * annotation markup and no Greek at all: `inventory` is binary presence of each
811
- * tag, feature and relation; `markup` adds non-lexical rates. A model that does
812
- * not clearly beat them has demonstrated source identification rather than
813
- * authorship attribution.
814
- *
815
- * Regenerate with:
816
- * python scripts/audit_leakage.py --data data --metadata metadata
817
- */
818
- export interface SchemeBaseline {
819
- probe: string;
820
- scores: Partial<Record<TaskKey, number>>;
821
- }
822
-
823
- export const schemeOnlyBaselines: SchemeBaseline[] = [
824
- { probe: 'Tag inventory only', scores: { sentence1: 17.95, sentence10: 16.65, sentence50: 28.92, sentence100: 27.27 } },
825
- { probe: 'Non-lexical markup', scores: { sentence1: 34.02, sentence10: 65.98, sentence50: 48.91, sentence100: 41.67 } }
826
  ];
827
 
828
- export const schemeBaselineNote =
829
- 'Sphragis merges seven treebanks that do not overlap in authors, so the annotation scheme partly predicts the author.';
 
 
 
830
 
831
- export function displayScore(score: number | undefined): string {
832
- return score === undefined ? '—' : score.toFixed(2);
 
833
  }
 
1
+ export type TaskKey =
2
+ | 'sentence_1'
3
+ | 'sentence_5'
4
+ | 'sentence_10'
5
+ | 'sentence_50'
6
+ | 'source_held_out_1'
7
+ | 'source_held_out_5'
8
+ | 'source_held_out_10'
9
+ | 'source_held_out_50'
10
+ | 'verse_1'
11
+ | 'verse_5'
12
+ | 'verse_10'
13
+ | 'verse_50';
14
 
15
+ export type SparseConfusion = Record<string, Record<string, number>>;
16
+ export type ConfusionSet = Partial<Record<TaskKey, SparseConfusion>>;
17
+ export type AuthorAccuracy = Record<string, Partial<Record<TaskKey, number>>>;
18
 
19
  export interface ResultRow {
20
  model: string;
 
23
  classifier: string;
24
  status: string;
25
  scores: Partial<Record<TaskKey, number>>;
26
+ authorAccuracy?: AuthorAccuracy;
27
+ confusions?: ConfusionSet;
28
  }
29
 
30
  export interface TaskColumn {
 
35
  color: string;
36
  }
37
 
38
+ export interface TaskGroup {
39
+ label: string;
40
+ columns: TaskColumn[];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
42
 
43
+ const task = (
44
+ key: TaskKey,
45
+ label: string,
46
+ shortLabel: string,
47
+ description: string,
48
+ color: string
49
+ ): TaskColumn => ({ key, label, shortLabel, description, color });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
+ export const sphragisTaskGroups: TaskGroup[] = [
52
+ {
53
+ label: 'Sentence tasks',
54
+ columns: [
55
+ task('sentence_1', '1 sentence', '1 sent.', 'Macro-F1 on the sentence_1 held-out test split.', '#2878b5'),
56
+ task('sentence_5', '5 sentences', '5 sent.', 'Macro-F1 on the sentence_5 held-out test split.', '#4c9bd1'),
57
+ task('sentence_10', '10 sentences', '10 sent.', 'Macro-F1 on the sentence_10 held-out test split.', '#d06732'),
58
+ task('sentence_50', '50 sentences', '50 sent.', 'Macro-F1 on the sentence_50 held-out test split.', '#8c5fbf')
59
+ ]
60
+ },
61
+ {
62
+ label: 'Source-held-out tasks',
63
+ columns: [
64
+ task('source_held_out_1', '1 sentence', '1 sent.', 'Macro-F1 on source_held_out_1: each test source is absent from training for that author.', '#2878b5'),
65
+ task('source_held_out_5', '5 sentences', '5 sent.', 'Macro-F1 on source_held_out_5: each test source is absent from training for that author.', '#4c9bd1'),
66
+ task('source_held_out_10', '10 sentences', '10 sent.', 'Macro-F1 on source_held_out_10: each test source is absent from training for that author.', '#d06732'),
67
+ task('source_held_out_50', '50 sentences', '50 sent.', 'Macro-F1 on source_held_out_50: each test source is absent from training for that author.', '#8c5fbf')
68
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  }
70
  ];
71
 
72
+ export const metreTaskGroups: TaskGroup[] = [
73
+ {
74
+ label: 'Verse tasks',
75
+ columns: [
76
+ task('verse_1', '1 line', '1 line', 'Macro-F1 on the verse_1 held-out test split.', '#2878b5'),
77
+ task('verse_5', '5 lines', '5 lines', 'Macro-F1 on the verse_5 held-out test split.', '#4c9bd1'),
78
+ task('verse_10', '10 lines', '10 lines', 'Macro-F1 on the verse_10 held-out test split.', '#d06732'),
79
+ task('verse_50', '50 lines', '50 lines', 'Macro-F1 on the verse_50 held-out test split.', '#8c5fbf')
80
+ ]
81
+ }
 
 
 
 
 
 
 
 
 
 
 
82
  ];
83
 
84
+ // Add results only after validation-based selection and one-time held-out test
85
+ // evaluation. Derive author accuracies and confusion matrices from the same
86
+ // saved predictions as the reported macro-F1 score.
87
+ export const sphragisResults: ResultRow[] = [];
88
+ export const metreResults: ResultRow[] = [];
89
 
90
+ export function displayScore(value: number | undefined): string {
91
+ if (value === undefined) return '—';
92
+ return value.toFixed(2);
93
  }
src/lib/grebertaFinetuneDiagnostics.ts DELETED
@@ -1,47 +0,0 @@
1
- import type { ConfusionSet } from './confusions';
2
- import type { ResultRow } from './data';
3
-
4
- export const grebertaFinetuneAuthorAccuracy: ResultRow['authorAccuracy'] = {
5
- Xenophon:{sentence1:91.66666666666666,sentence10:100,sentence50:100,sentence100:100},
6
- Demosthenes:{sentence1:91.33333333333333,sentence10:100,sentence50:100,sentence100:100},
7
- 'Homeric-Iliad':{sentence1:90,sentence10:100,sentence50:100,sentence100:100},
8
- 'Homeric-Odyssey':{sentence1:80.5,sentence10:95,sentence50:100,sentence100:100},
9
- Athenaeus:{sentence1:75.5,sentence10:100,sentence50:100,sentence100:100},
10
- Sophocles:{sentence1:85.66666666666667,sentence10:100,sentence50:100,sentence100:100},
11
- Herodotus:{sentence1:98.42857142857143,sentence10:100,sentence50:100,sentence100:100},
12
- 'Diodorus Siculus':{sentence1:92,sentence10:100,sentence50:100,sentence100:100},
13
- Josephus:{sentence1:81,sentence10:100,sentence50:100,sentence100:100},
14
- 'Dionysius of Halicarnassus':{sentence1:83,sentence10:100,sentence50:100,sentence100:100},
15
- Plutarch:{sentence1:79,sentence10:100,sentence50:100,sentence100:100},
16
- Aeschylus:{sentence1:68.66666666666667,sentence10:93.33333333333333,sentence50:100,sentence100:100},
17
- Polybius:{sentence1:94.33333333333334,sentence10:100,sentence50:100,sentence100:100},
18
- Procopius:{sentence1:89,sentence10:100,sentence50:100,sentence100:100},
19
- Aristophanes:{sentence1:80,sentence10:100,sentence50:100,sentence100:100},
20
- Thucydides:{sentence1:85,sentence10:100,sentence50:100,sentence100:100},
21
- Plato:{sentence1:74,sentence10:100,sentence50:100,sentence100:100}
22
- };
23
-
24
- export const grebertaFinetuneConfusions: ConfusionSet = {
25
- sentence1:{
26
- Xenophon:{Xenophon:550,'Diodorus Siculus':4,Athenaeus:6,Plato:14,Aristophanes:7,Demosthenes:7,Plutarch:4,Thucydides:4,Procopius:1,Aeschylus:1,'Dionysius of Halicarnassus':1,Polybius:1},
27
- Demosthenes:{Demosthenes:274,Xenophon:14,Aristophanes:5,Sophocles:1,Polybius:3,Plato:1,Athenaeus:2},
28
- 'Homeric-Iliad':{'Homeric-Iliad':630,'Homeric-Odyssey':65,Athenaeus:1,Sophocles:2,Aeschylus:2},
29
- 'Homeric-Odyssey':{'Homeric-Odyssey':483,'Homeric-Iliad':112,Xenophon:1,Aeschylus:1,Herodotus:2,Plato:1},
30
- Athenaeus:{Athenaeus:151,Demosthenes:4,Aeschylus:1,Xenophon:13,Aristophanes:4,Plutarch:7,Plato:3,'Homeric-Odyssey':2,'Diodorus Siculus':4,'Dionysius of Halicarnassus':2,Sophocles:4,Polybius:3,Herodotus:1,Josephus:1},
31
- Sophocles:{Sophocles:257,Demosthenes:3,Athenaeus:3,'Homeric-Iliad':4,Xenophon:1,Aeschylus:26,Plato:3,Polybius:1,Herodotus:2},
32
- Herodotus:{Herodotus:689,Xenophon:4,'Homeric-Odyssey':1,'Dionysius of Halicarnassus':1,Athenaeus:2,Sophocles:1,Procopius:1,'Homeric-Iliad':1},
33
- 'Diodorus Siculus':{'Diodorus Siculus':92,Polybius:5,Athenaeus:1,Plutarch:2},
34
- Josephus:{Josephus:81,Polybius:4,'Dionysius of Halicarnassus':6,Plutarch:3,Demosthenes:2,Athenaeus:3,Herodotus:1},
35
- 'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':83,Plato:1,Plutarch:3,Polybius:3,Demosthenes:2,Herodotus:1,'Diodorus Siculus':1,Athenaeus:4,Thucydides:1,Xenophon:1},
36
- Plutarch:{Plutarch:79,'Dionysius of Halicarnassus':3,Athenaeus:5,Xenophon:3,'Diodorus Siculus':3,Sophocles:1,Plato:2,Herodotus:1,Polybius:1,Demosthenes:1,'Homeric-Odyssey':1},
37
- Aeschylus:{Aeschylus:206,Sophocles:89,'Homeric-Iliad':1,Aristophanes:1,'Homeric-Odyssey':1,Athenaeus:2},
38
- Polybius:{Polybius:283,Demosthenes:2,'Diodorus Siculus':8,'Dionysius of Halicarnassus':1,Josephus:3,Athenaeus:2,Plutarch:1},
39
- Procopius:{Procopius:89,'Diodorus Siculus':1,Josephus:2,Xenophon:5,Thucydides:1,Athenaeus:1,Herodotus:1},
40
- Aristophanes:{Aristophanes:80,Demosthenes:7,Sophocles:7,Xenophon:3,Athenaeus:1,Aeschylus:1,'Homeric-Odyssey':1},
41
- Thucydides:{Thucydides:85,Aeschylus:1,Xenophon:8,'Dionysius of Halicarnassus':1,Procopius:2,'Diodorus Siculus':1,Polybius:1,Athenaeus:1},
42
- Plato:{Plato:74,Aeschylus:1,Athenaeus:1,Xenophon:19,Sophocles:3,Aristophanes:1,Demosthenes:1}
43
- },
44
- sentence10:{Xenophon:{Xenophon:60},Demosthenes:{Demosthenes:30},'Homeric-Iliad':{'Homeric-Iliad':70},'Homeric-Odyssey':{'Homeric-Odyssey':57,'Homeric-Iliad':3},Athenaeus:{Athenaeus:20},Sophocles:{Sophocles:30},Herodotus:{Herodotus:70},'Diodorus Siculus':{'Diodorus Siculus':10},Josephus:{Josephus:10},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':10},Plutarch:{Plutarch:10},Aeschylus:{Aeschylus:28,Sophocles:2},Polybius:{Polybius:30},Procopius:{Procopius:10},Aristophanes:{Aristophanes:10},Thucydides:{Thucydides:10},Plato:{Plato:10}},
45
- sentence50:{Xenophon:{Xenophon:12},Demosthenes:{Demosthenes:6},'Homeric-Iliad':{'Homeric-Iliad':14},'Homeric-Odyssey':{'Homeric-Odyssey':12},Athenaeus:{Athenaeus:4},Sophocles:{Sophocles:6},Herodotus:{Herodotus:14},'Diodorus Siculus':{'Diodorus Siculus':2},Josephus:{Josephus:2},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':2},Plutarch:{Plutarch:2},Aeschylus:{Aeschylus:6},Polybius:{Polybius:6},Procopius:{Procopius:2},Aristophanes:{Aristophanes:2},Thucydides:{Thucydides:2},Plato:{Plato:2}},
46
- sentence100:{Xenophon:{Xenophon:6},Demosthenes:{Demosthenes:3},'Homeric-Iliad':{'Homeric-Iliad':7},'Homeric-Odyssey':{'Homeric-Odyssey':6},Athenaeus:{Athenaeus:2},Sophocles:{Sophocles:3},Herodotus:{Herodotus:7},'Diodorus Siculus':{'Diodorus Siculus':1},Josephus:{Josephus:1},'Dionysius of Halicarnassus':{'Dionysius of Halicarnassus':1},Plutarch:{Plutarch:1},Aeschylus:{Aeschylus:3},Polybius:{Polybius:3},Procopius:{Procopius:1},Aristophanes:{Aristophanes:1},Thucydides:{Thucydides:1},Plato:{Plato:1}}
47
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/lib/tfidfDiagnostics.ts DELETED
@@ -1,10 +0,0 @@
1
- import type { ConfusionSet } from './confusions';
2
- import type { ResultRow } from './data';
3
-
4
- export const tfidfLemmaConfusions: ConfusionSet = {"sentence1":{"Aeschylus":{"Aeschylus":198,"Aristophanes":7,"Diodorus Siculus":1,"Herodotus":5,"Homeric-Iliad":12,"Homeric-Odyssey":7,"Plato":1,"Sophocles":61,"Thucydides":1,"Xenophon":7},"Aristophanes":{"Aeschylus":4,"Aristophanes":51,"Athenaeus":4,"Demosthenes":4,"Herodotus":3,"Homeric-Iliad":2,"Homeric-Odyssey":3,"Sophocles":21,"Xenophon":8},"Athenaeus":{"Aristophanes":6,"Athenaeus":124,"Demosthenes":8,"Herodotus":11,"Homeric-Iliad":3,"Homeric-Odyssey":5,"Josephus":1,"Plutarch":13,"Polybius":4,"Sophocles":5,"Thucydides":1,"Xenophon":19},"Demosthenes":{"Aeschylus":1,"Aristophanes":7,"Athenaeus":5,"Demosthenes":226,"Herodotus":3,"Homeric-Iliad":1,"Josephus":1,"Plato":8,"Plutarch":6,"Polybius":4,"Sophocles":5,"Xenophon":33},"Diodorus Siculus":{"Demosthenes":2,"Diodorus Siculus":79,"Herodotus":2,"Plutarch":1,"Polybius":8,"Procopius":1,"Thucydides":1,"Xenophon":6},"Dionysius of Halicarnassus":{"Athenaeus":2,"Demosthenes":1,"Dionysius of Halicarnassus":78,"Herodotus":2,"Plutarch":1,"Polybius":5,"Thucydides":2,"Xenophon":9},"Herodotus":{"Aeschylus":3,"Aristophanes":1,"Athenaeus":4,"Demosthenes":2,"Diodorus Siculus":1,"Herodotus":647,"Homeric-Iliad":7,"Josephus":1,"Plato":1,"Polybius":1,"Procopius":2,"Sophocles":10,"Xenophon":20},"Homeric-Iliad":{"Aeschylus":5,"Aristophanes":4,"Homeric-Iliad":583,"Homeric-Odyssey":92,"Sophocles":11,"Xenophon":5},"Homeric-Odyssey":{"Aeschylus":7,"Athenaeus":4,"Herodotus":1,"Homeric-Iliad":120,"Homeric-Odyssey":461,"Sophocles":5,"Xenophon":2},"Josephus":{"Athenaeus":3,"Demosthenes":4,"Dionysius of Halicarnassus":3,"Herodotus":3,"Josephus":69,"Plutarch":5,"Polybius":8,"Thucydides":1,"Xenophon":4},"Plato":{"Aristophanes":7,"Athenaeus":4,"Demosthenes":13,"Herodotus":3,"Homeric-Odyssey":1,"Plato":52,"Polybius":1,"Sophocles":4,"Xenophon":15},"Plutarch":{"Aristophanes":2,"Athenaeus":7,"Demosthenes":5,"Dionysius of Halicarnassus":2,"Herodotus":5,"Homeric-Iliad":1,"Plato":2,"Plutarch":61,"Polybius":2,"Thucydides":1,"Xenophon":12},"Polybius":{"Athenaeus":3,"Demosthenes":6,"Diodorus Siculus":1,"Dionysius of Halicarnassus":1,"Herodotus":1,"Josephus":2,"Plato":1,"Plutarch":2,"Polybius":276,"Thucydides":1,"Xenophon":6},"Procopius":{"Athenaeus":3,"Demosthenes":1,"Diodorus Siculus":1,"Herodotus":3,"Homeric-Iliad":1,"Plutarch":1,"Procopius":87,"Xenophon":3},"Sophocles":{"Aeschylus":34,"Aristophanes":11,"Athenaeus":2,"Demosthenes":2,"Herodotus":5,"Homeric-Iliad":12,"Homeric-Odyssey":8,"Plato":3,"Procopius":2,"Sophocles":215,"Thucydides":1,"Xenophon":5},"Thucydides":{"Demosthenes":3,"Diodorus Siculus":1,"Herodotus":7,"Plutarch":1,"Polybius":5,"Procopius":1,"Sophocles":1,"Thucydides":63,"Xenophon":18},"Xenophon":{"Aeschylus":7,"Aristophanes":8,"Athenaeus":6,"Demosthenes":24,"Dionysius of Halicarnassus":2,"Herodotus":13,"Homeric-Iliad":3,"Homeric-Odyssey":1,"Josephus":1,"Plato":8,"Plutarch":5,"Polybius":13,"Sophocles":3,"Thucydides":6,"Xenophon":500}},"sentence10":{"Aeschylus":{"Aeschylus":29,"Sophocles":1},"Aristophanes":{"Aristophanes":10},"Athenaeus":{"Athenaeus":20},"Demosthenes":{"Demosthenes":30},"Diodorus Siculus":{"Diodorus Siculus":10},"Dionysius of Halicarnassus":{"Dionysius of Halicarnassus":10},"Herodotus":{"Herodotus":70},"Homeric-Iliad":{"Homeric-Iliad":69,"Homeric-Odyssey":1},"Homeric-Odyssey":{"Homeric-Odyssey":60},"Josephus":{"Josephus":10},"Plato":{"Plato":10},"Plutarch":{"Plutarch":10},"Polybius":{"Polybius":30},"Procopius":{"Procopius":10},"Sophocles":{"Sophocles":30},"Thucydides":{"Thucydides":10},"Xenophon":{"Xenophon":60}},"sentence50":{"Aeschylus":{"Aeschylus":6},"Aristophanes":{"Aristophanes":2},"Athenaeus":{"Athenaeus":4},"Demosthenes":{"Demosthenes":6},"Diodorus Siculus":{"Diodorus Siculus":2},"Dionysius of Halicarnassus":{"Dionysius of Halicarnassus":2},"Herodotus":{"Herodotus":14},"Homeric-Iliad":{"Homeric-Iliad":14},"Homeric-Odyssey":{"Homeric-Odyssey":12},"Josephus":{"Josephus":2},"Plato":{"Plato":2},"Plutarch":{"Plutarch":2},"Polybius":{"Polybius":6},"Procopius":{"Procopius":2},"Sophocles":{"Sophocles":6},"Thucydides":{"Thucydides":2},"Xenophon":{"Xenophon":12}},"sentence100":{"Aeschylus":{"Aeschylus":3},"Aristophanes":{"Aristophanes":1},"Athenaeus":{"Athenaeus":2},"Demosthenes":{"Demosthenes":3},"Diodorus Siculus":{"Diodorus Siculus":1},"Dionysius of Halicarnassus":{"Dionysius of Halicarnassus":1},"Herodotus":{"Herodotus":7},"Homeric-Iliad":{"Homeric-Iliad":7},"Homeric-Odyssey":{"Homeric-Odyssey":6},"Josephus":{"Josephus":1},"Plato":{"Plato":1},"Plutarch":{"Plutarch":1},"Polybius":{"Polybius":3},"Procopius":{"Procopius":1},"Sophocles":{"Sophocles":3},"Thucydides":{"Thucydides":1},"Xenophon":{"Xenophon":6}}};
5
-
6
- export const tfidfLemmaAuthorAccuracy: ResultRow['authorAccuracy'] = {"Aeschylus":{"sentence1":66.0,"sentence10":96.66666666666667,"sentence50":100.0,"sentence100":100.0},"Aristophanes":{"sentence1":51.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Athenaeus":{"sentence1":62.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Demosthenes":{"sentence1":75.33333333333333,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Diodorus Siculus":{"sentence1":79.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Dionysius of Halicarnassus":{"sentence1":78.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Herodotus":{"sentence1":92.42857142857143,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Homeric-Iliad":{"sentence1":83.28571428571429,"sentence10":98.57142857142857,"sentence50":100.0,"sentence100":100.0},"Homeric-Odyssey":{"sentence1":76.83333333333333,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Josephus":{"sentence1":69.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Plato":{"sentence1":52.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Plutarch":{"sentence1":61.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Polybius":{"sentence1":92.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Procopius":{"sentence1":87.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Sophocles":{"sentence1":71.66666666666667,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Thucydides":{"sentence1":63.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Xenophon":{"sentence1":83.33333333333333,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0}};
7
-
8
- export const metreTfidfLemmaConfusions: ConfusionSet = {"sentence1":{"Aeschylus":{"Aeschylus":104,"Apollonius Rhodius":15,"Aratus":1,"Callimachus":1,"Homeric-Iliad":9,"Homeric-Odyssey":9,"Lycophron":5,"Nicander":2,"Nonnus":17,"Oppian":6,"Pindar":16,"Quintus Smyrnaeus":7,"Theocritus":4,"Theognis":4},"Apollonius Rhodius":{"Aeschylus":4,"Apollonius Rhodius":261,"Aratus":5,"Callimachus":4,"Hesiod":1,"Homeric-Iliad":26,"Homeric-Odyssey":30,"Lycophron":2,"Nicander":3,"Nonnus":40,"Oppian":34,"Pindar":12,"Quintus Smyrnaeus":67,"Theocritus":9,"Theognis":2},"Aratus":{"Apollonius Rhodius":6,"Aratus":37,"Callimachus":1,"Hesiod":3,"Homeric-Iliad":7,"Homeric-Odyssey":3,"Nicander":1,"Nonnus":13,"Oppian":15,"Pindar":4,"Quintus Smyrnaeus":7,"Theocritus":3},"Callimachus":{"Aeschylus":6,"Apollonius Rhodius":3,"Aratus":1,"Callimachus":13,"Hesiod":2,"Homeric-Iliad":4,"Homeric-Odyssey":10,"Lycophron":1,"Nicander":1,"Nonnus":28,"Oppian":8,"Pindar":3,"Quintus Smyrnaeus":8,"Theocritus":11,"Theognis":1},"Hesiod":{"Apollonius Rhodius":3,"Callimachus":1,"Hesiod":29,"Homeric-Iliad":19,"Homeric-Odyssey":18,"Lycophron":2,"Nicander":2,"Nonnus":3,"Oppian":4,"Pindar":2,"Quintus Smyrnaeus":11,"Theocritus":3,"Theognis":3},"Homeric-Iliad":{"Aeschylus":1,"Apollonius Rhodius":6,"Aratus":2,"Callimachus":1,"Hesiod":9,"Homeric-Iliad":1153,"Homeric-Odyssey":268,"Nicander":2,"Nonnus":16,"Oppian":6,"Pindar":4,"Quintus Smyrnaeus":30,"Theocritus":2},"Homeric-Odyssey":{"Aeschylus":1,"Apollonius Rhodius":15,"Aratus":2,"Callimachus":1,"Hesiod":10,"Homeric-Iliad":291,"Homeric-Odyssey":840,"Lycophron":1,"Nonnus":9,"Oppian":6,"Pindar":2,"Quintus Smyrnaeus":18,"Theocritus":2,"Theognis":2},"Lycophron":{"Aeschylus":5,"Apollonius Rhodius":6,"Callimachus":3,"Hesiod":3,"Homeric-Iliad":5,"Homeric-Odyssey":3,"Lycophron":37,"Nicander":1,"Nonnus":20,"Oppian":4,"Pindar":8,"Quintus Smyrnaeus":3,"Theocritus":1,"Theognis":1},"Nicander":{"Apollonius Rhodius":9,"Aratus":2,"Callimachus":2,"Homeric-Iliad":3,"Homeric-Odyssey":2,"Lycophron":1,"Nicander":38,"Nonnus":16,"Oppian":15,"Pindar":1,"Quintus Smyrnaeus":9,"Theocritus":2},"Nonnus":{"Aeschylus":2,"Apollonius Rhodius":15,"Aratus":2,"Callimachus":8,"Hesiod":1,"Homeric-Iliad":22,"Homeric-Odyssey":7,"Lycophron":3,"Nicander":2,"Nonnus":1977,"Oppian":29,"Pindar":10,"Quintus Smyrnaeus":19,"Theocritus":3},"Oppian":{"Aeschylus":3,"Apollonius Rhodius":26,"Aratus":9,"Callimachus":3,"Hesiod":2,"Homeric-Iliad":27,"Homeric-Odyssey":15,"Lycophron":4,"Nicander":4,"Nonnus":71,"Oppian":288,"Pindar":6,"Quintus Smyrnaeus":35,"Theocritus":6,"Theognis":1},"Pindar":{"Aeschylus":16,"Apollonius Rhodius":20,"Aratus":1,"Callimachus":7,"Homeric-Iliad":16,"Homeric-Odyssey":8,"Lycophron":2,"Nicander":2,"Nonnus":35,"Oppian":14,"Pindar":148,"Quintus Smyrnaeus":12,"Theocritus":12,"Theognis":7},"Quintus Smyrnaeus":{"Aeschylus":2,"Apollonius Rhodius":51,"Callimachus":2,"Hesiod":5,"Homeric-Iliad":65,"Homeric-Odyssey":23,"Nicander":2,"Nonnus":44,"Oppian":34,"Pindar":2,"Quintus Smyrnaeus":562,"Theocritus":5,"Theognis":3},"Theocritus":{"Aeschylus":4,"Apollonius Rhodius":18,"Aratus":4,"Callimachus":6,"Hesiod":4,"Homeric-Iliad":11,"Homeric-Odyssey":10,"Lycophron":1,"Nicander":1,"Nonnus":24,"Oppian":12,"Pindar":18,"Quintus Smyrnaeus":17,"Theocritus":68,"Theognis":2},"Theognis":{"Aeschylus":5,"Apollonius Rhodius":3,"Hesiod":3,"Homeric-Iliad":4,"Homeric-Odyssey":5,"Nonnus":6,"Oppian":7,"Pindar":10,"Quintus Smyrnaeus":8,"Theocritus":7,"Theognis":42}},"sentence10":{"Aeschylus":{"Aeschylus":19,"Theocritus":1},"Apollonius Rhodius":{"Apollonius Rhodius":50},"Aratus":{"Aratus":10},"Callimachus":{"Callimachus":6,"Homeric-Odyssey":1,"Nonnus":1,"Theocritus":2},"Hesiod":{"Hesiod":9,"Homeric-Odyssey":1},"Homeric-Iliad":{"Homeric-Iliad":144,"Homeric-Odyssey":6},"Homeric-Odyssey":{"Homeric-Iliad":6,"Homeric-Odyssey":114},"Lycophron":{"Aeschylus":1,"Lycophron":9},"Nicander":{"Apollonius Rhodius":1,"Nicander":8,"Oppian":1},"Nonnus":{"Nonnus":210},"Oppian":{"Oppian":50},"Pindar":{"Pindar":30},"Quintus Smyrnaeus":{"Quintus Smyrnaeus":80},"Theocritus":{"Apollonius Rhodius":1,"Oppian":1,"Pindar":1,"Quintus Smyrnaeus":1,"Theocritus":16},"Theognis":{"Theognis":10}},"sentence50":{"Aeschylus":{"Aeschylus":4},"Apollonius Rhodius":{"Apollonius Rhodius":10},"Aratus":{"Aratus":2},"Callimachus":{"Callimachus":2},"Hesiod":{"Hesiod":2},"Homeric-Iliad":{"Homeric-Iliad":30},"Homeric-Odyssey":{"Homeric-Odyssey":24},"Lycophron":{"Lycophron":2},"Nicander":{"Nicander":2},"Nonnus":{"Nonnus":42},"Oppian":{"Oppian":10},"Pindar":{"Pindar":6},"Quintus Smyrnaeus":{"Quintus Smyrnaeus":16},"Theocritus":{"Theocritus":4},"Theognis":{"Theognis":2}},"sentence100":{"Aeschylus":{"Aeschylus":2},"Apollonius Rhodius":{"Apollonius Rhodius":5},"Aratus":{"Aratus":1},"Callimachus":{"Callimachus":1},"Hesiod":{"Hesiod":1},"Homeric-Iliad":{"Homeric-Iliad":15},"Homeric-Odyssey":{"Homeric-Odyssey":12},"Lycophron":{"Lycophron":1},"Nicander":{"Nicander":1},"Nonnus":{"Nonnus":21},"Oppian":{"Oppian":5},"Pindar":{"Pindar":3},"Quintus Smyrnaeus":{"Quintus Smyrnaeus":8},"Theocritus":{"Theocritus":2},"Theognis":{"Theognis":1}}};
9
-
10
- export const metreTfidfLemmaAuthorAccuracy: ResultRow['authorAccuracy'] = {"Aeschylus":{"sentence1":52.0,"sentence10":95.0,"sentence50":100.0,"sentence100":100.0},"Apollonius Rhodius":{"sentence1":52.2,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Aratus":{"sentence1":37.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Callimachus":{"sentence1":13.0,"sentence10":60.0,"sentence50":100.0,"sentence100":100.0},"Hesiod":{"sentence1":29.0,"sentence10":90.0,"sentence50":100.0,"sentence100":100.0},"Homeric-Iliad":{"sentence1":76.86666666666666,"sentence10":96.0,"sentence50":100.0,"sentence100":100.0},"Homeric-Odyssey":{"sentence1":70.0,"sentence10":95.0,"sentence50":100.0,"sentence100":100.0},"Lycophron":{"sentence1":37.0,"sentence10":90.0,"sentence50":100.0,"sentence100":100.0},"Nicander":{"sentence1":38.0,"sentence10":80.0,"sentence50":100.0,"sentence100":100.0},"Nonnus":{"sentence1":94.14285714285714,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Oppian":{"sentence1":57.6,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Pindar":{"sentence1":49.333333333333336,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Quintus Smyrnaeus":{"sentence1":70.25,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0},"Theocritus":{"sentence1":34.0,"sentence10":80.0,"sentence50":100.0,"sentence100":100.0},"Theognis":{"sentence1":42.0,"sentence10":100.0,"sentence50":100.0,"sentence100":100.0}};
 
 
 
 
 
 
 
 
 
 
 
src/routes/+page.svelte CHANGED
@@ -1,6 +1,6 @@
1
  <script lang="ts">
2
  import LeaderboardTable from '$lib/components/LeaderboardTable.svelte';
3
- import { metreResults, results } from '$lib/data';
4
 
5
  let dark = $state(false);
6
 
@@ -12,7 +12,7 @@
12
 
13
  <svelte:head>
14
  <title>Sphragis benchmark leaderboard</title>
15
- <meta name="description" content="Reproducible Ancient Greek authorship-attribution benchmark results across four sentence chunk sizes." />
16
  </svelte:head>
17
 
18
  <header class="topbar">
@@ -27,6 +27,6 @@
27
  </header>
28
 
29
  <main>
30
- <LeaderboardTable title="Sphragis: Human-annotated CoNLL-U" headingId="sphragis-heading" rows={results} unit="sentence" />
31
- <LeaderboardTable title="Sphragis-Metre: Human-scanned verse + machine-augmented CoNLL-U" headingId="sphragis-metre-heading" rows={metreResults} unit="line" />
32
  </main>
 
1
  <script lang="ts">
2
  import LeaderboardTable from '$lib/components/LeaderboardTable.svelte';
3
+ import { metreResults, metreTaskGroups, sphragisResults, sphragisTaskGroups } from '$lib/data';
4
 
5
  let dark = $state(false);
6
 
 
12
 
13
  <svelte:head>
14
  <title>Sphragis benchmark leaderboard</title>
15
+ <meta name="description" content="Reproducible Ancient Greek authorship-attribution results for the current Sphragis and Sphragis-Metre tasks." />
16
  </svelte:head>
17
 
18
  <header class="topbar">
 
27
  </header>
28
 
29
  <main>
30
+ <LeaderboardTable title="Sphragis" headingId="sphragis-heading" rows={sphragisResults} taskGroups={sphragisTaskGroups} />
31
+ <LeaderboardTable title="Sphragis-Metre" headingId="sphragis-metre-heading" rows={metreResults} taskGroups={metreTaskGroups} />
32
  </main>