Skip to main content
Glama

Similar sites

similar_sites
Read-onlyIdempotent

Find related listed publishers by vector similarity to a known domain. Returns compact profiles, cosine similarity and actual shared section keys. Similarity is not affiliation, endorsement or proof of equivalent capabilities. Uses stored vectors without a paid call per request; unavailable or stale embeddings produce an empty result with a reason.

Input Schema

NameRequiredDescriptionDefault
limitNo
actionNoActions are inferred from publisher content. They can overlap and do not prove a working integration, authorization or task success. Unclassified sites may be missing useful actions.
domainYesA domain name such as example.com (no scheme, no path).
countryNoCountry: owner-declared or site-published address preferred; domain/hosting inference is a labeled fallback. ISO 3166-1 alpha-2 (XK supported), case-insensitive, or unknown. GET /v1/countries / list_countries lists counts. Not verified headquarters or markets served.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "available": {
      -        "type": "boolean"
      -      },
      -      "domain": {
      -        "type": "string"
      -      },
      -      "filters": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "action": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "country": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "country",
      -          "action"
      -        ],
      -        "type": "object"
      -      },
      -      "meaning": {
      -        "type": "string"
      -      },
      -      "model": {
      -        "type": "string"
      -      },
      -      "reason": {
      -        "type": "string"
      -      },
      -      "results": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "agent_summary": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "agent_terms": {
      -              "anyOf": [
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "attribution": {
      -                      "enum": [
      -                        "required",
      -                        "appreciated",
      -                        "none"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "attribution_text": {
      -                      "maxLength": 200,
      -                      "type": "string"
      -                    },
      -                    "automated_access": {
      -                      "enum": [
      -                        "welcome",
      -                        "limited",
      -                        "ask",
      -                        "not_allowed"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "notes": {
      -                      "maxLength": 500,
      -                      "type": "string"
      -                    },
      -                    "pricing": {
      -                      "enum": [
      -                        "free",
      -                        "freemium",
      -                        "paid"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "pricing_url": {
      -                      "type": "string"
      -                    },
      -                    "rate_limit": {
      -                      "maxLength": 100,
      -                      "type": "string"
      -                    },
      -                    "terms_url": {
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [],
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "agent_uses": {
      -              "items": {
      -                "enum": [
      -                  "read_docs",
      -                  "call_api",
      -                  "buy",
      -                  "book",
      -                  "search_content",
      -                  "download_data",
      -                  "contact_support"
      -                ],
      -                "type": "string"
      -              },
      -              "type": "array",
      -              "uniqueItems": true
      -            },
      -            "agentic": {
      -              "anyOf": [
      -                {
      -                  "description": "What an agent can do with the site: interface (API or MCP endpoint to call), transactional (buy or book), documentation (docs to read), informational (for people).",
      -                  "enum": [
      -                    "interface",
      -                    "transactional",
      -                    "documentation",
      -                    "informational"
      -                  ],
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "audience": {
      -              "anyOf": [
      -                {
      -                  "enum": [
      -                    "developers",
      -                    "consumers",
      -                    "business",
      -                    "mixed"
      -                  ],
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "authority": {
      -              "type": [
      -                "integer",
      -                "null"
      -              ]
      -            },
      -            "capabilities": {
      -              "description": "Publisher-declared capabilities. An MCP declaration does not prove availability or protocol compatibility.",
      -              "items": {
      -                "enum": [
      -                  "mcp"
      -                ],
      -                "type": "string"
      -              },
      -              "type": "array",
      -              "uniqueItems": true
      -            },
      -            "categories": {
      -              "description": "Inferred topic IDs from publisher metadata; empty means unclassified.",
      -              "items": {
      -                "enum": [
      -                  "ai-ml",
      -                  "developer-tools",
      -                  "infrastructure",
      -                  "data-analytics",
      -                  "cybersecurity",
      -                  "finance-payments",
      -                  "ecommerce",
      -                  "productivity",
      -                  "marketing",
      -                  "education",
      -                  "healthcare",
      -                  "media",
      -                  "design",
      -                  "gaming",
      -                  "travel",
      -                  "community",
      -                  "legal",
      -                  "recruiting-careers",
      -                  "industrial-manufacturing",
      -                  "real-estate",
      -                  "arts-culture",
      -                  "sports-fitness",
      -                  "food-dining",
      -                  "automotive",
      -                  "government-public-services",
      -                  "science-research",
      -                  "ai-agents-mcp",
      -                  "apis-sdks",
      -                  "databases",
      -                  "auth-identity",
      -                  "devops-observability",
      -                  "no-code-automation",
      -                  "communications",
      -                  "crypto-web3",
      -                  "saas-business-software",
      -                  "open-source",
      -                  "documentation-reference",
      -                  "fashion-beauty",
      -                  "home-garden",
      -                  "consumer-electronics",
      -                  "pets",
      -                  "insurance",
      -                  "telecom",
      -                  "logistics-shipping",
      -                  "energy-utilities",
      -                  "construction-architecture",
      -                  "agriculture",
      -                  "nonprofit",
      -                  "events",
      -                  "personal-blog",
      -                  "entertainment",
      -                  "local-business"
      -                ],
      -                "type": "string"
      -              },
      -              "maxItems": 8,
      -              "type": "array",
      -              "uniqueItems": true
      -            },
      -            "country": {
      -              "description": "Published or declared address country preferred; domain/hosting fallback. Null when unknown. Not independently verified headquarters or markets served.",
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "country_source": {
      -              "description": "owner: owner-declared address; structured_data/contact_page: site-published address; tld: domain inference; ip: non-CDN hosting inference; cdn: location withheld. No source independently verifies headquarters.",
      -              "enum": [
      -                "owner",
      -                "structured_data",
      -                "contact_page",
      -                "tld",
      -                "ip",
      -                "cdn",
      -                null
      -              ],
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "domain": {
      -              "type": "string"
      -            },
      -            "hosting_country": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "inferred_tags": {
      -              "description": "Topic tags inferred by the AI classifier from the site text.",
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "language": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "last_checked": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "llms_full_txt": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "llms_txt": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "llms_txt_cached": {
      -              "type": "string"
      -            },
      -            "platform_generated": {
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            },
      -            "publisher_country": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "publisher_country_source": {
      -              "enum": [
      -                "owner",
      -                "structured_data",
      -                "contact_page",
      -                null
      -              ],
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "section_indexed_at": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "section_keys": {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "section_partial": {
      -              "type": "boolean"
      -            },
      -            "shared_sections": {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "similarity": {
      -              "maximum": 1,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "status": {
      -              "enum": [
      -                "pending",
      -                "valid",
      -                "invalid",
      -                "unreachable"
      -              ],
      -              "type": "string"
      -            },
      -            "summary": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "tier": {
      -              "enum": [
      -                "featured",
      -                "listed",
      -                "unlisted",
      -                "rejected",
      -                null
      -              ],
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "title": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "verified": {
      -              "type": "boolean"
      -            }
      -          },
      -          "required": [
      -            "domain",
      -            "status",
      -            "tier",
      -            "authority",
      -            "verified",
      -            "title",
      -            "summary",
      -            "llms_txt",
      -            "llms_full_txt",
      -            "last_checked",
      -            "agent_terms",
      -            "categories",
      -            "inferred_tags",
      -            "audience",
      -            "agent_uses",
      -            "language",
      -            "country",
      -            "country_source",
      -            "publisher_country",
      -            "publisher_country_source",
      -            "hosting_country",
      -            "platform_generated",
      -            "agent_summary",
      -            "llms_txt_cached",
      -            "agentic",
      -            "section_keys",
      -            "section_partial",
      -            "section_indexed_at",
      -            "capabilities",
      -            "similarity",
      -            "shared_sections"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "title": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "domain",
      -      "title",
      -      "available",
      -      "model",
      -      "meaning",
      -      "results"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "detail": {
      -        "type": "string"
      -      },
      -      "domain": {
      -        "type": "string"
      -      },
      -      "error": {
      -        "type": "string"
      -      },
      -      "hint": {
      -        "type": "string"
      -      },
      -      "retry_after_seconds": {
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "error"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "available": {
      +        "type": "boolean"
      +      },
      +      "domain": {
      +        "type": "string"
      +      },
      +      "filters": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "action": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "country": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "country",
      +          "action"
      +        ],
      +        "type": "object"
      +      },
      +      "meaning": {
      +        "type": "string"
      +      },
      +      "model": {
      +        "type": "string"
      +      },
      +      "reason": {
      +        "type": "string"
      +      },
      +      "results": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "agent_summary": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "agent_summary_source": {
      +              "description": "Provenance of the effective agent_summary. Domain ownership does not independently validate the description.",
      +              "enum": [
      +                "verified_owner",
      +                "ai",
      +                null
      +              ],
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "agent_terms": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "attribution": {
      +                      "enum": [
      +                        "required",
      +                        "appreciated",
      +                        "none"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "attribution_text": {
      +                      "maxLength": 200,
      +                      "type": "string"
      +                    },
      +                    "automated_access": {
      +                      "enum": [
      +                        "welcome",
      +                        "limited",
      +                        "ask",
      +                        "not_allowed"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "notes": {
      +                      "maxLength": 500,
      +                      "type": "string"
      +                    },
      +                    "pricing": {
      +                      "enum": [
      +                        "free",
      +                        "freemium",
      +                        "paid"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "pricing_url": {
      +                      "type": "string"
      +                    },
      +                    "rate_limit": {
      +                      "maxLength": 100,
      +                      "type": "string"
      +                    },
      +                    "terms_url": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "agent_uses": {
      +              "items": {
      +                "enum": [
      +                  "read_docs",
      +                  "call_api",
      +                  "buy",
      +                  "book",
      +                  "search_content",
      +                  "download_data",
      +                  "contact_support"
      +                ],
      +                "type": "string"
      +              },
      +              "type": "array",
      +              "uniqueItems": true
      +            },
      +            "agentic": {
      +              "anyOf": [
      +                {
      +                  "description": "What an agent can do with the site: interface (API or MCP endpoint to call), transactional (buy or book), documentation (docs to read), informational (for people).",
      +                  "enum": [
      +                    "interface",
      +                    "transactional",
      +                    "documentation",
      +                    "informational"
      +                  ],
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "audience": {
      +              "anyOf": [
      +                {
      +                  "enum": [
      +                    "developers",
      +                    "consumers",
      +                    "business",
      +                    "mixed"
      +                  ],
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "authority": {
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "capabilities": {
      +              "description": "Publisher-declared capabilities. An MCP declaration does not prove availability or protocol compatibility.",
      +              "items": {
      +                "enum": [
      +                  "mcp"
      +                ],
      +                "type": "string"
      +              },
      +              "type": "array",
      +              "uniqueItems": true
      +            },
      +            "categories": {
      +              "description": "Inferred topic IDs from publisher metadata; empty means unclassified.",
      +              "items": {
      +                "enum": [
      +                  "ai-ml",
      +                  "developer-tools",
      +                  "infrastructure",
      +                  "data-analytics",
      +                  "cybersecurity",
      +                  "finance-payments",
      +                  "ecommerce",
      +                  "productivity",
      +                  "marketing",
      +                  "education",
      +                  "healthcare",
      +                  "media",
      +                  "design",
      +                  "gaming",
      +                  "travel",
      +                  "community",
      +                  "legal",
      +                  "recruiting-careers",
      +                  "industrial-manufacturing",
      +                  "real-estate",
      +                  "arts-culture",
      +                  "sports-fitness",
      +                  "food-dining",
      +                  "automotive",
      +                  "government-public-services",
      +                  "science-research",
      +                  "ai-agents-mcp",
      +                  "apis-sdks",
      +                  "databases",
      +                  "auth-identity",
      +                  "devops-observability",
      +                  "no-code-automation",
      +                  "communications",
      +                  "crypto-web3",
      +                  "saas-business-software",
      +                  "open-source",
      +                  "documentation-reference",
      +                  "fashion-beauty",
      +                  "home-garden",
      +                  "consumer-electronics",
      +                  "pets",
      +                  "insurance",
      +                  "telecom",
      +                  "logistics-shipping",
      +                  "energy-utilities",
      +                  "construction-architecture",
      +                  "agriculture",
      +                  "nonprofit",
      +                  "events",
      +                  "personal-blog",
      +                  "entertainment",
      +                  "local-business"
      +                ],
      +                "type": "string"
      +              },
      +              "maxItems": 8,
      +              "type": "array",
      +              "uniqueItems": true
      +            },
      +            "country": {
      +              "description": "Published or declared address country preferred; domain/hosting fallback. Null when unknown. Not independently verified headquarters or markets served.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "country_source": {
      +              "description": "owner: owner-declared address; structured_data/contact_page: site-published address; tld: domain inference; ip: non-CDN hosting inference; cdn: location withheld. No source independently verifies headquarters.",
      +              "enum": [
      +                "owner",
      +                "structured_data",
      +                "contact_page",
      +                "tld",
      +                "ip",
      +                "cdn",
      +                null
      +              ],
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "domain": {
      +              "type": "string"
      +            },
      +            "hosting_country": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "inferred_tags": {
      +              "description": "Topic tags inferred by the AI classifier from the site text.",
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "language": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "last_checked": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "llms_full_txt": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "llms_txt": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "llms_txt_cached": {
      +              "type": "string"
      +            },
      +            "platform_generated": {
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "publisher_country": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "publisher_country_source": {
      +              "enum": [
      +                "owner",
      +                "structured_data",
      +                "contact_page",
      +                null
      +              ],
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "section_indexed_at": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "section_keys": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "section_partial": {
      +              "type": "boolean"
      +            },
      +            "shared_sections": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "similarity": {
      +              "maximum": 1,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "status": {
      +              "enum": [
      +                "pending",
      +                "valid",
      +                "invalid",
      +                "unreachable"
      +              ],
      +              "type": "string"
      +            },
      +            "summary": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "tier": {
      +              "enum": [
      +                "featured",
      +                "listed",
      +                "unlisted",
      +                "rejected",
      +                null
      +              ],
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "title": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "verified": {
      +              "type": "boolean"
      +            }
      +          },
      +          "required": [
      +            "domain",
      +            "status",
      +            "tier",
      +            "authority",
      +            "verified",
      +            "title",
      +            "summary",
      +            "llms_txt",
      +            "llms_full_txt",
      +            "last_checked",
      +            "agent_terms",
      +            "categories",
      +            "inferred_tags",
      +            "audience",
      +            "agent_uses",
      +            "language",
      +            "country",
      +            "country_source",
      +            "publisher_country",
      +            "publisher_country_source",
      +            "hosting_country",
      +            "platform_generated",
      +            "agent_summary",
      +            "agent_summary_source",
      +            "llms_txt_cached",
      +            "agentic",
      +            "section_keys",
      +            "section_partial",
      +            "section_indexed_at",
      +            "capabilities",
      +            "similarity",
      +            "shared_sections"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "title": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "domain",
      +      "title",
      +      "available",
      +      "model",
      +      "meaning",
      +      "results"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "detail": {
      +        "type": "string"
      +      },
      +      "domain": {
      +        "type": "string"
      +      },
      +      "error": {
      +        "type": "string"
      +      },
      +      "hint": {
      +        "type": "string"
      +      },
      +      "retry_after_seconds": {
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Added

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses the cost model (uses stored vectors, no paid call per request) and the failure mode (unavailable or stale embeddings yield an empty result with a reason). It also frames the semantics of the similarity score, which is exactly the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no waste: the core operation is first, the interpretation caveat second, the operational/behavioral note last. Every sentence carries information an agent would otherwise have to infer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and a well-covered input schema, the description covers purpose, caveats, and failure behavior, so an agent can call it correctly. The only minor gap is that it doesn't allude to how the action/country filters shape results, but the schema handles those.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, so most parameters are already documented in the schema, and the description adds no per-parameter detail for limit, action, country, or domain. The baseline 3 applies given the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb ('Find related listed publishers') and the mechanism ('by vector similarity to a known domain'), which cleanly separates it from lookup_domain or search_llms_registry in the sibling list. It also specifies what comes back (compact profiles, cosine similarity, shared section keys), so the agent knows exactly what operation this is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this is for exploring related sites from a known seed domain and warns that similarity is not affiliation or proof of equivalent capability, which sets the interpretation boundary. It does not, however, name an alternative sibling (e.g., explore_sections or search_llms_registry) or state when the tool is the wrong choice, so the routing guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.