From a74e3cb27c355d56bf7ac62632a2f1ad299dcef5 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Fri, 18 Sep 2026 16:14:47 -0700 Subject: [PATCH] native: add two-laptop line score and update CultureHub bridge handoff --- fedac/native/docs/spatial-rehearsal.md | 12 +++++++ fedac/native/docs/will-spatial-audio.md | 42 ++++++++++++------------ fedac/native/scores/sine-duet.nsscore | 1 + fedac/native/tools/compose-sine-line.mjs | 4 ++- 4 files changed, 37 insertions(+), 22 deletions(-) create mode 100644 fedac/native/scores/sine-duet.nsscore diff --git a/fedac/native/docs/spatial-rehearsal.md b/fedac/native/docs/spatial-rehearsal.md index 89f1c48ad1..24e0bfa4fc 100644 --- a/fedac/native/docs/spatial-rehearsal.md +++ b/fedac/native/docs/spatial-rehearsal.md @@ -35,3 +35,15 @@ Validation: `node --test fedac/native/tools/spatial-rehearsal.test.mjs`. - Added shared physical maps, battery, speaker-driven brightness and expired/offline connectivity. - Expanded to six seats, corrected line order to 1 → 2 → 3 → 4 → 5 → 6, added LAN identity and focused brightness. Seat 5 subsequently lost connectivity at 2% battery; kept its place and continued with the remaining five. - Included rehearsal assets in the next ACOS build and published the code checkpoint. No OTA release triggered. + +## Two-laptop rehearsal on CULTUREHUB LA + +The current line uses seat 1 at 192.168.1.236 on the left and seat 2 at 192.168.1.237 on the right. The bridge is now http://192.168.1.235:8787 and follows these two hosts. Generate a separate score without overwriting the six-seat version: + +```sh +node fedac/native/tools/compose-sine-line.mjs 1,2 sine-duet +node fedac/native/tools/spatial-rehearsal.mjs deploy --score sine-duet 192.168.1.236 192.168.1.237 +node fedac/native/tools/spatial-rehearsal.mjs cue 192.168.1.236 192.168.1.237 +``` + +This version lasts 40.32 seconds with 48 notes and 24 left-to-right passes. Both devices confirmed speaker output with microphones closed. diff --git a/fedac/native/docs/will-spatial-audio.md b/fedac/native/docs/will-spatial-audio.md index bcd5d3104b..7acbb15b24 100644 --- a/fedac/native/docs/will-spatial-audio.md +++ b/fedac/native/docs/will-spatial-audio.md @@ -1,27 +1,25 @@ # CultureHub spatial audio — Will’s Codex handoff -Build a read-only web UI for the ACOS spatial audio fleet on this Wi-Fi. Six seats form a physical line from left to right: **1 → 2 → 3 → 4 → 5 → 6**. Seat 1 has returned and seat 6 is newly added. Seat 5 subsequently went offline after reporting 2% battery; retain its place and use live connectivity to determine whether it has returned. Each laptop synthesizes its own speaker output and shows the shared spatial score. Microphones must stay closed; do not request microphone access, record audio, or issue device commands. +Build a read-only web UI for the current two-machine ACOS rehearsal on **CULTUREHUB LA** Wi-Fi. **Seat 1 is left; seat 2 is right.** Both are online and synthesize their own speaker output from the shared spatial score. Microphones must stay closed; do not request microphone access, record audio, or issue device commands. -The rehearsal host provides a read-only bridge at **`http://192.168.2.79:8787`**. Start with `GET /api/seats` or subscribe to `/events`; no source checkout or credentials are needed to consume the running bridge. Addresses are local to this Wi-Fi. +The rehearsal host provides a read-only bridge at **`http://192.168.1.235:8787`**. Start with `GET /api/seats` or subscribe to `/events`; no source checkout or credentials are needed to consume the running bridge. Addresses are local to this Wi-Fi. ## Connect Current rehearsal addresses, September 18, 2026: -| Screen label | JSON `seat` | HTTP base | -| --- | --- | --- | -| Seat 1 | 0 | `http://192.168.2.81` | -| Seat 2 | 1 | `http://192.168.2.82` | -| Seat 3 | 2 | `http://192.168.2.83` | -| Seat 4 | 3 | `http://192.168.2.84` | -| Seat 5 | 4 | `http://192.168.2.85` | -| Seat 6 | 5 | `http://192.168.2.87` | +| Screen label | JSON `seat` | Name | HTTP base | +| --- | --- | --- | --- | +| Seat 1 — left | 0 | `ac-device` | `http://192.168.1.236` | +| Seat 2 — right | 1 | `ac5` | `http://192.168.1.237` | -Use explicit IPs; some devices share the hostname `ac-device`. Read each snapshot’s `machineName` and `ip`, also shown on its screen. DHCP addresses can change; verify the runtime identity and seat assignment whenever connecting. Preserve seat numbers when a device goes offline; do not renumber the remaining laptops. +Both currently run build `dusted-mantella-tideline`. Only these two machines are in the active bridge and presence feed. + +Use explicit IPs. Read each snapshot’s `machineName` and `ip`, also shown on its screen. DHCP addresses can change; verify the runtime identity and seat assignment whenever connecting. Preserve seat numbers when a device goes offline; do not renumber the remaining laptops. ```sh -curl --fail --max-time 2 http://192.168.2.82/status -curl --fail --max-time 2 http://192.168.2.82/pieces/spatial-rehearsal-status.json +curl --fail --max-time 2 http://192.168.1.237/status +curl --fail --max-time 2 http://192.168.1.237/pieces/spatial-rehearsal-status.json ``` | Read endpoint | Meaning | @@ -39,8 +37,8 @@ These reads need no credentials. Keep this integration to GET requests. | Field | Interpretation | | --- | --- | | `machineName`, `ip` | Device name and current IP, also displayed on its screen. | -| `seat`, `seats` | Original zero-based seat index and registered ensemble size. Currently six seats, indices 0–5. | -| `geometry`, `seatOrder` | Runtime layout and ordered zero-based seat indices. Currently `"line"` and `[0,1,2,3,4,5]`: displayed seats 1 → 2 → 3 → 4 → 5 → 6. Build the layout from these fields. | +| `seat`, `seats` | Original zero-based seat index and registered ensemble size. Currently two seats, indices 0–1. | +| `geometry`, `seatOrder` | Runtime layout and ordered zero-based seat indices. Currently `"line"` and `[0,1]`: seat 1 left, seat 2 right. Build the layout from these fields. | | `connectivity` | `{stale, seats: [{seat, state}]}` from a separate controller presence publisher. States are `online`, `offline`, `unstable`, `unknown`, or `error`. Honor `stale`; this is separate from the bridge’s polling health. | | `phase` | `ready`, `prepared`, `countdown`, `playing`, `finished`, or `error`. | | `mode` | `beeps` or `score`. Beep mode gives each laptop the same scheduled pulse. | @@ -69,9 +67,9 @@ Treat missing or additional fields defensively. This is a rehearsal interface wi | Bridge endpoint | Response | | --- | --- | -| `http://192.168.2.79:8787/api/seats` | Latest `{updatedAt, seats: [...]}` snapshot. | -| `http://192.168.2.79:8787/events` | Server-Sent Events named `seats`, carrying the same JSON snapshot. | -| `http://192.168.2.79:8787/health` | Bridge health. Check seat freshness separately. | +| `http://192.168.1.235:8787/api/seats` | Latest `{updatedAt, seats: [...]}` snapshot. | +| `http://192.168.1.235:8787/events` | Server-Sent Events named `seats`, carrying the same JSON snapshot. | +| `http://192.168.1.235:8787/health` | Bridge health. Check seat freshness separately. | Each item in `seats` is `{host, connected, stale, ageMs, receivedAt, data, error}`. `data` is the native snapshot described above; it is `null` before the first successful read. `updatedAt` and `receivedAt` are host-side ISO timestamps; `receivedAt` is the last valid fetch time. `ageMs` measures time since the last change in that seat’s `audioTime`, or is `null` before any sample. `connected` describes the latest poll; `error` is `null` on success. Failed reads retain the last valid `data`. @@ -95,7 +93,7 @@ function renderFleet(data) { function showBridgeDisconnected() { connection.textContent = 'Bridge disconnected; reconnecting. Last data below.'; } -const base = 'http://192.168.2.79:8787'; +const base = 'http://192.168.1.235:8787'; async function loadSnapshot() { const response = await fetch(base + '/api/seats', { cache: 'no-store', signal: AbortSignal.timeout(2000), @@ -120,7 +118,7 @@ If running your own bridge from a source checkout: ```sh node fedac/native/tools/spatial-data.mjs --bind 127.0.0.1 --port 8787 \ - 192.168.2.81 192.168.2.82 192.168.2.83 192.168.2.84 192.168.2.85 192.168.2.87 + 192.168.1.236 192.168.1.237 ``` For a custom polling implementation, fetch with `cache: 'no-store'`, bounded timeouts, and no overlapping requests per host. Files can be read during a write: keep the last valid JSON and retry on the next tick. Track host receive time and when `audioTime` last advanced; a stale file can still return HTTP 200. Verify `/status` and seat assignments on connection and periodically. @@ -129,7 +127,7 @@ Show registered seats with live output, battery, phase, score time, data age, an ## Spatial view -The current composition is **Sine Line**, 97.92 seconds with one source, 144 notes, and 24 passes. It sweeps seats 1 → 2 → 3 → 4 → 5 → 6 at varying speeds, then resets silently. Build labels, duration, source count, geometry, and seat order from fresh runtime data so the UI follows score changes. The laptop displays share this fixed line and highlight their own position. +The current composition is the two-seat **Sine Line** (`sine-duet.nsscore`): 40.32 seconds, one source, 48 notes, and 24 passes. It sweeps seat 1 → seat 2 at varying speeds, then resets silently. The deployed score remains readable at `/pieces/spatial-rehearsal.nsscore`. Build labels, duration, source count, geometry, and seat order from fresh runtime data so the UI follows score changes. The laptop displays share this fixed line and highlight their own position. Use `data.sources` directly to draw the world. Each source contains `{lane, name, color, position, seatGain, active}`. `lane` is its zero-based score index and `color` is an RGB array. In line geometry, `position.line` runs from 0 (leftmost seat) to 1 (rightmost); `x` spans −1.6 to 1.6 in virtual units, and `y`/`z` are zero. `angle` is a zero placeholder here: do not use it to draw the line. In ring geometry, `position.angle` is in radians. Coordinates describe the score, not measured room positions. @@ -142,4 +140,6 @@ Playback is currently output-only: a controller estimates each local audio clock - Established output-only synthesis, coordinated starts, battery displays, and a read-only HTTP/SSE feed; microphones stay closed. - Explored Monosine and Melodic Orbit, then moved to Sine Line with four active seats while seat 1 was offline. - Restored seat 1 on a newer build and added seat 6 at `.87`; expanded the line to 1 → 2 → 3 → 4 → 5 → 6 and Sine Line to 97.92 seconds. Added device names/IPs and focused-seat brightness. +- Seat 5 later went offline after reporting 2% battery during the six-seat rehearsal. +- Moved to CULTUREHUB LA Wi-Fi for a two-machine rehearsal: seat 1 `ac-device` at `192.168.1.236`, seat 2 `ac5` at `192.168.1.237`, both on `dusted-mantella-tideline`. The controller is `192.168.1.235`; Sine Line now uses the 40.32-second duet, with only these two seats in the bridge and presence feed. - Current work deploys local pieces and tracks source changes in Git. No OTA release was requested. diff --git a/fedac/native/scores/sine-duet.nsscore b/fedac/native/scores/sine-duet.nsscore new file mode 100644 index 0000000000..8872ffe8dd --- /dev/null +++ b/fedac/native/scores/sine-duet.nsscore @@ -0,0 +1 @@ +{"name":"Sine Line","geometry":"line","seatOrder":[0,1],"linePasses":[{"at":0,"step":0.95},{"at":2.6599999999999997,"step":0.9031088913245535},{"at":5.188704895708749,"step":0.775},{"at":7.358704895708749,"step":0.6000000000000001},{"at":9.038704895708749,"step":0.42500000000000004},{"at":10.228704895708749,"step":0.29689110867544644},{"at":11.059999999999999,"step":0.25},{"at":11.759999999999998,"step":0.29689110867544644},{"at":12.591295104291248,"step":0.4249999999999998},{"at":13.781295104291248,"step":0.5999999999999999},{"at":15.461295104291247,"step":0.775},{"at":17.631295104291247,"step":0.9031088913245534},{"at":20.159999999999997,"step":0.95},{"at":22.819999999999997,"step":0.9031088913245535},{"at":25.348704895708746,"step":0.7750000000000001},{"at":27.518704895708748,"step":0.6000000000000004},{"at":29.198704895708747,"step":0.42500000000000027},{"at":30.38870489570875,"step":0.29689110867544644},{"at":31.22,"step":0.25},{"at":31.919999999999998,"step":0.2968911086754462},{"at":32.751295104291245,"step":0.42500000000000004},{"at":33.94129510429124,"step":0.5999999999999999},{"at":35.62129510429124,"step":0.7749999999999997},{"at":37.791295104291244,"step":0.9031088913245532}],"dur":40.31999999999999,"gain":0.65,"linePosition":[0,0.010526315789473682,0.021052631578947364,0.03157894736842105,0.04210526315789473,0.05263157894736841,0.0631578947368421,0.07368421052631577,0.08421052631578946,0.09473684210526315,0.10526315789473682,0.1157894736842105,0.1263157894736842,0.13684210526315788,0.14736842105263154,0.15789473684210523,0.16842105263157892,0.1789473684210526,0.1894736842105263,0.19999999999999996,0.21052631578947364,0.22105263157894733,0.231578947368421,0.2421052631578947,0.2526315789473684,0.26315789473684204,0.27368421052631575,0.28421052631578947,0.2947368421052631,0.3052631578947368,0.31578947368421045,0.32631578947368417,0.33684210526315783,0.34736842105263155,0.3578947368421052,0.3684210526315789,0.3789473684210526,0.38947368421052625,0.3999999999999999,0.4105263157894737,0.4210526315789473,0.431578947368421,0.44210526315789467,0.4526315789473684,0.463157894736842,0.47368421052631576,0.4842105263157894,0.4947368421052631,0.5052631578947367,0.5157894736842105,0.5263157894736841,0.5368421052631578,0.5473684210526315,0.5578947368421052,0.5684210526315789,0.5789473684210525,0.5894736842105261,0.6,0.6105263157894736,0.6210526315789473,0.6315789473684209,0.6421052631578946,0.6526315789473683,0.6631578947368421,0.6736842105263157,0.6842105263157894,0.6947368421052631,0.7052631578947368,0.7157894736842104,0.7263157894736841,0.7368421052631579,0.7473684210526315,0.7578947368421052,0.768421052631579,0.7789473684210525,0.7894736842105262,0.7999999999999998,0.8105263157894737,0.8210526315789474,0.8315789473684209,0.8421052631578946,0.8526315789473684,0.863157894736842,0.8736842105263156,0.8842105263157893,0.894736842105263,0.9052631578947368,0.9157894736842105,0.926315789473684,0.9368421052631578,0.9473684210526315,0.9578947368421051,0.9684210526315788,0.9789473684210526,0.9894736842105262,0.9999999999999999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9868421052631584,0.9736842105263163,0.9605263157894741,0.947368421052632,0.9342105263157898,0.9210526315789477,0.9078947368421055,0.8947368421052634,0.8815789473684218,0.8684210526315796,0.855263157894737,0.8421052631578954,0.8289473684210527,0.8157894736842111,0.8026315789473684,0.7894736842105268,0.7763157894736846,0.7631578947368425,0.7500000000000003,0.7368421052631582,0.723684210526316,0.7105263157894739,0.6973684210526323,0.6842105263157896,0.671052631578948,0.6578947368421053,0.6447368421052632,0.631578947368421,0.6184210526315794,0.6052631578947373,0.5921052631578951,0.578947368421053,0.5657894736842108,0.5526315789473693,0.5394736842105265,0.5263157894736844,0.5131578947368423,0.5000000000000001,0.4868421052631585,0.4736842105263164,0.4605263157894742,0.4473684210526321,0.43421052631578994,0.42105263157894723,0.40789473684210564,0.3947368421052635,0.38157894736842135,0.36842105263157976,0.35526315789473706,0.34210526315789547,0.32894736842105277,0.3157894736842112,0.3026315789473685,0.2894736842105269,0.2763157894736842,0.2631578947368426,0.250000000000001,0.2368421052631583,0.22368421052631615,0.210526315789474,0.19736842105263186,0.1842105263157897,0.17105263157894812,0.15789473684210542,0.14473684210526383,0.13157894736842168,0.11842105263157954,0.10526315789473795,0.09210526315789525,0.0789473684210531,0.0657894736842104,0.05263157894736881,0.039473684210526105,0.026315789473684514,0.013157894736842368,0,0.011072861862021078,0.022145723724042648,0.03321858558606373,0.0442914474480848,0.05536430931010637,0.06643717117212745,0.07751003303414902,0.08858289489617009,0.09965575675819117,0.11072861862021324,0.12180148048223431,0.13287434234425588,0.14394720420627696,0.15502006606829852,0.1660929279303196,0.17716578979234068,0.18823865165436227,0.19931151351638332,0.2103843753784049,0.22145723724042599,0.23253009910244707,0.24360296096446862,0.2546758228264897,0.26574868468851126,0.27682154655053237,0.2878944084125544,0.2989672702745755,0.3100401321365966,0.32111299399861815,0.3321858558606392,0.3432587177226608,0.35433157958468187,0.3654044414467029,0.37647730330872453,0.3875501651707456,0.39862302703276714,0.40969588889478825,0.4207687507568093,0.43184161261883086,0.44291447448085197,0.4539873363428735,0.4650601982048951,0.4761330600669167,0.48720592192893775,0.4982787837909588,0.5093516456529804,0.5204245075150015,0.5314973693770231,0.5425702312390441,0.5536430931010652,0.5647159549630868,0.5757888168251079,0.5868616786871295,0.5979345405491505,0.6090074024111716,0.6200802642731932,0.6311531261352147,0.6422259879972363,0.6532988498592573,0.664371711721279,0.6754445735833,0.6865174354453211,0.6975902973073427,0.7086631591693637,0.7197360210313853,0.7308088828934064,0.7418817447554275,0.7529546066174491,0.7640274684794701,0.7751003303414916,0.7861731922035128,0.7972460540655338,0.8083189159275559,0.819391777789577,0.8304646396515986,0.8415375015136196,0.8526103633756412,0.8636832252376623,0.8747560870996833,0.8858289489617049,0.896901810823726,0.9079746726857476,0.9190475345477687,0.9301203964097897,0.9411932582718113,0.9522661201338324,0.9633389819958539,0.974411843857875,0.9854847057198971,0.9965575675819182,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9947650037176788,0.9809239263901528,0.9670828490626251,0.9532417717350985,0.9394006944075708,0.9255596170800447,0.9117185397525182,0.8978774624249921,0.8840363850974655,0.8701953077699384,0.8563542304424118,0.8425131531148852,0.8286720757873591,0.8148309984598325,0.8009899211323054,0.7871488438047788,0.7733077664772522,0.7594666891497261,0.7456256118221984,0.7317845344946724,0.7179434571671458,0.7041023798396181,0.6902613025120921,0.6764202251845655,0.6625791478570394,0.6487380705295128,0.6348969932019851,0.6210559158744591,0.6072148385469325,0.5933737612194064,0.5795326838918798,0.5656916065643521,0.5518505292368261,0.5380094519092995,0.5241683745817718,0.5103272972542457,0.49648621992671915,0.4826451425991931,0.4688040652716654,0.4549629879441388,0.44112191061661277,0.42728083328908617,0.41343975596156013,0.3995986786340324,0.3857576013065064,0.3719165239789798,0.3580754466514532,0.34423436932392715,0.33039329199639944,0.3165522146688734,0.3027111373413457,0.2888700600138191,0.27502898268629306,0.26118790535876646,0.24734682803124042,0.2335057507037127,0.21966467337618611,0.20582359604866007,0.19198251872113348,0.17814144139360744,0.16430036406607973,0.15045928673855313,0.1366182094110271,0.1227771320835005,0.10893605475597445,0.09509497742844675,0.08125390010092015,0.06741282277339411,0.053571745445867514,0.03973066811834147,0.025889590790813766,0.01204851346328717,0.0016711023112893396,0.014574328117741822,0.027477553924194306,0.04038077973064565,0.05328400553709698,0.06618723134354831,0.07909045714999965,0.09199368295645215,0.10489690876290347,0.11780013456935481,0.13070336037580615,0.1436065861822575,0.15650981198870997,0.16941303779516131,0.18231626360161265,0.195219489408064,0.20812271521451534,0.22102594102096781,0.23392916682741915,0.2468323926338705,0.25973561844032184,0.27263884424677315,0.2855420700532256,0.298445295859677,0.3113485216661283,0.3242517474725797,0.337154973279031,0.35005819908548347,0.36296142489193484,0.37586465069838615,0.38876787650483746,0.40167110231128883,0.4145743281177413,0.4274775539241938,0.44038077973064516,0.45328400553709647,0.46618723134354895,0.47909045715000026,0.49199368295645163,0.5048969087629029,0.5178001345693543,0.5307033603758068,0.5436065861822581,0.5565098119887094,0.5694130377951608,0.5823162636016121,0.5952194894080646,0.608122715214516,0.6210259410209673,0.6339291668274186,0.6468323926338699,0.6597356184403225,0.6726388442467738,0.6855420700532251,0.6984452958596764,0.7113485216661278,0.7242517474725803,0.7371549732790316,0.750058199085483,0.7629614248919343,0.7758646506983856,0.7887678765048382,0.8016711023112895,0.8145743281177408,0.8274775539241933,0.8403807797306457,0.853284005537097,0.8661872313435485,0.8790904571499998,0.8919936829564511,0.9048969087629036,0.9178001345693549,0.9307033603758063,0.9436065861822576,0.956509811988709,0.9694130377951614,0.9823162636016127,0.9952194894080642,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9979111221108885,0.9817820898528248,0.9656530575947605,0.9495240253366946,0.9333949930786292,0.9172659608205649,0.9011369285625006,0.8850078963044352,0.8688788640463709,0.8527498317883067,0.8366207995302429,0.8204917672721787,0.8043627350141127,0.788233702756049,0.7721046704979847,0.7559756382399204,0.7398466059818561,0.7237175737237908,0.7075885414657265,0.6914595092076622,0.6753304769495979,0.6592014446915342,0.6430724124334682,0.626943380175404,0.6108143479173402,0.594685315659276,0.5785562834012117,0.5624272511431463,0.546298218885082,0.5301691866270177,0.5140401543689535,0.49791112211088917,0.4817820898528238,0.4656530575947595,0.4495240253366952,0.43339499307862983,0.41726596082056444,0.40113692856250016,0.3850078963044359,0.3688788640463716,0.3527498317883073,0.33662079953024193,0.32049176727217765,0.3043627350141134,0.2882337027560491,0.27210467049798537,0.2559756382399194,0.23984660598185514,0.22371757372379142,0.20758854146572714,0.19145950920766286,0.17533047694959747,0.1592014446915332,0.1430724124334689,0.12694338017540463,0.11081434791734035,0.09468531565927496,0.07855628340121068,0.0624272511431464,0.046298218885082676,0.030169186627018396,0.014040154368952451,0.0021585071520820636,0.018825173818748372,0.035491840485414684,0.05215850715208099,0.06882517381874878,0.08549184048541657,0.10215850715208288,0.11882517381874919,0.135491840485417,0.1521585071520833,0.1688251738187496,0.1854918404854159,0.20215850715208222,0.21882517381875,0.2354918404854163,0.2521585071520826,0.26882517381874893,0.28549184048541526,0.30215850715208303,0.3188251738187493,0.33549184048541564,0.35215850715208197,0.36882517381874824,0.38549184048541607,0.40215850715208235,0.4188251738187487,0.435491840485415,0.4521585071520813,0.46882517381874905,0.4854918404854154,0.5021585071520817,0.518825173818748,0.5354918404854143,0.5521585071520821,0.5688251738187484,0.5854918404854147,0.6021585071520825,0.6188251738187504,0.6354918404854166,0.6521585071520829,0.6688251738187492,0.6854918404854156,0.7021585071520833,0.7188251738187497,0.7354918404854159,0.7521585071520822,0.7688251738187486,0.7854918404854163,0.8021585071520827,0.818825173818749,0.8354918404854152,0.8521585071520816,0.8688251738187494,0.8854918404854156,0.902158507152082,0.9188251738187483,0.9354918404854146,0.9521585071520824,0.9688251738187487,0.985491840485415,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9973018660598972,0.9764685327265645,0.9556351993932318,0.9348018660598986,0.9139685327265659,0.8931351993932332,0.8723018660598999,0.8514685327265672,0.8306351993932306,0.8098018660598979,0.7889685327265646,0.768135199393228,0.7473018660598953,0.7264685327265626,0.7056351993932294,0.6848018660598967,0.663968532726564,0.6431351993932307,0.622301866059898,0.6014685327265653,0.580635199393232,0.5598018660598955,0.5389685327265628,0.51813519939323,0.4973018660598968,0.4764685327265641,0.4556351993932314,0.4348018660598981,0.4139685327265654,0.3931351993932327,0.3723018660599,0.35146853272656675,0.33063519939323016,0.30980186605989746,0.28896853272656475,0.2681351993932315,0.2473018660598988,0.22646853272656609,0.20563519939323283,0.18480186605990012,0.16396853272656742,0.14313519939323416,0.12230186605989757,0.10146853272656486,0.08063519939323216,0.05980186605989557,0.03896853272656231,0.018135199393229606,0.0030473042147061797,0.02657671597941156,0.050106127744116935,0.07363553950882232,0.0971649512735277,0.12069436303823307,0.14422377480293844,0.167753186567648,0.1912825983323534,0.21481201009705878,0.23834142186176413,0.2618708336264695,0.2854002453911749,0.3089296571558803,0.33245906892058563,0.35598848068529104,0.3795178924499964,0.4030473042147018,0.4265767159794113,0.45010612774411674,0.4736355395088221,0.4971649512735275,0.5206943630382329,0.5442237748029383,0.5677531865676436,0.591282598332349,0.6148120100970585,0.6383414218617639,0.6618708336264693,0.6854002453911747,0.7089296571558801,0.7324590689205897,0.755988480685295,0.7795178924500004,0.8030473042147057,0.8265767159794112,0.8501061277441165,0.8736355395088219,0.8971649512735272,0.9206943630382326,0.9442237748029381,0.9677531865676476,0.991282598332353,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9961908697316237,0.966779105025737,0.9373673403198554,0.9079555756139737,0.8785438109080864,0.8491320462022047,0.819720281496323,0.7903085167904413,0.7608967520845596,0.731484987378678,0.7020732226727963,0.6726614579669146,0.6432496932610329,0.6138379285551512,0.5844261638492639,0.5550143991433822,0.5256026344375005,0.49619086973161886,0.46677910502573716,0.43736734031985547,0.4079555756139738,0.3785438109080921,0.3491320462022104,0.3197202814963287,0.290308516790447,0.26089675208455976,0.23148498737867806,0.20207322267279637,0.17266145796691468,0.14324969326103298,0.11383792855515129,0.0844261638492696,0.055014399143387904,0.02560263443750621,0.00436221986244837,0.03804460275567708,0.07172698564889982,0.10540936854212253,0.13909175143534527,0.172774134328568,0.20645651722179073,0.24013890011501346,0.27382128300823616,0.3075036659014589,0.3411860487946816,0.37486843168791034,0.40855081458113307,0.4422331974743558,0.47591558036757853,0.5095979632608012,0.543280346154024,0.5769627290472527,0.6106451119404814,0.6443274948337041,0.6780098777269269,0.7116922606201496,0.7453746435133723,0.779057026406595,0.8127394092998178,0.8464217921930405,0.8801041750862633,0.9137865579794859,0.9474689408727147,0.9811513237659374,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9683685081801754,0.9262655295636465,0.8841625509471182,0.8420595723305898,0.7999565937140615,0.7578536150975331,0.7157506364810048,0.6736476578644764,0.6315446792479481,0.589441700631412,0.5473387220148836,0.5052357433983553,0.46313276478182697,0.42102978616529807,0.37892680754876973,0.3368238289322414,0.29472085031571305,0.2526178716991847,0.21051489308265636,0.16841191446612025,0.1263089358495847,0.0842059572330558,0.04210297861652745,0,0.03999999999999915,0.0799999999999983,0.12000000000000455,0.1600000000000037,0.20000000000000284,0.240000000000002,0.28000000000000114,0.3200000000000003,0.35999999999999943,0.3999999999999986,0.4399999999999977,0.4799999999999969,0.5200000000000031,0.5600000000000023,0.6000000000000014,0.6400000000000006,0.6799999999999997,0.7199999999999989,0.759999999999998,0.7999999999999972,0.8399999999999963,0.8799999999999955,0.9200000000000017,0.9600000000000009,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.95000000000001,0.900000000000011,0.8500000000000121,0.8000000000000043,0.7500000000000053,0.7000000000000064,0.6500000000000075,0.6000000000000085,0.5500000000000096,0.5000000000000018,0.44999999999999396,0.399999999999995,0.3499999999999961,0.29999999999999716,0.24999999999999822,0.1999999999999993,0.15000000000000036,0.10000000000000142,0.05000000000000249,0,0.03368238289322871,0.06736476578645144,0.10104714867967417,0.13472953157289688,0.1684119144661196,0.20209429735934234,0.23577668025256507,0.2694590631457878,0.30314144603901055,0.3368238289322333,0.37050621182546195,0.4041885947186847,0.4378709776119074,0.47155336050513014,0.5052357433983529,0.5389181262915756,0.5726005091847983,0.6062828920780211,0.6399652749712438,0.6736476578644666,0.7073300407576952,0.741012423650918,0.7746948065441407,0.8083771894373634,0.8420595723305861,0.8757419552238088,0.9094243381170316,0.9431067210102543,0.9767891039034771,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9738212830082357,0.9317183043917073,0.889615325775179,0.8475123471586501,0.8054093685421218,0.7633063899255934,0.7212034113090651,0.6791004326925367,0.6369974540760084,0.5948944754594723,0.5527914968429439,0.5106885182264156,0.46858553960988725,0.4264825609933589,0.38437958237683056,0.3422766037603022,0.3001736251437733,0.258070646527245,0.21596766791071664,0.17386468929418109,0.1317617106776522,0.08965873206112385,0.047555753444595505,0.005452774828067164,0.02048210754999921,0.0440115193147046,0.06754093107940999,0.09107034284411539,0.11459975460882077,0.13812916637352615,0.16165857813823573,0.18518798990294114,0.20871740166764652,0.2322468134323519,0.2557762251970573,0.2793056369617627,0.3028350487264681,0.32636446049117346,0.34989387225587887,0.3734232840205842,0.3969526957852938,0.4204821075499992,0.4440115193147046,0.46754093107940997,0.4910703428441154,0.5145997546088208,0.5381291663735261,0.5616585781382315,0.585187989902937,0.6087174016676423,0.6322468134323519,0.6557762251970572,0.6793056369617627,0.7028350487264681,0.7263644604911734,0.7498938722558789,0.7734232840205885,0.796952695785298,0.8204821075500034,0.8440115193147087,0.8675409310794142,0.8910703428441196,0.9145997546088249,0.9381291663735304,0.9616585781382357,0.9851879899029411,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9743973655625012,0.944985600856619,0.9155738361507373,0.8861620714448556,0.8567503067389739,0.8273385420330922,0.7979267773272105,0.7685150126213288,0.7391032479154471,0.7096914832095599,0.6802797185036732,0.6508679537977915,0.6214561890919098,0.5920444243860281,0.5626326596801464,0.5332208949742647,0.5038091302683775,0.4743973655624958,0.4449856008566141,0.4155738361507324,0.3861620714448507,0.356750306738969,0.3273385420330873,0.2979267773272051,0.2685150126213234,0.23910324791544169,0.209691483209555,0.1802797185036733,0.1508679537977916,0.12145618909190992,0.09204442438602767,0.06263265968014597,0.03322089497426428,0.003809130268382588,0.01450815951458277,0.031174826181249084,0.04784149284791836,0.06450815951458468,0.08117482618125099,0.09784149284791731,0.11450815951458362,0.13117482618124993,0.14784149284791626,0.16450815951458256,0.1811748261812489,0.1978414928479152,0.21450815951458152,0.2311748261812508,0.2478414928479171,0.2645081595145834,0.2811748261812497,0.29784149284791606,0.3145081595145824,0.33117482618124866,0.347841492847915,0.3645081595145813,0.38117482618124765,0.3978414928479169,0.4145081595145832,0.4311748261812495,0.44784149284791586,0.4645081595145822,0.48117482618124846,0.4978414928479148,0.5145081595145811,0.5311748261812475,0.5478414928479137,0.564508159514583,0.5811748261812493,0.5978414928479157,0.6145081595145819,0.6311748261812483,0.6478414928479146,0.6645081595145839,0.6811748261812531,0.6978414928479194,0.7145081595145858,0.7311748261812521,0.7478414928479183,0.7645081595145847,0.781174826181251,0.7978414928479174,0.8145081595145837,0.8311748261812499,0.8478414928479192,0.8645081595145856,0.8811748261812519,0.8978414928479181,0.9145081595145845,0.9311748261812508,0.9478414928479172,0.9645081595145835,0.9811748261812497,0.9978414928479161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.981864800606769,0.9610314672734357,0.940198133940103,0.9193648006067703,0.898531467273437,0.8776981339401043,0.8568648006067716,0.8360314672734384,0.8151981339401018,0.7943648006067691,0.7735314672734364,0.7526981339401031,0.7318648006067704,0.7110314672734377,0.6901981339401044,0.6693648006067717,0.648531467273439,0.6276981339401058,0.6068648006067731,0.5860314672734365,0.5651981339401032,0.5443648006067705,0.5235314672734378,0.5026981339401045,0.48186480060677184,0.46103146727343913,0.4401981339401059,0.41936480060677317,0.39853146727344047,0.3776981339401039,0.3568648006067706,0.3360314672734379,0.3151981339401052,0.29436480060677195,0.27353146727343924,0.25269813394010654,0.23186480060677328,0.21103146727344058,0.19019813394010787,0.16936480060677128,0.14853146727343802,0.12769813394010532,0.10686480060677261,0.08603146727343935,0.06519813394010665,0.04436480060677006,0.02353146727343347,0.0026981339401007665,0.011232123495163143,0.02413534930161448,0.03703857510806582,0.04994180091451716,0.06284502672096849,0.07574825252741983,0.08865147833387117,0.10155470414032251,0.11445792994677613,0.12736115575322748,0.14026438155967882,0.15316760736613014,0.16607083317258148,0.17897405897903282,0.19187728478548416,0.2047805105919355,0.21768373639838684,0.23058696220483818,0.2434901880112918,0.25639341381774317,0.2692966396241945,0.2821998654306458,0.29510309123709716,0.30800631704354847,0.32090954284999984,0.33381276865645115,0.3467159944629025,0.35961922026935383,0.3725224460758052,0.3854256718822588,0.39832889768871016,0.4112321234951615,0.42413534930161284,0.43703857510806415,0.4499418009145155,0.46284502672096683,0.47574825252741815,0.4886514783338695,0.5015547041403209,0.5144579299467745,0.5273611557532258,0.5402643815596772,0.5531676073661285,0.5660708331725798,0.5789740589790312,0.5918772847854825,0.6047805105919338,0.6176837363983851,0.6305869622048366,0.6434901880112901,0.6563934138177415,0.6692966396241928,0.6821998654306441,0.6951030912370955,0.7080063170435491,0.7209095428499982,0.7338127686564518,0.7467159944629008,0.7596192202693545,0.7725224460758036,0.7854256718822571,0.7983288976887107,0.8112321234951644,0.8241353493016135,0.8370385751080671,0.8499418009145161,0.8628450267209697,0.8757482525274188,0.8886514783338725,0.9015547041403215,0.9144579299467751,0.9273611557532287,0.9402643815596777,0.9531676073661314,0.9660708331725805,0.9789740589790341,0.9918772847854831,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9859598456310505,0.9698308133729835,0.9537017811149225,0.9375727488568555,0.921443716598794,0.9053146843407269,0.8891856520826599,0.8730566198245989,0.8569275875665319,0.8407985553084704,0.8246695230504033,0.8085404907923418,0.7924114585342747,0.7762824262762138,0.7601533940181467,0.7440243617600797,0.7278953295020182,0.7117662972439511,0.6956372649858896,0.6795082327278231,0.6633792004697616,0.6472501682116946,0.6311211359536331,0.614992103695566,0.5988630714375051,0.582734039179438,0.566605006921371,0.5504759746633094,0.5343469424052424,0.5182179101471809,0.5020888778891144,0.4859598456310473,0.46983081337298027,0.45370178111491877,0.4375727488568517,0.4214437165987902,0.40531468434072315,0.3891856520826622,0.37305661982459515,0.35692758756653364,0.3407985553084666,0.3246695230504051,0.3085404907923386,0.29241145853427153,0.27628242627621,0.26015339401814297,0.24402436176008147,0.2278953295020144,0.21176629724395346,0.1956372649858864,0.1795082327278249,0.16337920046975785,0.1472501682116908,0.1311211359536293,0.11499210369556279,0.09886307143750128,0.08273403917943423,0.06660500692137272,0.05047597466330567,0.03434694240524472,0.018217910147177663,0.0020888778891161586,0.009638810770628711,0.020711672632651758,0.03178453449467087,0.042857396356693916,0.05393025821871303,0.06500312008073607,0.07607598194275518,0.08714884380477823,0.09822170566679735,0.10929456752882039,0.1203674293908395,0.13144029125286255,0.1425131531148856,0.15358601497690472,0.16465887683892774,0.17573173870094685,0.1868046005629699,0.19787746242498902,0.20895032428701207,0.22002318614903119,0.23109604801105424,0.24216890987307726,0.2532417717350964,0.26431463359711943,0.27538749545913854,0.2864603573211616,0.2975332191831807,0.30860608104520376,0.3196789429072229,0.3307518047692459,0.34182466663126504,0.3528975284932881,0.3639703903553111,0.37504325221733414,0.38611611407935326,0.3971889759413763,0.4082618378033954,0.4193346996654185,0.43040756152744153,0.44148042338946064,0.4525532852514837,0.4636261471135028,0.47469900897552586,0.485771870837545,0.49684473269956797,0.5079175945615871,0.5189904564236102,0.5300633182856292,0.5411361801476523,0.5522090420096754,0.5632819038716945,0.5743547657337175,0.5854276275957366,0.5965004894577597,0.6075733513197787,0.6186462131818018,0.629719075043821,0.640791936905844,0.6518647987678671,0.6629376606298861,0.6740105224919092,0.6850833843539283,0.6961562462159514,0.7072291080779705,0.7183019699399935,0.7293748318020126,0.7404476936640356,0.7515205555260548,0.7625934173880778,0.7736662792501009,0.78473914111212,0.795812002974143,0.8068848648361622,0.8179577266981852,0.8290305885602043,0.8401034504222273,0.8511763122842465,0.8622491741462696,0.8733220360082886,0.8843948978703117,0.8954677597323347,0.9065406215943538,0.9176134834563768,0.928686345318396,0.939759207180419,0.9508320690424381,0.9619049309044612,0.9729777927664803,0.9840506546285034,0.9951235164905264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9965575675819174,0.9827164902543936,0.9688754129268647,0.9550343355993404,0.9411932582718116,0.9273521809442833,0.9135111036167589,0.8996700262892301,0.8858289489617063,0.8719878716341775,0.8581467943066536,0.8443057169791248,0.830464639651601,0.8166235623240722,0.8027824849965484,0.7889414076690195,0.7751003303414907,0.7612592530139669,0.7474181756864381,0.7335770983589143,0.7197360210313855,0.7058949437038616,0.6920538663763328,0.678212789048809,0.6643717117212802,0.6505306343937514,0.636689557066227,0.6228484797386982,0.6090074024111743,0.5951663250836455,0.5813252477561217,0.5674841704285929,0.5536430931010691,0.5398020157735403,0.5259609384460164,0.5121198611184876,0.4982787837909588,0.484437706463435,0.47059662913590616,0.45675555180838234,0.4429144744808535,0.4290733971533247,0.4152323198257959,0.40139124249827207,0.38755016517074325,0.37370908784321943,0.3598680105156906,0.3460269331881668,0.332185855860638,0.3183447785331136,0.3045037012055848,0.29066262387806097,0.27682154655053215,0.26298046922300333,0.2491393918954795,0.2352983145679507,0.22145723724042687,0.20761615991289806,0.19377508258537424,0.17993400525784542,0.1660929279303216,0.15225185060279278,0.13841077327526397,0.12456969594774014,0.11072861862021133,0.0968875412926875,0.08304646396515869,0.06920538663763487,0.05536430931010605,0.041523231982581676,0.02768215465505286,0.013841077327529039,0,0.01052631578947533,0.02105263157894692,0.031578947368422254,0.04210526315789384,0.052631578947369174,0.06315789473684076,0.07368421052631609,0.08421052631578768,0.09473684210526676,0.1052631578947346,0.11578947368421368,0.12631578947368527,0.1368421052631606,0.14736842105263218,0.1578947368421075,0.1684210526315791,0.17894736842105444,0.18947368421052602,0.20000000000000134,0.21052631578947295,0.22105263157894828,0.23157894736841986,0.24210526315789518,0.25263157894736676,0.2631578947368421,0.2736842105263137,0.284210526315789,0.29473684210526063,0.3052631578947397,0.31578947368420757,0.3263157894736866,0.3368421052631582,0.34736842105263355,0.35789473684210515,0.3684210526315805,0.37894736842105203,0.38947368421052736,0.39999999999999897,0.4105263157894743,0.4210526315789459,0.43157894736842123,0.44210526315789284,0.45263157894736816,0.4631578947368397,0.47368421052631504,0.48421052631578665,0.494736842105262,0.5052631578947335,0.5157894736842127,0.5263157894736805,0.5368421052631596,0.5473684210526312,0.5578947368421064,0.568421052631578,0.5789473684210534,0.589473684210525,0.6000000000000003,0.6105263157894719,0.6210526315789473,0.6315789473684188,0.6421052631578942,0.6526315789473658,0.6631578947368411,0.6736842105263164,0.684210526315788,0.6947368421052671,0.7052631578947349,0.715789473684214,0.7263157894736856,0.736842105263161,0.7473684210526325,0.7578947368421078,0.7684210526315794,0.7789473684210547,0.7894736842105263,0.8000000000000017,0.8105263157894733,0.8210526315789486,0.8315789473684202,0.8421052631578956,0.8526315789473671,0.8631578947368425,0.8736842105263141,0.8842105263157893,0.8947368421052609,0.90526315789474,0.9157894736842078,0.926315789473687,0.9368421052631586,0.9473684210526339,0.9578947368421055,0.9684210526315807,0.9789473684210523,0.9894736842105277,0.9999999999999993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9999999999999972,0.9868421052631579,0.9736842105263135,0.9605263157894741,0.9473684210526298,0.9342105263157904,0.921052631578946,0.9078947368421066,0.8947368421052623,0.8815789473684229,0.8684210526315791,0.8552631578947392,0.8421052631578904,0.8289473684210554,0.8157894736842066,0.8026315789473673,0.7894736842105234,0.7763157894736835,0.7631578947368397,0.7500000000000003,0.736842105263156,0.7236842105263166,0.7105263157894722,0.6973684210526329,0.6842105263157885,0.6710526315789491,0.6578947368421048,0.6447368421052654,0.631578947368421,0.6184210526315816,0.6052631578947378,0.5921052631578979,0.5789473684210491,0.5657894736842147,0.5526315789473659,0.539473684210526,0.5263157894736822,0.5131578947368423,0.49999999999999845,0.4868421052631591,0.4736842105263147,0.46052631578947534,0.44736842105263097,0.4342105263157916,0.42105263157894723,0.40789473684210786,0.3947368421052635,0.3815789473684241,0.3684210526315803,0.3552631578947404,0.3421052631578966,0.3289473684210572,0.3157894736842084,0.30263157894737347,0.28947368421052466,0.27631578947368474,0.2631578947368409,0.25000000000000155,0.2368421052631572,0.22368421052631782,0.21052631578947345,0.19736842105263408,0.1842105263157897,0.1710526315789459,0.15789473684210598,0.14473684210526216,0.1315789473684228,0.11842105263157843,0.10526315789473906,0.09210526315789469,0.07894736842105532,0.06578947368420651,0.05263157894737158,0.039473684210522775,0.026315789473683404,0.013157894736839038,0,0.011072861862023045,0.022145723724042155,0.0332185855860652,0.04429144744808431,0.05536430931010736,0.06643717117212647,0.07751003303414951,0.08858289489616862,0.09965575675819166,0.11072861862021077,0.12180148048223383,0.13287434234425294,0.14394720420627596,0.15502006606829508,0.16609292793032207,0.17716578979233724,0.18823865165436424,0.19931151351638332,0.21038437537840637,0.2214572372404255,0.23253009910244854,0.24360296096446765,0.2546758228264907,0.2657486846885098,0.27682154655053287,0.2878944084125519,0.298967270274575,0.3100401321365941,0.32111299399861715,0.33218585586063626,0.3432587177226593,0.3543315795846784,0.3654044414467015,0.3764773033087206,0.38755016517074753,0.39862302703276276,0.4096958888947897,0.4207687507568088,0.43184161261883186,0.442914474480851,0.453987336342874,0.46506019820489314,0.4761330600669162,0.4872059219289353,0.49827878379095836,0.5093516456529774,0.5204245075150005,0.5314973693770196,0.5425702312390427,0.5536430931010657,0.5647159549630848,0.5757888168251117,0.5868616786871269,0.597934540549154,0.609007402411173,0.6200802642731961,0.6311531261352152,0.6422259879972383,0.6532988498592573,0.6643717117212804,0.6754445735832995,0.6865174354453225,0.6975902973073417,0.7086631591693647,0.7197360210313838,0.7308088828934068,0.741881744755426,0.7529546066174491,0.7640274684794681,0.7751003303414912,0.7861731922035103,0.7972460540655373,0.8083189159275525,0.8193917777895794,0.8304646396515986,0.8415375015136216,0.8526103633756407,0.8636832252376637,0.8747560870996829,0.8858289489617059,0.896901810823725,0.907974672685748,0.9190475345477671,0.9301203964097902,0.9411932582718093,0.9522661201338324,0.9633389819958514,0.9744118438578745,0.9854847057198937,0.9965575675819167,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9947650037176794,0.9809239263901506,0.9670828490626268,0.9532417717350979,0.9394006944075741,0.9255596170800453,0.9117185397525215,0.8978774624249877,0.8840363850974688,0.870195307769935,0.8563542304424112,0.8425131531148824,0.8286720757873586,0.8148309984598298,0.8009899211323059,0.7871488438047771,0.7733077664772533,0.7594666891497245,0.7456256118222001,0.7317845344946713,0.7179434571671475,0.7041023798396187,0.6902613025120948,0.676420225184566,0.6625791478570422,0.6487380705295134,0.6348969932019896,0.6210559158744557,0.6072148385469369,0.5933737612194031,0.5795326838918793,0.5656916065643505,0.5518505292368266,0.5380094519092978,0.524168374581774,0.5103272972542452,0.4964862199267214,0.48264514259919256,0.46880406527166874,0.4549629879441399,0.44112191061661554,0.4272808332890867,0.4134397559615629,0.3995986786340341,0.38575760130651027,0.37191652397898145,0.35807544665145763,0.3442343693239238,0.330393291996405,0.3165522146688712,0.30271113734134736,0.28887006001381854,0.2750289826862947,0.2611879053587659,0.24734682803124208,0.23350575070371327,0.21966467337618945,0.20582359604866063,0.1919825187211318,0.178141441393608,0.16430036406607917,0.15045928673855535,0.13661820941102654,0.12277713208350272,0.1089360547559739,0.09509497742844952,0.08125390010091627,0.06741282277339689,0.05357174544586307,0.03973066811833925,0.025889590790810435,0.012048513463286614,0.0016711023112927776,0.01457432811774182,0.027477553924195448,0.040380779730644495,0.05328400553709812,0.06618723134354716,0.07909045715000079,0.09199368295644983,0.10489690876290346,0.11780013456935251,0.13070336037580613,0.14360658618225516,0.1565098119887088,0.16941303779515784,0.18231626360161607,0.19521948940806053,0.20812271521451872,0.2210259410209678,0.2339291668274214,0.24683239263387044,0.25973561844032406,0.2726388442467731,0.28554207005322674,0.2984452958596758,0.3113485216661294,0.32425174747257846,0.3371549732790321,0.35005819908548114,0.3629614248919348,0.3758646506983838,0.3887678765048374,0.4016711023112865,0.4145743281177401,0.4274775539241891,0.4403807797306474,0.4532840055370918,0.46618723134355,0.4790904571499991,0.4919936829564527,0.5048969087629017,0.5178001345693554,0.5307033603758045,0.543606586182258,0.5565098119887071,0.5694130377951607,0.5823162636016097,0.5952194894080634,0.6081227152145124,0.6210259410209661,0.6339291668274197,0.6468323926338687,0.6597356184403269,0.6726388442467715,0.6855420700532296,0.6984452958596786,0.7113485216661323,0.7242517474725814,0.737154973279035,0.750058199085484,0.7629614248919376,0.7758646506983866,0.7887678765048403,0.8016711023112894,0.814574328117743,0.827477553924192,0.8403807797306456,0.8532840055370947,0.8661872313435484,0.8790904571499973,0.891993682956451,0.9048969087629001,0.9178001345693583,0.9307033603758027,0.9436065861822609,0.95650981198871,0.9694130377951635,0.9823162636016126,0.9952194894080663,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9979111221108891,0.981782089852822,0.9656530575947605,0.9495240253366934,0.9333949930786325,0.9172659608205654,0.9011369285625039,0.8850078963044369,0.8688788640463759,0.8527498317883089,0.8366207995302474,0.8204917672721803,0.8043627350141188,0.7882337027560518,0.7721046704979908,0.7559756382399176,0.7398466059818622,0.7237175737237896,0.7075885414657281,0.6914595092076611,0.675330476949594,0.6592014446915331,0.643072412433466,0.6269433801754045,0.6108143479173375,0.594685315659276,0.5785562834012089,0.562427251143148,0.5462982188850809,0.5301691866270194,0.5140401543689523,0.4979111221108914,0.48178208985281823,0.46565305759476283,0.4495240253366902,0.4333949930786287,0.41726596082056167,0.4011369285625007,0.38500789630443366,0.36887886404637216,0.3527498317883051,0.3366207995302436,0.32049176727217654,0.3043627350141156,0.28823370275604854,0.27210467049798703,0.25597563823992,0.23984660598185847,0.22371757372379197,0.20758854146573047,0.19145950920766341,0.1753304769496019,0.1592014446915293,0.1430724124334739,0.12694338017540074,0.1108143479173398,0.09468531565927274,0.07855628340121124,0.06242725114314418,0.04629821888508323,0.030169186627016176,0.014040154368954672,0.002158507152080582,0.01882517381874392,0.03549184048541318,0.05215850715207652,0.06882517381874578,0.08549184048540912,0.10215850715207837,0.11882517381874172,0.135491840485411,0.15215850715207432,0.1688251738187495,0.18549184048540693,0.2021585071520821,0.21882517381874544,0.2354918404854147,0.25215850715207805,0.2688251738187473,0.28549184048541065,0.3021585071520799,0.31882517381874326,0.3354918404854125,0.35215850715208175,0.3688251738187451,0.38549184048541435,0.4021585071520777,0.41882517381874695,0.4354918404854103,0.45215850715207956,0.4688251738187429,0.4854918404854181,0.5021585071520754,0.5188251738187507,0.535491840485414,0.5521585071520833,0.5688251738187466,0.5854918404854159,0.6021585071520792,0.6188251738187485,0.6354918404854119,0.6521585071520811,0.6688251738187444,0.6854918404854137,0.7021585071520771,0.7188251738187462,0.7354918404854096,0.7521585071520789,0.7688251738187422,0.7854918404854114,0.8021585071520748,0.81882517381875,0.8354918404854074,0.8521585071520826,0.8688251738187459,0.8854918404854152,0.9021585071520786,0.9188251738187478,0.9354918404854111,0.9521585071520804,0.9688251738187438,0.9854918404854129,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9973018660599028,0.9764685327265734,0.9556351993932368,0.9348018660599074,0.9139685327265709,0.893135199393242,0.8723018660598977,0.8514685327265761,0.8306351993932323,0.8098018660599029,0.7889685327265663,0.7681351993932369,0.7473018660599003,0.7264685327265715,0.7056351993932349,0.6848018660599056,0.663968532726569,0.6431351993932402,0.6223018660599036,0.6014685327265742,0.5806351993932376,0.5598018660599082,0.5389685327265716,0.5181351993932428,0.49730186605990623,0.47646853272657685,0.45563519939323305,0.43480186605989646,0.4139685327265671,0.3931351993932305,0.3723018660599017,0.3514685327265651,0.3306351993932357,0.3098018660598991,0.28896853272656975,0.26813519939323316,0.24730186605990434,0.22646853272656775,0.20563519939323838,0.1848018660599018,0.16396853272657297,0.14313519939323638,0.122301866059907,0.10146853272657042,0.08063519939324104,0.059801866059897235,0.03896853272657563,0.01813519939323127,0.0030473042147019986,0.026576715979411546,0.05010612774411273,0.07363553950882228,0.09716495127352347,0.12069436303823301,0.1442237748029342,0.16775318656764374,0.19128259833234493,0.21481201009705447,0.23834142186175566,0.2618708336264652,0.2854002453911664,0.30892965715587595,0.33245906892057714,0.35598848068528666,0.37951789244998785,0.40304730421470575,0.4265767159793986,0.4501061277441165,0.4736355395088177,0.4971649512735272,0.5206943630382284,0.5442237748029379,0.5677531865676392,0.5912825983323486,0.6148120100970499,0.6383414218617595,0.6618708336264606,0.6854002453911702,0.7089296571558713,0.7324590689205809,0.755988480685282,0.7795178924499916,0.8030473042146928,0.8265767159794023,0.8501061277441035,0.8736355395088214,0.8971649512735143,0.9206943630382322,0.9442237748029334,0.9677531865676429,0.9912825983323524,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9961908697316304,0.9667791050257432,0.937367340319867,0.9079555756139798,0.8785438109081036,0.8491320462022164,0.8197202814963402,0.790308516790453,0.7608967520845769,0.7314849873786791,0.7020732226728135,0.6726614579669157,0.6432496932610395,0.6138379285551523,0.5844261638492761,0.5550143991433889,0.5256026344375128,0.4961908697316255,0.4667791050257494,0.43736734031986213,0.40795557561397544,0.37854381090809874,0.34913204620221205,0.31972028149633536,0.29030851679044867,0.26089675208457197,0.23148498737868528,0.20207322267280858,0.17266145796691135,0.1432496932610452,0.11383792855514796,0.08442616384927126,0.055014399143384574,0.025602634437507876,0.00436221986244837,0.03804460275566512,0.07172698564889382,0.10540936854211057,0.13909175143533928,0.17277413432855604,0.20645651722178474,0.24013890011500147,0.2738212830082302,0.30750366590144695,0.3411860487946756,0.3748684316878924,0.4085508145811211,0.44223319747433787,0.47591558036757853,0.5095979632607833,0.543280346154024,0.5769627290472408,0.6106451119404694,0.6443274948336862,0.6780098777269149,0.7116922606201317,0.7453746435133604,0.7790570264065771,0.8127394092998058,0.8464217921930226,0.8801041750862513,0.913786557979468,0.9474689408726967,0.9811513237659134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9683685081801898,0.9262655295636543,0.8841625509471331,0.8420595723305976,0.7999565937140765,0.7578536150975403,0.7157506364810198,0.6736476578644837,0.6315446792479625,0.589441700631427,0.5473387220149059,0.5052357433983553,0.46313276478184917,0.42102978616529807,0.3789268075487775,0.3368238289322414,0.2947208503157208,0.2526178716991847,0.21051489308266358,0.16841191446612802,0.1263089358496069,0.08420595723307078,0.04210297861655021,1.4099832412739488e-14,0.03999999999997783,0.07999999999998408,0.11999999999997613,0.15999999999998238,0.19999999999997442,0.23999999999998067,0.2799999999999727,0.3199999999999932,0.359999999999971,0.3999999999999915,0.4399999999999835,0.47999999999998977,0.5199999999999818,0.5599999999999881,0.5999999999999801,0.6399999999999864,0.6799999999999784,0.7199999999999847,0.7599999999999767,0.799999999999983,0.839999999999975,0.8799999999999812,0.9199999999999733,0.9599999999999795,0.9999999999999716,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.95000000000001,0.9000000000000199,0.8500000000000121,0.800000000000022,0.7500000000000142,0.7000000000000242,0.6500000000000163,0.6000000000000263,0.5500000000000185,0.5000000000000284,0.4500000000000206,0.40000000000003055,0.35000000000002274,0.3000000000000327,0.25000000000002487,0.20000000000003482,0.15000000000000924,0.10000000000003695,0.05000000000001137,2.1316282072803006e-14,0.03368238289321677,0.06736476578643354,0.10104714867966227,0.13472953157287904,0.1684119144661078,0.20209429735932455,0.2357766802525533,0.26945906314577006,0.3031414460390108,0.3368238289322275,0.3705062118254443,0.4041885947186611,0.43787097761190175,0.47155336050511854,0.5052357433983353,0.5389181262915521,0.5726005091847928,0.6062828920780096,0.6399652749712263,0.6736476578644431,0.7073300407576838,0.7410124236509006,0.7746948065441174,0.808377189437358,0.8420595723305748,0.8757419552238155,0.9094243381170323,0.9431067210102491,0.9767891039034658,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9738212830082484,0.9317183043917279,0.8896153257752067,0.8475123471586856,0.8054093685421351,0.763306389925614,0.7212034113090628,0.6791004326925423,0.6369974540760212,0.5948944754595,0.5527914968429495,0.5106885182264284,0.46858553960990723,0.42648256099338666,0.38437958237683556,0.34227660376031444,0.3001736251437933,0.25807064652727274,0.21596766791072164,0.17386468929420051,0.13176171067767994,0.08965873206115882,0.04755575344460772,0.005452774828087148,0.02048210754999084,0.04401151931470876,0.06754093107940995,0.09107034284412788,0.11459975460882907,0.13812916637353026,0.16165857813823148,0.18518798990294938,0.2087174016676506,0.2322468134323518,0.255776225197053,0.2793056369617709,0.3028350487264721,0.3263644604911733,0.3498938722558745,0.37342328402059244,0.39695269578529363,0.4204821075499948,0.444011519314696,0.4675409310794139,0.4910703428441151,0.514599754608833,0.5381291663735343,0.5616585781382354,0.5851879899029366,0.6087174016676545,0.6322468134323558,0.6557762251970569,0.6793056369617582,0.7028350487264761,0.7263644604911773,0.7498938722558784,0.7734232840205797,0.7969526957852976,0.8204821075499987,0.8440115193147,0.8675409310794012,0.8910703428441191,0.9145997546088203,0.9381291663735382,0.9616585781382226,0.9851879899029407,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9743973655625073,0.9449856008566101,0.9155738361507334,0.8861620714448573,0.8567503067389806,0.8273385420330833,0.7979267773272066,0.7685150126213305,0.7391032479154538,0.7096914832095566,0.6802797185036799,0.6508679537977826,0.621456189091927,0.5920444243860292,0.5626326596801531,0.5332208949742553,0.5038091302683791,0.47439736556250245,0.4449856008566263,0.4155738361507285,0.3861620714448524,0.3567503067389757,0.327338542033099,0.29792677732720174,0.26851501262132504,0.2391032479154489,0.2096914832095722,0.18027971850367497,0.15086795379779827,0.12145618909192213,0.09204442438604543,0.0626326596801482,0.0332208949742715,0.003809130268374261,0.014508159514588692,0.031174826181252047,0.047841492847915404,0.0645081595145906,0.08117482618125395,0.09784149284791731,0.11450815951458065,0.13117482618125587,0.14784149284791923,0.16450815951458256,0.18117482618125777,0.19784149284792113,0.21450815951458446,0.23117482618124782,0.24784149284792303,0.2645081595145864,0.28117482618126155,0.2978414928479131,0.31450815951458827,0.33117482618125166,0.3478414928479268,0.3645081595145902,0.38117482618125353,0.3978414928479169,0.4145081595145921,0.43117482618125547,0.4478414928479188,0.4645081595145822,0.48117482618125734,0.49784149284792073,0.5145081595145841,0.5311748261812475,0.5478414928479226,0.564508159514586,0.5811748261812493,0.5978414928479127,0.6145081595145879,0.6311748261812512,0.6478414928479265,0.6645081595145897,0.6811748261812531,0.6978414928479165,0.7145081595145917,0.7311748261812551,0.7478414928479183,0.7645081595145817,0.781174826181257,0.7978414928479203,0.8145081595145837,0.831174826181247,0.8478414928479222,0.8645081595145856,0.8811748261812489,0.8978414928479123,0.9145081595145874,0.9311748261812508,0.9478414928479261,0.9645081595145776,0.9811748261812527,0.9978414928479161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9818648006067723,0.9610314672734285,0.9401981339400991,0.9193648006067703,0.8985314672734409,0.8776981339400971,0.8568648006067677,0.8360314672734384,0.8151981339401095,0.7943648006067652,0.7735314672734364,0.752698133940107,0.7318648006067776,0.7110314672734338,0.69019813394009,0.6693648006067606,0.6485314672734313,0.6276981339401024,0.6068648006067581,0.5860314672734293,0.5651981339400999,0.5443648006067705,0.5235314672734267,0.5026981339400973,0.48186480060676795,0.46103146727343913,0.44019813394009477,0.41936480060676595,0.3985314672734366,0.3776981339401072,0.3568648006067634,0.336031467273434,0.3151981339400902,0.29436480060677583,0.273531467273432,0.25269813394010265,0.23186480060675885,0.21103146727342947,0.1901981339401001,0.16936480060677128,0.14853146727342692,0.1276981339400981,0.10686480060676873,0.08603146727343935,0.06519813394009555,0.044364800606766175,0.023531467273437356,0.002698133940107983,0.01123212349516544,0.02413534930161449,0.03703857510806354,0.04994180091451259,0.06284502672097081,0.07574825252741986,0.08865147833387808,0.10155470414032713,0.11445792994677619,0.12736115575322524,0.14026438155968346,0.1531676073661325,0.16607083317258156,0.1789740589790306,0.19187728478548882,0.2047805105919379,0.21768373639838692,0.230586962204836,0.2434901880112942,0.2563934138177433,0.2692966396241923,0.28219986543064135,0.29510309123709955,0.30800631704354864,0.32090954285000683,0.3338127686564467,0.34671599446290496,0.359619220269354,0.3725224460758122,0.3854256718822613,0.3983288976887103,0.4112321234951685,0.42413534930161756,0.43703857510806665,0.4499418009145157,0.4628450267209739,0.475748252527423,0.488651478333872,0.5015547041403211,0.5144579299467793,0.5273611557532283,0.5402643815596866,0.5531676073661265,0.5660708331725847,0.5789740589790338,0.591877284785492,0.6047805105919409,0.61768373639839,0.6305869622048391,0.6434901880112973,0.6563934138177463,0.6692966396241954,0.6821998654306445,0.6951030912371027,0.7080063170435518,0.7209095428500008,0.7338127686564498,0.746715994462908,0.7596192202693571,0.7725224460758061,0.7854256718822552,0.7983288976887134,0.8112321234951625,0.8241353493016207,0.8370385751080698,0.8499418009145188,0.8628450267209679,0.875748252527426,0.8886514783338751,0.9015547041403241,0.9144579299467732,0.9273611557532314,0.9402643815596805,0.9531676073661295,0.9660708331725786,0.9789740589790368,0.9918772847854859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9859598456310467,0.9698308133729857,0.9537017811149126,0.9375727488568516,0.9214437165987784,0.9053146843407175,0.889185652082656,0.8730566198245945,0.8569275875665219,0.8407985553084604,0.8246695230503994,0.8085404907923379,0.7924114585342653,0.7762824262762038,0.7601533940181423,0.7440243617600814,0.7278953295020082,0.7117662972439472,0.6956372649858857,0.6795082327278248,0.6633792004697516,0.6472501682116907,0.6311211359536175,0.6149921036955677,0.5988630714374951,0.5827340391794336,0.566605006921361,0.5504759746632994,0.5343469424052385,0.518217910147177,0.5020888778891044,0.4859598456310429,0.4698308133729814,0.45370178111492043,0.43757274885684727,0.4214437165987863,0.4053146843407248,0.3891856520826633,0.3730566198245907,0.35692758756652976,0.34079855530846825,0.32466952305040675,0.30854049079233414,0.29241145853427264,0.27628242627620003,0.26015339401813853,0.24402436176007758,0.22789532950201608,0.21176629724394347,0.19563726498588196,0.17950823272782046,0.1633792004697595,0.14725016821168635,0.1311211359536254,0.1149921036955639,0.09886307143750239,0.08273403917942979,0.06660500692136828,0.05047597466330733,0.03434694240524583,0.018217910147173222,0.0020888778891117177,0.009638810770632647,0.020711672632651765,0.03178453449467088,0.04285739635669786,0.05393025821871698,0.0650031200807361,0.07607598194275521,0.08714884380478219,0.0982217056668013,0.10929456752882041,0.12036742939083954,0.13144029125286652,0.14251315311488563,0.15358601497690474,0.16465887683892386,0.17573173870095085,0.18680460056296996,0.19787746242498908,0.2089503242870082,0.22002318614903518,0.2310960480110543,0.24216890987308126,0.2532417717351004,0.2643146335971195,0.2753874954591386,0.2864603573211656,0.2975332191831847,0.3086060810452038,0.31967894290722293,0.3307518047692499,0.34182466663126904,0.35289752849328815,0.36397039035530726,0.37504325221733426,0.38611611407935337,0.3971889759413725,0.4082618378033916,0.4193346996654186,0.4304075615274377,0.4414804233894647,0.4525532852514759,0.4636261471135029,0.47469900897552203,0.485771870837549,0.49684473269956814,0.5079175945615872,0.5189904564236063,0.5300633182856334,0.5411361801476524,0.5522090420096716,0.5632819038716906,0.5743547657337177,0.5854276275957367,0.5965004894577559,0.607573351319775,0.618646213181802,0.6297190750438211,0.6407919369058402,0.6518647987678593,0.6629376606298863,0.6740105224919054,0.6850833843539325,0.6961562462159515,0.7072291080779707,0.7183019699399976,0.7293748318020168,0.7404476936640358,0.751520555526055,0.762593417388082,0.773666279250101,0.7847391411121202,0.7958120029741393,0.8068848648361663,0.8179577266981853,0.8290305885602045,0.8401034504222237,0.8511763122842506,0.8622491741462697,0.8733220360082967,0.8843948978703158,0.895467759732335,0.906540621594354,0.917613483456381,0.9286863453184001,0.9397592071804193,0.9508320690424383,0.9619049309044654,0.9729777927664844,0.9840506546285036,0.9951235164905227,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9965575675819168,0.9827164902543924,0.9688754129268686,0.9550343355993348,0.941193258271811,0.9273521809442872,0.9135111036167634,0.8996700262892295,0.8858289489617057,0.8719878716341819,0.8581467943066481,0.8443057169791243,0.8304646396515905,0.8166235623240766,0.8027824849965428,0.788941407669019,0.7751003303414852,0.7612592530139614,0.7474181756864375,0.7335770983589137,0.7197360210313799,0.7058949437038561,0.6920538663763317,0.6782127890488079,0.6643717117212741,0.6505306343937503,0.6366895570662264,0.6228484797387026,0.6090074024111688,0.595166325083645,0.5813252477561212,0.5674841704285973,0.5536430931010635,0.5398020157735397,0.5259609384460059,0.5121198611184821,0.49827878379095825,0.4844377064634344,0.4705966291359006,0.4567555518083768,0.4429144744808524,0.4290733971533286,0.4152323198257948,0.40139124249827096,0.38755016517074714,0.3737090878432233,0.3598680105156895,0.3460269331881657,0.33218585586064187,0.31834477853311804,0.30450370120558423,0.2906626238780604,0.2768215465505266,0.26298046922301277,0.24913939189547896,0.23529831456795514,0.22145723724042132,0.2076161599128975,0.19377508258537368,0.1799340052578493,0.16609292793031605,0.15225185060279167,0.13841077327526785,0.12456969594774403,0.11072861862021022,0.0968875412926864,0.08304646396516258,0.06920538663763875,0.05536430931010494,0.04152323198258112,0.0276821546550573,0.01384107732753348,0],"lanes":[{"name":"sine","color":[255,210,80],"events":[{"t":0,"dur":0.76,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":0.95,"dur":0.76,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":2.6599999999999997,"dur":0.7224871130596429,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":3.5631088913245534,"dur":0.7224871130596429,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":5.188704895708749,"dur":0.6200000000000001,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":5.96370489570875,"dur":0.6200000000000001,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":7.358704895708749,"dur":0.4800000000000001,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":7.958704895708749,"dur":0.4800000000000001,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":9.038704895708749,"dur":0.3400000000000001,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":9.46370489570875,"dur":0.3400000000000001,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":10.228704895708749,"dur":0.23751288694035716,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":10.525596004384195,"dur":0.23751288694035716,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":11.059999999999999,"dur":0.2,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":11.309999999999999,"dur":0.2,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":11.759999999999998,"dur":0.23751288694035716,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":12.056891108675444,"dur":0.23751288694035716,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":12.591295104291248,"dur":0.33999999999999986,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":13.016295104291249,"dur":0.33999999999999986,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":13.781295104291248,"dur":0.4799999999999999,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":14.381295104291247,"dur":0.4799999999999999,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":15.461295104291247,"dur":0.6200000000000001,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":16.236295104291248,"dur":0.6200000000000001,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":17.631295104291247,"dur":0.7224871130596427,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":18.5344039956158,"dur":0.7224871130596427,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":20.159999999999997,"dur":0.76,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":21.109999999999996,"dur":0.76,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":22.819999999999997,"dur":0.7224871130596429,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":23.72310889132455,"dur":0.7224871130596429,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":25.348704895708746,"dur":0.6200000000000001,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":26.123704895708745,"dur":0.6200000000000001,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":27.518704895708748,"dur":0.48000000000000037,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":28.11870489570875,"dur":0.48000000000000037,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":29.198704895708747,"dur":0.34000000000000025,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":29.623704895708748,"dur":0.34000000000000025,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":30.38870489570875,"dur":0.23751288694035716,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":30.685596004384195,"dur":0.23751288694035716,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":31.22,"dur":0.2,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":31.47,"dur":0.2,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":31.919999999999998,"dur":0.237512886940357,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":32.21689110867545,"dur":0.237512886940357,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":32.751295104291245,"dur":0.3400000000000001,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":33.17629510429124,"dur":0.3400000000000001,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":33.94129510429124,"dur":0.4799999999999999,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":34.541295104291244,"dur":0.4799999999999999,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":35.62129510429124,"dur":0.6199999999999998,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":36.39629510429124,"dur":0.6199999999999998,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":37.791295104291244,"dur":0.7224871130596426,"hz":261.6255653005986,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04},{"t":38.694403995615794,"dur":0.7224871130596426,"hz":329.6275569128699,"g":0.95,"wave":"sine","attack":0.008,"decay":0.04}]}]} diff --git a/fedac/native/tools/compose-sine-line.mjs b/fedac/native/tools/compose-sine-line.mjs index e7c990154d..91a91ff194 100644 --- a/fedac/native/tools/compose-sine-line.mjs +++ b/fedac/native/tools/compose-sine-line.mjs @@ -3,6 +3,8 @@ import { mkdir, writeFile } from 'node:fs/promises'; // Seat numbers are given left to right. A silent gap returns to the left. const order = process.argv[2] ? process.argv[2].split(',').map(n => Number(n) - 1) : [0,1,2,3,4,5]; if (order.length < 2 || order.some(n => !Number.isInteger(n) || n < 0 || n > 15) || new Set(order).size !== order.length) throw Error('Use unique seat numbers, e.g. 1,2,3,4,5,6'); +const scoreFile = process.argv[3] || 'sine-line'; +if (!/^[a-z0-9-]+$/.test(scoreFile)) throw Error('Invalid score filename'); const events = [], passes = []; let time = 0; for (let pass = 0; pass < 24; pass++) { @@ -24,5 +26,5 @@ const score = { name: 'Sine Line', geometry: 'line', seatOrder: order, linePasse lanes: [{ name: 'sine', color: [255,210,80], events }] }; const dir = new URL('../scores/', import.meta.url); await mkdir(dir, { recursive: true }); -await writeFile(new URL('sine-line.nsscore', dir), JSON.stringify(score)+'\n'); +await writeFile(new URL(scoreFile + '.nsscore', dir), JSON.stringify(score)+'\n'); console.log(`Sine Line: ${dur.toFixed(1)} seconds, 24 left-to-right passes, seats ${order.map(i=>i+1).join(' → ')}`); -- 2.51.2