Character Remover
Remove unwanted characters, symbols, and invisible Unicode from text to produce clean, standard output ready to paste anywhere.
Other Text Utility Tools
URL Decode
Decode percent encoded URLs and query strings into readable text.
Open Tool →Text to HEX Converter
Convert text characters into hexadecimal representation. Supports UTF-8 encoding with uppercase/lowercase and spacing options.
Open Tool →URL Encode
Encode URL text and query values into safe percent encoded strings.
Open Tool →Remove Line Breaks
Join wrapped lines into clean paragraphs by removing line breaks.
Open Tool →Extract Numbers From Text
Extract all numbers from text, including integers and decimals. Options for ordering, uniqueness, and delimiters.
Open Tool →Morse Code Translator
Translate text to Morse code or decode Morse back to text.
Open Tool →Text Cleaner
Clean text from any source — remove invisible characters, strip markdown, fix spacing, and produce plain, publish-ready output in one click.
Open Tool →Strip HTML
Remove HTML tags and return clean plain text.
Open Tool →Character Remover — Remove Unwanted Characters from Text Online
A character remover is a tool that takes raw text from any source and strips out the characters that do not belong — invisible Unicode artifacts, markdown formatting symbols, non-standard punctuation, and other unwanted code points — while preserving every visible word and sentence. Whether you are cleaning AI-generated content before publishing, preparing copy-pasted text for a new editor, or sanitizing data for a spreadsheet or database, a character remover gives you clean, consistent output in seconds.
GPTCLEANUP AI is a free character remover with no account, no upload, and no character limits. Paste your text, click Clean Text, and copy the clean result. The tool handles all categories of unwanted characters in a single pass — invisible Unicode, markdown syntax, curly quotes, em dashes, and spacing artifacts from AI tools, word processors, PDFs, and websites.
Categories of Characters That Need Removing
Understanding what types of unwanted characters appear in text helps you know why a character remover is necessary and when to use it.
Invisible Unicode Characters
The most problematic characters in modern text workflows are invisible — they produce no visible output but exist in the character data and affect how text behaves. Zero-width spaces (U+200B) are the most common, appearing in AI-generated text as tokenization artifacts. They have no visual representation but affect word counts, text selection, and string matching. Byte-order marks (U+FEFF) cause rendering issues when they appear mid-text rather than at the start of a file. Non-breaking spaces (U+00A0) look identical to regular spaces but prevent natural line wrapping and behave differently in string comparisons. Soft hyphens (U+00AD) can produce unexpected hyphens when text is reflowed at different widths.
Markdown Formatting Characters
AI models like ChatGPT, Claude, and Gemini format their responses using markdown syntax. Double asterisks surround bold text, single asterisks or underscores indicate italics, hash marks precede headings, and backticks denote code. When pasted into an editor that renders markdown, this looks correct. When pasted into an editor that does not — Gmail, WordPress visual editor, corporate intranets, most CMS plain-text fields — the asterisks and hash marks appear as literal characters in your published content. A character remover strips these markdown syntax characters while preserving the underlying words.
Typographic Special Characters
Word processors and AI tools automatically substitute typographic punctuation — curly quotes, em dashes, en dashes, ellipsis characters — in place of their simpler ASCII equivalents. These typographic characters look more polished in print documents. However, they cause problems in JSON (curly quotes cause parse errors), Python and JavaScript (curly quotes in string literals cause syntax errors), CSV (field delimiter misalignment), HTML attributes (malformed attribute values), and command-line tools (em dashes instead of hyphens cause unrecognized option errors). A character remover converts all of these to their standard ASCII equivalents.
Where Unwanted Characters Come From
AI Language Models
ChatGPT, Claude, Gemini, DeepSeek, Grok, Llama, Mistral, Perplexity, and Copilot all introduce unwanted characters in their output. Invisible Unicode characters appear as artifacts of the tokenization and rendering process. Markdown formatting characters are added intentionally by the model to structure its response. Curly quotes and em dashes are applied as part of the model's default style conventions. Every piece of AI-generated text that you copy and paste into another application carries these characters with it.
Word Processors
Microsoft Word is the largest source of non-breaking spaces in copy-paste workflows. Word automatically inserts non-breaking spaces in dozens of typographic contexts — between numbers and their units, in abbreviations, between honorifics and names. It also uses curly quotes, em dashes, and en dashes by default as part of its AutoCorrect system. When text is copied from Word and pasted into a web application, spreadsheet, or code editor, these characters cause layout and compatibility problems.
Websites and Web Applications
Copying text from a website can include non-breaking spaces from the HTML layout, directional formatting marks from internationalized content, and invisible characters inserted by JavaScript frameworks during DOM rendering. Some websites use zero-width spaces intentionally for tracking purposes, and those characters are copied when you select and copy text. Email newsletters rendered in a browser can include significant numbers of non-breaking spaces from their HTML email template.
PDFs
PDF files use an internal character encoding that does not always map cleanly to Unicode. When you copy text from a PDF and paste it, the PDF viewer's copy mechanism attempts to reconstruct the text from the internal encoding, and this process can produce ligature artifacts (where "fi" becomes a single character), hyphenation marks at line breaks, and other character encoding remnants. Running PDF-copied text through a character remover normalizes these artifacts.
The Character Remover vs Manual Cleanup
The manual alternative to using a character remover is find-and-replace operations — searching for each unwanted character individually and replacing it with nothing or with the correct alternative. This approach is impractical for several reasons.
Finding invisible characters requires knowing their Unicode code points (U+200B, U+FEFF, etc.) and having an editor that can search by code point. Most users do not have these memorized, and most everyday editors do not support this search mode. Even in editors that do, searching for each character type individually is time-consuming.
Curly quote replacement requires four separate find-and-replace operations — left single, right single, left double, right double — and requires the editor to support searching for these specific characters. Em dash and en dash replacement requires knowing the characters well enough to copy them into the search field. None of this is difficult for an expert, but it is tedious and error-prone at scale.
The character remover does all of this automatically in a single click. For anyone who regularly works with text from multiple sources — AI tools, word processors, websites, PDFs — the time saved adds up to hours per week.
Character Removal in Data and Code Workflows
Character removal is especially critical in technical contexts where text quality has functional consequences rather than just aesthetic ones.
In Databases
String comparisons in SQL databases are case-sensitive and character-exact. A customer name stored as "John Smith" with a zero-width space between first and last name will not match a query for "John Smith" without that character. This can cause JOIN operations to fail, WHERE clause filters to miss records, and UNIQUE constraints to allow what should be duplicate entries. Running text through a character remover before inserting into a database ensures consistent, comparable values.
In APIs and JSON
JSON requires straight double quotes as string delimiters. A JSON value containing a curly quote fails to parse and produces an error at every point where the JSON is consumed. AI-generated content often contains curly quotes, which means AI-generated JSON examples and AI-written configuration files frequently contain invalid JSON that only fails when you try to use it. Running AI-generated JSON through a character remover converts curly quotes to straight quotes and makes the JSON valid.
In Version Control
Invisible characters in code committed to a version control system like Git create diff noise — when another developer edits the same file and saves it with different invisible characters, the diff shows changes to lines that appear unchanged visually. This makes code reviews harder and git blame output less useful. Using a character remover as part of a pre-commit workflow prevents invisible character accumulation in codebases.
Character Remover for Specific Formats and Systems
Different output formats have different sensitivities to unwanted characters. Understanding which characters cause problems in each format helps you know when character removal is most critical.
JSON and APIs
JSON is one of the most character-sensitive formats in common use. It requires straight double quotes as string delimiters — a single curly quote causes the entire JSON document to fail parsing. Zero-width spaces inside JSON keys create keys that look identical to the intended key but fail key-lookup operations. AI-generated JSON examples, AI-written API response templates, and configuration files generated with AI assistance all require character removal before use. Run every AI-generated JSON snippet through the character remover before integrating it into any system that parses JSON.
CSV and Tabular Data
CSV relies on comma and double-quote delimiters that depend on exact character matching. A curly quote in a value that should be quoted with straight quotes shifts all field boundaries for the rest of the file. Invisible characters in data values that are used as lookup keys — product IDs, customer names, SKUs — prevent VLOOKUP, MATCH, and JOIN operations from finding correct matches even when values look identical on screen. Character removal before any CSV import or data join operation ensures consistent, matchable values.
Markdown and Documentation
For documentation in markdown-aware systems (GitHub, GitBook, Docusaurus, Hugo), character removal should focus on invisible Unicode rather than markdown syntax. The invisible characters cause rendering inconsistencies and diff noise in version control without the markdown symbols being a problem. The character remover removes invisible Unicode while leaving markdown syntax intact for these use cases.
HTML and CMS Platforms
HTML attribute values require straight quotes — curly quotes in href, class, or id attributes produce malformed HTML. Invisible characters in heading text, link anchor text, and body content affect parsing and rendering. CMS platforms (WordPress, Shopify, Ghost, Webflow) turn your content into HTML, so character removal before CMS entry prevents invisible characters and curly quotes from causing HTML issues in the published source.
Email Platforms
Email HTML is rendered across hundreds of different client and OS combinations, making it especially sensitive to character issues. Non-breaking spaces that render invisibly in one client can display as visible characters in another. Invisible characters can affect character counts in subject lines and preview text. Character removal before any text enters an email platform ensures consistent rendering across all recipient environments.
Character Remover Best Practices
For maximum benefit, incorporate the character remover as a standard step in your content and data workflows rather than using it reactively when problems appear.
For content writers: run every AI draft through the character remover before it enters your editing workflow. Cleaning at the start means all subsequent editing is done on clean text, and no hidden characters can survive to publishing.
For developers: run all AI-generated code snippets and documentation through the character remover before use. This is especially important for code that will be committed to a shared codebase.
For data teams: run any text data imported from external sources — AI tools, web scraping, third-party exports — through the character remover before loading into your database or spreadsheet. This ensures consistent, comparable values from the start.
For email marketers: run all email copy through the character remover before it enters your email platform. This prevents rendering inconsistencies across the hundreds of email client combinations your recipients use.
Why Invisible Characters Are So Difficult to Find Without a Character Remover
One of the most frustrating aspects of invisible character problems is that they are genuinely invisible. Unlike a typo or a formatting error, an invisible character gives you no visual signal that it is there. The text looks completely correct when you read it. The problem only surfaces when the text enters a system that processes or compares characters at the byte level — a word count tool, a string comparison, a JSON parser, a code interpreter.
Even experienced developers who are aware of the invisible character issue cannot reliably detect zero-width spaces by reading code. The character occupies a character position but has no visual width in any standard font. In a code editor with syntax highlighting, a variable name containing a zero-width space looks identical to the same variable name without one. Only a hex editor or a character inspector reveals the difference — and most people do not routinely check their text in a hex editor.
This is why a character remover is not just a convenience tool but a practical necessity for anyone who regularly works with text from AI tools, word processors, or copy-paste workflows. You cannot reliably detect invisible characters by inspection, no matter how carefully you read. You can only remove them with a tool specifically designed to find them.
GPTCLEANUP AI's character remover shows you a count of removed characters after cleaning. This count is often the first concrete evidence users have that invisible characters were present in their text. Seeing "18 invisible characters removed" from a passage you have read multiple times and considered clean is a clarifying moment — it explains word count discrepancies, string matching failures, and other problems that had no apparent cause.
Character Remover for SEO Content
SEO professionals who use AI tools to generate content at scale should include character removal as a standard quality step before publishing. When AI-generated content is published without character removal, invisible Unicode characters become part of the page HTML that search engines index. Zero-width spaces inside keyword phrases mean those phrases do not exactly match search queries at the character level. Non-breaking spaces in heading text prevent correct word wrapping in mobile views, which can affect Core Web Vitals scores — a Google ranking factor. Curly quotes in meta titles and descriptions can render inconsistently in search result snippets across browser and OS combinations, affecting click-through rates.
Beyond invisible characters, markdown formatting characters that survive into published content create additional problems. Hash marks at the start of heading text become literal characters in the heading, changing what search engines read as the heading content. Asterisks in body text reduce content readability, which affects time-on-page and engagement signals. Running all AI-generated SEO content through a character remover before CMS entry eliminates these technical SEO issues at their source.
For content teams producing large volumes of AI-assisted SEO content, character removal is most efficiently implemented as a mandatory workflow step between AI generation and CMS entry. Every piece of content that enters the editorial pipeline has been character-cleaned, so editors, reviewers, and publishers all work on technically clean text from the start. This prevents invisible character problems from reaching published pages where they are difficult to detect and time-consuming to fix.
Free Character Remover — No Account, No Limits
GPTCLEANUP AI is a free character remover with no account required, no character limits, and no subscription. All processing happens in your browser using JavaScript — your text is never uploaded to any server, never logged, and never stored. You can use it for as much text as you need, as often as you need, for any content including confidential business documents, legal drafts, healthcare records, client deliverables, and source code. The character remover handles all categories of unwanted characters — invisible Unicode, markdown, typographic special characters — in a single pass. Paste your text, click Clean Text, and copy the clean result in seconds.
Character Remover FAQ
Answers to common questions about removing unwanted characters from text, AI output, and copy-pasted content.
FAQ
General
1.What is a character remover?
A character remover is a tool that identifies and deletes unwanted characters from text — including invisible Unicode code points, markdown formatting symbols, typographic punctuation like curly quotes and em dashes, and other characters that do not belong in plain text. Character removers are essential for anyone who regularly copies text from AI models, word processors, PDFs, or websites and needs clean, standardized output in a different application. GPTCLEANUP AI is a free character remover that handles all categories of unwanted characters in a single pass, with no account, no upload, and no character limits.
2.What types of characters does this remover handle?
This character remover handles three categories of unwanted characters. First, invisible Unicode characters: zero-width spaces (U+200B), byte-order marks (U+FEFF), non-breaking spaces (U+00A0), soft hyphens (U+00AD), zero-width non-joiners and joiners (U+200C, U+200D), directional marks, and other hidden code points. Second, markdown formatting characters: asterisks used for bold and italic, hash marks used for headings, backtick characters used for code blocks, and underscores used for emphasis. Third, typographic characters that cause problems in technical contexts: curly (smart) quotes converted to straight quotes, em dashes and en dashes normalized to standard hyphens. All three categories are addressed in one click.
3.Is this character remover free to use?
Yes. This character remover is completely free with no account required, no sign-up, and no usage limits. You can paste any amount of text and run the character remover as many times as you need. There are no premium features, no character limits, and no subscription tiers. All processing happens in your browser — your text is never uploaded to any server, making it safe for confidential content including legal documents, business drafts, healthcare records, and client deliverables.
Usage
4.How do I use this character remover?
Paste your text into the input area. Click the Clean Text button. The character remover processes your text, removes all unwanted characters, and displays the clean result in the output area along with a count of what was removed. Click Copy to copy the cleaned text. The entire process takes seconds regardless of how long your text is. You can then paste the clean result into any document editor, CMS, email client, spreadsheet, code editor, or other application without worrying about character-related formatting issues.
5.Does the character remover change my visible text?
The character remover removes characters that you do not need — invisible Unicode artifacts, markdown symbols (if enabled), and non-standard punctuation — but does not alter the words, sentences, and paragraphs that make up your content. Your writing is preserved intact. Invisible characters are removed completely because they have no visual representation. Markdown characters like asterisks and hash marks are removed, leaving the text they were formatting without the markup syntax. Curly quotes are converted to straight quotes — the text still has quotation marks, just the standard straight variety instead of the typographic curly version.
6.Can I remove characters from very long documents?
Yes. There is no character limit. You can paste documents of any length — a 500-word blog post, a 10,000-word research paper, an entire book chapter — and the character remover processes them instantly. All processing happens in your browser using JavaScript, so performance depends on your device rather than server load. Modern browsers handle very large text inputs without any issues. For extremely long documents (100,000+ words), performance is still good on most devices but may take a second or two.
Technical
7.Why do AI models add unwanted characters to their output?
AI language models generate text through a tokenization process where input text is converted to numerical tokens, processed by the model, and converted back to text. During this token-to-text conversion, invisible Unicode characters can appear at token boundaries as artifacts of the conversion process. Additionally, the web interfaces used to display AI output (ChatGPT.com, Claude.ai, etc.) render output in a browser, and copying text from a browser can include characters from the HTML rendering layer. Markdown formatting characters are added intentionally by the model to structure its output, but become problematic when pasted into editors that do not render markdown.
8.What is the difference between visible and invisible unwanted characters?
Visible unwanted characters include markdown syntax (asterisks, hash marks, backticks), curly quotes, em dashes, and other typographic symbols that you can see in your text. These cause problems in applications that interpret them literally rather than as formatting syntax, or in technical contexts where specific character types are required. Invisible unwanted characters include zero-width spaces, byte-order marks, soft hyphens, non-breaking spaces, and directional marks. These produce no visible output but affect how your text behaves — causing word count discrepancies, layout breaks, syntax errors in code, and string comparison failures in data tools. A thorough character remover addresses both categories.
9.How are non-breaking spaces different from regular spaces?
A non-breaking space (Unicode U+00A0) looks identical to a regular space on screen but has two key differences: it prevents a line break from occurring at that position, and it is a distinct character code that many software systems treat differently from a standard space. Microsoft Word inserts non-breaking spaces in specific typographic contexts — between numbers and units, between titles and names — which is correct in print documents. When copied from Word into a website, CMS, or code file, those non-breaking spaces prevent natural text wrapping on mobile devices and cause failures in string matching operations that compare the text with standard-space versions of the same string. This character remover replaces all non-breaking spaces with standard spaces.
10.Does removing characters affect word count accuracy?
Yes — in a positive way. Invisible characters, particularly zero-width spaces, can inflate word counts in document editors. Zero-width spaces are treated as word separators by some word count algorithms, splitting a single word into two and inflating the count. Non-breaking spaces are treated differently from regular spaces by some tools, also causing discrepancies. After running your text through this character remover, the word count in your document editor will accurately reflect the number of actual words in your content. This is especially important for academic submissions, freelance writing projects, and content briefs with strict word count requirements.
Compatibility
11.Which applications is this character remover useful for?
This character remover is useful as a preparation step for any application where text quality matters. For document editors (Microsoft Word, Google Docs, Apple Pages), it prevents word count discrepancies and formatting inconsistencies. For CMS platforms (WordPress, Shopify, Ghost, Webflow), it prevents invisible characters from entering your HTML source. For email platforms (Mailchimp, Klaviyo, HubSpot, Outlook), it prevents rendering differences across email clients. For code editors (VS Code, Sublime Text, IntelliJ), it prevents syntax errors from invisible characters in code. For spreadsheets (Excel, Google Sheets), it enables reliable string matching and data validation. For social media tools (Buffer, Hootsuite, Sprout Social), it ensures accurate character counts on platforms with strict limits.
12.Does the character remover work on text from any AI model?
Yes. The character remover works on text from ChatGPT (all versions including GPT-4o), Claude (all versions), Google Gemini, DeepSeek, Meta Llama, Mistral, xAI Grok, Perplexity, Microsoft Copilot, and any other AI model. All of these models introduce invisible characters through the same basic mechanisms — tokenization artifacts and interface rendering — even though the specific character frequencies vary by model. The remover targets the characters themselves, not model-specific patterns, so it works universally.
13.Can I use the character remover on text from websites and PDFs?
Yes. Text copied from websites often contains non-breaking spaces used for HTML layout purposes and directional marks from internationalized content. Text copied from PDFs often contains ligatures, hyphenation artifacts, and encoding remnants from the PDF's internal character mapping. Text from both sources benefits from the character remover. Paste the copied text into the tool, run the remover, and the output is clean standard text without web or PDF character artifacts.
Comparison
14.How is a character remover different from a text cleaner?
A character remover focuses specifically on removing unwanted characters — invisible Unicode, markdown symbols, and typographic special characters. A text cleaner performs a broader set of operations that includes character removal plus formatting normalization (collapsing blank lines, normalizing spacing, fixing line endings). If you specifically want to remove unwanted characters from text without other modifications, use this character remover. If you want comprehensive text cleanup including spacing normalization and paragraph structure fixes, use the main GPTCLEANUP AI text cleaner. Both are free and available on this site.
15.Is a character remover the same as a character stripper?
The terms character remover, character stripper, and character cleaner all refer to the same type of tool — one that removes unwanted characters from text. "Character stripper" is sometimes used specifically for tools that strip all non-alphanumeric characters (removing punctuation, symbols, and spaces entirely), which is a more aggressive operation than what this tool does. This character remover selectively removes known problematic characters while preserving the text structure, punctuation, and formatting that belongs in your content.
Use Cases
16.Should copywriters use a character remover before delivering client work?
Yes. Copywriters who deliver AI-assisted content to clients should run every draft through a character remover as a quality assurance step. Clients who receive content with invisible characters may encounter formatting issues when they paste the content into their CMS or document systems, which reflects poorly on the quality of the delivery. Taking 10 seconds to run the content through a character remover before delivery eliminates an entire category of potential issues. This is especially important when delivering to enterprise clients whose internal systems may be more sensitive to character encoding issues than consumer applications.
17.Do developers need a character remover for AI-generated code?
Absolutely. AI coding assistants including GitHub Copilot, ChatGPT, Claude, and Gemini all embed invisible characters in their code output. A zero-width space inside a function name, variable name, string literal, or comment produces errors that are nearly impossible to diagnose by reading the source code, because the invisible character looks exactly like no character at all. Run every AI-generated code snippet through a character remover before integrating it into your codebase, and run AI-generated documentation through it before publishing. This is especially important in compiled languages where even a single unexpected character produces a compile error.
18.How does a character remover help with data and spreadsheets?
In spreadsheets and databases, invisible characters cause VLOOKUP, MATCH, INDEX, and similar functions to return incorrect results because the character values being compared are not identical at the byte level, even when they look the same on screen. A product name in one column that contains a zero-width space will not match the same product name in another column that does not. Running text data through a character remover before importing it into a spreadsheet or database ensures consistent, matchable values throughout. This is particularly important when combining data from multiple sources — AI tools, web scraping, CRM exports, manual entry — that may have different character encoding practices.
19.Can a character remover help with academic submissions?
Yes. Students who use AI writing assistance and then submit work through academic platforms often encounter word count discrepancies between their document editor and the submission system. These discrepancies are frequently caused by invisible characters that some word count tools count and others skip. Academic plagiarism and AI detection tools may also be affected by invisible character patterns in AI-generated text, as some detection algorithms use character-level analysis. Running AI-assisted academic writing through a character remover before submission removes invisible character artifacts without altering the text content, ensuring technical cleanliness regardless of the platform receiving the submission.
20.Do social media managers need a character remover?
Yes, particularly for platforms with strict character limits like Twitter/X and LinkedIn. Twitter/X enforces a 280-character limit on posts, and invisible characters count toward that limit in the platform's character counter. A post that reads as 278 characters in your scheduling tool may hit the 280-character limit on the platform itself because of hidden characters you cannot see. This causes unexpected "post is too long" errors and requires editing content that already looks correctly sized. Running post copy through a character remover before scheduling eliminates this issue.
Privacy
21.Is my text safe when using this character remover?
Yes. All processing happens in your browser using JavaScript — your text never leaves your device. Nothing is uploaded, logged, or stored on any server. You can use this character remover with complete confidence for confidential business documents, legal drafts, healthcare records, financial reports, client deliverables, and source code. The browser-local processing model means there is no transmission risk and no data retention of any kind. You can verify this by opening your browser's network inspector while using the tool.
Advanced
22.What encoding issues cause unwanted characters in text?
Text encoding issues are a primary source of unwanted characters. UTF-8 is the standard encoding for web content, but text that originates in Windows environments may be encoded in Windows-1252, which uses different code points for characters like curly quotes and em dashes. When Windows-1252 encoded text is interpreted as UTF-8 (or vice versa), characters in the range U+0080 to U+00FF can appear as garbled sequences of multiple characters. AI models output UTF-8 text, but interfaces that render or copy the text may apply additional encoding transformations. The character remover normalizes common encoding artifacts by converting typographic characters to their standard ASCII equivalents.
23.Can invisible characters be used maliciously?
Yes. Invisible characters have been used in prompt injection attacks, where malicious instructions are hidden in text that appears empty or benign. If you paste text from an untrusted source into an AI model's context, invisible characters in that text may contain hidden instructions that the AI model reads but you cannot see. This is called a "prompt injection" or "invisible text attack." Running any text from untrusted sources through a character remover before using it in AI workflows removes invisible characters that could contain hidden instructions, reducing this attack surface.
24.Does the character remover handle Unicode normalization?
This character remover targets removal of invisible and problematic characters rather than full Unicode normalization. Unicode normalization (NFC, NFD, NFKC, NFKD) is a related but different operation that deals with how accented characters and composed character sequences are represented. The remover does not normalize composed vs decomposed character forms, but it does convert a specific set of typographic special characters — curly quotes, em dashes, en dashes, ellipsis characters — to their standard ASCII equivalents, which is the most common practical requirement for text that needs to work across different systems.