Agent skill

Hz Unity Meta Core SDK

by meta-quest in meta-quest/agentic-tools

Meta XR Core SDK (com.meta.xr.sdk.core) for Unity XR development.

Apache-2.0Auto-check passedGame Development

Install Hz Unity Meta Core SDK

skills CLI
$ npx skills add meta-quest/agentic-tools --skill hz-unity-meta-core-sdk -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install meta-quest/agentic-tools hz-unity-meta-core-sdk --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hz-unity-meta-core-sdk .claude/skills/hz-unity-meta-core-sdk && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
hz-unity-meta-core-sdk
GitHub stars
215
Token cost
~3.4k tokens
SKILL.md length
1,303 words
Files
14 (incl. references)
Skills in repo
34
Repo updated
First seen
Licence
Apache-2.0

At a glance

Meta XR Core SDK (com.meta.xr.sdk.core) for Unity XR development.

  • Works in 3 steps: Check if OVRCameraRig exists in the… → If NOT found, the agent should → When adding OVRCameraRig, follow the…
  • Setting up VR/MR projects
  • SKILL.md covers Running SDK code — drive a…, Finding the SDK Source, CRITICAL: After Any… and Quick Reference, plus 9 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Hz Unity Meta Core SDK is an agent skill from meta-quest/agentic-tools. Meta XR Core SDK (com.meta.xr.sdk.core) for Unity XR development. Use when setting up VR/MR projects, configuring OVRManager, adding OVRCameraRig, enabling passthrough, hand tracking, spatial anchors, boundaryless mode, controller input, Scene API, or any Meta VR feature. Covers OVRProjectSetup, AndroidManifest generation, and project configuration for Meta VR devices, driven against a live Editor with unity-cli.

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including reference files (for example `references/android-manifest.md`, `references/boundaryless.md` and `references/controller-input.md`).

It sits in Game Development. It works with Model Context Protocol. The repository describes itself as: Agent Skills for Meta Quest/Horizon OS VR Development. The licence is Apache-2.0.

When your agent uses it

  • Setting up VR/MR projects
  • Configuring OVRManager
  • Adding OVRCameraRig
  • Enabling passthrough

Example prompts

  • “/hz-unity-meta-core-sdk”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Check if OVRCameraRig exists in the current scene
  2. If NOT found, the agent should
  3. When adding OVRCameraRig, follow the setup steps in references/ovr-camera-rig.md.

What it can do on your machine

Read from SKILL.md and the folder at commit 3a8553d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and csharp).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developers.meta.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Hz Unity Meta Core SDK loads about 3.4k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 110 tokens; SKILL.md has 1,303 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~110
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~18k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from meta-quest/agentic-tools at commit 3a8553d, republished under its Apache-2.0 licence (© meta-quest). 1,303 words, ~3,356 tokens.

Download SKILL.mdSave it as .claude/skills/hz-unity-meta-core-sdk/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
hz-unity-meta-core-sdk
description
Meta XR Core SDK (com.meta.xr.sdk.core) for Unity XR development. Use when setting up VR/MR projects, configuring OVRManager, adding OVRCameraRig, enabling passthrough, hand tracking, spatial anchors, boundaryless mode, controller input, Scene API, or any Meta VR feature. Covers OVRProjectSetup, AndroidManifest generation, and project configuration for Meta VR devices, driven against a live Editor with unity-cli.
license
Apache-2.0

Meta XR Core SDK (com.meta.xr.sdk.core)

The Meta XR Core SDK is the foundational Unity package for developing VR and MR applications targeting Meta VR devices. It provides the core XR rig, device management, input handling, and access to platform features like passthrough, hand tracking, spatial anchors, and scene understanding.

Package: com.meta.xr.sdk.core

Running SDK code — drive a live Editor with unity-cli

Everything here is Editor-only C#. Run it against an open Editor instead of hand-editing scene, manifest, or settings files. Connecting, --project-path, and Safe Mode recovery are in the unity-cli skill.

bash
unity status --format json          # look for state "ready"
unity command run_script --project-path <proj> --file AgentScripts/Setup.cs --entry Setup.Run --format json

Prefer run_script over eval — put the .cs outside Assets/ (path resolves against the project root) so writing it triggers no import or domain reload, and shell quoting can't mangle C# literals.

SDK-specific gotchas:

  • No type-discovery reflection needed. run_script references every loaded assembly, so OVRProjectSetup, OVRManifestPreprocessor etc. compile directly; using System.Reflection; and BindingFlags work for the internal bits (_principalRegistry, GetTasks).
  • Pass silentMode: true to anything that may open an EditorUtility.DisplayDialog — a modal blocks the request until it times out.
  • Async work lands after the script returns (FixAllAsync, Client.Add) — verify in a separate follow-up run_script; never Task.Wait() on the main thread.
  • Scene edits: MarkSceneDirty + SaveScene (+ AssetDatabase.SaveAssets()), then read the value back.
  • Driving Unity MCP instead of the CLI? Its constraints break the above: references/unity-mcp-fallback.md.

Finding the SDK Source

The package com.meta.xr.sdk.core may be located in different places depending on the project setup:

  • Library/PackageCache/com.meta.xr.sdk.core@<hash>/ (cached from registry)
  • Packages/com.meta.xr.sdk.core/ (local package reference)
  • A custom on-disk path (embedded or local folder)

Before searching for SDK source, first locate the package root by searching for a known file by filename pattern:

**/com.meta.xr.sdk.core*/Scripts/OVRManager.cs

Then use the resolved parent path for all subsequent search operations.

CRITICAL: After Any OVRProjectConfig or OVRManager Feature Change

Any time you modify OVRProjectConfig or OVRManager feature settings (hand tracking, passthrough, boundaryless, target devices, etc.), you MUST call GenerateOrUpdateAndroidManifest() and verify the result. See references/android-manifest.md for the full workflow.

Quick Reference

ComponentPurpose
OVRCameraRigPrimary XR rig prefab replacing Unity's Main Camera
OVRManagerSingleton managing device state, features, and configuration
OVRInputUnified API for controller input and tracking
OVROverlayCompositor layers for sharper text, UI, and video
OVRPassthroughLayerEnables passthrough visualization
OVRSpatialAnchorWorld-locked spatial anchors
OVRBoundaryGuardian boundary system access
OVRProjectSetupProject Setup Tool for configuration tasks

OVRCameraRig: The Primary XR Rig

The OVRCameraRig prefab is the primary GameObject to add to create a VR/MR scene. It replaces Unity's conventional Main Camera and provides:

  • Stereo rendering for left/right eyes
  • Head and positional tracking via the TrackingSpace hierarchy
  • Anchors for eyes (CenterEyeAnchor, LeftEyeAnchor, RightEyeAnchor)
  • Anchors for hands/controllers (LeftHandAnchor, RightHandAnchor)
Hierarchy Structure

The OVRCameraRig hierarchy includes eye anchors, hand/controller anchors, and multimodal anchors. To see the current structure, inspect the OVRCameraRig prefab or instantiate it in a scene and examine the TrackingSpace children.

Adding OVRCameraRig to a Scene

When working with a scene that needs XR support:

  1. Check if OVRCameraRig exists in the current scene
  2. If NOT found, the agent should:
    • Option A: Ask the user which scene contains the OVRCameraRig (it is part of the OVRCameraRig prefab instance)
    • Option B: Open a scene where the agent knows the OVRCameraRig exists
    • Option C: Ask the user if they want to add the OVRCameraRig prefab to the current scene
  3. When adding OVRCameraRig, follow the setup steps in references/ovr-camera-rig.md.

OVRManager: Feature Configuration

OVRManager (OVRManager.cs) is the main interface to VR hardware. It is a singleton attached to the OVRCameraRig prefab that exposes the Meta XR SDK to Unity. It controls:

  • Target Devices - Which Meta VR devices to target
  • Performance & Quality - MSAA, adaptive resolution, dynamic resolution
  • Tracking - Tracking origin type (Eye Level, Floor Level, Stage, Stationary)
  • Display - Color gamut settings
  • Quest Features - Hand tracking, passthrough, keyboard, focus awareness, security, experimental features
  • Mixed Reality Capture - Real-world compositing
Analyzing OVRManager for Features

To understand what features are available and how they're configured, analyze the OVRManager component on the OVRCameraRig in the scene. The OVRManager Inspector exposes all configurable XR features grouped into sections.

