@promptbook/markdown-utils 0.104.0-8 → 0.104.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +0 -4
  2. package/esm/index.es.js +34 -25
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/components.index.d.ts +0 -6
  5. package/esm/typings/src/_packages/core.index.d.ts +8 -6
  6. package/esm/typings/src/_packages/types.index.d.ts +8 -0
  7. package/esm/typings/src/_packages/utils.index.d.ts +2 -0
  8. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +24 -0
  9. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +12 -2
  10. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirements.tools.test.d.ts +1 -0
  11. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.closed.test.d.ts +1 -0
  12. package/esm/typings/src/book-2.0/utils/generatePlaceholderAgentProfileImageUrl.d.ts +1 -1
  13. package/esm/typings/src/book-components/Chat/save/_common/string_chat_format_name.d.ts +1 -1
  14. package/esm/typings/src/book-components/Chat/types/ChatMessage.d.ts +6 -3
  15. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +5 -1
  16. package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +5 -1
  17. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +5 -1
  18. package/esm/typings/src/book-components/icons/AttachmentIcon.d.ts +6 -2
  19. package/esm/typings/src/book-components/icons/CameraIcon.d.ts +6 -2
  20. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +5 -1
  21. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +5 -1
  22. package/esm/typings/src/book-components/icons/SaveIcon.d.ts +6 -2
  23. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +1 -1
  24. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +18 -12
  25. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +6 -3
  26. package/esm/typings/src/commands/_common/types/Command.d.ts +1 -1
  27. package/esm/typings/src/commitments/META/META_DESCRIPTION.d.ts +41 -0
  28. package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +2 -2
  29. package/esm/typings/src/commitments/_base/BookCommitment.d.ts +1 -1
  30. package/esm/typings/src/config.d.ts +8 -1
  31. package/esm/typings/src/formfactors/_common/FormfactorDefinition.d.ts +1 -1
  32. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts +1 -1
  33. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +1 -1
  34. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage.d.ts +1 -1
  35. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +8 -4
  36. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/limitTotalUsage.d.ts +1 -1
  37. package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -1
  38. package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +12 -8
  39. package/esm/typings/src/llm-providers/agent/Agent.d.ts +7 -1
  40. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +1 -1
  41. package/esm/typings/src/llm-providers/openai/utils/mapToolsToOpenAi.d.ts +8 -0
  42. package/esm/typings/src/remote-server/ui/ServerApp.d.ts +5 -1
  43. package/esm/typings/src/scrapers/_common/utils/promptbookFetch.test.d.ts +1 -0
  44. package/esm/typings/src/search-engines/SearchEngine.d.ts +9 -0
  45. package/esm/typings/src/search-engines/SearchResult.d.ts +18 -0
  46. package/esm/typings/src/search-engines/bing/BingSearchEngine.d.ts +15 -0
  47. package/esm/typings/src/search-engines/dummy/DummySearchEngine.d.ts +15 -0
  48. package/esm/typings/src/types/LlmToolDefinition.d.ts +20 -0
  49. package/esm/typings/src/types/ModelRequirements.d.ts +13 -0
  50. package/esm/typings/src/types/typeAliasEmoji.d.ts +2 -2
  51. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +7 -2
  52. package/esm/typings/src/utils/random/$randomItem.d.ts +1 -1
  53. package/esm/typings/src/utils/random/$randomSeed.d.ts +1 -1
  54. package/esm/typings/src/utils/validators/url/isValidAgentUrl.d.ts +16 -0
  55. package/esm/typings/src/utils/validators/url/isValidAgentUrl.test.d.ts +1 -0
  56. package/esm/typings/src/utils/validators/url/isValidPipelineUrl.d.ts +2 -1
  57. package/esm/typings/src/utils/validators/url/isValidUrl.d.ts +4 -3
  58. package/esm/typings/src/version.d.ts +1 -1
  59. package/package.json +1 -1
  60. package/umd/index.umd.js +34 -25
  61. package/umd/index.umd.js.map +1 -1
  62. package/esm/typings/servers.d.ts +0 -50
@@ -17,6 +17,6 @@ export type LlmExecutionToolsWithTotalUsage = LlmExecutionTools & {
17
17
  spending(): Observable<Usage>;
18
18
  };
19
19
  /**
20
- * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
20
+ * TODO: [👷‍♂️] Write a comprehensive manual about the construction of LLM tools
21
21
  * Note: [🥫] Not using getter `get totalUsage` but `getTotalUsage` to allow this object to be proxied
22
22
  */
@@ -1,10 +1,14 @@
1
1
  import type { LlmExecutionTools } from '../../../../execution/LlmExecutionTools';
2
2
  import type { LlmExecutionToolsWithTotalUsage } from './LlmExecutionToolsWithTotalUsage';
3
3
  /**
4
- * Intercepts LLM tools and counts total usage of the tools
4
+ * Intercepts LLM tools and counts total usage of the tools.
5
5
  *
6
- * @param llmTools LLM tools to be intercepted with usage counting
7
- * @returns LLM tools with same functionality with added total cost counting
6
+ * This function wraps the provided `LlmExecutionTools` with a proxy that tracks the cumulative
7
+ * usage (tokens, cost, etc.) across all model calls. It provides a way to monitor spending
8
+ * in real-time through an observable.
9
+ *
10
+ * @param llmTools - The LLM tools to be intercepted and tracked
11
+ * @returns An augmented version of the tools that includes usage tracking capabilities
8
12
  * @public exported from `@promptbook/core`
9
13
  */
10
14
  export declare function countUsage(llmTools: LlmExecutionTools): LlmExecutionToolsWithTotalUsage;
@@ -13,5 +17,5 @@ export declare function countUsage(llmTools: LlmExecutionTools): LlmExecutionToo
13
17
  * TODO: [🧠] Is there some meaningfull way how to test this util
14
18
  * TODO: [🧠][🌯] Maybe a way how to hide ability to `get totalUsage`
15
19
  * > const [llmToolsWithUsage,getUsage] = countTotalUsage(llmTools);
16
- * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
20
+ * TODO: [👷‍♂️] Write a comprehensive manual explaining the construction and usage of LLM tools in the Promptbook ecosystem
17
21
  */
@@ -32,5 +32,5 @@ export {};
32
32
  * TODO: [🧠][💸] Maybe make some common abstraction `interceptLlmTools` and use here (or use javascript Proxy?)
33
33
  * TODO: [🧠] Is there some meaningfull way how to test this util
34
34
  * TODO: [🧠][🌯] Maybe a way how to hide ability to `get totalUsage`
35
- * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
35
+ * TODO: [👷‍♂️] Write a comprehensive manual about the construction of LLM tools
36
36
  */
@@ -8,5 +8,5 @@ import { MultipleLlmExecutionTools } from './MultipleLlmExecutionTools';
8
8
  export declare function getSingleLlmExecutionTools(oneOrMoreLlmExecutionTools: undefined | LlmExecutionTools | ReadonlyArray<LlmExecutionTools>): LlmExecutionTools | MultipleLlmExecutionTools;
9
9
  /**
10
10
  * TODO: [🙆] `getSingleLlmExecutionTools` vs `joinLlmExecutionTools` - explain difference or pick one
11
- * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
11
+ * TODO: [👷‍♂️] Write a comprehensive manual about how to construct and use LLM execution tools in Promptbook
12
12
  */
@@ -2,22 +2,26 @@ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
2
2
  import type { string_markdown_text, string_title } from '../../types/typeAliases';
3
3
  import { MultipleLlmExecutionTools } from './MultipleLlmExecutionTools';
4
4
  /**
5
- * Joins multiple LLM Execution Tools into one
5
+ * Joins multiple LLM Execution Tools into one.
6
6
  *
7
- * @returns {LlmExecutionTools} Single wrapper for multiple LlmExecutionTools
7
+ * This function takes a list of `LlmExecutionTools` and returns a single unified
8
+ * `MultipleLlmExecutionTools` object. It provides failover and aggregation logic:
8
9
  *
9
- * 0) If there is no LlmExecutionTools, it warns and returns valid but empty LlmExecutionTools
10
- * 1) If there is only one LlmExecutionTools, it returns it wrapped in a proxy object
11
- * 2) If there are multiple LlmExecutionTools, first will be used first, second will be used if the first hasn`t defined model variant or fails, etc.
12
- * 3) When all LlmExecutionTools fail, it throws an error with a list of all errors merged into one
10
+ * 1. **Failover**: When a model call is made, it tries providers in the order they were provided.
11
+ * If the first provider doesn't support the requested model or fails, it tries the next one.
12
+ * 2. **Aggregation**: `listModels` returns a combined list of all models available from all providers.
13
+ * 3. **Empty case**: If no tools are provided, it logs a warning (as Promptbook requires LLMs to function).
13
14
  *
15
+ * @param title - A descriptive title for this collection of joined tools
16
+ * @param llmExecutionTools - An array of execution tools to be joined
17
+ * @returns A single unified execution tool wrapper
14
18
  *
15
- * Tip: You don't have to use this function directly, just pass an array of LlmExecutionTools to the `ExecutionTools`
19
+ * Tip: You don't have to use this function directly, just pass an array of LlmExecutionTools to the `ExecutionTools`.
16
20
  *
17
21
  * @public exported from `@promptbook/core`
18
22
  */
19
23
  export declare function joinLlmExecutionTools(title: string_title & string_markdown_text, ...llmExecutionTools: ReadonlyArray<LlmExecutionTools>): MultipleLlmExecutionTools;
20
24
  /**
21
25
  * TODO: [🙆] `getSingleLlmExecutionTools` vs `joinLlmExecutionTools` - explain difference or pick one
22
- * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
26
+ * TODO: [👷‍♂️] Write a comprehensive manual about how to construct and use LLM execution tools in Promptbook
23
27
  */
@@ -1,5 +1,5 @@
1
1
  import { BehaviorSubject } from 'rxjs';
2
- import type { AgentBasicInformation, BookParameter } from '../../book-2.0/agent-source/AgentBasicInformation';
2
+ import type { AgentBasicInformation, AgentCapability, BookParameter } from '../../book-2.0/agent-source/AgentBasicInformation';
3
3
  import type { string_book } from '../../book-2.0/agent-source/string_book';
4
4
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
5
5
  import type { ChatPromptResult } from '../../execution/PromptResult';
@@ -20,6 +20,7 @@ import type { AgentOptions } from './AgentOptions';
20
20
  * @public exported from `@promptbook/core`
21
21
  */
