Skip to content

Check active model selectors against a versioned native catalog - #943

Merged
seathatflowsinourveins merged 13 commits into
mainfrom
codex/ns2604-model-currency-20261009
Oct 11, 2026
Merged

seathatflowsinourveins merged 13 commits into
mainfrom
codex/ns2604-model-currency-20261009

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Scope

Compare active model selectors with retained native Codex, OmniRoute and Anthropic catalog captures, and include stale or incomplete coverage in the existing currency due-file. The checker extracts text model fields, Python defaults/argv, JSON command/argv/allowlist values and named launch/template surfaces. Startup reads the precomputed notice; the audit timer remains a template.

Codex's short -m counts at its executable position after supported wrappers. Nice/ionice and hcom launches preserve native arguments while wrapper operands, Git directories, Python modules and ordinary message operands cannot establish client context. Claude uses --model. Quoted or escaped punctuation remains data; genuine shell operators establish command boundaries in strings, while argv operators remain literal.

File, post-read and line admission now let model-bearing commands reach structured/POSIX decoding even when their raw model spelling is escaped. Model identity comes from the decoded selector argument. Candidate normalization is only an admission hint; it cannot establish executable context or select a model. Command strings decode escapes, while supplied argv remains literal. When POSIX parsing of a text field or a non-prose command line fails, the checker skips that field or line only when no raw or potentially escaped model-ID candidate is present. Parse failures with such a candidate keep coverage unknown, except on prose command lines, where a failed command parse falls back to sentence matching of the raw line. A readable first field value keeps its existing scope.

Markdown extraction preserves a formatted executable and its operands in one surrounding command. A single-token span decodes POSIX quotes and escapes with upstream shlex.split, then encodes with shlex.quote. Quoted wrapper names retain their identity. Full command spans keep their independent parse; other span text stays one opaque surrounding token. Multiword comments cannot suppress an earlier formatted model. Literal punctuation stays data, and fences stay literal. Text fields contribute only their first lexical value. Unknown launchers, custom shell functions and shell keywords stop the executable walk; timeout requires a literal duration.