For the full settings reference (tracking origin, passthrough, boundary, hand tracking on OVRProjectConfig, etc.), see references/ovr-manager.md.

CRITICAL: Changing Serialized Fields — Use SerializedObject, Not Reflection

To change a serialized field on any component, edit it via SerializedObject + FindProperty(name) + ApplyModifiedProperties() — never reflection (FieldInfo/PropertyInfo.SetValue). Reflection mutates the in-memory object but bypasses serialization: for a component on a prefab instance (e.g. OVRManager on OVRCameraRig), the change isn't recorded as a prefab override and is silently dropped on save (SaveScene returns true, but the field reverts to the prefab default).

  • Get the component as UnityEngine.Object (FindObjectOfType / GetComponent); SerializedObject/FindProperty work by name, so no asmref is needed.
  • The serialized name is the [SerializeField] backing field (often _camelCase), not the public property. If FindProperty returns null, discover names by iterating so.GetIterator() (Next(true) → log propertyPath).
  • After ApplyModifiedProperties(), call MarkSceneDirty → SaveScene → SaveAssets, then read the field back to confirm it persisted.
csharp
// component obtained as UnityEngine.Object (e.g. FindObjectOfType(type) as Object)
var so = new SerializedObject(component);
so.FindProperty("_SERIALIZED_FIELD_NAME").boolValue = true;   // typed accessor: boolValue/floatValue/intValue/...
so.ApplyModifiedProperties();                                 // records the prefab-instance override + marks dirty

var scene = EditorSceneManager.GetActiveScene();
EditorSceneManager.MarkSceneDirty(scene);
EditorSceneManager.SaveScene(scene);
AssetDatabase.SaveAssets();

// verify before declaring success
var check = new SerializedObject(component).FindProperty("_SERIALIZED_FIELD_NAME").boolValue;
Show full SKILL.md (507 more words)Show less

OVRProjectSetup (UPST): Listing and Fixing Project Issues

The Unity Project Setup Tool (UPST) (OVRProjectSetup) is a Unity Editor extension that validates project configuration for Meta VR. It maintains a registry of Configuration Tasks — each task checks a specific setting and reports whether it is satisfied or outstanding.

Primary use: list all outstanding issues for the current platform, then fix them.

  • List issues — Query all tasks, filter by platform/validity, and report those where IsDone is false. Each issue has a level (Required, Recommended, Optional), a group (Compatibility, Rendering, Features, etc.), and a fix type (Auto-fix or Manual).
  • Fix issues — Use FixAllAsync(BuildTargetGroup) to auto-fix all fixable issues, or invoke individual FixAction delegates directly.

Drive UPST programmatically against a live Editor with unity-cli (see references/project-setup-tool.md for the full API, task registry access, property reading, and fix invocation patterns).

Access via UI: Meta > Tools > Project Setup Tool.

After UPST is green, prove it on hardware: build an APK, metavr app install <apk>, and confirm the expected features initialized in a metavr log --tag Unity snapshot.

CRITICAL: AndroidManifest Update

NEVER directly edit AndroidManifest.xml for features managed by OVRProjectConfig. See references/android-manifest.md for the full manifest update workflow and rules.

Core Features

Passthrough (Mixed Reality)

Passthrough provides real-time visualization of the physical world inside the headset, enabling mixed reality experiences. See references/passthrough.md for setup steps and configuration.

Hand Tracking

Hand tracking enables natural hand interaction without controllers. See references/hand-tracking.md for setup and configuration.

Spatial Anchors

Spatial anchors anchor virtual content to real-world locations that persist across sessions.

For spatial anchors details, see references/spatial-anchors.md.

Scene API

Scene provides access to the user's physical environment model (walls, floor, furniture) for scene-aware MR experiences.

For Scene API details, see references/scene-api.md.

Boundaryless Mode

Boundaryless mode disables the Guardian boundary for MR experiences where the physical world is visible.

For boundaryless setup, see references/boundaryless.md.

Compositor Layers (OVROverlay)

OVROverlay renders textures directly via the VR compositor, bypassing eye buffer resampling for sharper text, UI, and video. Supports up to 15 overlay layers per scene with quad, cylinder, cubemap, equirect, and fisheye shapes.

For compositor layer details, see references/ovr-overlay.md.

Controller Input (OVRInput)

OVRInput provides unified access to controller buttons, triggers, thumbsticks, and tracking.

For controller input details, see references/controller-input.md.

Project Setup Workflow

For the full project setup workflow (install SDK, set build platform, configure XR provider, add OVRCameraRig, configure OVRManager, generate AndroidManifest), see references/project-setup-workflow.md.

All documentation references point to the official Meta developer docs at developers.meta.com:

Using metavr Tools for Latest Docs

If the metavr MCP server is available, use the mcp__metavr__vr_docs_search and mcp__metavr__vr_docs_get_page tools to verify current API details, as Meta SDK documentation updates frequently. Use mcp__metavr__vr_api_search with engine='unity' to look up exact method signatures for OVRManager, OVRCameraRig, OVRInput, and other classes.

  • unity-cli — drive a live Editor, install editors, build/test
  • hz-unity-meta-interaction-sdk — interaction layer (grab, poke, teleport, interaction rig)
  • hz-xr-simulator-install-and-configure / hz-vr-debug — run and debug beyond Play mode

© meta-quest, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 13 other files (references) in skills/hz-unity-meta-core-sdk of meta-quest/agentic-tools.

  • SKILL.md
  • references/android-manifest.md
  • references/boundaryless.md
  • references/controller-input.md
  • references/hand-tracking.md
  • references/ovr-camera-rig.md
  • references/ovr-manager.md
  • references/ovr-overlay.md
  • references/passthrough.md
  • references/project-setup-tool.md
  • references/project-setup-workflow.md
  • references/scene-api.md
  • references/spatial-anchors.md
  • references/unity-mcp-fallback.md

Open the folder on GitHubat commit 3a8553d

Compare with similar skills

Hz Unity Meta Core SDK next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Hz Unity Meta Core SDK compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hz Unity Meta Core SDK this skillmeta-quest/agentic-tools215—~3.4kAutomated safety check: PassApache-2.0
Sprite Genaldegad/sprite-gen2.7k—~4.9kAutomated safety check: PassApache-2.0
Blockbench Pluginsjasonjgardner/blockbench-mcp-plugin500—~2.8kAutomated safety check: PassGPL-3.0
Unreal Blueprint Authoringflopperam/unreal-engine-mcp1.1k—~1.6kAutomated safety check: PassNone
Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills278—~4kAutomated safety check: PassMIT
Assets Shader List AllIvanMurzak/Unity-MCP4.4k—~435Automated safety check: PassApache-2.0

Similar skills

  • Sprite Gen

    aldegad/sprite-gen

    Generates images and game sprites through GPT or Grok with guided provider choices, separate saved defaults, automatic cleanup and optional curation.

    2.7k GitHub stars~4.9k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Blockbench Plugins

    jasonjgardner/blockbench-mcp-plugin

    Blockbench plugin/extension development for the 3D modeling tool.

    500 GitHub stars~2.8k tokensUpdated 9 days ago
    Game DevelopmentAuto-check passed
  • Unreal Blueprint Authoring

    flopperam/unreal-engine-mcp

    Walks an agent through creating and editing Unreal Engine Blueprints with the Flopperam MCP's bp_* tools, from inspection to commit and verification.

    1.1k GitHub stars~1.6k tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • Locus Unity Bridge

    Misaka-Mikoto-Tech/agent-skills

    A skill your agent uses when an agent needs to inspect or control a real Unity Editor through Locus, especially when Unity MCP is unavailable, named-pipe discovery is needed, C must be executed, or…

    278 GitHub stars~4k tokensUpdated 19 days ago
    Game DevelopmentAuto-check passed
  • Assets Shader List All

    IvanMurzak/Unity-MCP

    List all shaders available in the project assets and packages, sorted by name.

    4.4k GitHub stars~435 tokensUpdated today
    Game DevelopmentAuto-check passed
  • Unreal Material and VFX Workflow

    flopperam/unreal-engine-mcp

    Walks an Unreal Engine MCP agent through building materials, Niagara particle systems, Chaos destruction, and curve assets with inspect-then-edit steps.

    1.1k GitHub stars~927 tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed

More from meta-quest/agentic-tools

All 34 skills in this repo
  • Hz Android 2D Porting

    meta-quest/agentic-tools

    Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements.

    215 GitHub stars~2.1k tokensUpdated 16 days ago
    Auto-check passed
  • Hz API Upgrade

    meta-quest/agentic-tools

    Upgrades Meta VR apps to newer Horizon OS SDK versions — migration guides, deprecated API replacements, changelog.

    215 GitHub stars~1.8k tokensUpdated 16 days ago
    Auto-check passed
  • Hz Iwsdk Webxr

    meta-quest/agentic-tools

    Builds WebXR experiences for Meta VR and Horizon OS using the Immersive Web SDK (IWSDK) — ECS architecture, Three.js integration, spatial UI.

    215 GitHub stars~3k tokensUpdated 16 days ago
    Auto-check passed
  • Hz Metavrx Layout SDK

    meta-quest/agentic-tools

    Build multi-window Meta Horizon OS experiences with the MetaVrx Layout SDK in Jetpack Compose or React Native.

    215 GitHub stars~855 tokensUpdated 16 days ago
    Auto-check passed
  • Hz New Project Creation

    meta-quest/agentic-tools

    Scaffolds new Meta VR and Horizon OS projects after the build path is selected — Standard Android, Meta Spatial SDK, Unity, Unreal, or WebXR.

    215 GitHub stars~2.3k tokensUpdated 16 days ago
    Auto-check passed
  • Hz Perfetto Debug

    meta-quest/agentic-tools

    Analyzes Meta VR and Horizon OS VR performance using Perfetto traces — frame timing, CPU/GPU bottlenecks, render pass analysis.

    215 GitHub stars~2.8k tokensUpdated 16 days ago
    Auto-check passed

Questions about Hz Unity Meta Core SDK

What does Hz Unity Meta Core SDK do?

Meta XR Core SDK (com.meta.xr.sdk.core) for Unity XR development. Hz Unity Meta Core SDK is an agent skill from meta-quest/agentic-tools.core) for Unity XR development.

When should I use Hz Unity Meta Core SDK?

Hz Unity Meta Core SDK fits situations like: setting up VR/MR projects; configuring OVRManager; adding OVRCameraRig; enabling passthrough.

How do I install Hz Unity Meta Core SDK in Claude Code?

Run `npx skills add meta-quest/agentic-tools --skill hz-unity-meta-core-sdk -a claude-code`. Or copy the skill folder (skills/hz-unity-meta-core-sdk in meta-quest/agentic-tools) into .claude/skills/hz-unity-meta-core-sdk in your project. Claude Code loads it when a task matches its description.

How do I install Hz Unity Meta Core SDK in Codex?

Run `npx skills add meta-quest/agentic-tools --skill hz-unity-meta-core-sdk -a codex`. Or copy the skill folder (skills/hz-unity-meta-core-sdk in meta-quest/agentic-tools) into .agents/skills/hz-unity-meta-core-sdk in your project. Codex loads it when a task matches its description.

Can I use Hz Unity Meta Core SDK in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add meta-quest/agentic-tools --skill hz-unity-meta-core-sdk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hz-unity-meta-core-sdk, .gemini/skills/hz-unity-meta-core-sdk, .github/skills/hz-unity-meta-core-sdk and .opencode/skills/hz-unity-meta-core-sdk in your project.

What does Hz Unity Meta Core SDK need to run?

SKILL.md names no scripts, command-line tools or credentials: Hz Unity Meta Core SDK is instructions for the agent only.

Does Hz Unity Meta Core SDK access the network?

SKILL.md names 1 domain. As links in the text: developers.meta.com. This is read from the text; nothing was executed.

Is Hz Unity Meta Core SDK safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Hz Unity Meta Core SDK use?

Hz Unity Meta Core SDK is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hz Unity Meta Core SDK use?

About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 15k tokens, read only when the agent opens those files.

What are the alternatives to Hz Unity Meta Core SDK?

Skills that share tags, products or a category with Hz Unity Meta Core SDK: Sprite Gen (aldegad/sprite-gen, 2.7k stars), Blockbench Plugins (jasonjgardner/blockbench-mcp-plugin, 500 stars), Unreal Blueprint Authoring (flopperam/unreal-engine-mcp, 1.1k stars) and Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 278 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hz Unity Meta Core SDK?

meta-quest (a GitHub organization) maintains it in meta-quest/agentic-tools, which has 215 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on September 24, 2026.

Source: meta-quest/agentic-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.