22
22
  export declare class Agent extends AgentLlmExecutionTools implements LlmExecutionTools, AgentBasicInformation {
23
+ #private;
23
24
  private _agentName;
24
25
  /**
25
26
  * Name of the agent
@@ -37,6 +38,11 @@ export declare class Agent extends AgentLlmExecutionTools implements LlmExecutio
37
38
  * Links found in the agent source
38
39
  */
39
40
  links: Array<string_agent_url>;
41
+ /**
42
+ * Capabilities of the agent
43
+ * This is parsed from commitments like USE BROWSER, USE SEARCH ENGINE, KNOWLEDGE, etc.
44
+ */
45
+ capabilities: AgentCapability[];
40
46
  /**
41
47
  * Computed hash of the agent source for integrity verification
42
48
  */
@@ -22,7 +22,7 @@ import type { CreateAgentLlmExecutionToolsOptions } from './CreateAgentLlmExecut
22
22
  * @public exported from `@promptbook/core`
23
23
  */
24
24
  export declare class AgentLlmExecutionTools implements LlmExecutionTools {
25
- private readonly options;
25
+ protected readonly options: CreateAgentLlmExecutionToolsOptions;
26
26
  /**
27
27
  * Cache of OpenAI assistants to avoid creating duplicates
28
28
  */
@@ -0,0 +1,8 @@
1
+ import type OpenAI from 'openai';
2
+ import type { LlmToolDefinition } from '../../../types/LlmToolDefinition';
3
+ /**
4
+ * Maps Promptbook tools to OpenAI tools.
5
+ *
6
+ * @private
7
+ */
8
+ export declare function mapToolsToOpenAi(tools: ReadonlyArray<LlmToolDefinition>): Array<OpenAI.Chat.Completions.ChatCompletionTool>;
@@ -1,7 +1,11 @@
1
1
  import type { ServerInfo } from './types';
2
2
  /**
3
- * @@@
3
+ * Renders the full HTML document for the Promptbook Server UI.
4
4
  *
5
+ * This component provides the root structure of the server information page,
6
+ * including necessary meta tags, Tailwind CSS styling, and the server details body.
7
+ *
8
+ * @param props - Contains server information such as versions, port, and pipelines
5
9
  * @private internal utility of Remote Server
6
10
  */
7
11
  export declare function HtmlDoc({ info }: {
@@ -0,0 +1,9 @@
1
+ import type { Promisable } from 'type-fest';
2
+ import type { string_markdown, string_markdown_text, string_title } from '../types/typeAliases';
3
+ import type { SearchResult } from './SearchResult';
4
+ export type SearchEngine = {
5
+ readonly title: string_title & string_markdown_text;
6
+ readonly description?: string_markdown;
7
+ checkConfiguration(): Promisable<void>;
8
+ search(query: string): Promise<SearchResult[]>;
9
+ };
@@ -0,0 +1,18 @@
1
+ import type { string_url } from '../types/typeAliases';
2
+ /**
3
+ * Represents a search result from a search engine.
4
+ */
5
+ export type SearchResult = {
6
+ /**
7
+ * The title of the search result.
8
+ */
9
+ title: string;
10
+ /**
11
+ * The URL of the search result.
12
+ */
13
+ url: string_url;
14
+ /**
15
+ * A short snippet or description of the search result.
16
+ */
17
+ snippet: string;
18
+ };
@@ -0,0 +1,15 @@
1
+ import type { Promisable } from 'type-fest';
2
+ import type { string_markdown, string_markdown_text, string_title } from '../../types/typeAliases';
3
+ import type { SearchEngine } from '../SearchEngine';
4
+ import type { SearchResult } from '../SearchResult';
5
+ /**
6
+ * A search engine implementation that uses the Bing Web Search API.
7
+ *
8
+ * @private <- TODO: !!!! Export via some package
9
+ */
10
+ export declare class BingSearchEngine implements SearchEngine {
11
+ get title(): string_title & string_markdown_text;
12
+ get description(): string_markdown;
13
+ checkConfiguration(): Promisable<void>;
14
+ search(query: string): Promise<SearchResult[]>;
15
+ }
@@ -0,0 +1,15 @@
1
+ import type { Promisable } from 'type-fest';
2
+ import type { string_markdown, string_markdown_text, string_title } from '../../types/typeAliases';
3
+ import type { SearchEngine } from '../SearchEngine';
4
+ import type { SearchResult } from '../SearchResult';
5
+ /**
6
+ * A dummy implementation of SearchEngine for testing purposes.
7
+ *
8
+ * @private <- TODO: !!!! Export via some package, maybe `@promptbook/search-engines` or `@promptbook/fake-llm`
9
+ */
10
+ export declare class DummySearchEngine implements SearchEngine {
11
+ get title(): string_title & string_markdown_text;
12
+ get description(): string_markdown;
13
+ checkConfiguration(): Promisable<void>;
14
+ search(query: string): Promise<SearchResult[]>;
15
+ }
@@ -0,0 +1,20 @@
1
+ import type { string_markdown_text, string_name } from './typeAliases';
2
+ /**
3
+ * Definition of a tool that can be used by the model
4
+ *
5
+ * Note: [🚉] This is fully serializable as JSON
6
+ */
7
+ export type LlmToolDefinition = {
8
+ /**
9
+ * Name of the tool
10
+ */
11
+ readonly name: string_name;
12
+ /**
13
+ * Description of the tool
14
+ */
15
+ readonly description: string_markdown_text;
16
+ /**
17
+ * Parameters of the tool in JSON Schema format
18
+ */
19
+ readonly parameters: Record<string, unknown>;
20
+ };
@@ -1,3 +1,4 @@
1
+ import type { LlmToolDefinition } from './LlmToolDefinition';
1
2
  import type { ModelVariant } from './ModelVariant';
2
3
  import type { number_model_temperature, number_seed, string_model_name, string_system_message } from './typeAliases';
3
4
  /**
@@ -28,6 +29,12 @@ export type CompletionModelRequirements = CommonModelRequirements & {
28
29
  * Maximum number of tokens that can be generated by the model
29
30
  */
30
31
  readonly maxTokens?: number;
32
+ /**
33
+ * Tools available for the model
34
+ *
35
+ * Note: [🚉] This is fully serializable as JSON
36
+ */
37
+ readonly tools?: LlmToolDefinition[];
31
38
  };
32
39
  /**
33
40
  * Model requirements for the chat variant
@@ -53,6 +60,12 @@ export type ChatModelRequirements = CommonModelRequirements & {
53
60
  * Maximum number of tokens that can be generated by the model
54
61
  */
55
62
  readonly maxTokens?: number;
63
+ /**
64
+ * Tools available for the model
65
+ *
66
+ * Note: [🚉] This is fully serializable as JSON
67
+ */
68
+ readonly tools?: LlmToolDefinition[];
56
69
  };
57
70
  /**
58
71
  * Model requirements for the image generation variant
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * For example `"❤️"`
5
5
  *
6
- * Genetated by:
7
- * > CollboardSdk.EMOJIS.map((e)=>`"${e}"`).join(' | ')
6
+ * Generated by:
7
+ * > CollboardSdk.EMOJIS.map((emoji) => `"${emoji}"`).join(' | ')
8
8
  */
9
9
  export type string_char_emoji = '"😀" | "😃" | "😄" | "😁" | "😆" | "😅" | "😂" | "🤣" | "🥲" | "☺️" | "😊" | "😇" | "🙂" | "🙃" | "😉" | "😌" | "😍" | "🥰" | "😘" | "😗" | "😙" | "😚" | "😋" | "😛" | "😝" | "😜" | "🤪" | "🤨" | "🧐" | "🤓" | "😎" | "🥸" | "🤩" | "🥳" | "😏" | "😒" | "😞" | "😔" | "😟" | "😕" | "🙁" | "☹️" | "😣" | "😖" | "😫" | "😩" | "🥺" | "😢" | "😭" | "😤" | "😠" | "😡" | "🤬" | "🤯" | "😳" | "🥵" | "🥶" | "😱" | "😨" | "😰" | "😥" | "😓" | "🤗" | "🤔" | "🤭" | "🤫" | "🤥" | "😶" | "😐" | "😑" | "😬" | "🙄" | "😯" | "😦" | "😧" | "😮" | "😲" | "🥱" | "😴" | "🤤" | "😪" | "😵" | "🤐" | "🥴" | "🤢" | "🤮" | "🤧" | "😷" | "🤒" | "🤕" | "🤑" | "🤠" | "😈" | "👿" | "👹" | "👺" | "🤡" | "💩" | "👻" | "💀" | "☠️" | "👽" | "👾" | "🤖" | "🎃" | "😺" | "😸" | "😹" | "😻" | "😼" | "😽" | "🙀" | "😿" | "😾" | "👋" | "🤚" | "🖐" | "✋" | "🖖" | "👌" | "🤌" | "🤏" | "✌️" | "🤞" | "🤟" | "🤘" | "🤙" | "👈" | "👉" | "👆" | "🖕" | "👇" | "☝️" | "👍" | "👎" | "✊" | "👊" | "🤛" | "🤜" | "👏" | "🙌" | "👐" | "🤲" | "🤝" | "🙏" | "✍️" | "💅" | "🤳" | "💪" | "🦾" | "🦵" | "🦿" | "🦶" | "👣" | "👂" | "🦻" | "👃" | "🫀" | "🫁" | "🧠" | "🦷" | "🦴" | "👀" | "👁" | "👅" | "👄" | "💋" | "🩸" | "👶" | "👧" | "🧒" | "👦" | "👩" | "🧑" | "👨" | "👩‍🦱" | "🧑‍🦱" | "👨‍🦱" | "👩‍🦰" | "🧑‍🦰" | "👨‍🦰" | "👱‍♀️" | "👱" | "👱‍♂️" | "👩‍🦳" | "🧑‍🦳" | "👨‍🦳" | "👩‍🦲" | "🧑‍🦲" | "👨‍🦲" | "🧔" | "👵" | "🧓" | "👴" | "👲" | "👳‍♀️" | "👳" | "👳‍♂️" | "🧕" | "👮‍♀️" | "👮" | "👮‍♂️" | "👷‍♀️" | "👷" | "👷‍♂️" | "💂‍♀️" | "💂" | "💂‍♂️" | "🕵️‍♀️" | "🕵️" | "🕵️‍♂️" | "👩‍⚕️" | "🧑‍⚕️" | "👨‍⚕️" | "👩‍🌾" | "🧑‍🌾" | "👨‍🌾" | "👩‍🍳" | "🧑‍🍳" | "👨‍🍳" | "👩‍🎓" | "🧑‍🎓" | "👨‍🎓" | "👩‍🎤" | "🧑‍🎤" | "👨‍🎤" | "👩‍🏫" | "🧑‍🏫" | "👨‍🏫" | "👩‍🏭" | "🧑‍🏭" | "👨‍🏭" | "👩‍💻" | "🧑‍💻" | "👨‍💻" | "👩‍💼" | "🧑‍💼" | "👨‍💼" | "👩‍🔧" | "🧑‍🔧" | "👨‍🔧" | "👩‍🔬" | "🧑‍🔬" | "👨‍🔬" | "👩‍🎨" | "🧑‍🎨" | "👨‍🎨" | "👩‍🚒" | "🧑‍🚒" | "👨‍🚒" | "👩‍✈️" | "🧑‍✈️" | "👨‍✈️" | "👩‍🚀" | "🧑‍🚀" | "👨‍🚀" | "👩‍⚖️" | "🧑‍⚖️" | "👨‍⚖️" | "👰‍♀️" | "👰" | "👰‍♂️" | "🤵‍♀️" | "🤵" | "🤵‍♂️" | "👸" | "🤴" | "🥷" | "🦸‍♀️" | "🦸" | "🦸‍♂️" | "🦹‍♀️" | "🦹" | "🦹‍♂️" | "🤶" | "🧑‍🎄" | "🎅" | "🧙‍♀️" | "🧙" | "🧙‍♂️" | "🧝‍♀️" | "🧝" | "🧝‍♂️" | "🧛‍♀️" | "🧛" | "🧛‍♂️" | "🧟‍♀️" | "🧟" | "🧟‍♂️" | "🧞‍♀️" | "🧞" | "🧞‍♂️" | "🧜‍♀️" | "🧜" | "🧜‍♂️" | "🧚‍♀️" | "🧚" | "🧚‍♂️" | "👼" | "🤰" | "🤱" | "👩‍🍼" | "🧑‍🍼" | "👨‍🍼" | "🙇‍♀️" | "🙇" | "🙇‍♂️" | "💁‍♀️" | "💁" | "💁‍♂️" | "🙅‍♀️" | "🙅" | "🙅‍♂️" | "🙆‍♀️" | "🙆" | "🙆‍♂️" | "🙋‍♀️" | "🙋" | "🙋‍♂️" | "🧏‍♀️" | "🧏" | "🧏‍♂️" | "🤦‍♀️" | "🤦" | "🤦‍♂️" | "🤷‍♀️" | "🤷" | "🤷‍♂️" | "🙎‍♀️" | "🙎" | "🙎‍♂️" | "🙍‍♀️" | "🙍" | "🙍‍♂️" | "💇‍♀️" | "💇" | "💇‍♂️" | "💆‍♀️" | "💆" | "💆‍♂️" | "🧖‍♀️" | "🧖" | "🧖‍♂️" | "💃" | "🕺" | "👯‍♀️" | "👯" | "👯‍♂️" | "🕴" | "👩‍🦽" | "🧑‍🦽" | "👨‍🦽" | "👩‍🦼" | "🧑‍🦼" | "👨‍🦼" | "🚶‍♀️" | "🚶" | "🚶‍♂️" | "👩‍🦯" | "🧑‍🦯" | "👨‍🦯" | "🧎‍♀️" | "🧎" | "🧎‍♂️" | "🏃‍♀️" | "🏃" | "🏃‍♂️" | "🧍‍♀️" | "🧍" | "🧍‍♂️" | "👭" | "🧑‍🤝‍🧑" | "👬" | "👫" | "👩‍❤️‍👩" | "💑" | "👨‍❤️‍👨" | "👩‍❤️‍👨" | "👩‍❤️‍💋‍👩" | "💏" | "👨‍❤️‍💋‍👨" | "👩‍❤️‍💋‍👨" | "👪" | "👨‍👩‍👦" | "👨‍👩‍👧" | "👨‍👩‍👧‍👦" | "👨‍👩‍👦‍👦" | "👨‍👩‍👧‍👧" | "👨‍👨‍👦" | "👨‍👨‍👧" | "👨‍👨‍👧‍👦" | "👨‍👨‍👦‍👦" | "👨‍👨‍👧‍👧" | "👩‍👩‍👦" | "👩‍👩‍👧" | "👩‍👩‍👧‍👦" | "👩‍👩‍👦‍👦" | "👩‍👩‍👧‍👧" | "👨‍👦" | "👨‍👦‍👦" | "👨‍👧" | "👨‍👧‍👦" | "👨‍👧‍👧" | "👩‍👦" | "👩‍👦‍👦" | "👩‍👧" | "👩‍👧‍👦" | "👩‍👧‍👧" | "🗣" | "👤" | "👥" | "🫂" | "🧳" | "🌂" | "☂️" | "🧵" | "🪡" | "🪢" | "🧶" | "👓" | "🕶" | "🥽" | "🥼" | "🦺" | "👔" | "👕" | "👖" | "🧣" | "🧤" | "🧥" | "🧦" | "👗" | "👘" | "🥻" | "🩴" | "🩱" | "🩲" | "🩳" | "👙" | "👚" | "👛" | "👜" | "👝" | "🎒" | "👞" | "👟" | "🥾" | "🥿" | "👠" | "👡" | "🩰" | "👢" | "👑" | "👒" | "🎩" | "🎓" | "🧢" | "⛑" | "🪖" | "💄" | "💍" | "💼" | "👋🏻" | "🤚🏻" | "🖐🏻" | "✋🏻" | "🖖🏻" | "👌🏻" | "🤌🏻" | "🤏🏻" | "✌🏻" | "🤞🏻" | "🤟🏻" | "🤘🏻" | "🤙🏻" | "👈🏻" | "👉🏻" | "👆🏻" | "🖕🏻" | "👇🏻" | "☝🏻" | "👍🏻" | "👎🏻" | "✊🏻" | "👊🏻" | "🤛🏻" | "🤜🏻" | "👏🏻" | "🙌🏻" | "👐🏻" | "🤲🏻" | "🙏🏻" | "✍🏻" | "💅🏻" | "🤳🏻" | "💪🏻" | "🦵🏻" | "🦶🏻" | "👂🏻" | "🦻🏻" | "👃🏻" | "👶🏻" | "👧🏻" | "🧒🏻" | "👦🏻" | "👩🏻" | "🧑🏻" | "👨🏻" | "👩🏻‍🦱" | "🧑🏻‍🦱" | "👨🏻‍🦱" | "👩🏻‍🦰" | "🧑🏻‍🦰" | "👨🏻‍🦰" | "👱🏻‍♀️" | "👱🏻" | "👱🏻‍♂️" | "👩🏻‍🦳" | "🧑🏻‍🦳" | "👨🏻‍🦳" | "👩🏻‍🦲" | "🧑🏻‍🦲" | "👨🏻‍🦲" | "🧔🏻" | "👵🏻" | "🧓🏻" | "👴🏻" | "👲🏻" | "👳🏻‍♀️" | "👳🏻" | "👳🏻‍♂️" | "🧕🏻" | "👮🏻‍♀️" | "👮🏻" | "👮🏻‍♂️" | "👷🏻‍♀️" | "👷🏻" | "👷🏻‍♂️" | "💂🏻‍♀️" | "💂🏻" | "💂🏻‍♂️" | "🕵🏻‍♀️" | "🕵🏻" | "🕵🏻‍♂️" | "👩🏻‍⚕️" | "🧑🏻‍⚕️" | "👨🏻‍⚕️" | "👩🏻‍🌾" | "🧑🏻‍🌾" | "👨🏻‍🌾" | "👩🏻‍🍳" | "🧑🏻‍🍳" | "👨🏻‍🍳" | "👩🏻‍🎓" | "🧑🏻‍🎓" | "👨🏻‍🎓" | "👩🏻‍🎤" | "🧑🏻‍🎤" | "👨🏻‍🎤" | "👩🏻‍🏫" | "🧑🏻‍🏫" | "👨🏻‍🏫" | "👩🏻‍🏭" | "🧑🏻‍🏭" | "👨🏻‍🏭" | "👩🏻‍💻" | "🧑🏻‍💻" | "👨🏻‍💻" | "👩🏻‍💼" | "🧑🏻‍💼" | "👨🏻‍💼" | "👩🏻‍🔧" | "🧑🏻‍🔧" | "👨🏻‍🔧" | "👩🏻‍🔬" | "🧑🏻‍🔬" | "👨🏻‍🔬" | "👩🏻‍🎨" | "🧑🏻‍🎨" | "👨🏻‍🎨" | "👩🏻‍🚒" | "🧑🏻‍🚒" | "👨🏻‍🚒" | "👩🏻‍✈️" | "🧑🏻‍✈️" | "👨🏻‍✈️" | "👩🏻‍🚀" | "🧑🏻‍🚀" | "👨🏻‍🚀" | "👩🏻‍⚖️" | "🧑🏻‍⚖️" | "👨🏻‍⚖️" | "👰🏻‍♀️" | "👰🏻" | "👰🏻‍♂️" | "🤵🏻‍♀️" | "🤵🏻" | "🤵🏻‍♂️" | "👸🏻" | "🤴🏻" | "🥷🏻" | "🦸🏻‍♀️" | "🦸🏻" | "🦸🏻‍♂️" | "🦹🏻‍♀️" | "🦹🏻" | "🦹🏻‍♂️" | "🤶🏻" | "🧑🏻‍🎄" | "🎅🏻" | "🧙🏻‍♀️" | "🧙🏻" | "🧙🏻‍♂️" | "🧝🏻‍♀️" | "🧝🏻" | "🧝🏻‍♂️" | "🧛🏻‍♀️" | "🧛🏻" | "🧛🏻‍♂️" | "🧜🏻‍♀️" | "🧜🏻" | "🧜🏻‍♂️" | "🧚🏻‍♀️" | "🧚🏻" | "🧚🏻‍♂️" | "👼🏻" | "🤰🏻" | "🤱🏻" | "👩🏻‍🍼" | "🧑🏻‍🍼" | "👨🏻‍🍼" | "🙇🏻‍♀️" | "🙇🏻" | "🙇🏻‍♂️" | "💁🏻‍♀️" | "💁🏻" | "💁🏻‍♂️" | "🙅🏻‍♀️" | "🙅🏻" | "🙅🏻‍♂️" | "🙆🏻‍♀️" | "🙆🏻" | "🙆🏻‍♂️" | "🙋🏻‍♀️" | "🙋🏻" | "🙋🏻‍♂️" | "🧏🏻‍♀️" | "🧏🏻" | "🧏🏻‍♂️" | "🤦🏻‍♀️" | "🤦🏻" | "🤦🏻‍♂️" | "🤷🏻‍♀️" | "🤷🏻" | "🤷🏻‍♂️" | "🙎🏻‍♀️" | "🙎🏻" | "🙎🏻‍♂️" | "🙍🏻‍♀️" | "🙍🏻" | "🙍🏻‍♂️" | "💇🏻‍♀️" | "💇🏻" | "💇🏻‍♂️" | "💆🏻‍♀️" | "💆🏻" | "💆🏻‍♂️" | "🧖🏻‍♀️" | "🧖🏻" | "🧖🏻‍♂️" | "💃🏻" | "🕺🏻" | "🕴🏻" | "👩🏻‍🦽" | "🧑🏻‍🦽" | "👨🏻‍🦽" | "👩🏻‍🦼" | "🧑🏻‍🦼" | "👨🏻‍🦼" | "🚶🏻‍♀️" | "🚶🏻" | "🚶🏻‍♂️" | "👩🏻‍🦯" | "🧑🏻‍🦯" | "👨🏻‍🦯" | "🧎🏻‍♀️" | "🧎🏻" | "🧎🏻‍♂️" | "🏃🏻‍♀️" | "🏃🏻" | "🏃🏻‍♂️" | "🧍🏻‍♀️" | "🧍🏻" | "🧍🏻‍♂️" | "👭🏻" | "🧑🏻‍🤝‍🧑🏻" | "👬🏻" | "👫🏻" | "🧗🏻‍♀️" | "🧗🏻" | "🧗🏻‍♂️" | "🏇🏻" | "🏂🏻" | "🏌🏻‍♀️" | "🏌🏻" | "🏌🏻‍♂️" | "🏄🏻‍♀️" | "🏄🏻" | "🏄🏻‍♂️" | "🚣🏻‍♀️" | "🚣🏻" | "🚣🏻‍♂️" | "🏊🏻‍♀️" | "🏊🏻" | "🏊🏻‍♂️" | "⛹🏻‍♀️" | "⛹🏻" | "⛹🏻‍♂️" | "🏋🏻‍♀️" | "🏋🏻" | "🏋🏻‍♂️" | "🚴🏻‍♀️" | "🚴🏻" | "🚴🏻‍♂️" | "🚵🏻‍♀️" | "🚵🏻" | "🚵🏻‍♂️" | "🤸🏻‍♀️" | "🤸🏻" | "🤸🏻‍♂️" | "🤽🏻‍♀️" | "🤽🏻" | "🤽🏻‍♂️" | "🤾🏻‍♀️" | "🤾🏻" | "🤾🏻‍♂️" | "🤹🏻‍♀️" | "🤹🏻" | "🤹🏻‍♂️" | "🧘🏻‍♀️" | "🧘🏻" | "🧘🏻‍♂️" | "🛀🏻" | "🛌" | "👋🏼" | "🤚🏼" | "🖐🏼" | "✋🏼" | "🖖🏼" | "👌🏼" | "🤌🏼" | "🤏🏼" | "✌🏼" | "🤞🏼" | "🤟🏼" | "🤘🏼" | "🤙🏼" | "👈🏼" | "👉🏼" | "👆🏼" | "🖕🏼" | "👇🏼" | "☝🏼" | "👍🏼" | "👎🏼" | "✊🏼" | "👊🏼" | "🤛🏼" | "🤜🏼" | "👏🏼" | "🙌🏼" | "👐🏼" | "🤲🏼" | "🙏🏼" | "✍🏼" | "💅🏼" | "🤳🏼" | "💪🏼" | "🦵🏼" | "🦶🏼" | "👂🏼" | "🦻🏼" | "👃🏼" | "👶🏼" | "👧🏼" | "🧒🏼" | "👦🏼" | "👩🏼" | "🧑🏼" | "👨🏼" | "👩🏼‍🦱" | "🧑🏼‍🦱" | "👨🏼‍🦱" | "👩🏼‍🦰" | "🧑🏼‍🦰" | "👨🏼‍🦰" | "👱🏼‍♀️" | "👱🏼" | "👱🏼‍♂️" | "👩🏼‍🦳" | "🧑🏼‍🦳" | "👨🏼‍🦳" | "👩🏼‍🦲" | "🧑🏼‍🦲" | "👨🏼‍🦲" | "🧔🏼" | "👵🏼" | "🧓🏼" | "👴🏼" | "👲🏼" | "👳🏼‍♀️" | "👳🏼" | "👳🏼‍♂️" | "🧕🏼" | "👮🏼‍♀️" | "👮🏼" | "👮🏼‍♂️" | "👷🏼‍♀️" | "👷🏼" | "👷🏼‍♂️" | "💂🏼‍♀️" | "💂🏼" | "💂🏼‍♂️" | "🕵🏼‍♀️" | "🕵🏼" | "🕵🏼‍♂️" | "👩🏼‍⚕️" | "🧑🏼‍⚕️" | "👨🏼‍⚕️" | "👩🏼‍🌾" | "🧑🏼‍🌾" | "👨🏼‍🌾" | "👩🏼‍🍳" | "🧑🏼‍🍳" | "👨🏼‍🍳" | "👩🏼‍🎓" | "🧑🏼‍🎓" | "👨🏼‍🎓" | "👩🏼‍🎤" | "🧑🏼‍🎤" | "👨🏼‍🎤" | "👩🏼‍🏫" | "🧑🏼‍🏫" | "👨🏼‍🏫" | "👩🏼‍🏭" | "🧑🏼‍🏭" | "👨🏼‍🏭" | "👩🏼‍💻" | "🧑🏼‍💻" | "👨🏼‍💻" | "👩🏼‍💼" | "🧑🏼‍💼" | "👨🏼‍💼" | "👩🏼‍🔧" | "🧑🏼‍🔧" | "👨🏼‍🔧" | "👩🏼‍🔬" | "🧑🏼‍🔬" | "👨🏼‍🔬" | "👩🏼‍🎨" | "🧑🏼‍🎨" | "👨🏼‍🎨" | "👩🏼‍🚒" | "🧑🏼‍🚒" | "👨🏼‍🚒" | "👩🏼‍✈️" | "🧑🏼‍✈️" | "👨🏼‍✈️" | "👩🏼‍🚀" | "🧑🏼‍🚀" | "👨🏼‍🚀" | "👩🏼‍⚖️" | "🧑🏼‍⚖️" | "👨🏼‍⚖️" | "👰🏼‍♀️" | "👰🏼" | "👰🏼‍♂️" | "🤵🏼‍♀️" | "🤵🏼" | "🤵🏼‍♂️" | "👸🏼" | "🤴🏼" | "🥷🏼" | "🦸🏼‍♀️" | "🦸🏼" | "🦸🏼‍♂️" | "🦹🏼‍♀️" | "🦹🏼" | "🦹🏼‍♂️" | "🤶🏼" | "🧑🏼‍🎄" | "🎅🏼" | "🧙🏼‍♀️" | "🧙🏼" | "🧙🏼‍♂️" | "🧝🏼‍♀️" | "🧝🏼" | "🧝🏼‍♂️" | "🧛🏼‍♀️" | "🧛🏼" | "🧛🏼‍♂️" | "🧜🏼‍♀️" | "🧜🏼" | "🧜🏼‍♂️" | "🧚🏼‍♀️" | "🧚🏼" | "🧚🏼‍♂️" | "👼🏼" | "🤰🏼" | "🤱🏼" | "👩🏼‍🍼" | "🧑🏼‍🍼" | "👨🏼‍🍼" | "🙇🏼‍♀️" | "🙇🏼" | "🙇🏼‍♂️" | "💁🏼‍♀️" | "💁🏼" | "💁🏼‍♂️" | "🙅🏼‍♀️" | "🙅🏼" | "🙅🏼‍♂️" | "🙆🏼‍♀️" | "🙆🏼" | "🙆🏼‍♂️" | "🙋🏼‍♀️" | "🙋🏼" | "🙋🏼‍♂️" | "🧏🏼‍♀️" | "🧏🏼" | "🧏🏼‍♂️" | "🤦🏼‍♀️" | "🤦🏼" | "🤦🏼‍♂️" | "🤷🏼‍♀️" | "🤷🏼" | "🤷🏼‍♂️" | "🙎🏼‍♀️" | "🙎🏼" | "🙎🏼‍♂️" | "🙍🏼‍♀️" | "🙍🏼" | "🙍🏼‍♂️" | "💇🏼‍♀️" | "💇🏼" | "💇🏼‍♂️" | "💆🏼‍♀️" | "💆🏼" | "💆🏼‍♂️" | "🧖🏼‍♀️" | "🧖🏼" | "🧖🏼‍♂️" | "💃🏼" | "🕺🏼" | "🕴🏼" | "👩🏼‍🦽" | "🧑🏼‍🦽" | "👨🏼‍🦽" | "👩🏼‍🦼" | "🧑🏼‍🦼" | "👨🏼‍🦼" | "🚶🏼‍♀️" | "🚶🏼" | "🚶🏼‍♂️" | "👩🏼‍🦯" | "🧑🏼‍🦯" | "👨🏼‍🦯" | "🧎🏼‍♀️" | "🧎🏼" | "🧎🏼‍♂️" | "🏃🏼‍♀️" | "🏃🏼" | "🏃🏼‍♂️" | "🧍🏼‍♀️" | "🧍🏼" | "🧍🏼‍♂️" | "👭🏼" | "🧑🏼‍🤝‍🧑🏼" | "👬🏼" | "👫🏼" | "🧗🏼‍♀️" | "🧗🏼" | "🧗🏼‍♂️" | "🏇🏼" | "🏂🏼" | "🏌🏼‍♀️" | "🏌🏼" | "🏌🏼‍♂️" | "🏄🏼‍♀️" | "🏄🏼" | "🏄🏼‍♂️" | "🚣🏼‍♀️" | "🚣🏼" | "🚣🏼‍♂️" | "🏊🏼‍♀️" | "🏊🏼" | "🏊🏼‍♂️" | "⛹🏼‍♀️" | "⛹🏼" | "⛹🏼‍♂️" | "🏋🏼‍♀️" | "🏋🏼" | "🏋🏼‍♂️" | "🚴🏼‍♀️" | "🚴🏼" | "🚴🏼‍♂️" | "🚵🏼‍♀️" | "🚵🏼" | "🚵🏼‍♂️" | "🤸🏼‍♀️" | "🤸🏼" | "🤸🏼‍♂️" | "🤽🏼‍♀️" | "🤽🏼" | "🤽🏼‍♂️" | "🤾🏼‍♀️" | "🤾🏼" | "🤾🏼‍♂️" | "🤹🏼‍♀️" | "🤹🏼" | "🤹🏼‍♂️" | "🧘🏼‍♀️" | "🧘🏼" | "🧘🏼‍♂️" | "🛀🏼" | "👋🏽" | "🤚🏽" | "🖐🏽" | "✋🏽" | "🖖🏽" | "👌🏽" | "🤌🏽" | "🤏🏽" | "✌🏽" | "🤞🏽" | "🤟🏽" | "🤘🏽" | "🤙🏽" | "👈🏽" | "👉🏽" | "👆🏽" | "🖕🏽" | "👇🏽" | "☝🏽" | "👍🏽" | "👎🏽" | "✊🏽" | "👊🏽" | "🤛🏽" | "🤜🏽" | "👏🏽" | "🙌🏽" | "👐🏽" | "🤲🏽" | "🙏🏽" | "✍🏽" | "💅🏽" | "🤳🏽" | "💪🏽" | "🦵🏽" | "🦶🏽" | "👂🏽" | "🦻🏽" | "👃🏽" | "👶🏽" | "👧🏽" | "🧒🏽" | "👦🏽" | "👩🏽" | "🧑🏽" | "👨🏽" | "👩🏽‍🦱" | "🧑🏽‍🦱" | "👨🏽‍🦱" | "👩🏽‍🦰" | "🧑🏽‍🦰" | "👨🏽‍🦰" | "👱🏽‍♀️" | "👱🏽" | "👱🏽‍♂️" | "👩🏽‍🦳" | "🧑🏽‍🦳" | "👨🏽‍🦳" | "👩🏽‍🦲" | "🧑🏽‍🦲" | "👨🏽‍🦲" | "🧔🏽" | "👵🏽" | "🧓🏽" | "👴🏽" | "👲🏽" | "👳🏽‍♀️" | "👳🏽" | "👳🏽‍♂️" | "🧕🏽" | "👮🏽‍♀️" | "👮🏽" | "👮🏽‍♂️" | "👷🏽‍♀️" | "👷🏽" | "👷🏽‍♂️" | "💂🏽‍♀️" | "💂🏽" | "💂🏽‍♂️" | "🕵🏽‍♀️" | "🕵🏽" | "🕵🏽‍♂️" | "👩🏽‍⚕️" | "🧑🏽‍⚕️" | "👨🏽‍⚕️" | "👩🏽‍🌾" | "🧑🏽‍🌾" | "👨🏽‍🌾" | "👩🏽‍🍳" | "🧑🏽‍🍳" | "👨🏽‍🍳" | "👩🏽‍🎓" | "🧑🏽‍🎓" | "👨🏽‍🎓" | "👩🏽‍🎤" | "🧑🏽‍🎤" | "👨🏽‍🎤" | "👩🏽‍🏫" | "🧑🏽‍🏫" | "👨🏽‍🏫" | "👩🏽‍🏭" | "🧑🏽‍🏭" | "👨🏽‍🏭" | "👩🏽‍💻" | "🧑🏽‍💻" | "👨🏽‍💻" | "👩🏽‍💼" | "🧑🏽‍💼" | "👨🏽‍💼" | "👩🏽‍🔧" | "🧑🏽‍🔧" | "👨🏽‍🔧" | "👩🏽‍🔬" | "🧑🏽‍🔬" | "👨🏽‍🔬" | "👩🏽‍🎨" | "🧑🏽‍🎨" | "👨🏽‍🎨" | "👩🏽‍🚒" | "🧑🏽‍🚒" | "👨🏽‍🚒" | "👩🏽‍✈️" | "🧑🏽‍✈️" | "👨🏽‍✈️" | "👩🏽‍🚀" | "🧑🏽‍🚀" | "👨🏽‍🚀" | "👩🏽‍⚖️" | "🧑🏽‍⚖️" | "👨🏽‍⚖️" | "👰🏽‍♀️" | "👰🏽" | "👰🏽‍♂️" | "🤵🏽‍♀️" | "🤵🏽" | "🤵🏽‍♂️" | "👸🏽" | "🤴🏽" | "🥷🏽" | "🦸🏽‍♀️" | "🦸🏽" | "🦸🏽‍♂️" | "🦹🏽‍♀️" | "🦹🏽" | "🦹🏽‍♂️" | "🤶🏽" | "🧑🏽‍🎄" | "🎅🏽" | "🧙🏽‍♀️" | "🧙🏽" | "🧙🏽‍♂️" | "🧝🏽‍♀️" | "🧝🏽" | "🧝🏽‍♂️" | "🧛🏽‍♀️" | "🧛🏽" | "🧛🏽‍♂️" | "🧜🏽‍♀️" | "🧜🏽" | "🧜🏽‍♂️" | "🧚🏽‍♀️" | "🧚🏽" | "🧚🏽‍♂️" | "👼🏽" | "🤰🏽" | "🤱🏽" | "👩🏽‍🍼" | "🧑🏽‍🍼" | "👨🏽‍🍼" | "🙇🏽‍♀️" | "🙇🏽" | "🙇🏽‍♂️" | "💁🏽‍♀️" | "💁🏽" | "💁🏽‍♂️" | "🙅🏽‍♀️" | "🙅🏽" | "🙅🏽‍♂️" | "🙆🏽‍♀️" | "🙆🏽" | "🙆🏽‍♂️" | "🙋🏽‍♀️" | "🙋🏽" | "🙋🏽‍♂️" | "🧏🏽‍♀️" | "🧏🏽" | "🧏🏽‍♂️" | "🤦🏽‍♀️" | "🤦🏽" | "🤦🏽‍♂️" | "🤷🏽‍♀️" | "🤷🏽" | "🤷🏽‍♂️" | "🙎🏽‍♀️" | "🙎🏽" | "🙎🏽‍♂️" | "🙍🏽‍♀️" | "🙍🏽" | "🙍🏽‍♂️" | "💇🏽‍♀️" | "💇🏽" | "💇🏽‍♂️" | "💆🏽‍♀️" | "💆🏽" | "💆🏽‍♂️" | "🧖🏽‍♀️" | "🧖🏽" | "🧖🏽‍♂️" | "💃🏽" | "🕺🏽" | "🕴🏽" | "👩🏽‍🦽" | "🧑🏽‍🦽" | "👨🏽‍🦽" | "👩🏽‍🦼" | "🧑🏽‍🦼" | "👨🏽‍🦼" | "🚶🏽‍♀️" | "🚶🏽" | "🚶🏽‍♂️" | "👩🏽‍🦯" | "🧑🏽‍🦯" | "👨🏽‍🦯" | "🧎🏽‍♀️" | "🧎🏽" | "🧎🏽‍♂️" | "🏃🏽‍♀️" | "🏃🏽" | "🏃🏽‍♂️" | "🧍🏽‍♀️" | "🧍🏽" | "🧍🏽‍♂️" | "👭🏽" | "🧑🏽‍🤝‍🧑🏽" | "👬🏽" | "👫🏽" | "🧗🏽‍♀️" | "🧗🏽" | "🧗🏽‍♂️" | "🏇🏽" | "🏂🏽" | "🏌🏽‍♀️" | "🏌🏽" | "🏌🏽‍♂️" | "🏄🏽‍♀️" | "🏄🏽" | "🏄🏽‍♂️" | "🚣🏽‍♀️" | "🚣🏽" | "🚣🏽‍♂️" | "🏊🏽‍♀️" | "🏊🏽" | "🏊🏽‍♂️" | "⛹🏽‍♀️" | "⛹🏽" | "⛹🏽‍♂️" | "🏋🏽‍♀️" | "🏋🏽" | "🏋🏽‍♂️" | "🚴🏽‍♀️" | "🚴🏽" | "🚴🏽‍♂️" | "🚵🏽‍♀️" | "🚵🏽" | "🚵🏽‍♂️" | "🤸🏽‍♀️" | "🤸🏽" | "🤸🏽‍♂️" | "🤽🏽‍♀️" | "🤽🏽" | "🤽🏽‍♂️" | "🤾🏽‍♀️" | "🤾🏽" | "🤾🏽‍♂️" | "🤹🏽‍♀️" | "🤹🏽" | "🤹🏽‍♂️" | "🧘🏽‍♀️" | "🧘🏽" | "🧘🏽‍♂️" | "🛀🏽" | "👋🏾" | "🤚🏾" | "🖐🏾" | "✋🏾" | "🖖🏾" | "👌🏾" | "🤌🏾" | "🤏🏾" | "✌🏾" | "🤞🏾" | "🤟🏾" | "🤘🏾" | "🤙🏾" | "👈🏾" | "👉🏾" | "👆🏾" | "🖕🏾" | "👇🏾" | "☝🏾" | "👍🏾" | "👎🏾" | "✊🏾" | "👊🏾" | "🤛🏾" | "🤜🏾" | "👏🏾" | "🙌🏾" | "👐🏾" | "🤲🏾" | "🙏🏾" | "✍🏾" | "💅🏾" | "🤳🏾" | "💪🏾" | "🦵🏾" | "🦶🏾" | "👂🏾" | "🦻🏾" | "👃🏾" | "👶🏾" | "👧🏾" | "🧒🏾" | "👦🏾" | "👩🏾" | "🧑🏾" | "👨🏾" | "👩🏾‍🦱" | "🧑🏾‍🦱" | "👨🏾‍🦱" | "👩🏾‍🦰" | "🧑🏾‍🦰" | "👨🏾‍🦰" | "👱🏾‍♀️" | "👱🏾" | "👱🏾‍♂️" | "👩🏾‍🦳" | "🧑🏾‍🦳" | "👨🏾‍🦳" | "👩🏾‍🦲" | "🧑🏾‍🦲" | "👨🏾‍🦲" | "🧔🏾" | "👵🏾" | "🧓🏾" | "👴🏾" | "👲🏾" | "👳🏾‍♀️" | "👳🏾" | "👳🏾‍♂️" | "🧕🏾" | "👮🏾‍♀️" | "👮🏾" | "👮🏾‍♂️" | "👷🏾‍♀️" | "👷🏾" | "👷🏾‍♂️" | "💂🏾‍♀️" | "💂🏾" | "💂🏾‍♂️" | "🕵🏾‍♀️" | "🕵🏾" | "🕵🏾‍♂️" | "👩🏾‍⚕️" | "🧑🏾‍⚕️" | "👨🏾‍⚕️" | "👩🏾‍🌾" | "🧑🏾‍🌾" | "👨🏾‍🌾" | "👩🏾‍🍳" | "🧑🏾‍🍳" | "👨🏾‍🍳" | "👩🏾‍🎓" | "🧑🏾‍🎓" | "👨🏾‍🎓" | "👩🏾‍🎤" | "🧑🏾‍🎤" | "👨🏾‍🎤" | "👩🏾‍🏫" | "🧑🏾‍🏫" | "👨🏾‍🏫" | "👩🏾‍🏭" | "🧑🏾‍🏭" | "👨🏾‍🏭" | "👩🏾‍💻" | "🧑🏾‍💻" | "👨🏾‍💻" | "👩🏾‍💼" | "🧑🏾‍💼" | "👨🏾‍💼" | "👩🏾‍🔧" | "🧑🏾‍🔧" | "👨🏾‍🔧" | "👩🏾‍🔬" | "🧑🏾‍🔬" | "👨🏾‍🔬" | "👩🏾‍🎨" | "🧑🏾‍🎨" | "👨🏾‍🎨" | "👩🏾‍🚒" | "🧑🏾‍🚒" | "👨🏾‍🚒" | "👩🏾‍✈️" | "🧑🏾‍✈️" | "👨🏾‍✈️" | "👩🏾‍🚀" | "🧑🏾‍🚀" | "👨🏾‍🚀" | "👩🏾‍⚖️" | "🧑🏾‍⚖️" | "👨🏾‍⚖️" | "👰🏾‍♀️" | "👰🏾" | "👰🏾‍♂️" | "🤵🏾‍♀️" | "🤵🏾" | "🤵🏾‍♂️" | "👸🏾" | "🤴🏾" | "🥷🏾" | "🦸🏾‍♀️" | "🦸🏾" | "🦸🏾‍♂️" | "🦹🏾‍♀️" | "🦹🏾" | "🦹🏾‍♂️" | "🤶🏾" | "🧑🏾‍🎄" | "🎅🏾" | "🧙🏾‍♀️" | "🧙🏾" | "🧙🏾‍♂️" | "🧝🏾‍♀️" | "🧝🏾" | "🧝🏾‍♂️" | "🧛🏾‍♀️" | "🧛🏾" | "🧛🏾‍♂️" | "🧜🏾‍♀️" | "🧜🏾" | "🧜🏾‍♂️" | "🧚🏾‍♀️" | "🧚🏾" | "🧚🏾‍♂️" | "👼🏾" | "🤰🏾" | "🤱🏾" | "👩🏾‍🍼" | "🧑🏾‍🍼" | "👨🏾‍🍼" | "🙇🏾‍♀️" | "🙇🏾" | "🙇🏾‍♂️" | "💁🏾‍♀️" | "💁🏾" | "💁🏾‍♂️" | "🙅🏾‍♀️" | "🙅🏾" | "🙅🏾‍♂️" | "🙆🏾‍♀️" | "🙆🏾" | "🙆🏾‍♂️" | "🙋🏾‍♀️" | "🙋🏾" | "🙋🏾‍♂️" | "🧏🏾‍♀️" | "🧏🏾" | "🧏🏾‍♂️" | "🤦🏾‍♀️" | "🤦🏾" | "🤦🏾‍♂️" | "🤷🏾‍♀️" | "🤷🏾" | "🤷🏾‍♂️" | "🙎🏾‍♀️" | "🙎🏾" | "🙎🏾‍♂️" | "🙍🏾‍♀️" | "🙍🏾" | "🙍🏾‍♂️" | "💇🏾‍♀️" | "💇🏾" | "💇🏾‍♂️" | "💆🏾‍♀️" | "💆🏾" | "💆🏾‍♂️" | "🧖🏾‍♀️" | "🧖🏾" | "🧖🏾‍♂️" | "💃🏾" | "🕺🏾" | "🕴🏿" | "👩🏾‍🦽" | "🧑🏾‍🦽" | "👨🏾‍🦽" | "👩🏾‍🦼" | "🧑🏾‍🦼" | "👨🏾‍🦼" | "🚶🏾‍♀️" | "🚶🏾" | "🚶🏾‍♂️" | "👩🏾‍🦯" | "🧑🏾‍🦯" | "👨🏾‍🦯" | "🧎🏾‍♀️" | "🧎🏾" | "🧎🏾‍♂️" | "🏃🏾‍♀️" | "🏃🏾" | "🏃🏾‍♂️" | "🧍🏾‍♀️" | "🧍🏾" | "🧍🏾‍♂️" | "👭🏾" | "🧑🏾‍🤝‍🧑🏾" | "👬🏾" | "👫🏾" | "🧗🏾‍♀️" | "🧗🏾" | "🧗🏾‍♂️" | "🏇🏾" | "🏂🏾" | "🏌🏾‍♀️" | "🏌🏾" | "🏌🏾‍♂️" | "🏄🏾‍♀️" | "🏄🏾" | "🏄🏾‍♂️" | "🚣🏾‍♀️" | "🚣🏾" | "🚣🏾‍♂️" | "🏊🏾‍♀️" | "🏊🏾" | "🏊🏾‍♂️" | "⛹🏾‍♀️" | "⛹🏾" | "⛹🏾‍♂️" | "🏋🏾‍♀️" | "🏋🏾" | "🏋🏾‍♂️" | "🚴🏾‍♀️" | "🚴🏾" | "🚴🏾‍♂️" | "🚵🏾‍♀️" | "🚵🏾" | "🚵🏾‍♂️" | "🤸🏾‍♀️" | "🤸🏾" | "🤸🏾‍♂️" | "🤽🏾‍♀️" | "🤽🏾" | "🤽🏾‍♂️" | "🤾🏾‍♀️" | "🤾🏾" | "🤾🏾‍♂️" | "🤹🏾‍♀️" | "🤹🏾" | "🤹🏾‍♂️" | "🧘🏾‍♀️" | "🧘🏾" | "🧘🏾‍♂️" | "🛀🏾" | "👋🏿" | "🤚🏿" | "🖐🏿" | "✋🏿" | "🖖🏿" | "👌🏿" | "🤌🏿" | "🤏🏿" | "✌🏿" | "🤞🏿" | "🤟🏿" | "🤘🏿" | "🤙🏿" | "👈🏿" | "👉🏿" | "👆🏿" | "🖕🏿" | "👇🏿" | "☝🏿" | "👍🏿" | "👎🏿" | "✊🏿" | "👊🏿" | "🤛🏿" | "🤜🏿" | "👏🏿" | "🙌🏿" | "👐🏿" | "🤲🏿" | "🙏🏿" | "✍🏿" | "💅🏿" | "🤳🏿" | "💪🏿" | "🦵🏿" | "🦶🏿" | "👂🏿" | "🦻🏿" | "👃🏿" | "👶🏿" | "👧🏿" | "🧒🏿" | "👦🏿" | "👩🏿" | "🧑🏿" | "👨🏿" | "👩🏿‍🦱" | "🧑🏿‍🦱" | "👨🏿‍🦱" | "👩🏿‍🦰" | "🧑🏿‍🦰" | "👨🏿‍🦰" | "👱🏿‍♀️" | "👱🏿" | "👱🏿‍♂️" | "👩🏿‍🦳" | "🧑🏿‍🦳" | "👨🏿‍🦳" | "👩🏿‍🦲" | "🧑🏿‍🦲" | "👨🏿‍🦲" | "🧔🏿" | "👵🏿" | "🧓🏿" | "👴🏿" | "👲🏿" | "👳🏿‍♀️" | "👳🏿" | "👳🏿‍♂️" | "🧕🏿" | "👮🏿‍♀️" | "👮🏿" | "👮🏿‍♂️" | "👷🏿‍♀️" | "👷🏿" | "👷🏿‍♂️" | "💂🏿‍♀️" | "💂🏿" | "💂🏿‍♂️" | "🕵🏿‍♀️" | "🕵🏿" | "🕵🏿‍♂️" | "👩🏿‍⚕️" | "🧑🏿‍⚕️" | "👨🏿‍⚕️" | "👩🏿‍🌾" | "🧑🏿‍🌾" | "👨🏿‍🌾" | "👩🏿‍🍳" | "🧑🏿‍🍳" | "👨🏿‍🍳" | "👩🏿‍🎓" | "🧑🏿‍🎓" | "👨🏿‍🎓" | "👩🏿‍🎤" | "🧑🏿‍🎤" | "👨🏿‍🎤" | "👩🏿‍🏫" | "🧑🏿‍🏫" | "👨🏿‍🏫" | "👩🏿‍🏭" | "🧑🏿‍🏭" | "👨🏿‍🏭" | "👩🏿‍💻" | "🧑🏿‍💻" | "👨🏿‍💻" | "👩🏿‍💼" | "🧑🏿‍💼" | "👨🏿‍💼" | "👩🏿‍🔧" | "🧑🏿‍🔧" | "👨🏿‍🔧" | "👩🏿‍🔬" | "🧑🏿‍🔬" | "👨🏿‍🔬" | "👩🏿‍🎨" | "🧑🏿‍🎨" | "👨🏿‍🎨" | "👩🏿‍🚒" | "🧑🏿‍🚒" | "👨🏿‍🚒" | "👩🏿‍✈️" | "🧑🏿‍✈️" | "👨🏿‍✈️" | "👩🏿‍🚀" | "🧑🏿‍🚀" | "👨🏿‍🚀" | "👩🏿‍⚖️" | "🧑🏿‍⚖️" | "👨🏿‍⚖️" | "👰🏿‍♀️" | "👰🏿" | "👰🏿‍♂️" | "🤵🏿‍♀️" | "🤵🏿" | "🤵🏿‍♂️" | "👸🏿" | "🤴🏿" | "🥷🏿" | "🦸🏿‍♀️" | "🦸🏿" | "🦸🏿‍♂️" | "🦹🏿‍♀️" | "🦹🏿" | "🦹🏿‍♂️" | "🤶🏿" | "🧑🏿‍🎄" | "🎅🏿" | "🧙🏿‍♀️" | "🧙🏿" | "🧙🏿‍♂️" | "🧝🏿‍♀️" | "🧝🏿" | "🧝🏿‍♂️" | "🧛🏿‍♀️" | "🧛🏿" | "🧛🏿‍♂️" | "🧜🏿‍♀️" | "🧜🏿" | "🧜🏿‍♂️" | "🧚🏿‍♀️" | "🧚🏿" | "🧚🏿‍♂️" | "👼🏿" | "🤰🏿" | "🤱🏿" | "👩🏿‍🍼" | "🧑🏿‍🍼" | "👨🏿‍🍼" | "🙇🏿‍♀️" | "🙇🏿" | "🙇🏿‍♂️" | "💁🏿‍♀️" | "💁🏿" | "💁🏿‍♂️" | "🙅🏿‍♀️" | "🙅🏿" | "🙅🏿‍♂️" | "🙆🏿‍♀️" | "🙆🏿" | "🙆🏿‍♂️" | "🙋🏿‍♀️" | "🙋🏿" | "🙋🏿‍♂️" | "🧏🏿‍♀️" | "🧏🏿" | "🧏🏿‍♂️" | "🤦🏿‍♀️" | "🤦🏿" | "🤦🏿‍♂️" | "🤷🏿‍♀️" | "🤷🏿" | "🤷🏿‍♂️" | "🙎🏿‍♀️" | "🙎🏿" | "🙎🏿‍♂️" | "🙍🏿‍♀️" | "🙍🏿" | "🙍🏿‍♂️" | "💇🏿‍♀️" | "💇🏿" | "💇🏿‍♂️" | "💆🏿‍♀️" | "💆🏿" | "💆🏿‍♂️" | "🧖🏿‍♀️" | "🧖🏿" | "🧖🏿‍♂️" | "💃🏿" | "🕺🏿" | "👩🏿‍🦽" | "🧑🏿‍🦽" | "👨🏿‍🦽" | "👩🏿‍🦼" | "🧑🏿‍🦼" | "👨🏿‍🦼" | "🚶🏿‍♀️" | "🚶🏿" | "🚶🏿‍♂️" | "👩🏿‍🦯" | "🧑🏿‍🦯" | "👨🏿‍🦯" | "🧎🏿‍♀️" | "🧎🏿" | "🧎🏿‍♂️" | "🏃🏿‍♀️" | "🏃🏿" | "🏃🏿‍♂️" | "🧍🏿‍♀️" | "🧍🏿" | "🧍🏿‍♂️" | "👭🏿" | "🧑🏿‍🤝‍🧑🏿" | "👬🏿" | "👫🏿" | "🧗🏿‍♀️" | "🧗🏿" | "🧗🏿‍♂️" | "🏇🏿" | "🏂🏿" | "🏌🏿‍♀️" | "🏌🏿" | "🏌🏿‍♂️" | "🏄🏿‍♀️" | "🏄🏿" | "🏄🏿‍♂️" | "🚣🏿‍♀️" | "🚣🏿" | "🚣🏿‍♂️" | "🏊🏿‍♀️" | "🏊🏿" | "🏊🏿‍♂️" | "⛹🏿‍♀️" | "⛹🏿" | "⛹🏿‍♂️" | "🏋🏿‍♀️" | "🏋🏿" | "🏋🏿‍♂️" | "🚴🏿‍♀️" | "🚴🏿" | "🚴🏿‍♂️" | "🚵🏿‍♀️" | "🚵🏿" | "🚵🏿‍♂️" | "🤸🏿‍♀️" | "🤸🏿" | "🤸🏿‍♂️" | "🤽🏿‍♀️" | "🤽🏿" | "🤽🏿‍♂️" | "🤾🏿‍♀️" | "🤾🏿" | "🤾🏿‍♂️" | "🤹🏿‍♀️" | "🤹🏿" | "🤹🏿‍♂️" | "🧘🏿‍♀️" | "🧘🏿" | "🧘🏿‍♂️" | "🛀🏿" | "🛌🏿" | "🐶" | "🐱" | "🐭" | "🐹" | "🐰" | "🦊" | "🐻" | "🐼" | "🐻‍❄️" | "🐨" | "🐯" | "🦁" | "🐮" | "🐷" | "🐽" | "🐸" | "🐵" | "🙈" | "🙉" | "🙊" | "🐒" | "🐔" | "🐧" | "🐦" | "🐤" | "🐣" | "🐥" | "🦆" | "🦅" | "🦉" | "🦇" | "🐺" | "🐗" | "🐴" | "🦄" | "🐝" | "🪱" | "🐛" | "🦋" | "🐌" | "🐞" | "🐜" | "🪰" | "🪲" | "🪳" | "🦟" | "🦗" | "🕷" | "🕸" | "🦂" | "🐢" | "🐍" | "🦎" | "🦖" | "🦕" | "🐙" | "🦑" | "🦐" | "🦞" | "🦀" | "🐡" | "🐠" | "🐟" | "🐬" | "🐳" | "🐋" | "🦈" | "🐊" | "🐅" | "🐆" | "🦓" | "🦍" | "🦧" | "🦣" | "🐘" | "🦛" | "🦏" | "🐪" | "🐫" | "🦒" | "🦘" | "🦬" | "🐃" | "🐂" | "🐄" | "🐎" | "🐖" | "🐏" | "🐑" | "🦙" | "🐐" | "🦌" | "🐕" | "🐩" | "🦮" | "🐕‍🦺" | "🐈" | "🐈‍⬛" | "🪶" | "🐓" | "🦃" | "🦤" | "🦚" | "🦜" | "🦢" | "🦩" | "🕊" | "🐇" | "🦝" | "🦨" | "🦡" | "🦫" | "🦦" | "🦥" | "🐁" | "🐀" | "🐿" | "🦔" | "🐾" | "🐉" | "🐲" | "🌵" | "🎄" | "🌲" | "🌳" | "🌴" | "🪵" | "🌱" | "🌿" | "☘️" | "🍀" | "🎍" | "🪴" | "🎋" | "🍃" | "🍂" | "🍁" | "🍄" | "🐚" | "🪨" | "🌾" | "💐" | "🌷" | "🌹" | "🥀" | "🌺" | "🌸" | "🌼" | "🌻" | "🌞" | "🌝" | "🌛" | "🌜" | "🌚" | "🌕" | "🌖" | "🌗" | "🌘" | "🌑" | "🌒" | "🌓" | "🌔" | "🌙" | "🌎" | "🌍" | "🌏" | "🪐" | "💫" | "⭐️" | "🌟" | "✨" | "⚡️" | "☄️" | "💥" | "🔥" | "🌪" | "🌈" | "☀️" | "🌤" | "⛅️" | "🌥" | "☁️" | "🌦" | "🌧" | "⛈" | "🌩" | "🌨" | "❄️" | "☃️" | "⛄️" | "🌬" | "💨" | "💧" | "💦" | "☔️" | "🌊" | "🌫" | "🍏" | "🍎" | "🍐" | "🍊" | "🍋" | "🍌" | "🍉" | "🍇" | "🍓" | "🫐" | "🍈" | "🍒" | "🍑" | "🥭" | "🍍" | "🥥" | "🥝" | "🍅" | "🍆" | "🥑" | "🥦" | "🥬" | "🥒" | "🌶" | "🫑" | "🌽" | "🥕" | "🫒" | "🧄" | "🧅" | "🥔" | "🍠" | "🥐" | "🥯" | "🍞" | "🥖" | "🥨" | "🧀" | "🥚" | "🍳" | "🧈" | "🥞" | "🧇" | "🥓" | "🥩" | "🍗" | "🍖" | "🌭" | "🍔" | "🍟" | "🍕" | "🫓" | "🥪" | "🥙" | "🧆" | "🌮" | "🌯" | "🫔" | "🥗" | "🥘" | "🫕" | "🥫" | "🍝" | "🍜" | "🍲" | "🍛" | "🍣" | "🍱" | "🥟" | "🦪" | "🍤" | "🍙" | "🍚" | "🍘" | "🍥" | "🥠" | "🥮" | "🍢" | "🍡" | "🍧" | "🍨" | "🍦" | "🥧" | "🧁" | "🍰" | "🎂" | "🍮" | "🍭" | "🍬" | "🍫" | "🍿" | "🍩" | "🍪" | "🌰" | "🥜" | "🍯" | "🥛" | "🍼" | "🫖" | "☕️" | "🍵" | "🧃" | "🥤" | "🧋" | "🍶" | "🍺" | "🍻" | "🥂" | "🍷" | "🥃" | "🍸" | "🍹" | "🧉" | "🍾" | "🧊" | "🥄" | "🍴" | "🍽" | "🥣" | "🥡" | "🥢" | "🧂" | "⚽️" | "🏀" | "🏈" | "⚾️" | "🥎" | "🎾" | "🏐" | "🏉" | "🥏" | "🎱" | "🪀" | "🏓" | "🏸" | "🏒" | "🏑" | "🥍" | "🏏" | "🪃" | "🥅" | "⛳️" | "🪁" | "🏹" | "🎣" | "🤿" | "🥊" | "🥋" | "🎽" | "🛹" | "🛼" | "🛷" | "⛸" | "🥌" | "🎿" | "⛷" | "🏂" | "🪂" | "🏋️‍♀️" | "🏋️" | "🏋️‍♂️" | "🤼‍♀️" | "🤼" | "🤼‍♂️" | "🤸‍♀️" | "🤸" | "🤸‍♂️" | "⛹️‍♀️" | "⛹️" | "⛹️‍♂️" | "🤺" | "🤾‍♀️" | "🤾" | "🤾‍♂️" | "🏌️‍♀️" | "🏌️" | "🏌️‍♂️" | "🏇" | "🧘‍♀️" | "🧘" | "🧘‍♂️" | "🏄‍♀️" | "🏄" | "🏄‍♂️" | "🏊‍♀️" | "🏊" | "🏊‍♂️" | "🤽‍♀️" | "🤽" | "🤽‍♂️" | "🚣‍♀️" | "🚣" | "🚣‍♂️" | "🧗‍♀️" | "🧗" | "🧗‍♂️" | "🚵‍♀️" | "🚵" | "🚵‍♂️" | "🚴‍♀️" | "🚴" | "🚴‍♂️" | "🏆" | "🥇" | "🥈" | "🥉" | "🏅" | "🎖" | "🏵" | "🎗" | "🎫" | "🎟" | "🎪" | "🤹" | "🤹‍♂️" | "🤹‍♀️" | "🎭" | "🎨" | "🎬" | "🎤" | "🎧" | "🎼" | "🎹" | "🥁" | "🪘" | "🎷" | "🎺" | "🪗" | "🎸" | "🪕" | "🎻" | "🎲" | "♟" | "🎯" | "🎳" | "🎮" | "🎰" | "🧩" | "🚗" | "🚕" | "🚙" | "🚌" | "🚎" | "🏎" | "🚓" | "🚑" | "🚒" | "🚐" | "🛻" | "🚚" | "🚛" | "🚜" | "🦯" | "🦽" | "🦼" | "🛴" | "🚲" | "🛵" | "🏍" | "🛺" | "🚨" | "🚔" | "🚍" | "🚘" | "🚖" | "🚡" | "🚠" | "🚟" | "🚃" | "🚋" | "🚞" | "🚝" | "🚄" | "🚅" | "🚈" | "🚂" | "🚆" | "🚇" | "🚊" | "🚉" | "✈️" | "🛫" | "🛬" | "🛩" | "💺" | "🛰" | "🚀" | "🛸" | "🚁" | "🛶" | "⛵️" | "🚤" | "🛥" | "🛳" | "⛴" | "🚢" | "⚓️" | "🪝" | "⛽️" | "🚧" | "🚦" | "🚥" | "🚏" | "🗺" | "🗿" | "🗽" | "🗼" | "🏰" | "🏯" | "🏟" | "🎡" | "🎢" | "🎠" | "⛲️" | "⛱" | "🏖" | "🏝" | "🏜" | "🌋" | "⛰" | "🏔" | "🗻" | "🏕" | "⛺️" | "🛖" | "🏠" | "🏡" | "🏘" | "🏚" | "🏗" | "🏭" | "🏢" | "🏬" | "🏣" | "🏤" | "🏥" | "🏦" | "🏨" | "🏪" | "🏫" | "🏩" | "💒" | "🏛" | "⛪️" | "🕌" | "🕍" | "🛕" | "🕋" | "⛩" | "🛤" | "🛣" | "🗾" | "🎑" | "🏞" | "🌅" | "🌄" | "🌠" | "🎇" | "🎆" | "🌇" | "🌆" | "🏙" | "🌃" | "🌌" | "🌉" | "🌁" | "⌚️" | "📱" | "📲" | "💻" | "⌨️" | "🖥" | "🖨" | "🖱" | "🖲" | "🕹" | "🗜" | "💽" | "💾" | "💿" | "📀" | "📼" | "📷" | "📸" | "📹" | "🎥" | "📽" | "🎞" | "📞" | "☎️" | "📟" | "📠" | "📺" | "📻" | "🎙" | "🎚" | "🎛" | "🧭" | "⏱" | "⏲" | "⏰" | "🕰" | "⌛️" | "⏳" | "📡" | "🔋" | "🔌" | "💡" | "🔦" | "🕯" | "🪔" | "🧯" | "🛢" | "💸" | "💵" | "💴" | "💶" | "💷" | "🪙" | "💰" | "💳" | "💎" | "⚖️" | "🪜" | "🧰" | "🪛" | "🔧" | "🔨" | "⚒" | "🛠" | "⛏" | "🪚" | "🔩" | "⚙️" | "🪤" | "🧱" | "⛓" | "🧲" | "🔫" | "💣" | "🧨" | "🪓" | "🔪" | "🗡" | "⚔️" | "🛡" | "🚬" | "⚰️" | "🪦" | "⚱️" | "🏺" | "🔮" | "📿" | "🧿" | "💈" | "⚗️" | "🔭" | "🔬" | "🕳" | "🩹" | "🩺" | "💊" | "💉" | "🧬" | "🦠" | "🧫" | "🧪" | "🌡" | "🧹" | "🪠" | "🧺" | "🧻" | "🚽" | "🚰" | "🚿" | "🛁" | "🛀" | "🧼" | "🪥" | "🪒" | "🧽" | "🪣" | "🧴" | "🛎" | "🔑" | "🗝" | "🚪" | "🪑" | "🛋" | "🛏" | "🧸" | "🪆" | "🖼" | "🪞" | "🪟" | "🛍" | "🛒" | "🎁" | "🎈" | "🎏" | "🎀" | "🪄" | "🪅" | "🎊" | "🎉" | "🎎" | "🏮" | "🎐" | "🧧" | "✉️" | "📩" | "📨" | "📧" | "💌" | "📥" | "📤" | "📦" | "🏷" | "🪧" | "📪" | "📫" | "📬" | "📭" | "📮" | "📯" | "📜" | "📃" | "📄" | "📑" | "🧾" | "📊" | "📈" | "📉" | "🗒" | "🗓" | "📆" | "📅" | "🗑" | "📇" | "🗃" | "🗳" | "🗄" | "📋" | "📁" | "📂" | "🗂" | "🗞" | "📰" | "📓" | "📔" | "📒" | "📕" | "📗" | "📘" | "📙" | "📚" | "📖" | "🔖" | "🧷" | "🔗" | "📎" | "🖇" | "📐" | "📏" | "🧮" | "📌" | "📍" | "✂️" | "🖊" | "🖋" | "✒️" | "🖌" | "🖍" | "📝" | "✏️" | "🔍" | "🔎" | "🔏" | "🔐" | "🔒" | "🔓" | "❤️" | "🧡" | "💛" | "💚" | "💙" | "💜" | "🖤" | "🤍" | "🤎" | "💔" | "❣️" | "💕" | "💞" | "💓" | "💗" | "💖" | "💘" | "💝" | "💟" | "☮️" | "✝️" | "☪️" | "🕉" | "☸️" | "✡️" | "🔯" | "🕎" | "☯️" | "☦️" | "🛐" | "⛎" | "♈️" | "♉️" | "♊️" | "♋️" | "♌️" | "♍️" | "♎️" | "♏️" | "♐️" | "♑️" | "♒️" | "♓️" | "🆔" | "⚛️" | "🉑" | "☢️" | "☣️" | "📴" | "📳" | "🈶" | "🈚️" | "🈸" | "🈺" | "🈷️" | "✴️" | "🆚" | "💮" | "🉐" | "㊙️" | "㊗️" | "🈴" | "🈵" | "🈹" | "🈲" | "🅰️" | "🅱️" | "🆎" | "🆑" | "🅾️" | "🆘" | "❌" | "⭕️" | "🛑" | "⛔️" | "📛" | "🚫" | "💯" | "💢" | "♨️" | "🚷" | "🚯" | "🚳" | "🚱" | "🔞" | "📵" | "🚭" | "❗️" | "❕" | "❓" | "❔" | "‼️" | "⁉️" | "🔅" | "🔆" | "〽️" | "⚠️" | "🚸" | "🔱" | "⚜️" | "🔰" | "♻️" | "✅" | "🈯️" | "💹" | "❇️" | "✳️" | "❎" | "🌐" | "💠" | "Ⓜ️" | "🌀" | "💤" | "🏧" | "🚾" | "♿️" | "🅿️" | "🛗" | "🈳" | "🈂️" | "🛂" | "🛃" | "🛄" | "🛅" | "🚹" | "🚺" | "🚼" | "⚧" | "🚻" | "🚮" | "🎦" | "📶" | "🈁" | "🔣" | "ℹ️" | "🔤" | "🔡" | "🔠" | "🆖" | "🆗" | "🆙" | "🆒" | "🆕" | "🆓" | "0️⃣" | "1️⃣" | "2️⃣" | "3️⃣" | "4️⃣" | "5️⃣" | "6️⃣" | "7️⃣" | "8️⃣" | "9️⃣" | "🔟" | "🔢" | "#️⃣" | "*️⃣" | "⏏️" | "▶️" | "⏸" | "⏯" | "⏚" | "⏺" | "⏭" | "⏎" | "⏊" | "⏪" | "⏫" | "⏬" | "◀️" | "🔼" | "🔽" | "➡️" | "⬅️" | "⬆️" | "⬇️" | "↗️" | "↘️" | "↙️" | "↖️" | "↕️" | "↔️" | "↪️" | "↩️" | "⤴️" | "⤵️" | "🔀" | "🔁" | "🔂" | "🔄" | "🔃" | "🎵" | "🎶" | "➕" | "➖" | "➗" | "✖️" | "♾" | "💲" | "💱" | "™️" | "©️" | "®️" | "〰️" | "➰" | "➿" | "🔚" | "🔙" | "🔛" | "🔝" | "🔜" | "✔️" | "☑️" | "🔘" | "🔴" | "🟠" | "🟡" | "🟢" | "🔵" | "🟣" | "⚫️" | "⚪️" | "🟤" | "🔺" | "🔻" | "🔸" | "🔹" | "🔶" | "🔷" | "🔳" | "🔲" | "▪️" | "▫️" | "◾️" | "◽️" | "◼️" | "◻️" | "🟥" | "🟧" | "🟨" | "🟩" | "🟦" | "🟪" | "⬛️" | "⬜️" | "🟫" | "🔈" | "🔇" | "🔉" | "🔊" | "🔔" | "🔕" | "📣" | "📢" | "👁‍🗨" | "💬" | "💭" | "🗯" | "♠️" | "♣️" | "♥️" | "♦️" | "🃏" | "🎴" | "🀄️" | "🕐" | "🕑" | "🕒" | "🕓" | "🕔" | "🕕" | "🕖" | "🕗" | "🕘" | "🕙" | "🕚" | "🕛" | "🕜" | "🕝" | "🕞" | "🕟" | "🕠" | "🕡" | "🕢" | "🕣" | "🕤" | "🕥" | "🕦" | "🕧" | "✢" | "✣" | "✤" | "✥" | "✦" | "✧" | "★" | "☆" | "✯" | "✡︎" | "✩" | "✪" | "✫" | "✬" | "✭" | "✮" | "✶" | "✷" | "✵" | "✸" | "✹" | "→" | "⇒" | "⟹" | "⇨" | "⇾" | "➾" | "⇢" | "☛" | "☞" | "➔" | "➜" | "➙" | "➛" | "➝" | "➞" | "♠︎" | "♣︎" | "♥︎" | "♦︎" | "♤" | "♧" | "♡" | "♢" | "♚" | "♛" | "♜" | "♝" | "♞" | "♔" | "♕" | "♖" | "♗" | "♘" | "♙" | "⚀" | "⚁" | "⚂" | "⚃" | "⚄" | "⚅" | "🂠" | "⚈" | "⚉" | "⚆" | "⚇" | "𓀀" | "𓀁" | "𓀂" | "𓀃" | "𓀄" | "𓀅" | "𓀆" | "𓀇" | "𓀈" | "𓀉" | "𓀊" | "𓀋" | "𓀌" | "𓀍" | "𓀎" | "𓀏" | "𓀐" | "𓀑" | "𓀒" | "𓀓" | "𓀔" | "𓀕" | "𓀖" | "𓀗" | "𓀘" | "𓀙" | "𓀚" | "𓀛" | "𓀜" | "𓀝" | "🏳️" | "🏴" | "🏁" | "🚩" | "🏳️‍🌈" | "🏳️‍⚧️" | "🏴‍☠️" | "🇦🇫" | "🇦🇽" | "🇦🇱" | "🇩🇿" | "🇦🇸" | "🇦🇩" | "🇦🇴" | "🇦🇮" | "🇦🇶" | "🇦🇬" | "🇦🇷" | "🇦🇲" | "🇦🇼" | "🇦🇺" | "🇦🇹" | "🇦🇿" | "🇧🇸" | "🇧🇭" | "🇧🇩" | "🇧🇧" | "🇧🇾" | "🇧🇪" | "🇧🇿" | "🇧🇯" | "🇧🇲" | "🇧🇹" | "🇧🇴" | "🇧🇦" | "🇧🇼" | "🇧🇷" | "🇮🇴" | "🇻🇬" | "🇧🇳" | "🇧🇬" | "🇧🇫" | "🇧🇮" | "🇰🇭" | "🇨🇲" | "🇨🇦" | "🇮🇨" | "🇨🇻" | "🇧🇶" | "🇰🇾" | "🇨🇫" | "🇹🇩" | "🇨🇱" | "🇨🇳" | "🇨🇽" | "🇨🇨" | "🇨🇴" | "🇰🇲" | "🇨🇬" | "🇨🇩" | "🇨🇰" | "🇨🇷" | "🇨🇮" | "🇭🇷" | "🇨🇺" | "🇨🇼" | "🇨🇾" | "🇨🇿" | "🇩🇰" | "🇩🇯" | "🇩🇲" | "🇩🇴" | "🇪🇨" | "🇪🇬" | "🇸🇻" | "🇬🇶" | "🇪🇷" | "🇪🇪" | "🇪🇹" | "🇪🇺" | "🇫🇰" | "🇫🇴" | "🇫🇯" | "🇫🇮" | "🇫🇷" | "🇬🇫" | "🇵🇫" | "🇹🇫" | "🇬🇦" | "🇬🇲" | "🇬🇪" | "🇩🇪" | "🇬🇭" | "🇬🇮" | "🇬🇷" | "🇬🇱" | "🇬🇩" | "🇬🇵" | "🇬🇺" | "🇬🇹" | "🇬🇬" | "🇬🇳" | "🇬🇼" | "🇬🇾" | "🇭🇹" | "🇭🇳" | "🇭🇰" | "🇭🇺" | "🇮🇸" | "🇮🇳" | "🇮🇩" | "🇮🇷" | "🇮🇶" | "🇮🇪" | "🇮🇲" | "🇮🇱" | "🇮🇹" | "🇯🇲" | "🇯🇵" | "🎌" | "🇯🇪" | "🇯🇴" | "🇰🇿" | "🇰🇪" | "🇰🇮" | "🇽🇰" | "🇰🇼" | "🇰🇬" | "🇱🇦" | "🇱🇻" | "🇱🇧" | "🇱🇸" | "🇱🇷" | "🇱🇾" | "🇱🇮" | "🇱🇹" | "🇱🇺" | "🇲🇴" | "🇲🇰" | "🇲🇬" | "🇲🇼" | "🇲🇾" | "🇲🇻" | "🇲🇱" | "🇲🇹" | "🇲🇭" | "🇲🇶" | "🇲🇷" | "🇲🇺" | "🇾🇹" | "🇲🇽" | "🇫🇲" | "🇲🇩" | "🇲🇨" | "🇲🇳" | "🇲🇪" | "🇲🇸" | "🇲🇦" | "🇲🇿" | "🇲🇲" | "🇳🇦" | "🇳🇷" | "🇳🇵" | "🇳🇱" | "🇳🇨" | "🇳🇿" | "🇳🇮" | "🇳🇪" | "🇳🇬" | "🇳🇺" | "🇳🇫" | "🇰🇵" | "🇲🇵" | "🇳🇴" | "🇴🇲" | "🇵🇰" | "🇵🇼" | "🇵🇸" | "🇵🇦" | "🇵🇬" | "🇵🇾" | "🇵🇪" | "🇵🇭" | "🇵🇳" | "🇵🇱" | "🇵🇹" | "🇵🇷" | "🇶🇦" | "🇷🇪" | "🇷🇴" | "🇷🇺" | "🇷🇼" | "🇼🇸" | "🇸🇲" | "🇸🇦" | "🇸🇳" | "🇷🇸" | "🇸🇨" | "🇸🇱" | "🇸🇬" | "🇸🇽" | "🇸🇰" | "🇸🇮" | "🇬🇸" | "🇸🇧" | "🇸🇴" | "🇿🇦" | "🇰🇷" | "🇸🇸" | "🇪🇸" | "🇱🇰" | "🇧🇱" | "🇸🇭" | "🇰🇳" | "🇱🇨" | "🇵🇲" | "🇻🇨" | "🇸🇩" | "🇸🇷" | "🇸🇿" | "🇸🇪" | "🇨🇭" | "🇸🇾" | "🇹🇼" | "🇹🇯" | "🇹🇿" | "🇹🇭" | "🇹🇱" | "🇹🇬" | "🇹🇰" | "🇹🇴" | "🇹🇹" | "🇹🇳" | "🇹🇷" | "🇹🇲" | "🇹🇨" | "🇹🇻" | "🇻🇮" | "🇺🇬" | "🇺🇦" | "🇦🇪" | "🇬🇧" | "🏴󠁧󠁢󠁥󠁮󠁧󠁿" | "🏴󠁧󠁢󠁳󠁣󠁴󠁿" | "🏴󠁧󠁢󠁷󠁬󠁳󠁿" | "🇺🇳" | "🇺🇸" | "🇺🇾" | "🇺🇿" | "🇻🇺" | "🇻🇦" | "🇻🇪" | "🇻🇳" | "🇼🇫" | "🇪🇭" | "🇾🇪" | "🇿🇲" | "🇿🇼" | "🦭" | "😮‍💨" | "😵‍💫" | "😶‍🌫️" | "❤️‍🔥" | "❤️‍🩹" | "🧔‍♀️" | "🧔🏻‍♀️" | "🧔🏼‍♀️" | "🧔🏽‍♀️" | "🧔🏾‍♀️" | "🧔🏿‍♀️" | "🧔‍♂️" | "🧔🏻‍♂️" | "🧔🏼‍♂️" | "🧔🏽‍♂️" | "🧔🏾‍♂️" | "🧔🏿‍♂️" | "💑🏻" | "💑🏼" | "💑🏽" | "💑🏾" | "💑🏿" | "💏🏻" | "💏🏼" | "💏🏽" | "💏🏾" | "💏🏿" | "👨🏻‍❤️‍👨🏻" | "👨🏻‍❤️‍👨🏼" | "👨🏻‍❤️‍👨🏽" | "👨🏻‍❤️‍👨🏾" | "👨🏻‍❤️‍👨🏿" | "👨🏼‍❤️‍👨🏻" | "👨🏼‍❤️‍👨🏼" | "👨🏼‍❤️‍👨🏽" | "👨🏼‍❤️‍👨🏾" | "👨🏼‍❤️‍👨🏿" | "👨🏽‍❤️‍👨🏻" | "👨🏽‍❤️‍👨🏼" | "👨🏽‍❤️‍👨🏽" | "👨🏽‍❤️‍👨🏾" | "👨🏽‍❤️‍👨🏿" | "👨🏾‍❤️‍👨🏻" | "👨🏾‍❤️‍👨🏼" | "👨🏾‍❤️‍👨🏽" | "👨🏾‍❤️‍👨🏾" | "👨🏾‍❤️‍👨🏿" | "👨🏿‍❤️‍👨🏻" | "👨🏿‍❤️‍👨🏼" | "👨🏿‍❤️‍👨🏽" | "👨🏿‍❤️‍👨🏾" | "👨🏿‍❤️‍👨🏿" | "👩🏻‍❤️‍👨🏻" | "👩🏻‍❤️‍👨🏼" | "👩🏻‍❤️‍👨🏽" | "👩🏻‍❤️‍👨🏾" | "👩🏻‍❤️‍👨🏿" | "👩🏻‍❤️‍👩🏻" | "👩🏻‍❤️‍👩🏼" | "👩🏻‍❤️‍👩🏽" | "👩🏻‍❤️‍👩🏾" | "👩🏻‍❤️‍👩🏿" | "👩🏼‍❤️‍👨🏻" | "👩🏼‍❤️‍👨🏼" | "👩🏼‍❤️‍👨🏽" | "👩🏼‍❤️‍👨🏾" | "👩🏼‍❤️‍👨🏿" | "👩🏼‍❤️‍👩🏻" | "👩🏼‍❤️‍👩🏼" | "👩🏼‍❤️‍👩🏽" | "👩🏼‍❤️‍👩🏾" | "👩🏼‍❤️‍👩🏿" | "👩🏽‍❤️‍👨🏻" | "👩🏽‍❤️‍👨🏼" | "👩🏽‍❤️‍👨🏽" | "👩🏽‍❤️‍👨🏾" | "👩🏽‍❤️‍👨🏿" | "👩🏽‍❤️‍👩🏻" | "👩🏽‍❤️‍👩🏼" | "👩🏽‍❤️‍👩🏽" | "👩🏽‍❤️‍👩🏾" | "👩🏽‍❤️‍👩🏿" | "👩🏾‍❤️‍👨🏻" | "👩🏾‍❤️‍👨🏼" | "👩🏾‍❤️‍👨🏽" | "👩🏾‍❤️‍👨🏾" | "👩🏾‍❤️‍👨🏿" | "👩🏾‍❤️‍👩🏻" | "👩🏾‍❤️‍👩🏼" | "👩🏾‍❤️‍👩🏽" | "👩🏾‍❤️‍👩🏾" | "👩🏾‍❤️‍👩🏿" | "👩🏿‍❤️‍👨🏻" | "👩🏿‍❤️‍👨🏼" | "👩🏿‍❤️‍👨🏽" | "👩🏿‍❤️‍👨🏾" | "👩🏿‍❤️‍👨🏿" | "👩🏿‍❤️‍👩🏻" | "👩🏿‍❤️‍👩🏼" | "👩🏿‍❤️‍👩🏽" | "👩🏿‍❤️‍👩🏾" | "👩🏿‍❤️‍👩🏿" | "🧑🏻‍❤️‍🧑🏼" | "🧑🏻‍❤️‍🧑🏽" | "🧑🏻‍❤️‍🧑🏾" | "🧑🏻‍❤️‍🧑🏿" | "🧑🏼‍❤️‍🧑🏻" | "🧑🏼‍❤️‍🧑🏽" | "🧑🏼‍❤️‍🧑🏾" | "🧑🏼‍❤️‍🧑🏿" | "🧑🏽‍❤️‍🧑🏻" | "🧑🏽‍❤️‍🧑🏼" | "🧑🏽‍❤️‍🧑🏾" | "🧑🏽‍❤️‍🧑🏿" | "🧑🏾‍❤️‍🧑🏻" | "🧑🏾‍❤️‍🧑🏼" | "🧑🏾‍❤️‍🧑🏽" | "🧑🏾‍❤️‍🧑🏿" | "🧑🏿‍❤️‍🧑🏻" | "🧑🏿‍❤️‍🧑🏼" | "🧑🏿‍❤️‍🧑🏽" | "🧑🏿‍❤️‍🧑🏾" | "👨🏻‍❤️‍💋‍👨🏻" | "👨🏻‍❤️‍💋‍👨🏼" | "👨🏻‍❤️‍💋‍👨🏽" | "👨🏻‍❤️‍💋‍👨🏾" | "👨🏻‍❤️‍💋‍👨🏿" | "👨🏼‍❤️‍💋‍👨🏻" | "👨🏼‍❤️‍💋‍👨🏼" | "👨🏼‍❤️‍💋‍👨🏽" | "👨🏼‍❤️‍💋‍👨🏾" | "👨🏼‍❤️‍💋‍👨🏿" | "👨🏽‍❤️‍💋‍👨🏻" | "👨🏽‍❤️‍💋‍👨🏼" | "👨🏽‍❤️‍💋‍👨🏽" | "👨🏽‍❤️‍💋‍👨🏾" | "👨🏽‍❤️‍💋‍👨🏿" | "👨🏾‍❤️‍💋‍👨🏻" | "👨🏾‍❤️‍💋‍👨🏼" | "👨🏾‍❤️‍💋‍👨🏽" | "👨🏾‍❤️‍💋‍👨🏾" | "👨🏾‍❤️‍💋‍👨🏿" | "👨🏿‍❤️‍💋‍👨🏻" | "👨🏿‍❤️‍💋‍👨🏼" | "👨🏿‍❤️‍💋‍👨🏽" | "👨🏿‍❤️‍💋‍👨🏾" | "👨🏿‍❤️‍💋‍👨🏿" | "👩🏻‍❤️‍💋‍👨🏻" | "👩🏻‍❤️‍💋‍👨🏼" | "👩🏻‍❤️‍💋‍👨🏽" | "👩🏻‍❤️‍💋‍👨🏾" | "👩🏻‍❤️‍💋‍👨🏿" | "👩🏻‍❤️‍💋‍👩🏻" | "👩🏻‍❤️‍💋‍👩🏼" | "👩🏻‍❤️‍💋‍👩🏽" | "👩🏻‍❤️‍💋‍👩🏾" | "👩🏻‍❤️‍💋‍👩🏿" | "👩🏼‍❤️‍💋‍👨🏻" | "👩🏼‍❤️‍💋‍👨🏼" | "👩🏼‍❤️‍💋‍👨🏽" | "👩🏼‍❤️‍💋‍👨🏾" | "👩🏼‍❤️‍💋‍👨🏿" | "👩🏼‍❤️‍💋‍👩🏻" | "👩🏼‍❤️‍💋‍👩🏼" | "👩🏼‍❤️‍💋‍👩🏽" | "👩🏼‍❤️‍💋‍👩🏾" | "👩🏼‍❤️‍💋‍👩🏿" | "👩🏽‍❤️‍💋‍👨🏻" | "👩🏽‍❤️‍💋‍👨🏼" | "👩🏽‍❤️‍💋‍👨🏽" | "👩🏽‍❤️‍💋‍👨🏾" | "👩🏽‍❤️‍💋‍👨🏿" | "👩🏽‍❤️‍💋‍👩🏻" | "👩🏽‍❤️‍💋‍👩🏼" | "👩🏽‍❤️‍💋‍👩🏽" | "👩🏽‍❤️‍💋‍👩🏾" | "👩🏽‍❤️‍💋‍👩🏿" | "👩🏾‍❤️‍💋‍👨🏻" | "👩🏾‍❤️‍💋‍👨🏼" | "👩🏾‍❤️‍💋‍👨🏽" | "👩🏾‍❤️‍💋‍👨🏾" | "👩🏾‍❤️‍💋‍👨🏿" | "👩🏾‍❤️‍💋‍👩🏻" | "👩🏾‍❤️‍💋‍👩🏼" | "👩🏾‍❤️‍💋‍👩🏽" | "👩🏾‍❤️‍💋‍👩🏾" | "👩🏾‍❤️‍💋‍👩🏿" | "👩🏿‍❤️‍💋‍👨🏻" | "👩🏿‍❤️‍💋‍👨🏼" | "👩🏿‍❤️‍💋‍👨🏽" | "👩🏿‍❤️‍💋‍👨🏾" | "👩🏿‍❤️‍💋‍👨🏿" | "👩🏿‍❤️‍💋‍👩🏻" | "👩🏿‍❤️‍💋‍👩🏼" | "👩🏿‍❤️‍💋‍👩🏽" | "👩🏿‍❤️‍💋‍👩🏾" | "👩🏿‍❤️‍💋‍👩🏿" | "🧑🏻‍❤️‍💋‍🧑🏼" | "🧑🏻‍❤️‍💋‍🧑🏽" | "🧑🏻‍❤️‍💋‍🧑🏾" | "🧑🏻‍❤️‍💋‍🧑🏿" | "🧑🏼‍❤️‍💋‍🧑🏻" | "🧑🏼‍❤️‍💋‍🧑🏽" | "🧑🏼‍❤️‍💋‍🧑🏾" | "🧑🏼‍❤️‍💋‍🧑🏿" | "🧑🏽‍❤️‍💋‍🧑🏻" | "🧑🏽‍❤️‍💋‍🧑🏼" | "🧑🏽‍❤️‍💋‍🧑🏾" | "🧑🏽‍❤️‍💋‍🧑🏿" | "🧑🏾‍❤️‍💋‍🧑🏻" | "🧑🏾‍❤️‍💋‍🧑🏼" | "🧑🏾‍❤️‍💋‍🧑🏽" | "🧑🏾‍❤️‍💋‍🧑🏿" | "🧑🏿‍❤️‍💋‍🧑🏻" | "🧑🏿‍❤️‍💋‍🧑🏼" | "🧑🏿‍❤️‍💋‍🧑🏽" | "🧑🏿‍❤️‍💋‍🧑🏾"';
10
10
  /**
@@ -1,9 +1,14 @@
1
+ import type { string_persona_description } from '../../types/typeAliases';
1
2
  /**
2
- * @@@@
3
+ * Generates a random agent persona description.
3
4
  *
5
+ * This function selects a random personality profile from a predefined pool
6
+ * of common AI agent characteristics (e.g., friendly, professional, creative).
7
+ *
8
+ * @returns A string describing the agent's persona
4
9
  * @private internal helper function
5
10
  */
6
- export declare function $randomAgentPersona(): string;
11
+ export declare function $randomAgentPersona(): string_persona_description;
7
12
  /**
8
13
  * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
9
14
  */
@@ -6,4 +6,4 @@
6
6
  export declare function $randomItem<TItem>(...items: Array<TItem>): TItem;
7
7
  /**
8
8
  * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
9
- */
9
+ */
@@ -10,4 +10,4 @@ import type { number_seed } from '../../types/typeAliases';
10
10
  export declare function $randomSeed(): number_seed;
11
11
  /**
12
12
  * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
13
- */
13
+ */
@@ -0,0 +1,16 @@
1
+ import type { string_agent_url } from '../../../types/typeAliases';
2
+ import type { really_unknown } from '../../organization/really_unknown';
3
+ /**
4
+ * Tests if given string is valid agent URL
5
+ *
6
+ * Note: There are few similar functions:
7
+ * - `isValidUrl` which tests any URL
8
+ * - `isValidAgentUrl` *(this one)* which tests just agent URL
9
+ * - `isValidPipelineUrl` which tests just pipeline URL
10
+ *
11
+ * @public exported from `@promptbook/utils`
12
+ */
13
+ export declare function isValidAgentUrl(url: really_unknown): url is string_agent_url;
14
+ /**
15
+ * TODO: [🐠] Maybe more info why the URL is invalid
16
+ */
@@ -3,8 +3,9 @@ import type { really_unknown } from '../../organization/really_unknown';
3
3
  /**
4
4
  * Tests if given string is valid pipeline URL URL.
5
5
  *
6
- * Note: There are two similar functions:
6
+ * Note: There are few similar functions:
7
7
  * - `isValidUrl` which tests any URL
8
+ * - `isValidAgentUrl` which tests just agent URL
8
9
  * - `isValidPipelineUrl` *(this one)* which tests just pipeline URL
9
10
  *
10
11
  * @public exported from `@promptbook/utils`
@@ -5,9 +5,10 @@ import type { really_unknown } from '../../organization/really_unknown';
5
5
  *
6
6
  * Note: [🔂] This function is idempotent.
7
7
  * Note: Dataurl are considered perfectly valid.
8
- * Note: There are two similar functions:
9
- * - `isValidUrl` which tests any URL
10
- * - `isValidPipelineUrl` *(this one)* which tests just promptbook URL
8
+ * Note: There are few similar functions:
9
+ * - `isValidUrl` *(this one)* which tests any URL
10
+ * - `isValidAgentUrl` which tests just agent URL
11
+ * - `isValidPipelineUrl` which tests just pipeline URL
11
12
  *
12
13
  * @public exported from `@promptbook/utils`
13
14
  */
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.104.0-7`).
18
+ * It follows semantic versioning (e.g., `0.104.0-19`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/markdown-utils",
3
- "version": "0.104.0-8",
3
+ "version": "0.104.0",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,