The landing inventory is 94 (main's 93 plus the checker); the checker is the only added repo inventory grant. The exact dated G5 comparison record has zero active selectors under the full grammar and retains its unchanged bytes and ordinary active-copy/size guards.

  • Base commit after the CC-authorized landing rebase: f1f6c0c20e214f1cee9aba3c5f0c1430d66e75ed.
  • Current head: ced5ccf43d7206451d3eb5c8693a9bc0389f8566, the ONE final docs/test-scope correction of 7e4a0c94fd42879d3b41adae1042a048fff5c6a4 under the CC's option (a). Runtime checker/collector and the grant policy remain byte-identical; only the operating note, tests and two evidence bindings change. The conflict-only rebase remains for the CC's landing cue.
  • Lane: lane:shared. Trading acknowledgement 6094414078, reaffirmed in 6094723019, covers the byte-identical run_worker.py and research-runtime README hunks.
  • Owned paths: original checker/catalog, collector documentation, service comment, dated decision, model-default source, tests and evidence registration. The latest correction changes only the checker, its tests, operational docs and their three existing evidence bindings.

SOTA sources

  • CommonMark 0.31.2 code spans, section 6.1, including matching delimiters and literal span-content normalization, and fenced code, section 4.5. Spans retain their place in the surrounding command; formatting cannot erase an executable or let an unrelated comment suppress its model value.
  • CPython v3.13.16 shlex contract, split:305–313 and quote:323–332 define POSIX decoding followed by one-token encoding. The adapter decodes a single-token span before quoting; it does not supply shell source as a decoded executable name. shlex.py:133–218 supplies the preserved punctuation states. AST, JSON decoder and unittest supply existing structured seams. No new dependency or copied parser.
  • OpenAI Codex rust-v0.162.0 shared_options.rs:22–23 declares -m/--model; installed Codex 0.162.1 help agrees. Installed Claude Code 2.1.296 help declares --model without -m.
  • util-linux v2.41.3 schedutils/ionice.c:140–157, optstring +n:c:p:P:u:tVh, and its command-versus-targeting/execvp branches; flock.c defines lock/option operands. Installed wrapper/Python controls preserve literal argv without launching a model client.
  • hcom v0.7.28 src/commands/launch.rs defines selected tools and consumed launcher operands. Installed version/help and tagged source were checked; client launch remains unrun.
  • uutils/coreutils 0.10.0 nice, nohup, env and timeout define supported command positions and consumed operands.
  • Git v2.53.0 working-directory operand, commit message flag, and CPython module option supply retained ordinary-operand exclusions. Native Bash 5.3.9 echo probes independently confirm quoted-punctuation semantics.
  • Main ff69fc8 published G5 snapshot and native grant proposal are durable repository sources; review heads are never runtime or fixture pins.
  • Original comparison captures retain Codex rust-v0.162.0 upstream c1382380de69521303b416720a52f42d51af6248, OmniRoute v3.8.51's models route and Anthropic models API 2023-06-01. Observation identities are preserved; comparison does not certify live availability or delivered effort. RFC 6901 supplies JSON locators.

Evidence-class table

The historical repair measurements below refer to reviewed 94fbc29a and its pure landing rebase. The final B1 repair has separate validation below.

Claim Evidence class Command / receipt
Escaped model/flag and JSON-encoded commands reach decoding before model matching synthetic / local_integration Permanent real-check regression: seven failed command subcases at reviewed head; decoded-argv and literal negative controls preserved
Conservative admission preserves unrelated command, literal argv and operand behavior synthetic Dedicated negative controls and complete touched module; actual model identities come only from decoded selectors
Quoted wrapper names preserve native model selectors synthetic / local_integration Permanent six-case regression red before decoding; both native env/Python quote controls preserve argv without invoking a model client
Decoding preserves ordinary operands, literal punctuation and independent full spans synthetic Permanent preservation test plus complete touched module; five escaped-wrapper/model/full-span probes
Formatting echo, printf or /bin/echo cannot promote its Codex operand to an executable synthetic Permanent collector regression: three failed subcases before fix, green afterward
Unrelated multiword comment spans cannot hide a formatted native model synthetic Permanent regression: two failed subcases before fix; both single-word-comment controls retained
Original Markdown, independent-span, wrapper and punctuation behavior remains covered synthetic / local_integration Five focused controls and complete genuine-worktree active-model module; additional padded-token/operator/wrapper probes
Actual repository selector coverage and all readiness pointers are preserved local_integration Same 424 eligible files: 173 → 187, zero lost/errors; fourteen native Claude alias gains; readiness 57 → 57
Complete touched module passes under the current local-test policy local_integration 93 active-model tests, exit 0, no skips; unrelated modules are left to hosted CI
Landing inventory is 91 and both trading-acknowledged files remain exact local_integration Native inventory equality: main 90 plus one checker row; acknowledged Git blobs unchanged
FULL integrity and PR-range secret scan pass local_integration 70 components / 11,397 files / four profiles / 239 receipts; ten actual PR-range commits, 100% redaction, no leaks
Provider/model execution, delivered routing/effort or timer installation — Unrun

The repository-only census excludes host/settings files and protected peer lanes. The previous safe host corpus restored all 26 readiness selectors and hcom; its remaining custom run native codex function row is explicitly outside the static grammar. Claude's unadvertised -m remains excluded. No claim of complete custom-wrapper or settings-inclusive host coverage.

Local commands run at reviewed 94fbc29

python3 -B -m unittest <escaped-model real-check regression and literal controls>
At reviewed head: two tests/seven failed subcases/zero errors, exit 1; decoded argv/literal negatives preserved
python3 -B -m unittest tests.test_active_model_currency
Final genuine-worktree source tree: exit 0, 93 tests, no skips
nice -n 10 ionice -c2 -n7 python3 -B scripts/validate.py
FULL before commit: exit 0, 70 components / 11,397 files / four profiles / 239 receipts
gitleaks git --redact=100 --log-opts='ff69fc865ce72a6717a36a8f06fdac79038bd515..HEAD'
Actual PR merge-base range only: exit 0, ten commits, 100% redaction, no leaks
git diff --cached --check
exit 0

Decision record

Active-model currency decision and operational scope. The latest correction admits potentially escaped selections before upstream decoding, preserving full-span separation, literal argv and punctuation protections. Earlier Markdown controls remain. Native registration regenerates exactly three source bindings; all other evidence metadata is exact. An attempted inherited receipt display canonicalization failed native receipt fidelity and was discarded before commit. Publication scans check the complete PR body, new committed text and new messages with count-only output; no absolute home path is added or quoted.

Host evidence

No host receipt or platform-status change. Previously measured wrapper/Python and Bash echo controls establish local command behavior. Model/provider execution and host application are unrun. CC owns landing and post-landing units.

Checklist

  • Reviewed functional patches preserved through the CC-authorized landing rebase.
  • Escaped-selector regression is red at reviewed head; literal argv/operand and earlier Markdown/P2 controls remain.
  • Complete genuine-worktree touched module passes; landing inventory is 91; acknowledged trading bytes remain exact.
  • Repository coverage loses no locator and preserves all 57 readiness selections.
  • Native evidence registration, FULL validate and PR-range-only gitleaks pass.
  • GPT fix7 ACK at reviewed 94fbc29; its sole P3 is listed below.
  • CC Claude micro, actual rebased-head hosted CI and CC landing.

Prior landing rebase a2a873b validation

The exact prepared head passes 229 tests without skips (active-model, currency-due, research-workflow, grants and evidence modules), FULL validation of 70 components / 11,482 hashed files / four profiles / 239 receipts, evidence normalization and diff checks. PR-range-only gitleaks scans the ten rebased commits with 100% redaction and no leaks. The CC's recompute tool derives the shared inventory count; the only grant addition remains the checker. final_stack is absent at this pinned main and was not run. The exact-lease landing push replaces reviewed 94fbc29a with this pure rebase; no functional repair was added.

Final adjudicated B1 repair

Wider admission previously passed model-option/default-expansion lines into a parser that raised on incomplete quoting. Three permanent real-check cases fail at exact a2a873b with unknown / 2 and pass after repair with current / 0 and no errors: the native shell launch shape, the same shape in a sh fence, and model-option plus alias/apostrophe prose. A preservation method verifies that raw and potentially escaped model-ID parse failures in .sh commands still return unknown. The guard reuses existing model_value_candidate; CPython v3.13.16 at cbc944f4bc59639a444dd971c737788ba2283a91:Lib/shlex.py:L185-L191 supplies the incomplete-quotation failure being classified.

The touched currency module passes 97 tests without skips; FULL validation passes 70 components / 11,482 hashed files / four profiles / 239 receipts. Evidence/diff checks pass and the actual eleven-commit PR range scans with 100% redaction and no leaks. The native check --root <owned repository> --host --json shape changes unknown/2 (one error) to current/0 (no errors, no stale selectors) on the same 3,690-file admitted inventory. Both host settings files and peer repository contents are excluded before file reads under the standing privacy/protected-scope rules; a settings-inclusive host run is unrun. Only three existing evidence bindings update; inventory remains 91.

Final documentation-scope correction

The CC's option (a) treats the changed operating-note guarantee as a blocker under rule 1. The docs now state the actual field/non-prose unknown-coverage scope and the prose-command raw-sentence fallback, including docs sh fences, with pinned source links to 7e4a0c9: scripts/active_model_currency.py:L614-L617 and L633-L639. The former broad preservation-method name is scoped to non-prose commands.

Two documented-behavior methods fail at exact 7e4a0c9 on the contradictory/missing documentation contract (two failures, zero errors). Their runtime controls already pass at that head: Astra's docs sh fence containing codex exec -m gpt-6.1-sol 'unclosed returns current/0/no errors; field and non-prose malformed-ID controls return unknown/2. After the doc correction both methods pass. This is documentation-alignment evidence, not a runtime before/after behavior change.

The final currency module passes 99 tests without skips, FULL validation passes 70 components / 11,482 hashed files / four profiles / 239 receipts, and evidence/diff checks pass. Only the two existing doc/test bindings update. PR-range-only gitleaks scans twelve commits with 100% redaction and no leaks. The prior body correction and all ten individually replied/resolved Codex Follow-ups remain delivered; no additional implementation changes or landing rebase are included.

Follow-ups

  • F1 / P3: validate executable position for long model options, retaining echo/printf ordinary-operand negatives.

  • F2 / P3: refine option-terminator handling for codex exec -- -m.

  • F3 / P3: decide and test extraction of ${VAR:-<model>} defaults; they are not extracted currently.

  • F5: hcom mirror coverage is owned by the CC's MIRRORS update.

  • Codex follow-up 4240876145: Align the stale-model collector exit status with the systemd timer-unit success contract. (scripts/currency_due.py:913).

  • Codex follow-up 4240876148: Review effective project-local Claude settings excluded from Git inventory. (scripts/active_model_currency.py:646).

  • Codex follow-up 4240876151: Model Claude fallback-model flags and their ordered values. (scripts/active_model_currency.py:44).

  • Codex follow-up 4240876152: Scope Codex-native routing aliases to the client/configuration where they are valid. (scripts/active_model_currency.py:721).

  • Codex follow-up 4240876155: Preserve and validate observed provider/routing prefixes during model-ID extraction. (scripts/active_model_currency.py:29).

  • Codex follow-up 4240876157: Distinguish Claude availableModels prefix semantics from exact runtime-model selections. (scripts/active_model_currency.py:722).

  • Codex follow-up 4242188824: Include applicable Codex profile configuration files in an agreed host-coverage policy. (scripts/active_model_currency.py:653).

  • Codex follow-up 4242188828: Review recursive discovery of nested agent files. (scripts/active_model_currency.py:658).

  • Codex follow-up 4242188832: Handle YAML block-list/plural selector fields under the recorded grammar policy. (scripts/active_model_currency.py:601).

  • Codex follow-up 4242188833: Handle PowerShell environment-assignment prefixes for model selectors. (scripts/active_model_currency.py:604).

  • F5b / P3: model hcom's --system value flag, verified at the new hcom v0.7.28 mirror (src/commands/launch.rs:639-642).

  • Wider: decide the behavior of escaped model IDs in prose when command parsing falls back to raw sentence matching.

  • Wider: measure the 30-second ACTIVE_MODELS budget under load before changing its policy; the confirmation micro's timeout explanation remains a hypothesis.

  • Wider: retain the hostname-hygiene item for its dedicated follow-up.

  • CC terminal-rule follow-up 4242590024: Measure the complete host-scan budget and align the collector timeout with inventory subprocess limits and subsequent parsing (scripts/currency_due.py:187). The CC classified this as not P1; deferred after the correction allowance was used.

  • CC terminal-rule follow-up 4242590030: Require Anthropic catalog pagination to declare has_more as explicit boolean false before publishing a complete catalog (scripts/active_model_currency.py:80). The CC classified this as not P1; deferred after the correction allowance was used.

  • CC terminal-rule follow-up 4242590036: Handle language block comments before extracting selectors, including multiline JavaScript/TypeScript comments (scripts/active_model_currency.py:594). The CC classified this as not P1; deferred after the correction allowance was used.

  • CC terminal-rule follow-up 4242590042: Classify Anthropic model rows using the API's declared line field, including future or differently spelled model IDs (scripts/active_model_currency.py:92). The CC classified this as not P1; deferred after the correction allowance was used.

  • CC terminal-rule follow-up 4242590046: Carry a structured command's sibling executable context into args traversal so short model flags are recognized (scripts/active_model_currency.py:503). The CC classified this as not P1; deferred after the correction allowance was used.

@seathatflowsinourveins seathatflowsinourveins added the lane:shared Touches files owned by both lanes; needs both lanes' acknowledgement label Oct 9, 2026
@seathatflowsinourveins seathatflowsinourveins changed the title Check active hosted models against native catalog currency Check active model selectors against a versioned native catalog Oct 10, 2026
seathatflowsinourveins added a commit that referenced this pull request Oct 10, 2026
… rows

Leave CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL unset (declined); decline
ultrafast_mode (plan-gated, dropped client-side by the OmniRoute profile);
keep the Codex cyber access programs as owner information only; decline the
model_providers capabilities rows until the currency lane's trial after #943.
Rows, decision record and the re-registered catalog hash change together.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@seathatflowsinourveins
seathatflowsinourveins force-pushed the codex/ns2604-model-currency-20261009 branch from b50f740 to 46cbd7d Compare October 10, 2026 02:25
@seathatflowsinourveins
seathatflowsinourveins marked this pull request as ready for review October 10, 2026 02:30
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

seathatflowsinourveins added a commit that referenced this pull request Oct 10, 2026
…ecord

The page-URL diffs go to the command center (through the daily watch service it
installs after #943), the changelog-name report to the currency lane, and the
settings-drift inventory to cc-native-practice. The weekly practice pass, the
TeammateIdle gate, the cost-data check and the WebSearch interaction now say who
acts or that nothing is scheduled.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@seathatflowsinourveins

Copy link
Copy Markdown
Owner Author

trading-cc ack, scope limited to the hunks in blueprints/us-equities/research-runtime/run_worker.py and blueprints/us-equities/research-runtime/README.md at head fd469e0.

What the hunks do: they change the Claude model id claude-opus-5 to claude-opus-5-5 in the is_opus5 accepted set, in the result's configured_model, and in the claude -p --model argument, and they reword the README to say no new Opus 5.5 execution or usage is claimed.

What I checked at that head: is_opus5 is applied only to the current run's stream-json init and model events (run_worker.py:335 and :337), so no historical receipt is re-verified with it; the September 19 evidence receipt receipt.json is untouched; neither changed file still contains the old id; and the one test that references run_worker, tests/test_research_workflow.py, is part of this PR.

This is an ownership ack for those hunks only. It is not a read of the rest of the PR, and it names this head; a later head needs a fresh ack if those two files change.

@seathatflowsinourveins

Copy link
Copy Markdown
Owner Author

trading-cc re-affirms its earlier scoped ack (comment 6094414078) at head 042eb8c. The two files it covers, blueprints/us-equities/research-runtime/run_worker.py and blueprints/us-equities/research-runtime/README.md, are byte-identical (git blob comparison) to their state at fd469e0, so the verification there carries over unchanged. This remains an ownership ack for those two files only, not a read of the rest of the PR.

@seathatflowsinourveins

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-11T17:54:26.391678Z ced5ccf Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 94fbc29ab3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/currency_due.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
@seathatflowsinourveins
seathatflowsinourveins force-pushed the codex/ns2604-model-currency-20261009 branch from 94fbc29 to a2a873b Compare October 11, 2026 14:51
@seathatflowsinourveins

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7e4a0c94fd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
@seathatflowsinourveins

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ced5ccf43d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/currency_due.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
Comment thread scripts/active_model_currency.py
The committed-path proposal at 46cbd7d requires the new model checker,
so the reviewed repository inventory no longer matches its native selector.
Add exactly the proposed scripts/active_model_currency.py repo-root row and
advance this base's hard count from 90 to 91. Preserve every other policy
field, existing row order and independently reviewed receipt/user grant.
Register the corrected policy and test through the native evidence helper.

The full policy module reproduces one failure before the repair and passes
all 21 cases afterward. FULL validation passed before this forward commit.
At a later authorized landing rebase, derive the next count from every
already-landed row rather than reusing this branch-local count.

Primary model and supported derivation:
8c57010
https://github.com/seathatflowsinourveins/native-agent-stack/blob/46cbd7de292eb9b82062bd49e65b832f1e0c6902/scripts/local_pages_policy_grants.py
@seathatflowsinourveins
seathatflowsinourveins force-pushed the codex/ns2604-model-currency-20261009 branch from ced5ccf to 2cd2e7b Compare October 11, 2026 19:43
@seathatflowsinourveins
seathatflowsinourveins merged commit c4c56da into main Oct 11, 2026
33 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the codex/ns2604-model-currency-20261009 branch October 11, 2026 20:28
seathatflowsinourveins added a commit that referenced this pull request Oct 11, 2026
… rows

Leave CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL unset (declined); decline
ultrafast_mode (plan-gated, dropped client-side by the OmniRoute profile);
keep the Codex cyber access programs as owner information only; decline the
model_providers capabilities rows until the currency lane's trial after #943.
Rows, decision record and the re-registered catalog hash change together.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
seathatflowsinourveins added a commit that referenced this pull request Oct 11, 2026
…ecord

The page-URL diffs go to the command center (through the daily watch service it
installs after #943), the changelog-name report to the currency lane, and the
settings-drift inventory to cc-native-practice. The weekly practice pass, the
TeammateIdle gate, the cost-data check and the WebSearch interaction now say who
acts or that nothing is scheduled.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:shared Touches files owned by both lanes; needs both lanes' acknowledgement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant