diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..aaba2fa1e --- /dev/null +++ b/docs/README.md @@ -0,0 +1,41 @@ +# Website + +This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +``` +$ USE_SSH=true yarn deploy +``` + +Not using SSH: + +``` +$ GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/docs/babel.config.js b/docs/babel.config.js new file mode 100644 index 000000000..e00595dae --- /dev/null +++ b/docs/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +}; diff --git a/docs/community.md b/docs/community.md deleted file mode 100644 index dc75f3033..000000000 --- a/docs/community.md +++ /dev/null @@ -1,36 +0,0 @@ -# 🐦 Stay tunned for **LangFlow** on Twitter - -Follow [@logspace_ai](https://twitter.com/logspace_ai){.internal-link target=_blank} on **Twitter** to get the latest news about **LangFlow**. -
- ---- -# ⭐️ Star **LangFlow** on GitHub - -You can "star" **LangFlow** in [GitHub](https://github.com/logspace-ai/langflow){.internal-link target=_blank}. - -
- -By adding a star, other users will be able to find it more easily and see that it has been already useful for others. - -
- -[![Star History Chart](https://api.star-history.com/svg?repos=logspace-ai/langflow&type=Timeline)](https://star-history.com/#logspace-ai/langflow&Date){.internal-link target=_blank} -
- ---- - -# 👀 Watch the GitHub repository for releases - -You can "watch" **LangFlow** in [GitHub](https://github.com/logspace-ai/langflow){.internal-link target=_blank}. - -
- -If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue or question. You can also specify that you only want to be notified about new issues, discussions, PRs, etc. - -
- -Then you can try and help them solve those questions. - ---- - -Thanks! 🚀 \ No newline at end of file diff --git a/docs/contribute.md b/docs/contribute.md deleted file mode 100644 index c6f676e34..000000000 --- a/docs/contribute.md +++ /dev/null @@ -1,13 +0,0 @@ -# 👋 Contributing - -Hello there! We welcome contributions from developers of all levels to our open-source project on [GitHub](https://github.com/logspace-ai/langflow){.internal-link target=_blank}. If you'd like to contribute, please check our contributing guidelines and help make LangFlow more accessible. - -
- -As an open-source project in a rapidly developing field, we are extremely open -to contributions, whether it be in the form of a new feature, improved infra, or better documentation. - -
- -To contribute to this project, please follow a ["fork and pull request"](https://docs.github.com/en/get-started/quickstart/contributing-to-projects){.internal-link target=_blank} workflow. -Please do not try to push directly to this repo unless you are a maintainer. \ No newline at end of file diff --git a/docs/conversation-buffer-memory.md b/docs/conversation-buffer-memory.md deleted file mode 100644 index 58cf51e55..000000000 --- a/docs/conversation-buffer-memory.md +++ /dev/null @@ -1,38 +0,0 @@ -`ConversationBufferMemory` allows you to store messages and then extract the messages in a variable. The **memory key** input is typically generated by encoding the input text using an encoder network, which maps the input text into a fixed-dimensional vector representation. - -
- -![Description](img/single_node/conv_buf_mem.png#only-light){width=50%} -![Description](img/single_node/conv_buf_mem2.png#only-dark){width=50%} - -
- -Learn more about the [ConversationBufferMemory](https://python.langchain.com/en/latest/modules/memory/types/buffer.html){.internal-link target=\_blank} in the LangChain documentation. - ---- -### ⛓️LangFlow example - - - -![Description](img/conversation-buffer-memory2.png#only-dark){width=100%} -![Description](img/conversation-buffer-memory.png#only-light){width=100%} - -
- -[Download Flow](data/Conversation_buffer_memory.json){: .md-button download="Conversation_buffer_memory"} - -
- -`ConversationChain` is a chain to have a conversation and load context from memory. **Output Key** and **Input Key** are simply unique identifiers used to represent the data being passed between different modules or steps in a Conversation Chain. These keys help to ensure that the data is properly routed and processed by the appropriate modules in the conversation flow. - -
- -Output Key used the default: `response` and Input Key used the default: `input`. - -
- -In the LangFlow example, we used `ChatOpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [ChatOpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [ChatOpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. diff --git a/docs/conversation-summary-memory.md b/docs/conversation-summary-memory.md deleted file mode 100644 index 5f11a1512..000000000 --- a/docs/conversation-summary-memory.md +++ /dev/null @@ -1,37 +0,0 @@ -`ConversationSummaryMemory` creates a summary of the conversation over time, which can be useful for condensing information. The **memory key** input is typically generated by encoding the input text using an encoder network, which maps the input text into a fixed-dimensional vector representation. - -
- -![Description](img/single_node/con_sum_mem.png#only-light){width=50%} -![Description](img/single_node/conv_sum_me2.png#only-dark){width=50%} - -
- -To understand more, check out the LangChain [ConversationSummaryMemory](https://python.langchain.com/en/latest/modules/memory/types/summary.html){.internal-link target=\_blank} documentation. - ---- - -### ⛓️LangFlow example - -![Description](img/conversation-summary-memory2.png#only-dark){width=100%} -![Description](img/conversation-summary-memory.png#only-light){width=100%} - -
- -[Download Flow](data/Conversation_summary_memory.json){: .md-button download="Conversation_summary_memory"} - -
- -In the LangFlow example, we used `ChatOpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [ChatOpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [ChatOpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. - -
- -`ConversationChain` is a chain to have a conversation and load context from memory. **Output Key** and **Input Key** are simply unique identifiers used to represent the data being passed between different modules or steps in a Conversation Chain. These keys help to ensure that the data is properly routed and processed by the appropriate modules in the conversation flow. - -
- -Output Key used the default: `response` and Input Key used the default: `input`. diff --git a/docs/create-flows.md b/docs/create-flows.md deleted file mode 100644 index 75e74f7c8..000000000 --- a/docs/create-flows.md +++ /dev/null @@ -1,21 +0,0 @@ -# Creating Flows - -Creating flows with LangFlow is easy. Simply drag sidebar components onto the canvas and connect them together to create your pipeline. LangFlow provides a range of [LangChain components](https://langchain.readthedocs.io/en/latest/reference.html){.internal-link target=\_blank} to choose from, including LLMs, prompt serializers, agents, and chains. - -
- -Explore by editing prompt parameters, link chains and agents, track an agent's thought process, and export your flow. - -
- -Once you're done, you can export your flow as a JSON file to use with LangChain. -To do so, click the "Export" button in the top right corner of the canvas, then -in Python, you can load the flow with: - -```py -from langflow import load_flow_from_json - -flow = load_flow_from_json("path/to/flow.json") -# Now you can use it like any chain -flow("Hey, have you heard of LangFlow?") -``` diff --git a/docs/csv-loader.md b/docs/csv-loader.md deleted file mode 100644 index 970f0933a..000000000 --- a/docs/csv-loader.md +++ /dev/null @@ -1,94 +0,0 @@ -The `CSVLoader` loads a CSV file into a list of documents. - -
- -![Description](img/single_node/csv_loader.png#only-light){width=50%} -![Description](img/single_node/csv_loader2.png#only-dark){width=50%} - -
- -Check out more about the `CSVLoader` in [LangChain](https://python.langchain.com/en/latest/modules/indexes/document_loaders/examples/csv.html?highlight=CSV%20loader){.internal-link target=\_blank} documentation. - ---- - -### ⛓️LangFlow example - -![Description](img/csv-loader2.png#only-dark){width=100%} -![Description](img/csv-loader.png#only-light){width=100%} - -
- -[Download Flow](data/Csv_loader.json){: .md-button download="Csv_loader"} - -
- -`File path:` - -
- -[Download CSV](data/organizations-100.csv){: .md-button download="organizations-100.csv"} - -
- -`CharacterTextSplitter` implements splitting text based on characters. - -Text splitters operate as follows: - -- Split the text into small, meaningful chunks (usually sentences). - -- Combine these small chunks into larger ones until they reach a certain size (measured by a function). - -- Once a chunk reaches the desired size, make it its piece of text and create a new chunk with some overlap to maintain context. - -**Separator used**: - -```txt -. -``` - -**Chunk size used**: - -```txt -2000 -``` - -**Chunk overlap used**: - -```txt -200 -``` - -
-For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. - -
- -The `OpenAIEmbeddings`, wrapper around [OpenAI Embeddings](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings){.internal-link target=\_blank} models. Make sure to get the API key from the LLM provider, in this case [OpenAI](https://platform.openai.com/){.internal-link target=\_blank}. - -
- -`Chroma` vector databases can be used as vector stores to conduct a semantic search or to select examples, thanks to a wrapper around them. - -
- -A `VectorStoreInfo` set information about the vector store, such as the name and description. - -
- -**Name used**: - -```txt -organizations-100 -``` - -**Description used**: - -```txt -A table contains 100 companies. -``` - -The `VectoStoreAgent`is an agent designed to retrieve information from one or more vector stores, either with or without sources. diff --git a/docs/data/Conversation_buffer_memory.json b/docs/data/Conversation_buffer_memory.json deleted file mode 100644 index 43357d471..000000000 --- a/docs/data/Conversation_buffer_memory.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"Conversation_buffer_memory","id":"5720c687-111b-4451-bff4-a5c9294b8cf4","data":{"nodes":[{"width":384,"height":273,"id":"dndnode_191","type":"genericNode","position":{"x":973.4347478611369,"y":287.3561437283455},"data":{"type":"ConversationBufferMemory","node":{"template":{"chat_memory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"type":"BaseChatMessageHistory","list":false},"output_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_key","advanced":false,"type":"str","list":false},"input_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_key","advanced":false,"type":"str","list":false},"return_messages":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"return_messages","advanced":false,"type":"bool","list":false},"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"type":"str","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"type":"str","list":false},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"type":"str","list":false},"_type":"ConversationBufferMemory"},"description":"Buffer for storing conversation memory.","base_classes":["ConversationBufferMemory","BaseChatMemory","BaseMemory"]},"id":"dndnode_191","value":null},"selected":false,"positionAbsolute":{"x":973.4347478611369,"y":287.3561437283455},"dragging":false},{"width":384,"height":511,"id":"dndnode_192","type":"genericNode","position":{"x":970.9455566181264,"y":643.49046286148},"data":{"type":"ChatOpenAI","node":{"template":{"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"gpt-3.5-turbo","password":false,"options":["gpt-3.5-turbo","gpt-4","gpt-4-32k"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"_type":"ChatOpenAI"},"description":"Wrapper around OpenAI Chat large language models.","base_classes":["BaseLanguageModel","ChatOpenAI","BaseChatModel"]},"id":"dndnode_192","value":null},"selected":true,"positionAbsolute":{"x":970.9455566181264,"y":643.49046286148},"dragging":false},{"width":384,"height":287,"id":"dndnode_193","type":"genericNode","position":{"x":1697.034097486364,"y":474.7173739305684},"data":{"type":"ConversationChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"value":{"input_variables":["history","input"],"output_parser":null,"partial_variables":{},"template":"The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:","template_format":"f-string","validate_template":true,"_type":"prompt"},"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"response","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"input_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"input","password":false,"name":"input_key","advanced":true,"type":"str","list":false},"_type":"ConversationChain"},"description":"Chain to have a conversation and load context from memory.","base_classes":["LLMChain","ConversationChain","Chain","function"]},"id":"dndnode_193","value":null},"selected":false,"positionAbsolute":{"x":1697.034097486364,"y":474.7173739305684},"dragging":false}],"edges":[{"source":"dndnode_192","sourceHandle":"ChatOpenAI|dndnode_192|BaseLanguageModel|ChatOpenAI|BaseChatModel","target":"dndnode_193","targetHandle":"BaseLanguageModel|llm|dndnode_193","className":"animate-pulse","id":"reactflow__edge-dndnode_192ChatOpenAI|dndnode_192|BaseLanguageModel|ChatOpenAI|BaseChatModel-dndnode_193BaseLanguageModel|llm|dndnode_193","selected":false},{"source":"dndnode_191","sourceHandle":"ConversationBufferMemory|dndnode_191|ConversationBufferMemory|BaseChatMemory|BaseMemory","target":"dndnode_193","targetHandle":"BaseMemory|memory|dndnode_193","className":"animate-pulse","id":"reactflow__edge-dndnode_191ConversationBufferMemory|dndnode_191|ConversationBufferMemory|BaseChatMemory|BaseMemory-dndnode_193BaseMemory|memory|dndnode_193","selected":false}],"viewport":{"x":-386.66203868655293,"y":-166.9729649100679,"zoom":0.8235910172675734}}} \ No newline at end of file diff --git a/docs/data/Conversation_summary_memory.json b/docs/data/Conversation_summary_memory.json deleted file mode 100644 index 3a3eb93b2..000000000 --- a/docs/data/Conversation_summary_memory.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"conversation-summary-memory","id":"45eea1c1-9fa3-4e6a-a334-b10a1c21c5c3","data":{"nodes":[{"width":384,"height":313,"id":"dndnode_1","type":"genericNode","position":{"x":1116.6791049603164,"y":270.33992433531944},"data":{"type":"ConversationSummaryMemory","node":{"template":{"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"type":"str","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"type":"str","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"summary_message_cls":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"summary_message_cls","advanced":false,"type":"Type[langchain.schema.BaseMessage]","list":false},"chat_memory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"type":"BaseChatMessageHistory","list":false},"output_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_key","advanced":false,"type":"str","list":false},"input_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_key","advanced":false,"type":"str","list":false},"return_messages":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"return_messages","advanced":false,"type":"bool","list":false},"buffer":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"","password":false,"name":"buffer","advanced":false,"type":"str","list":false},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"type":"str","list":false},"_type":"ConversationSummaryMemory"},"description":"Conversation summarizer to memory.","base_classes":["ConversationSummaryMemory","BaseChatMemory","SummarizerMixin","BaseMemory"]},"id":"dndnode_1","value":null},"selected":false,"positionAbsolute":{"x":1116.6791049603164,"y":270.33992433531944},"dragging":false},{"width":384,"height":511,"id":"dndnode_2","type":"genericNode","position":{"x":609.6100790835059,"y":560.4488110508937},"data":{"type":"ChatOpenAI","node":{"template":{"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"gpt-3.5-turbo","password":false,"options":["gpt-3.5-turbo","gpt-4","gpt-4-32k"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false,"value":60},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"_type":"ChatOpenAI"},"description":"Wrapper around OpenAI Chat large language models.","base_classes":["BaseLanguageModel","ChatOpenAI","BaseChatModel"]},"id":"dndnode_2","value":null},"selected":false,"positionAbsolute":{"x":609.6100790835059,"y":560.4488110508937},"dragging":false},{"width":384,"height":287,"id":"dndnode_3","type":"genericNode","position":{"x":1650.661589142996,"y":663.6935889080331},"data":{"type":"ConversationChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"value":{"input_variables":["history","input"],"output_parser":null,"partial_variables":{},"template":"The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:","template_format":"f-string","validate_template":true,"_type":"prompt"},"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"response","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"input_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"input","password":false,"name":"input_key","advanced":true,"type":"str","list":false},"_type":"ConversationChain"},"description":"Chain to have a conversation and load context from memory.","base_classes":["LLMChain","ConversationChain","Chain"]},"id":"dndnode_3","value":null},"selected":false,"positionAbsolute":{"x":1650.661589142996,"y":663.6935889080331},"dragging":false}],"edges":[{"source":"dndnode_2","sourceHandle":"ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel","target":"dndnode_1","targetHandle":"BaseLanguageModel|llm|dndnode_1","className":"animate-pulse","id":"reactflow__edge-dndnode_2ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel-dndnode_1BaseLanguageModel|llm|dndnode_1","selected":false},{"source":"dndnode_1","sourceHandle":"ConversationSummaryMemory|dndnode_1|ConversationSummaryMemory|BaseChatMemory|SummarizerMixin|BaseMemory","target":"dndnode_3","targetHandle":"BaseMemory|memory|dndnode_3","className":"animate-pulse","id":"reactflow__edge-dndnode_1ConversationSummaryMemory|dndnode_1|ConversationSummaryMemory|BaseChatMemory|SummarizerMixin|BaseMemory-dndnode_3BaseMemory|memory|dndnode_3","selected":false},{"source":"dndnode_2","sourceHandle":"ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel","target":"dndnode_3","targetHandle":"BaseLanguageModel|llm|dndnode_3","className":"animate-pulse","id":"reactflow__edge-dndnode_2ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel-dndnode_3BaseLanguageModel|llm|dndnode_3","selected":false}],"viewport":{"x":-228.12489837254475,"y":-133.84121476342455,"zoom":0.697371833175203}}} \ No newline at end of file diff --git a/docs/data/Csv_loader.json b/docs/data/Csv_loader.json deleted file mode 100644 index d6bd332db..000000000 --- a/docs/data/Csv_loader.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"Csv_loader","id":"5283fe6f-80fe-4391-8c96-861e55d6b4a7","data":{"nodes":[{"width":384,"height":489,"id":"dndnode_14","type":"genericNode","position":{"x":782.5571553614932,"y":114.77396249890023},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","TextSplitter","BaseDocumentTransformer"]},"id":"dndnode_14","value":null},"selected":false,"positionAbsolute":{"x":782.5571553614932,"y":114.77396249890023},"dragging":false},{"width":384,"height":267,"id":"dndnode_15","type":"genericNode","position":{"x":1265.24911584291,"y":330.9903278739826},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_15","value":null},"selected":false,"positionAbsolute":{"x":1265.24911584291,"y":330.9903278739826},"dragging":false},{"width":384,"height":531,"id":"dndnode_16","type":"genericNode","position":{"x":758.5534212717178,"y":678.358127005068},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":false,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":false,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_version","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","advanced":false,"type":"str","list":false,"value":""},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":false,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["Embeddings","OpenAIEmbeddings"]},"id":"dndnode_16","value":null},"selected":false,"positionAbsolute":{"x":758.5534212717178,"y":678.358127005068},"dragging":false},{"width":384,"height":399,"id":"dndnode_17","type":"genericNode","position":{"x":1746.4439293220303,"y":149.38698124945012},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"organizations-100"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"A table contains 100 companies.\n"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_17","value":null},"selected":true,"positionAbsolute":{"x":1746.4439293220303,"y":149.38698124945012},"dragging":false},{"width":384,"height":597,"id":"dndnode_18","type":"genericNode","position":{"x":1696.008981616998,"y":669.623298470022},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseOpenAI","BaseLLM","OpenAI","BaseLanguageModel"]},"id":"dndnode_18","value":null},"selected":false,"positionAbsolute":{"x":1696.008981616998,"y":669.623298470022},"dragging":false},{"width":384,"height":267,"id":"dndnode_19","type":"genericNode","position":{"x":2221.1883470675293,"y":415.49630736800714},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","advanced":false,"type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"dndnode_19","value":null},"selected":false,"positionAbsolute":{"x":2221.1883470675293,"y":415.49630736800714},"dragging":false},{"width":384,"height":265,"id":"dndnode_21","type":"genericNode","position":{"x":325.0831403216823,"y":293.78744910049573},"data":{"type":"CSVLoader","node":{"template":{"file_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"organizations-100.csv","suffixes":[".csv"],"password":false,"name":"file_path","advanced":false,"type":"file","list":false,"fileTypes":["csv"],"content":"data:text/csv;base64,SW5kZXgsT3JnYW5pemF0aW9uIElkLE5hbWUsV2Vic2l0ZSxDb3VudHJ5LERlc2NyaXB0aW9uLEZvdW5kZWQsSW5kdXN0cnksTnVtYmVyIG9mIGVtcGxveWVlcw0KMSxGQUIwZDQxZDViNWQyMmMsRmVycmVsbCBMTEMsaHR0cHM6Ly9wcmljZS5uZXQvLFBhcHVhIE5ldyBHdWluZWEsSG9yaXpvbnRhbCBlbXBvd2VyaW5nIGtub3dsZWRnZWJhc2UsMTk5MCxQbGFzdGljcywzNDk4DQoyLDZBN0VkREVBOUZhREM1MiwiTWNraW5uZXksIFJpbGV5IGFuZCBEYXkiLGh0dHA6Ly93d3cuaGFsbC1idWNoYW5hbi5pbmZvLyxGaW5sYW5kLFVzZXItY2VudHJpYyBzeXN0ZW0td29ydGh5IGxldmVyYWdlLDIwMTUsR2xhc3MgLyBDZXJhbWljcyAvIENvbmNyZXRlLDQ5NTINCjMsMGJGRUQxQURBRTRiY0MxLEhlc3RlciBMdGQsaHR0cDovL3N1bGxpdmFuLXJlZWQuY29tLyxDaGluYSxTd2l0Y2hhYmxlIHNjYWxhYmxlIG1vcmF0b3JpdW0sMTk3MSxQdWJsaWMgU2FmZXR5LDUyODcNCjQsMmJGQzFCZThhNGNlNDJmLEhvbGRlci1TZWxsZXJzLGh0dHBzOi8vYmVja2VyLmNvbS8sVHVya21lbmlzdGFuLERlLWVuZ2luZWVyZWQgc3lzdGVtaWMgYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UsMjAwNCxBdXRvbW90aXZlLDkyMQ0KNSw5ZUU4QTZhNEViOTZDMjQsTWF5ZXIgR3JvdXAsaHR0cDovL3d3dy5icmV3ZXIuY29tLyxNYXVyaXRpdXMsU3luY2hyb25pemVkIG5lZWRzLWJhc2VkIGNoYWxsZW5nZSwxOTkxLFRyYW5zcG9ydGF0aW9uLDc4NzANCjYsY0M3NTcxMTZmZTFDMDg1LEhlbnJ5LVRob21wc29uLGh0dHA6Ly9tb3JzZS5uZXQvLEJhaGFtYXMsRmFjZS10by1mYWNlIHdlbGwtbW9kdWxhdGVkIGN1c3RvbWVyIGxveWFsdHksMTk5MixQcmltYXJ5IC8gU2Vjb25kYXJ5IEVkdWNhdGlvbiw0OTE0DQo3LDIxOTIzM2U4YUZGMUJDMyxIYW5zZW4tRXZlcmV0dCxodHRwczovL3d3dy5raWRkLm9yZy8sUGFraXN0YW4sU2VhbWxlc3MgZGlzaW50ZXJtZWRpYXRlIGNvbGxhYm9yYXRpb24sMjAxOCxQdWJsaXNoaW5nIEluZHVzdHJ5LDc4MzINCjgsY2NjOTNEQ0Y4MWEzMUNELE1jaW50b3NoLU1vcmEsaHR0cHM6Ly93d3cuYnJvb2tzLmNvbS8sSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzLENlbnRyYWxpemVkIGF0dGl0dWRlLW9yaWVudGVkIGNhcGFiaWxpdHksMTk3MCxJbXBvcnQgLyBFeHBvcnQsNDM4OQ0KOSwwQjRGOTNhQTA2RUQwM2UsQ2FyciBJbmMsaHR0cDovL3Jvc3MuY29tLyxLdXdhaXQsRGlzdHJpYnV0ZWQgaW1wYWN0ZnVsIGN1c3RvbWVyIGxveWFsdHksMTk5NixQbGFzdGljcyw4MTY3DQoxMCw3MzhiNWFEZTZCMUM2QTUsR2FpbmVzIEluYyxodHRwOi8vc2FuZG92YWwtaG9vcGVyLmNvbS8sVXpiZWtpc3RhbixNdWx0aS1sYXRlcmFsIHNjYWxhYmxlIHByb3RvY29sLDE5OTcsT3V0c291cmNpbmcgLyBPZmZzaG9yaW5nLDk2OTgNCjExLEFFNjFiOEZmZWJiYzQ3NixLaWRkIEdyb3VwLGh0dHA6Ly93d3cubHlvbnMuY29tLyxCb3V2ZXQgSXNsYW5kIChCb3V2ZXRveWEpLFByb2FjdGl2ZSBmb3JlZ3JvdW5kIHBhcmFkaWdtLDIwMDEsUHJpbWFyeSAvIFNlY29uZGFyeSBFZHVjYXRpb24sNzQ3Mw0KMTIsZWIzQjdEMDZjQ2RENjA5LENyYW5lLUNsYXJrZSxodHRwczovL3d3dy5zYW5kb3ZhbC5jb20vLERlbm1hcmssRnJvbnQtbGluZSBjbGVhci10aGlua2luZyBlbmNyeXB0aW9uLDIwMTQsRm9vZCAvIEJldmVyYWdlcyw5MDExDQoxMyw4RDBjMjkxODlDOTc5OEIsIktlbGxlciwgQ2FtcG9zIGFuZCBCbGFjayIsaHR0cHM6Ly93d3cuZ2FybmVyLmluZm8vLExpYmVyaWEsQW1lbGlvcmF0ZWQgZGlyZWN0aW9uYWwgZW11bGF0aW9uLDIwMjAsTXVzZXVtcyAvIEluc3RpdHV0aW9ucywyODYyDQoxNCxEMmM5MWNjMDNDQTM5NGMsR2xvdmVyLVBvcGUsaHR0cDovL3d3dy5zaWx2YS5iaXovLFVuaXRlZCBBcmFiIEVtaXJhdGVzLFBlcnNldmVyaW5nIGNvbnRleHR1YWxseS1iYXNlZCBhcHByb2FjaCwyMDEzLE1lZGljYWwgUHJhY3RpY2UsOTA3OQ0KMTUsQzhBQzFlYWY5QzAzNkY0LFBhY2hlY28tU3BlYXJzLGh0dHBzOi8vYWd1aWxhci5jb20vLFN3ZWRlbixTZWN1cmVkIGxvZ2lzdGljYWwgc3luZXJneSwxOTg0LE1hcml0aW1lLDc2OQ0KMTYsYjVEMTBBMTRmN2E4QWZFLEhvZGdlLUF5ZXJzLGh0dHA6Ly93d3cuYXJjaGVyLWVsbGlvdHQuY29tLyxIb25kdXJhcyxGdXR1cmUtcHJvb2ZlZCByYWRpY2FsIGltcGxlbWVudGF0aW9uLDE5OTAsRmFjaWxpdGllcyBTZXJ2aWNlcyw4NTA4DQoxNyw2ODEzOWI1QzREZTAzQjQsIkJvd2VycywgR3VlcnJhIGFuZCBLcmF1c2UiLGh0dHA6Ly93d3cuY2FycmlsbG8tbmljaG9sc29uLmNvbS8sVWdhbmRhLERlLWVuZ2luZWVyZWQgdHJhbnNpdGlvbmFsIHN0cmF0ZWd5LDE5NzIsUHJpbWFyeSAvIFNlY29uZGFyeSBFZHVjYXRpb24sNjk4Ng0KMTgsNWMyRWZmRWZkYmEyQmRGLE1ja2VuemllLU1lbHRvbixodHRwOi8vbW9udG95YS10aG9tcHNvbi5jb20vLEhvbmcgS29uZyxSZXZlcnNlLWVuZ2luZWVyZWQgaGV1cmlzdGljIGFsbGlhbmNlLDE5OTgsSW52ZXN0bWVudCBNYW5hZ2VtZW50IC8gSGVkZ2UgRnVuZCAvIFByaXZhdGUgRXF1aXR5LDQ1ODkNCjE5LGJhMTc5RjE5Rjc5MjVmNSxCcmFuY2gtTWFubixodHRwOi8vd3d3LmxvemFuby5jb20vLEJvdHN3YW5hLEFkYXB0aXZlIGludGFuZ2libGUgZnJhbWUsMTk5OSxBcmNoaXRlY3R1cmUgLyBQbGFubmluZyw3OTYxDQoyMCxjMUNlOUIzNTBCQWM2NmIsV2Vpc3MgYW5kIFNvbnMsaHR0cHM6Ly9iYXJyZXR0LmNvbS8sS29yZWEsU2hhcmFibGUgb3B0aW1hbCBmdW5jdGlvbmFsaXRpZXMsMjAxMSxQbGFzdGljcyw1OTg0DQoyMSw4ZGU0MEFDNGU2RWFDYTQsIlZlbGV6LCBQYXluZSBhbmQgQ29mZmV5IixodHRwOi8vYnVydG9uLmNvbS8sTHV4ZW1ib3VyZyxNYW5kYXRvcnkgY29oZXJlbnQgc3luZXJneSwxOTg2LFdob2xlc2FsZSw1MDEwDQoyMixBYWQ4NmE0RjAzODVGMmQsSGFycmVsbCBMTEMsaHR0cDovL3d3dy5mcmV5LXJvc2FyaW8uY29tLyxHdWFkZWxvdXBlLFJldmVyc2UtZW5naW5lZXJlZCBtaXNzaW9uLWNyaXRpY2FsIG1vcmF0b3JpdW0sMjAxOCxDb25zdHJ1Y3Rpb24sMjE4NQ0KMjMsMjJhQzNGRmQ2NGZENzAzLCJFYXRvbiwgUmV5bm9sZHMgYW5kIFZhcmdhcyIsaHR0cDovL3d3dy5mcmVlbWFuLmJpei8sTW9uYWNvLFNlbGYtZW5hYmxpbmcgbXVsdGktdGFza2luZyBwcm9jZXNzIGltcHJvdmVtZW50LDIwMTQsTHV4dXJ5IEdvb2RzIC8gSmV3ZWxyeSw4OTg3DQoyNCw1RWM0QzI3MmJDZjA4NWMsUm9iYmlucy1DdW1taW5ncyxodHRwOi8vZG9uYWxkc29uLXdpbGtpbnMuY29tLyxCZWxnaXVtLE9yZ2FuaWMgbm9uLXZvbGF0aWxlIGhpZXJhcmNoeSwxOTkxLFBoYXJtYWNldXRpY2Fscyw1MDM4DQoyNSw1ZkRCZUE4QkI5MWEwMDAsSmVua2lucyBJbmMsaHR0cDovL3d3dy5raXJrLmJpei8sU291dGggQWZyaWNhLEZyb250LWxpbmUgc3lzdGVtYXRpYyBoZWxwLWRlc2ssMjAwMixJbnN1cmFuY2UsMTIxNQ0KMjYsZEZmRDZhNkY5QUMyZDlDLCJHcmVlbmUsIEJlbmphbWluIGFuZCBOb3ZhayIsaHR0cDovL3d3dy5rZW50Lm5ldC8sUm9tYW5pYSxDZW50cmFsaXplZCBsZWFkaW5nZWRnZSBtb3JhdG9yaXVtLDIwMTIsTXVzZXVtcyAvIEluc3RpdHV0aW9ucyw0OTQxDQoyNyw0QjIxN2NDNWEwNjc0QzUsIkRpY2tzb24sIFJpY2htb25kIGFuZCBDbGF5IixodHRwOi8vZXZlcmV0dC5jb20vLEN6ZWNoIFJlcHVibGljLFRlYW0tb3JpZW50ZWQgdGFuZ2libGUgY29tcGxleGl0eSwxOTgwLFJlYWwgRXN0YXRlIC8gTW9ydGdhZ2UsMzEyMg0KMjgsODhiMWYxY0RjZjU5YTM3LFByaW5jZS1EYXZpZCxodHRwOi8vdGhvbXBzb24uY29tLyxDaHJpc3RtYXMgSXNsYW5kLFZpcnR1YWwgaG9saXN0aWMgbWV0aG9kb2xvZ3ksMTk3MCxCYW5raW5nIC8gTW9ydGdhZ2UsMTA0Ng0KMjksZjlGN2JCQ0FFZUMzNjBGLEF5YWxhIExMQyxodHRwOi8vd3d3LnpoYW5nLmNvbS8sUGhpbGlwcGluZXMsT3Blbi1zb3VyY2UgemVybyBhZG1pbmlzdHJhdGlvbiBoaWVyYXJjaHksMjAyMSxMZWdhbCBTZXJ2aWNlcyw3NjY0DQozMCw3Q2IzQWVGY0U0QmEzMWUsUml2YXMgR3JvdXAsaHR0cHM6Ly9oZWJlcnQub3JnLyxBdXN0cmFsaWEsT3Blbi1hcmNoaXRlY3RlZCB3ZWxsLW1vZHVsYXRlZCBjYXBhY2l0eSwxOTk4LExvZ2lzdGljcyAvIFByb2N1cmVtZW50LDQxNTUNCjMxLGNjQmNDMzJhZGNiYzUzMCwiU2xvYW4sIE1heXMgYW5kIFdoaXRlaGVhZCIsaHR0cDovL2xhd3Nvbi5jb20vLENoYWQsRmFjZS10by1mYWNlIGhpZ2gtbGV2ZWwgY29uZ2xvbWVyYXRpb24sMTk5NyxDaXZpbCBFbmdpbmVlcmluZywzNjUNCjMyLGY1YWZkNjg2YjNkMDVGNSwiRHVyaGFtLCBBbGxlbiBhbmQgQmFybmVzIixodHRwOi8vY2hhbi1zdGFmZm9yZC5vcmcvLFppbWJhYndlLFN5bmVyZ2lzdGljIHdlYi1lbmFibGVkIGZyYW1ld29yaywxOTkzLE1lY2hhbmljYWwgb3IgSW5kdXN0cmlhbCBFbmdpbmVlcmluZyw2MTM1DQozMywzOEM2Y2ZDNTA3NEZhNWUsRnJpdHotRnJhbmtsaW4saHR0cDovL3d3dy5sYW1iZXJ0LmNvbS8sTmVwYWwsQXV0b21hdGVkIDR0aGdlbmVyYXRpb24gd2Vic2l0ZSwxOTcyLEhvc3BpdGFsaXR5LDQ1MTYNCjM0LDVDZDdlZmNjQ2NiYTM4ZixCdXJjaC1Fd2luZyxodHRwOi8vY2xpbmUubmV0LyxUYWl3YW4sVXNlci1jZW50cmljIDR0aGdlbmVyYXRpb24gc3lzdGVtIGVuZ2luZSwxOTgxLFZlbnR1cmUgQ2FwaXRhbCAvIFZDLDc0NDMNCjM1LDlFNkFjYjUxZTNGOWQ2RiwiR2xhc3MsIEJhcnJlcmEgYW5kIFR1cm5lciIsaHR0cHM6Ly9kdW5sYXAuY29tLyxLeXJneXogUmVwdWJsaWMsTXVsdGktY2hhbm5lbGVkIDNyZGdlbmVyYXRpb24gb3BlbiBzeXN0ZW0sMjAyMCxVdGlsaXRpZXMsMjYxMA0KMzYsNEQ0ZDdFMTgzMjFlYWVDLFBpbmVkYS1Db3gsaHR0cDovL2FndWlsYXIub3JnLyxCb2xpdmlhLEZ1bmRhbWVudGFsIGFzeW5jaHJvbm91cyBjYXBhYmlsaXR5LDIwMTAsSHVtYW4gUmVzb3VyY2VzIC8gSFIsMTMxMg0KMzcsNDg1ZjVkMDZCOTM4RjJiLCJCYWtlciwgTWNjYW5uIGFuZCBNYWNkb25hbGQiLGh0dHA6Ly93d3cuYW5kZXJzb24tYmFya2VyLmNvbS8sS2VueWEsQ3Jvc3MtZ3JvdXAgdXNlci1mYWNpbmcgZm9jdXMgZ3JvdXAsMjAxMyxMZWdpc2xhdGl2ZSBPZmZpY2UsMTYzOA0KMzgsMTlFM2E1QmY2ZEJEYzRGLEN1ZXZhcy1Nb3NzLGh0dHBzOi8vZG9kc29uLWNhc3RhbmVkYS5uZXQvLEd1YXRlbWFsYSxFeHRlbmRlZCBodW1hbi1yZXNvdXJjZSBpbnRyYW5ldCwxOTk0LE11c2ljLDk5OTUNCjM5LDY4ODNBOTY1YzdiNjhGNyxIYWhuIFBMQyxodHRwOi8vbmV3bWFuLmNvbS8sQmVsYXJ1cyxPcmdhbmljIGxvZ2lzdGljYWwgbGV2ZXJhZ2UsMjAxMixFbGVjdHJpY2FsIC8gRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nLDM3MTUNCjQwLEFDNUI3QUE3NEFhNEEyRSwiVmFsZW50aW5lLCBGZXJndXNvbiBhbmQgS3JhbWVyIixodHRwOi8vc3R1YXJ0Lm5ldC8sSmVyc2V5LENlbnRyYWxpemVkIHNlY29uZGFyeSB0aW1lLWZyYW1lLDE5OTcsTm9uIC0gUHJvZml0IC8gVm9sdW50ZWVyaW5nLDM1ODUNCjQxLGRlY2FiMEQ1MDI3Q0E2YSxBcnJveW8gSW5jLGh0dHBzOi8vd3d3LnR1cm5lci5jb20vLEdyZW5hZGEsTWFuYWdlZCBkZW1hbmQtZHJpdmVuIHdlYnNpdGUsMjAwNixXcml0aW5nIC8gRWRpdGluZyw5MDY3DQo0MixkRjA4NEZiQmI2MTNlZWEsV2FsbHMgTExDLGh0dHA6Ly93d3cucmVlc2UtdmFzcXVlei5iaXovLENhcGUgVmVyZGUsU2VsZi1lbmFibGluZyBmcmVzaC10aGlua2luZyBpbnN0YWxsYXRpb24sMTk4OSxJbnZlc3RtZW50IE1hbmFnZW1lbnQgLyBIZWRnZSBGdW5kIC8gUHJpdmF0ZSBFcXVpdHksMTY3OA0KNDMsQTJEODlBYjliQ2NBZDRlLCJNaXRjaGVsbCwgV2FycmVuIGFuZCBTY2huZWlkZXIiLGh0dHBzOi8vZm94LmJpei8sVHJpbmlkYWQgYW5kIFRvYmFnbyxFbmhhbmNlZCBpbnRhbmdpYmxlIHRpbWUtZnJhbWUsMjAyMSxDYXBpdGFsIE1hcmtldHMgLyBIZWRnZSBGdW5kIC8gUHJpdmF0ZSBFcXVpdHksMzgxNg0KNDQsNzdhRGM5MDU0MzRhNDlmLFByaW5jZSBQTEMsaHR0cHM6Ly93d3cud2F0dHMuY29tLyxTd2VkZW4sUHJvZml0LWZvY3VzZWQgY29oZXJlbnQgaW5zdGFsbGF0aW9uLDIwMTYsSW5kaXZpZHVhbCAvIEZhbWlseSBTZXJ2aWNlcyw3NjQ1DQo0NSwyMzVmZEVGRTJjZkRhNUYsQnJvY2stQmxhY2t3ZWxsLGh0dHA6Ly93d3cuc21hbGwuY29tLyxCZW5pbixTZWN1cmVkIGZvcmVncm91bmQgZW11bGF0aW9uLDE5ODYsT25saW5lIFB1Ymxpc2hpbmcsNzAzNA0KNDYsMWVENjRjRmU5ODZCQmJFLFdhbHRvbi1CYXJuZXR0LGh0dHBzOi8vYXNobGV5LXNjaGFlZmVyLmNvbS8sV2VzdGVybiBTYWhhcmEsUmlnaHQtc2l6ZWQgY2xlYXItdGhpbmtpbmcgZmxleGliaWxpdHksMjAwMSxMdXh1cnkgR29vZHMgLyBKZXdlbHJ5LDE3NDYNCjQ3LENiQmJGY2RkMGVhRTJjRixCYXJ0bGV0dC1BcnJveW8saHR0cHM6Ly9jcnV6LmNvbS8sTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzLFJlYWxpZ25lZCBkaWRhY3RpYyBmdW5jdGlvbiwxOTc2LENpdmljIC8gU29jaWFsIE9yZ2FuaXphdGlvbiwzOTg3DQo0OCw0OWFFQ2JEYUU2YUJENTMsIldhbGxhY2UsIE1hZGRlbiBhbmQgTW9ycmlzIixodHRwOi8vd3d3LmJsZXZpbnMtZmVybmFuZGV6LmJpei8sR2VybWFueSxQZXJzaXN0ZW50IHJlYWwtdGltZSBjdXN0b21lciBsb3lhbHR5LDIwMTYsUGhhcm1hY2V1dGljYWxzLDk0NDMNCjQ5LDdiM2ZlNmU3RTcyYkZhNCxCZXJnLVNwYXJrcyxodHRwczovL2Npc25lcm9zLWxvdmUuY29tLyxDYW5hZGEsU3RhbmQtYWxvbmUgc3RhdGljIGltcGxlbWVudGF0aW9uLDE5NzQsQXJ0cyAvIENyYWZ0cywyMDczDQo1MCxjNkRlZEE4MkE4YWVmN0UsR29uemFsZXMgTHRkLGh0dHA6Ly9iaXJkLmNvbS8sVG9uZ2EsTWFuYWdlZCBodW1hbi1yZXNvdXJjZSBwb2xpY3ksMTk4OCxDb25zdW1lciBHb29kcyw5MDY5DQo1MSw3RDlGQkY4NWNkQzM4NzEsTGF3c29uIGFuZCBTb25zLGh0dHBzOi8vd3d3LndvbmcuY29tLyxGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMsQ29tcGF0aWJsZSBhbmFseXppbmcgaW50cmFuZXQsMjAyMSxBcnRzIC8gQ3JhZnRzLDM1MjcNCjUyLDdkZDE4RmI3Y0IwN2I2NSwiTWNndWlyZSwgTWNjb25uZWxsIGFuZCBPbHNlbiIsaHR0cHM6Ly9tZWx0b24tYnJpZ2dzLmNvbS8sS29yZWEsUHJvZm91bmQgY2xpZW50LXNlcnZlciBmcmFtZSwxOTg4LFByaW50aW5nLDg0NDUNCjUzLEVGNUI1NUZhZGNjQjhGZSxDaGFybGVzLVBoaWxsaXBzLGh0dHBzOi8vYm93bWFuLmNvbS8sQ290ZSBkJ0l2b2lyZSxNb25pdG9yZWQgY2xpZW50LXNlcnZlciBpbXBsZW1lbnRhdGlvbiwyMDEyLE1lbnRhbCBIZWFsdGggQ2FyZSwzNDUwDQo1NCxmOEQ0Qjk5ZTExZkFGNUQsT2RvbSBMdGQsaHR0cHM6Ly93d3cuaHVtcGhyZXktaGVzcy5jb20vLENvdGUgZCdJdm9pcmUsQWR2YW5jZWQgc3RhdGljIHByb2Nlc3MgaW1wcm92ZW1lbnQsMjAxMixNYW5hZ2VtZW50IENvbnN1bHRpbmcsMTgyNQ0KNTUsZTI0RDIxQkZkM2JGMUU1LFJpY2hhcmQgUExDLGh0dHBzOi8vaG9sZGVuLWNvbGVtYW4ubmV0LyxNYXlvdHRlLE9iamVjdC1iYXNlZCBvcHRpbWl6aW5nIG1vZGVsLDE5NzEsQnJvYWRjYXN0IE1lZGlhLDQ5NDINCjU2LEI5QmRmRUI2RDNDYTQ0RSxTYW1wc29uIEx0ZCxodHRwczovL2JsZXZpbnMuY29tLyxDYXltYW4gSXNsYW5kcyxJbnR1aXRpdmUgbG9jYWwgYWRhcHRlciwyMDA1LEZhcm1pbmcsMTQxOA0KNTcsMmE3NEQ2ZjNEM0IyNjhlLCJDaGVycnksIExlIGFuZCBDYWxsYWhhbiIsaHR0cHM6Ly93YWxsZXItZGVsYWNydXouYml6LyxOaWdlcmlhLFVuaXZlcnNhbCBodW1hbi1yZXNvdXJjZSBjb2xsYWJvcmF0aW9uLDIwMTcsRW50ZXJ0YWlubWVudCAvIE1vdmllIFByb2R1Y3Rpb24sNzIwMg0KNTgsQmYzRjNmNjJjOGFCQzMzLENoZXJyeSBQTEMsaHR0cHM6Ly93d3cuYXZpbGEuaW5mby8sTWFyc2hhbGwgSXNsYW5kcyxQZXJzaXN0ZW50IHRlcnRpYXJ5IHdlYnNpdGUsMTk4MCxQbGFzdGljcyw4MjQ1DQo1OSxhZUJlMjZCODBhN2EyM2MsTWVsdG9uLU5pY2hvbHMsaHR0cHM6Ly9rZW5uZWR5LmNvbS8sUGFsYXUsVXNlci1mcmllbmRseSBjbGVhci10aGlua2luZyBwcm9kdWN0aXZpdHksMjAyMSxMZWdpc2xhdGl2ZSBPZmZpY2UsODc0MQ0KNjAsYUFlYjI5YWQ0Mzg4NkM2LFBvdHRlci1XYWxzaCxodHRwOi8vdGhvbWFzLWZyZW5jaC5vcmcvLFR1cmtleSxPcHRpb25hbCBub24tdm9sYXRpbGUgb3BlbiBzeXN0ZW0sMjAwOCxIdW1hbiBSZXNvdXJjZXMgLyBIUiw2OTIzDQo2MSxiRDFiYzZiQjZkMUZlRDMsRnJlZW1hbi1DaGVuLGh0dHBzOi8vbWF0aGlzLmNvbS8sVGltb3ItTGVzdGUsUGhhc2VkIG5leHQgZ2VuZXJhdGlvbiBhZGFwdGVyLDE5NzMsSW50ZXJuYXRpb25hbCBUcmFkZSAvIERldmVsb3BtZW50LDM0Ng0KNjIsRUI5ZjQ1NmU4YjcwMjJhLFNvdG8gR3JvdXAsaHR0cHM6Ly9ub3JyaXMuaW5mby8sVmlldG5hbSxFbnRlcnByaXNlLXdpZGUgZXhlY3V0aXZlIGluc3RhbGxhdGlvbiwxOTg4LEJ1c2luZXNzIFN1cHBsaWVzIC8gRXF1aXBtZW50LDkwOTcNCjYzLERmZWYzOEM1MUQ4REFlMywiUG9vbGUsIENydXogYW5kIFdoaXRuZXkiLGh0dHBzOi8vcmVlZC5pbmZvLyxSZXVuaW9uLEJhbGFuY2VkIGFuYWx5emluZyBncm91cHdhcmUsMTk3OCxNYXJrZXRpbmcgLyBBZHZlcnRpc2luZyAvIFNhbGVzLDI5OTINCjY0LDA1NWZmRWZCMkRkOTVCMCxSaWxleSBMdGQsaHR0cDovL3dpbGV5LmNvbS8sQnJhemlsLE9wdGlvbmFsIGV4dWRpbmcgc3VwZXJzdHJ1Y3R1cmUsMTk4NixUZXh0aWxlcyw5MzE1DQo2NSxjQmZlNGRiQUUxNjk5ZGEsIkVyaWNrc29uLCBBbmRyZXdzIGFuZCBCYWlsZXkiLGh0dHBzOi8vd3d3LmhvYmJzLWdyYW50LmNvbS8sRXJpdHJlYSxWaXNpb24tb3JpZW50ZWQgc2Vjb25kYXJ5IHByb2plY3QsMjAxNCxDb25zdW1lciBFbGVjdHJvbmljcyw3ODI5DQo2NixmZEZiZWNiYWRjZENkZjEsIldpbGtpbnNvbiwgQ2hhcmxlcyBhbmQgQXJyb3lvIixodHRwOi8vaHVudGVyLW1jZmFybGFuZC5jb20vLFVuaXRlZCBTdGF0ZXMgVmlyZ2luIElzbGFuZHMsQXNzaW1pbGF0ZWQgMjQvNyBhcmNoaXZlLDE5OTYsQnVpbGRpbmcgTWF0ZXJpYWxzLDYwMg0KNjcsNURDYjhBNWE1Y2EwM2MwLEZsb3lkIEx0ZCxodHRwOi8vd3d3LndoaXRuZXkuY29tLyxGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyksRnVuY3Rpb24tYmFzZWQgZmF1bHQtdG9sZXJhbnQgY29uY2VwdCwyMDE3LFB1YmxpYyBSZWxhdGlvbnMgLyBQUiwyOTExDQo2OCxjZTU3RENiY0ZENmQ2MTgsTmV3bWFuLUdhbGxvd2F5LGh0dHBzOi8vd3d3LnNjb3R0LmNvbS8sTHV4ZW1ib3VyZyxFbmhhbmNlZCBmb3JlZ3JvdW5kIGNvbGxhYm9yYXRpb24sMTk4NyxJbmZvcm1hdGlvbiBUZWNobm9sb2d5IC8gSVQsMzkzNA0KNjksNWFhRDE4N2RjOTI5MzcxLEZyYXppZXItQnV0bGVyLGh0dHBzOi8vd3d3LmRhdWdoZXJ0eS1mYXJsZXkuaW5mby8sTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzLFBlcnNpc3RlbnQgaW50ZXJhY3RpdmUgY2lyY3VpdCwxOTcyLE91dHNvdXJjaW5nIC8gT2Zmc2hvcmluZyw1MTMwDQo3MCw5MDJEN0FjOGI2ZDQ3NmIsTmV3dG9uIEluYyxodHRwczovL3d3dy5yaWNobW9uZC1tYW5uaW5nLmluZm8vLE5ldGhlcmxhbmRzIEFudGlsbGVzLEZ1bmRhbWVudGFsIHN0YWJsZSBpbmZvLW1lZGlhcmllcywxOTc2LE1pbGl0YXJ5IEluZHVzdHJ5LDU2Mw0KNzEsMzJCQjlGZjRkOTM5Nzg4LER1ZmZ5LUxldnksaHR0cHM6Ly93d3cucG90dGVyLmNvbS8sR3Vlcm5zZXksRGl2ZXJzZSBleHVkaW5nIGluc3RhbGxhdGlvbiwxOTgyLFdpcmVsZXNzLDYxNDYNCjcyLGFkY0IwYWZiRTU4YkFlMyxXYWduZXIgTExDLGh0dHBzOi8vZGVja2VyLWVzcGFyemEuY29tLyxVcnVndWF5LFJlYWN0aXZlIGF0dGl0dWRlLW9yaWVudGVkIHRvb2xzZXQsMTk4NyxJbnRlcm5hdGlvbmFsIEFmZmFpcnMsNjg3NA0KNzMsZGZjQTFjODRBZEI2MUFjLE1jY2FsbC1Ib2xtZXMsaHR0cDovL3d3dy5kZWFuLmNvbS8sQmVuaW4sT2JqZWN0LWJhc2VkIHZhbHVlLWFkZGVkIGRhdGFiYXNlLDIwMDksTGVnYWwgU2VydmljZXMsNjk2DQo3NCwyMDgwNDRBQzJmZTUyRjMsTWFzc2V5IExMQyxodHRwczovL2ZyYXppZXIuYml6LyxTdXJpbmFtZSxDb25maWd1cmFibGUgemVybyBhZG1pbmlzdHJhdGlvbiBHcmFwaGljYWwgVXNlciBJbnRlcmZhY2UsMTk4NixBY2NvdW50aW5nLDUwMDQNCjc1LGYzQzM2NWYwYzFBMDYyMyxIaWNrcyBMTEMsaHR0cDovL2FsdmFyZXouYml6LyxQYWtpc3RhbixRdWFsaXR5LWZvY3VzZWQgY2xpZW50LXNlcnZlciBHcmFwaGljYWwgVXNlciBJbnRlcmZhY2UsMTk3MCxDb21wdXRlciBTb2Z0d2FyZSAvIEVuZ2luZWVyaW5nLDg0ODANCjc2LGVjNUJkZDNDQkFmYUI5MywiQ29sZSwgUnVzc2VsbCBhbmQgQXZlcnkiLGh0dHA6Ly93d3cuYmxhbmtlbnNoaXAuY29tLyxNb25nb2xpYSxEZS1lbmdpbmVlcmVkIGZhdWx0LXRvbGVyYW50IGNoYWxsZW5nZSwyMDAwLExhdyBFbmZvcmNlbWVudCw3MDEyDQo3NyxEREIxOUJlN2VlQjU2QjQsQ3VtbWluZ3MtUm9qYXMsaHR0cHM6Ly9zaW1vbi1wZWFyc29uLmNvbS8sU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gSXNsYW5kcyxVc2VyLWNlbnRyaWMgbW9kdWxhciBjdXN0b21lciBsb3lhbHR5LDIwMTIsRmluYW5jaWFsIFNlcnZpY2VzLDc1MjkNCjc4LGRkNkNBM2QwYmMzY0FmYywiQmVhc2xleSwgR3JlZW5lIGFuZCBNYWhvbmV5IixodHRwOi8vd3d3LnBldGVyc2VuLWxhd3JlbmNlLmNvbS8sVG9nbyxFeHRlbmRlZCBjb250ZW50LWJhc2VkIG1ldGhvZG9sb2d5LDE5NzYsUmVsaWdpb3VzIEluc3RpdHV0aW9ucyw4NjkNCjc5LEEwQjlkNTZlNjEwNzBlMywiQmVhc2xleSwgU2ltcyBhbmQgQWxsaXNvbiIsaHR0cDovL2J1cmtlLmluZm8vLExhdHZpYSxTZWN1cmVkIHplcm8gdG9sZXJhbmNlIGh1YiwxOTcyLEZhY2lsaXRpZXMgU2VydmljZXMsNjE4Mg0KODAsY0JhN0VGZTVEMDVBZGFmLENyYXdmb3JkLVJpdmVyYSxodHRwczovL2JsYWNrLXJhbWlyZXoub3JnLyxDdWJhLFBlcnNldmVyaW5nIGV4dWRpbmcgYnVkZ2V0YXJ5IG1hbmFnZW1lbnQsMTk5OSxPbmxpbmUgUHVibGlzaGluZyw3ODA1DQo4MSxFYTNmNkQ1MkVjNzM1NjMsTW9udGVzLUhlbnNsZXksaHR0cHM6Ly9rcnVlZ2VyLm9yZy8sTGllY2h0ZW5zdGVpbixNdWx0aS10aWVyZWQgc2Vjb25kYXJ5IHByb2R1Y3Rpdml0eSwyMDA5LFByaW50aW5nLDg0MzMNCjgyLGJDMENFZDQ4QTgwMDBFMCxWZWxhenF1ZXotT2RvbSxodHRwczovL3N0b2tlcy5jb20vLERqaWJvdXRpLFN0cmVhbWxpbmVkIDZ0aGdlbmVyYXRpb24gZnVuY3Rpb24sMjAwMixBbHRlcm5hdGl2ZSBEaXNwdXRlIFJlc29sdXRpb24sNDA0NA0KODMsYzg5YjliNTlCQzRiYWExLEVhdG9uLU1vcmFsZXMsaHR0cHM6Ly93d3cucmVldmVzLWdyYWhhbS5jb20vLE1pY3JvbmVzaWEsQ3VzdG9tZXItZm9jdXNlZCBleHBsaWNpdCBmcmFtZSwxOTkwLENhcGl0YWwgTWFya2V0cyAvIEhlZGdlIEZ1bmQgLyBQcml2YXRlIEVxdWl0eSw3MDEzDQo4NCxGRUM1MWJjZTg0MjFhN2IsIlJvYmVyc29uLCBQZW5uaW5ndG9uIGFuZCBQYWxtZXIiLGh0dHA6Ly93d3cua2VpdGgtZmlzaGVyLmNvbS8sQ2FtZXJvb24sQWRhcHRpdmUgYmktZGlyZWN0aW9uYWwgaGllcmFyY2h5LDE5OTMsVGVsZWNvbW11bmljYXRpb25zLDU1NzENCjg1LGUwRThlMjdlQWM5Q0FkNSwiR2VvcmdlLCBSdXNzbyBhbmQgR3VlcnJhIixodHRwczovL2RyYWtlLmNvbS8sU3dlZGVuLENlbnRyYWxpemVkIG5vbi12b2xhdGlsZSBjYXBhYmlsaXR5LDE5ODksTWlsaXRhcnkgSW5kdXN0cnksMjg4MA0KODYsQjk3YTZDRjliZjU5ODNDLERhdmlsYSBJbmMsaHR0cHM6Ly9tY2Nvbm5lbGwuaW5mby8sQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMsUHJvZml0LWZvY3VzZWQgZGVkaWNhdGVkIGZyYW1lLDIwMTcsQ29uc3VtZXIgRWxlY3Ryb25pY3MsMjIxNQ0KODcsYTBhNmY5YjNEYmNCRWI1LE1heXMtUHJlc3RvbixodHRwOi8vd3d3LmJyb3duaW5nLWtleS5jb20vLE1hbGksVXNlci1jZW50cmljIGhldXJpc3RpYyBmb2N1cyBncm91cCwyMDA2LE1pbGl0YXJ5IEluZHVzdHJ5LDU3ODYNCjg4LDhjQzFiRGEzMzBhNTg3MSxQaW5lZGEtTW9ydG9uLGh0dHBzOi8vd3d3LmNhcnIuY29tLyxVbml0ZWQgU3RhdGVzIFZpcmdpbiBJc2xhbmRzLEdyYXNzLXJvb3RzIG1ldGhvZGljYWwgaW5mby1tZWRpYXJpZXMsMTk5MSxQcmludGluZyw2MTY4DQo4OSxFRDg4OUNCMkZFOWNiZDMsSHVhbmcgYW5kIFNvbnMsaHR0cHM6Ly93d3cuYm9sdG9uLmNvbS8sRXJpdHJlYSxSZS1jb250ZXh0dWFsaXplZCBkeW5hbWljIGhpZXJhcmNoeSwxOTgxLFNlbWljb25kdWN0b3JzLDc0ODQNCjkwLEY0RGMxNDE3QkM2Y2I4ZixHaWxiZXJ0LVNpbW9uLGh0dHBzOi8vd3d3LmJyYWRmb3JkLmJpei8sQnVydW5kaSxHcmFzcy1yb290cyByYWRpY2FsIHBhcmFsbGVsaXNtLDE5NzMsTmV3c3BhcGVycyAvIEpvdXJuYWxpc20sMTkyNw0KOTEsN0FCYzNjN2VjQTAzQjM0LFNhbXBzb24tR3JpZmZpdGgsaHR0cDovL2hlbmRyaWNrcy5vcmcvLEJlbmluLE11bHRpLWxheWVyZWQgY29tcG9zaXRlIHBhcmFkaWdtLDE5NzIsVGV4dGlsZXMsMzg4MQ0KOTIsNGUwNzE5RkJFMzhlMGFCLE1pbGVzLURvbWluZ3VleixodHRwOi8vd3d3LnR1cm5lci5jb20vLEdpYnJhbHRhcixPcmdhbml6ZWQgZW1wb3dlcmluZyBmb3JlY2FzdCwxOTk2LENpdmljIC8gU29jaWFsIE9yZ2FuaXphdGlvbiw4OTcNCjkzLGRFYkRBQWVEZmFlZDAwQSxSb3dlIGFuZCBTb25zLGh0dHBzOi8vd3d3LnNpbXBzb24ub3JnLyxFbCBTYWx2YWRvcixCYWxhbmNlZCBtdWx0aW1lZGlhIGtub3dsZWRnZWJhc2UsMTk3OCxGYWNpbGl0aWVzIFNlcnZpY2VzLDgxNzINCjk0LDYxQkRlQ2ZlRkQwY0VGNSwiVmFsZW56dWVsYSwgSG9sbWVzIGFuZCBSb3dsYW5kIixodHRwczovL3d3dy5kb3JzZXkubmV0LyxUYWl3YW4sUGVyc2lzdGVudCB0ZXJ0aWFyeSBmb2N1cyBncm91cCwxOTk5LFRyYW5zcG9ydGF0aW9uLDE0ODMNCjk1LDRlOTFlRDI1ZjQ4NjExMCwiQmVzdCwgV2FkZSBhbmQgU2hlcGFyZCIsaHR0cHM6Ly96aW1tZXJtYW4uY29tLyxaaW1iYWJ3ZSxJbm5vdmF0aXZlIGJhY2tncm91bmQgZGVmaW5pdGlvbiwxOTkxLEdhbWJsaW5nIC8gQ2FzaW5vcyw0ODczDQo5NiwwYTBiZkZiQmJCOGVDN2MsSG9sbWVzIEdyb3VwLGh0dHBzOi8vbWNkb3dlbGwub3JnLyxFdGhpb3BpYSxSaWdodC1zaXplZCB6ZXJvIHRvbGVyYW5jZSBmb2N1cyBncm91cCwxOTc1LFBob3RvZ3JhcGh5LDI5ODgNCjk3LEJBNkNkOURhZTJFZmQ2MixHb29kIEx0ZCxodHRwOi8vZHVmZnkuY29tLyxBbmd1aWxsYSxSZXZlcnNlLWVuZ2luZWVyZWQgY29tcG9zaXRlIG1vcmF0b3JpdW0sMTk3MSxDb25zdW1lciBTZXJ2aWNlcyw0MjkyDQo5OCxFN2RmODBDNjBBYmQ3ZjksQ2xlbWVudHMtRXNwaW5vemEsaHR0cDovL3d3dy5mbG93ZXJzLm5ldC8sRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpLFByb2dyZXNzaXZlIG1vZHVsYXIgaHViLDE5OTEsQnJvYWRjYXN0IE1lZGlhLDIzNg0KOTksQUZjMjg1ZGJFMmZFZDI0LE1lbmRleiBJbmMsaHR0cHM6Ly93d3cuYnVya2UubmV0LyxLeXJneXogUmVwdWJsaWMsVXNlci1mcmllbmRseSBleHVkaW5nIG1pZ3JhdGlvbiwxOTkzLEVkdWNhdGlvbiBNYW5hZ2VtZW50LDMzOQ0KMTAwLGU5ZUI1QTYwQ2VmODM1NCxXYXRraW5zLUthaXNlcixodHRwOi8vd3d3LmhlcnJpbmcuY29tLyxUb2dvLFN5bmVyZ2lzdGljIGJhY2tncm91bmQgYWNjZXNzLDIwMDksRmluYW5jaWFsIFNlcnZpY2VzLDI3ODUNCg=="},"_type":"CSVLoader"},"description":"Loads a CSV file into a list of documents.","base_classes":["CSVLoader","BaseLoader"]},"id":"dndnode_21","value":null},"selected":false,"positionAbsolute":{"x":325.0831403216823,"y":293.78744910049573},"dragging":false}],"edges":[{"source":"dndnode_14","sourceHandle":"CharacterTextSplitter|dndnode_14|CharacterTextSplitter|TextSplitter|BaseDocumentTransformer","target":"dndnode_15","targetHandle":"TextSplitter|documents|dndnode_15","className":"animate-pulse","id":"reactflow__edge-dndnode_14CharacterTextSplitter|dndnode_14|CharacterTextSplitter|TextSplitter|BaseDocumentTransformer-dndnode_15TextSplitter|documents|dndnode_15","selected":false},{"source":"dndnode_16","sourceHandle":"OpenAIEmbeddings|dndnode_16|Embeddings|OpenAIEmbeddings","target":"dndnode_15","targetHandle":"Embeddings|embedding|dndnode_15","className":"animate-pulse","id":"reactflow__edge-dndnode_16OpenAIEmbeddings|dndnode_16|Embeddings|OpenAIEmbeddings-dndnode_15Embeddings|embedding|dndnode_15","selected":false},{"source":"dndnode_15","sourceHandle":"Chroma|dndnode_15|Chroma|VectorStore","target":"dndnode_17","targetHandle":"VectorStore|vectorstore|dndnode_17","className":"animate-pulse","id":"reactflow__edge-dndnode_15Chroma|dndnode_15|Chroma|VectorStore-dndnode_17VectorStore|vectorstore|dndnode_17","selected":false},{"source":"dndnode_17","sourceHandle":"VectorStoreInfo|dndnode_17|VectorStoreInfo","target":"dndnode_19","targetHandle":"VectorStoreInfo|vectorstoreinfo|dndnode_19","className":"animate-pulse","id":"reactflow__edge-dndnode_17VectorStoreInfo|dndnode_17|VectorStoreInfo-dndnode_19VectorStoreInfo|vectorstoreinfo|dndnode_19","selected":false},{"source":"dndnode_18","sourceHandle":"OpenAI|dndnode_18|BaseOpenAI|BaseLLM|OpenAI|BaseLanguageModel","target":"dndnode_19","targetHandle":"BaseLanguageModel|llm|dndnode_19","className":"animate-pulse","id":"reactflow__edge-dndnode_18OpenAI|dndnode_18|BaseOpenAI|BaseLLM|OpenAI|BaseLanguageModel-dndnode_19BaseLanguageModel|llm|dndnode_19","selected":false},{"source":"dndnode_21","sourceHandle":"CSVLoader|dndnode_21|CSVLoader|BaseLoader","target":"dndnode_14","targetHandle":"BaseLoader|documents|dndnode_14","className":"animate-pulse","id":"reactflow__edge-dndnode_21CSVLoader|dndnode_21|CSVLoader|BaseLoader-dndnode_14BaseLoader|documents|dndnode_14","selected":false}],"viewport":{"x":-213.70382550048328,"y":-16.87909194307929,"zoom":0.6973718331752029}}} \ No newline at end of file diff --git a/docs/data/Json_agent.json b/docs/data/Json_agent.json deleted file mode 100644 index 0ce234172..000000000 --- a/docs/data/Json_agent.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"bfd7a711-3225-44ef-b1c3-044499b14123","data":{"nodes":[{"width":384,"height":323,"id":"dndnode_230","type":"genericNode","position":{"x":390,"y":230},"data":{"type":"JsonSpec","node":{"template":{"max_value_length":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"400","password":false,"name":"max_value_length","advanced":false,"type":"int","list":false},"path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"openapi.yaml","suffixes":[".json",".yaml",".yml"],"password":false,"name":"path","advanced":false,"type":"file","list":false,"fileTypes":["json","yaml","yml"],"content":"data:application/x-yaml;base64,b3BlbmFwaTogMy4wLjAKaW5mbzoKICB0aXRsZTogT3BlbkFJIEFQSQogIGRlc2NyaXB0aW9uOiBBUElzIGZvciBzYW1wbGluZyBmcm9tIGFuZCBmaW5lLXR1bmluZyBsYW5ndWFnZSBtb2RlbHMKICB2ZXJzaW9uOiAnMS4yLjAnCnNlcnZlcnM6CiAgLSB1cmw6IGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEKdGFnczoKLSBuYW1lOiBPcGVuQUkKICBkZXNjcmlwdGlvbjogVGhlIE9wZW5BSSBSRVNUIEFQSQpwYXRoczoKICAvZW5naW5lczoKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IGxpc3RFbmdpbmVzCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogTGlzdHMgdGhlIGN1cnJlbnRseSBhdmFpbGFibGUgKG5vbi1maW5ldHVuZWQpIG1vZGVscywgYW5kIHByb3ZpZGVzIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggb25lIHN1Y2ggYXMgdGhlIG93bmVyIGFuZCBhdmFpbGFiaWxpdHkuCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTGlzdEVuZ2luZXNSZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IExpc3QgZW5naW5lcwogICAgICAgIGdyb3VwOiBlbmdpbmVzCiAgICAgICAgcGF0aDogbGlzdAogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZW5naW5lcyBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkVuZ2luZS5saXN0KCkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5saXN0RW5naW5lcygpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJlbmdpbmUtaWQtMCIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImVuZ2luZSIsCiAgICAgICAgICAgICAgICAib3duZXIiOiAib3JnYW5pemF0aW9uLW93bmVyIiwKICAgICAgICAgICAgICAgICJyZWFkeSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJlbmdpbmUtaWQtMiIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImVuZ2luZSIsCiAgICAgICAgICAgICAgICAib3duZXIiOiAib3JnYW5pemF0aW9uLW93bmVyIiwKICAgICAgICAgICAgICAgICJyZWFkeSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJlbmdpbmUtaWQtMyIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImVuZ2luZSIsCiAgICAgICAgICAgICAgICAib3duZXIiOiAib3BlbmFpIiwKICAgICAgICAgICAgICAgICJyZWFkeSI6IGZhbHNlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm9iamVjdCI6ICJsaXN0IgogICAgICAgICAgfQoKICAvZW5naW5lcy97ZW5naW5lX2lkfToKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IHJldHJpZXZlRW5naW5lCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogUmV0cmlldmVzIGEgbW9kZWwgaW5zdGFuY2UsIHByb3ZpZGluZyBiYXNpYyBpbmZvcm1hdGlvbiBhYm91dCBpdCBzdWNoIGFzIHRoZSBvd25lciBhbmQgYXZhaWxhYmlsaXR5LgogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gaW46IHBhdGgKICAgICAgICAgIG5hbWU6IGVuZ2luZV9pZAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICMgaWRlYWxseSB0aGlzIHdpbGwgYmUgYW4gYWN0dWFsIElELCBzbyB0aGlzIHdpbGwgYWx3YXlzIHdvcmsgZnJvbSBicm93c2VyCiAgICAgICAgICAgIGV4YW1wbGU6CiAgICAgICAgICAgICAgZGF2aW5jaQogICAgICAgICAgZGVzY3JpcHRpb246ICZlbmdpbmVfaWRfZGVzY3JpcHRpb24gPgogICAgICAgICAgICBUaGUgSUQgb2YgdGhlIGVuZ2luZSB0byB1c2UgZm9yIHRoaXMgcmVxdWVzdAogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0VuZ2luZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IFJldHJpZXZlIGVuZ2luZQogICAgICAgIGdyb3VwOiBlbmdpbmVzCiAgICAgICAgcGF0aDogcmV0cmlldmUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2VuZ2luZXMvVkFSX21vZGVsX2lkIFwKICAgICAgICAgICAgICAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRW5naW5lLnJldHJpZXZlKCJWQVJfbW9kZWxfaWQiKQogICAgICAgICAgbm9kZS5qczogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLnJldHJpZXZlRW5naW5lKCJWQVJfbW9kZWxfaWQiKTsKICAgICAgICByZXNwb25zZTogfAogICAgICAgICAgewogICAgICAgICAgICAiaWQiOiAiVkFSX21vZGVsX2lkIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJlbmdpbmUiLAogICAgICAgICAgICAib3duZXIiOiAib3BlbmFpIiwKICAgICAgICAgICAgInJlYWR5IjogdHJ1ZQogICAgICAgICAgfQoKICAvY29tcGxldGlvbnM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlQ29tcGxldGlvbgogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiBDcmVhdGVzIGEgY29tcGxldGlvbiBmb3IgdGhlIHByb3ZpZGVkIHByb21wdCBhbmQgcGFyYW1ldGVycwogICAgICByZXF1ZXN0Qm9keToKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUNvbXBsZXRpb25SZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUNvbXBsZXRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSBjb21wbGV0aW9uCiAgICAgICAgZ3JvdXA6IGNvbXBsZXRpb25zCiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9jb21wbGV0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAibW9kZWwiOiAiVkFSX21vZGVsX2lkIiwKICAgICAgICAgICAgICAicHJvbXB0IjogIlNheSB0aGlzIGlzIGEgdGVzdCIsCiAgICAgICAgICAgICAgIm1heF90b2tlbnMiOiA3LAogICAgICAgICAgICAgICJ0ZW1wZXJhdHVyZSI6IDAKICAgICAgICAgICAgfScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuQ29tcGxldGlvbi5jcmVhdGUoCiAgICAgICAgICAgICAgbW9kZWw9IlZBUl9tb2RlbF9pZCIsCiAgICAgICAgICAgICAgcHJvbXB0PSJTYXkgdGhpcyBpcyBhIHRlc3QiLAogICAgICAgICAgICAgIG1heF90b2tlbnM9NywKICAgICAgICAgICAgICB0ZW1wZXJhdHVyZT0wCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVDb21wbGV0aW9uKHsKICAgICAgICAgICAgICBtb2RlbDogIlZBUl9tb2RlbF9pZCIsCiAgICAgICAgICAgICAgcHJvbXB0OiAiU2F5IHRoaXMgaXMgYSB0ZXN0IiwKICAgICAgICAgICAgICBtYXhfdG9rZW5zOiA3LAogICAgICAgICAgICAgIHRlbXBlcmF0dXJlOiAwLAogICAgICAgICAgICB9KTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJtb2RlbCI6ICJWQVJfbW9kZWxfaWQiLAogICAgICAgICAgICAicHJvbXB0IjogIlNheSB0aGlzIGlzIGEgdGVzdCIsCiAgICAgICAgICAgICJtYXhfdG9rZW5zIjogNywKICAgICAgICAgICAgInRlbXBlcmF0dXJlIjogMCwKICAgICAgICAgICAgInRvcF9wIjogMSwKICAgICAgICAgICAgIm4iOiAxLAogICAgICAgICAgICAic3RyZWFtIjogZmFsc2UsCiAgICAgICAgICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAgICAgICAgICJzdG9wIjogIlxuIgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJpZCI6ICJjbXBsLXVxa3ZsUXlZSzdiR1lyUkhRMGVYbFdpNyIsCiAgICAgICAgICAgICJvYmplY3QiOiAidGV4dF9jb21wbGV0aW9uIiwKICAgICAgICAgICAgImNyZWF0ZWQiOiAxNTg5NDc4Mzc4LAogICAgICAgICAgICAibW9kZWwiOiAiVkFSX21vZGVsX2lkIiwKICAgICAgICAgICAgImNob2ljZXMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInRleHQiOiAiXG5cblRoaXMgaXMgaW5kZWVkIGEgdGVzdCIsCiAgICAgICAgICAgICAgICAiaW5kZXgiOiAwLAogICAgICAgICAgICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAgICAgICAgICAgICJmaW5pc2hfcmVhc29uIjogImxlbmd0aCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1c2FnZSI6IHsKICAgICAgICAgICAgICAicHJvbXB0X3Rva2VucyI6IDUsCiAgICAgICAgICAgICAgImNvbXBsZXRpb25fdG9rZW5zIjogNywKICAgICAgICAgICAgICAidG90YWxfdG9rZW5zIjogMTIKICAgICAgICAgICAgfQogICAgICAgICAgfQogIC9jaGF0L2NvbXBsZXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUNoYXRDb21wbGV0aW9uCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYSBjb21wbGV0aW9uIGZvciB0aGUgY2hhdCBtZXNzYWdlCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlQ2hhdENvbXBsZXRpb25SZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUNoYXRDb21wbGV0aW9uUmVzcG9uc2UnCgogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGNoYXQgY29tcGxldGlvbgogICAgICAgIGdyb3VwOiBjaGF0CiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgYmV0YTogdHJ1ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvY2hhdC9jb21wbGV0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAibW9kZWwiOiAiZ3B0LTMuNS10dXJibyIsCiAgICAgICAgICAgICAgIm1lc3NhZ2VzIjogW3sicm9sZSI6ICJ1c2VyIiwgImNvbnRlbnQiOiAiSGVsbG8hIn1dCiAgICAgICAgICAgIH0nCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKCiAgICAgICAgICAgIGNvbXBsZXRpb24gPSBvcGVuYWkuQ2hhdENvbXBsZXRpb24uY3JlYXRlKAogICAgICAgICAgICAgIG1vZGVsPSJncHQtMy41LXR1cmJvIiwKICAgICAgICAgICAgICBtZXNzYWdlcz1bCiAgICAgICAgICAgICAgICB7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIkhlbGxvISJ9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICAgICBwcmludChjb21wbGV0aW9uLmNob2ljZXNbMF0ubWVzc2FnZSkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwoKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKCiAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRpb24gPSBhd2FpdCBvcGVuYWkuY3JlYXRlQ2hhdENvbXBsZXRpb24oewogICAgICAgICAgICAgIG1vZGVsOiAiZ3B0LTMuNS10dXJibyIsCiAgICAgICAgICAgICAgbWVzc2FnZXM6IFt7cm9sZTogInVzZXIiLCBjb250ZW50OiAiSGVsbG8gd29ybGQifV0sCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zb2xlLmxvZyhjb21wbGV0aW9uLmRhdGEuY2hvaWNlc1swXS5tZXNzYWdlKTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJtb2RlbCI6ICJncHQtMy41LXR1cmJvIiwKICAgICAgICAgICAgIm1lc3NhZ2VzIjogW3sicm9sZSI6ICJ1c2VyIiwgImNvbnRlbnQiOiAiSGVsbG8hIn1dCiAgICAgICAgICB9CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogImNoYXRjbXBsLTEyMyIsCiAgICAgICAgICAgICJvYmplY3QiOiAiY2hhdC5jb21wbGV0aW9uIiwKICAgICAgICAgICAgImNyZWF0ZWQiOiAxNjc3NjUyMjg4LAogICAgICAgICAgICAiY2hvaWNlcyI6IFt7CiAgICAgICAgICAgICAgImluZGV4IjogMCwKICAgICAgICAgICAgICAibWVzc2FnZSI6IHsKICAgICAgICAgICAgICAgICJyb2xlIjogImFzc2lzdGFudCIsCiAgICAgICAgICAgICAgICAiY29udGVudCI6ICJcblxuSGVsbG8gdGhlcmUsIGhvdyBtYXkgSSBhc3Npc3QgeW91IHRvZGF5PyIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAiZmluaXNoX3JlYXNvbiI6ICJzdG9wIgogICAgICAgICAgICB9XSwKICAgICAgICAgICAgInVzYWdlIjogewogICAgICAgICAgICAgICJwcm9tcHRfdG9rZW5zIjogOSwKICAgICAgICAgICAgICAiY29tcGxldGlvbl90b2tlbnMiOiAxMiwKICAgICAgICAgICAgICAidG90YWxfdG9rZW5zIjogMjEKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAvZWRpdHM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlRWRpdAogICAgICB0YWdzOgogICAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYSBuZXcgZWRpdCBmb3IgdGhlIHByb3ZpZGVkIGlucHV0LCBpbnN0cnVjdGlvbiwgYW5kIHBhcmFtZXRlcnMuCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlRWRpdFJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlRWRpdFJlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGVkaXQKICAgICAgICBncm91cDogZWRpdHMKICAgICAgICBwYXRoOiBjcmVhdGUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2VkaXRzIFwKICAgICAgICAgICAgICAtSCAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknIFwKICAgICAgICAgICAgICAtZCAnewogICAgICAgICAgICAgICJtb2RlbCI6ICJWQVJfbW9kZWxfaWQiLAogICAgICAgICAgICAgICJpbnB1dCI6ICJXaGF0IGRheSBvZiB0aGUgd2VrIGlzIGl0PyIsCiAgICAgICAgICAgICAgImluc3RydWN0aW9uIjogIkZpeCB0aGUgc3BlbGxpbmcgbWlzdGFrZXMiCiAgICAgICAgICAgIH0nCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkVkaXQuY3JlYXRlKAogICAgICAgICAgICAgIG1vZGVsPSJWQVJfbW9kZWxfaWQiLAogICAgICAgICAgICAgIGlucHV0PSJXaGF0IGRheSBvZiB0aGUgd2VrIGlzIGl0PyIsCiAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb249IkZpeCB0aGUgc3BlbGxpbmcgbWlzdGFrZXMiCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVFZGl0KHsKICAgICAgICAgICAgICBtb2RlbDogIlZBUl9tb2RlbF9pZCIsCiAgICAgICAgICAgICAgaW5wdXQ6ICJXaGF0IGRheSBvZiB0aGUgd2VrIGlzIGl0PyIsCiAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb246ICJGaXggdGhlIHNwZWxsaW5nIG1pc3Rha2VzIiwKICAgICAgICAgICAgfSk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAibW9kZWwiOiAiVkFSX21vZGVsX2lkIiwKICAgICAgICAgICAgImlucHV0IjogIldoYXQgZGF5IG9mIHRoZSB3ZWsgaXMgaXQ/IiwKICAgICAgICAgICAgImluc3RydWN0aW9uIjogIkZpeCB0aGUgc3BlbGxpbmcgbWlzdGFrZXMiLAogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJvYmplY3QiOiAiZWRpdCIsCiAgICAgICAgICAgICJjcmVhdGVkIjogMTU4OTQ3ODM3OCwKICAgICAgICAgICAgImNob2ljZXMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInRleHQiOiAiV2hhdCBkYXkgb2YgdGhlIHdlZWsgaXMgaXQ/IiwKICAgICAgICAgICAgICAgICJpbmRleCI6IDAsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAidXNhZ2UiOiB7CiAgICAgICAgICAgICAgInByb21wdF90b2tlbnMiOiAyNSwKICAgICAgICAgICAgICAiY29tcGxldGlvbl90b2tlbnMiOiAzMiwKICAgICAgICAgICAgICAidG90YWxfdG9rZW5zIjogNTcKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAvaW1hZ2VzL2dlbmVyYXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUltYWdlCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYW4gaW1hZ2UgZ2l2ZW4gYSBwcm9tcHQuCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlSW1hZ2VSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ltYWdlc1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGltYWdlCiAgICAgICAgZ3JvdXA6IGltYWdlcwogICAgICAgIHBhdGg6IGNyZWF0ZQogICAgICAgIGJldGE6IHRydWUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2ltYWdlcy9nZW5lcmF0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAicHJvbXB0IjogIkEgY3V0ZSBiYWJ5IHNlYSBvdHRlciIsCiAgICAgICAgICAgICAgIm4iOiAyLAogICAgICAgICAgICAgICJzaXplIjogIjEwMjR4MTAyNCIKICAgICAgICAgICAgfScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuSW1hZ2UuY3JlYXRlKAogICAgICAgICAgICAgIHByb21wdD0iQSBjdXRlIGJhYnkgc2VhIG90dGVyIiwKICAgICAgICAgICAgICBuPTIsCiAgICAgICAgICAgICAgc2l6ZT0iMTAyNHgxMDI0IgogICAgICAgICAgICApCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY3JlYXRlSW1hZ2UoewogICAgICAgICAgICAgIHByb21wdDogIkEgY3V0ZSBiYWJ5IHNlYSBvdHRlciIsCiAgICAgICAgICAgICAgbjogMiwKICAgICAgICAgICAgICBzaXplOiAiMTAyNHgxMDI0IiwKICAgICAgICAgICAgfSk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAicHJvbXB0IjogIkEgY3V0ZSBiYWJ5IHNlYSBvdHRlciIsCiAgICAgICAgICAgICJuIjogMiwKICAgICAgICAgICAgInNpemUiOiAiMTAyNHgxMDI0IgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJjcmVhdGVkIjogMTU4OTQ3ODM3OCwKICAgICAgICAgICAgImRhdGEiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovLy4uLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly8uLi4iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9CgogIC9pbWFnZXMvZWRpdHM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlSW1hZ2VFZGl0CiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYW4gZWRpdGVkIG9yIGV4dGVuZGVkIGltYWdlIGdpdmVuIGFuIG9yaWdpbmFsIGltYWdlIGFuZCBhIHByb21wdC4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgbXVsdGlwYXJ0L2Zvcm0tZGF0YToKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVJbWFnZUVkaXRSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ltYWdlc1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGltYWdlIGVkaXQKICAgICAgICBncm91cDogaW1hZ2VzCiAgICAgICAgcGF0aDogY3JlYXRlLWVkaXQKICAgICAgICBiZXRhOiB0cnVlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9pbWFnZXMvZWRpdHMgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLUYgaW1hZ2U9J0BvdHRlci5wbmcnIFwKICAgICAgICAgICAgICAtRiBtYXNrPSdAbWFzay5wbmcnIFwKICAgICAgICAgICAgICAtRiBwcm9tcHQ9IkEgY3V0ZSBiYWJ5IHNlYSBvdHRlciB3ZWFyaW5nIGEgYmVyZXQiIFwKICAgICAgICAgICAgICAtRiBuPTIgXAogICAgICAgICAgICAgIC1GIHNpemU9IjEwMjR4MTAyNCIKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuSW1hZ2UuY3JlYXRlX2VkaXQoCiAgICAgICAgICAgICAgaW1hZ2U9b3Blbigib3R0ZXIucG5nIiwgInJiIiksCiAgICAgICAgICAgICAgbWFzaz1vcGVuKCJtYXNrLnBuZyIsICJyYiIpLAogICAgICAgICAgICAgIHByb21wdD0iQSBjdXRlIGJhYnkgc2VhIG90dGVyIHdlYXJpbmcgYSBiZXJldCIsCiAgICAgICAgICAgICAgbj0yLAogICAgICAgICAgICAgIHNpemU9IjEwMjR4MTAyNCIKICAgICAgICAgICAgKQogICAgICAgICAgbm9kZS5qczogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLmNyZWF0ZUltYWdlRWRpdCgKICAgICAgICAgICAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKCJvdHRlci5wbmciKSwKICAgICAgICAgICAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKCJtYXNrLnBuZyIpLAogICAgICAgICAgICAgICJBIGN1dGUgYmFieSBzZWEgb3R0ZXIgd2VhcmluZyBhIGJlcmV0IiwKICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICIxMDI0eDEwMjQiCiAgICAgICAgICAgICk7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImNyZWF0ZWQiOiAxNTg5NDc4Mzc4LAogICAgICAgICAgICAiZGF0YSI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vLi4uIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovLy4uLiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KCiAgL2ltYWdlcy92YXJpYXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUltYWdlVmFyaWF0aW9uCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYSB2YXJpYXRpb24gb2YgYSBnaXZlbiBpbWFnZS4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgbXVsdGlwYXJ0L2Zvcm0tZGF0YToKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVJbWFnZVZhcmlhdGlvblJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvSW1hZ2VzUmVzcG9uc2UnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBDcmVhdGUgaW1hZ2UgdmFyaWF0aW9uCiAgICAgICAgZ3JvdXA6IGltYWdlcwogICAgICAgIHBhdGg6IGNyZWF0ZS12YXJpYXRpb24KICAgICAgICBiZXRhOiB0cnVlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9pbWFnZXMvdmFyaWF0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknIFwKICAgICAgICAgICAgICAtRiBpbWFnZT0nQG90dGVyLnBuZycgXAogICAgICAgICAgICAgIC1GIG49MiBcCiAgICAgICAgICAgICAgLUYgc2l6ZT0iMTAyNHgxMDI0IgogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5JbWFnZS5jcmVhdGVfdmFyaWF0aW9uKAogICAgICAgICAgICAgIGltYWdlPW9wZW4oIm90dGVyLnBuZyIsICJyYiIpLAogICAgICAgICAgICAgIG49MiwKICAgICAgICAgICAgICBzaXplPSIxMDI0eDEwMjQiCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVJbWFnZVZhcmlhdGlvbigKICAgICAgICAgICAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKCJvdHRlci5wbmciKSwKICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICIxMDI0eDEwMjQiCiAgICAgICAgICAgICk7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImNyZWF0ZWQiOiAxNTg5NDc4Mzc4LAogICAgICAgICAgICAiZGF0YSI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vLi4uIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovLy4uLiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KCiAgL2VtYmVkZGluZ3M6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlRW1iZWRkaW5nCiAgICAgIHRhZ3M6CiAgICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogQ3JlYXRlcyBhbiBlbWJlZGRpbmcgdmVjdG9yIHJlcHJlc2VudGluZyB0aGUgaW5wdXQgdGV4dC4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVFbWJlZGRpbmdSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUVtYmVkZGluZ1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGVtYmVkZGluZ3MKICAgICAgICBncm91cDogZW1iZWRkaW5ncwogICAgICAgIHBhdGg6IGNyZWF0ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZW1iZWRkaW5ncyBcCiAgICAgICAgICAgICAgLVggUE9TVCBcCiAgICAgICAgICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkiIFwKICAgICAgICAgICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAgICAgICAgICAgICAgLWQgJ3siaW5wdXQiOiAiVGhlIGZvb2Qgd2FzIGRlbGljaW91cyBhbmQgdGhlIHdhaXRlci4uLiIsCiAgICAgICAgICAgICAgICAgICAibW9kZWwiOiAidGV4dC1lbWJlZGRpbmctYWRhLTAwMiJ9JwoKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRW1iZWRkaW5nLmNyZWF0ZSgKICAgICAgICAgICAgICBtb2RlbD0idGV4dC1lbWJlZGRpbmctYWRhLTAwMiIsCiAgICAgICAgICAgICAgaW5wdXQ9IlRoZSBmb29kIHdhcyBkZWxpY2lvdXMgYW5kIHRoZSB3YWl0ZXIuLi4iCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVFbWJlZGRpbmcoewogICAgICAgICAgICAgIG1vZGVsOiAidGV4dC1lbWJlZGRpbmctYWRhLTAwMiIsCiAgICAgICAgICAgICAgaW5wdXQ6ICJUaGUgZm9vZCB3YXMgZGVsaWNpb3VzIGFuZCB0aGUgd2FpdGVyLi4uIiwKICAgICAgICAgICAgfSk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAibW9kZWwiOiAidGV4dC1lbWJlZGRpbmctYWRhLTAwMiIsCiAgICAgICAgICAgICJpbnB1dCI6ICJUaGUgZm9vZCB3YXMgZGVsaWNpb3VzIGFuZCB0aGUgd2FpdGVyLi4uIgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJvYmplY3QiOiAibGlzdCIsCiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZW1iZWRkaW5nIiwKICAgICAgICAgICAgICAgICJlbWJlZGRpbmciOiBbCiAgICAgICAgICAgICAgICAgIDAuMDAyMzA2NDI1NSwKICAgICAgICAgICAgICAgICAgLTAuMDA5MzI3MjkyLAogICAgICAgICAgICAgICAgICAuLi4uICgxNTM2IGZsb2F0cyB0b3RhbCBmb3IgYWRhLTAwMikKICAgICAgICAgICAgICAgICAgLTAuMDAyODg0MjIyMiwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAiaW5kZXgiOiAwCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAibW9kZWwiOiAidGV4dC1lbWJlZGRpbmctYWRhLTAwMiIsCiAgICAgICAgICAgICJ1c2FnZSI6IHsKICAgICAgICAgICAgICAicHJvbXB0X3Rva2VucyI6IDgsCiAgICAgICAgICAgICAgInRvdGFsX3Rva2VucyI6IDgKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAvYXVkaW8vdHJhbnNjcmlwdGlvbnM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlVHJhbnNjcmlwdGlvbgogICAgICB0YWdzOgogICAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IFRyYW5zY3JpYmVzIGF1ZGlvIGludG8gdGhlIGlucHV0IGxhbmd1YWdlLgogICAgICByZXF1ZXN0Qm9keToKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBtdWx0aXBhcnQvZm9ybS1kYXRhOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZVRyYW5zY3JpcHRpb25SZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZVRyYW5zY3JpcHRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSB0cmFuc2NyaXB0aW9uCiAgICAgICAgZ3JvdXA6IGF1ZGlvCiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgYmV0YTogdHJ1ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvYXVkaW8vdHJhbnNjcmlwdGlvbnMgXAogICAgICAgICAgICAgIC1YIFBPU1QgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgVE9LRU4nIFwKICAgICAgICAgICAgICAtSCAnQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvZm9ybS1kYXRhJyBcCiAgICAgICAgICAgICAgLUYgZmlsZT1AL3BhdGgvdG8vZmlsZS9hdWRpby5tcDMgXAogICAgICAgICAgICAgIC1GIG1vZGVsPXdoaXNwZXItMQogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIGF1ZGlvX2ZpbGUgPSBvcGVuKCJhdWRpby5tcDMiLCAicmIiKQogICAgICAgICAgICB0cmFuc2NyaXB0ID0gb3BlbmFpLkF1ZGlvLnRyYW5zY3JpYmUoIndoaXNwZXItMSIsIGF1ZGlvX2ZpbGUpCiAgICAgICAgICBub2RlOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IG9wZW5haS5jcmVhdGVUcmFuc2NyaXB0aW9uKAogICAgICAgICAgICAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0oImF1ZGlvLm1wMyIpLAogICAgICAgICAgICAgICJ3aGlzcGVyLTEiCiAgICAgICAgICAgICk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAiZmlsZSI6ICJhdWRpby5tcDMiLAogICAgICAgICAgICAibW9kZWwiOiAid2hpc3Blci0xIgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJ0ZXh0IjogIkltYWdpbmUgdGhlIHdpbGRlc3QgaWRlYSB0aGF0IHlvdSd2ZSBldmVyIGhhZCwgYW5kIHlvdSdyZSBjdXJpb3VzIGFib3V0IGhvdyBpdCBtaWdodCBzY2FsZSB0byBzb21ldGhpbmcgdGhhdCdzIGEgMTAwLCBhIDEsMDAwIHRpbWVzIGJpZ2dlci4gVGhpcyBpcyBhIHBsYWNlIHdoZXJlIHlvdSBjYW4gZ2V0IHRvIGRvIHRoYXQuIgogICAgICAgICAgfQoKICAvYXVkaW8vdHJhbnNsYXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZVRyYW5zbGF0aW9uCiAgICAgIHRhZ3M6CiAgICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogVHJhbnNsYXRlcyBhdWRpbyBpbnRvIGludG8gRW5nbGlzaC4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgbXVsdGlwYXJ0L2Zvcm0tZGF0YToKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVUcmFuc2xhdGlvblJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlVHJhbnNsYXRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSB0cmFuc2xhdGlvbgogICAgICAgIGdyb3VwOiBhdWRpbwogICAgICAgIHBhdGg6IGNyZWF0ZQogICAgICAgIGJldGE6IHRydWUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2F1ZGlvL3RyYW5zbGF0aW9ucyBcCiAgICAgICAgICAgICAgICAtWCBQT1NUIFwKICAgICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgVE9LRU4nIFwKICAgICAgICAgICAgICAgIC1IICdDb250ZW50LVR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGEnIFwKICAgICAgICAgICAgICAgIC1GIGZpbGU9QC9wYXRoL3RvL2ZpbGUvZ2VybWFuLm00YSBcCiAgICAgICAgICAgICAgICAtRiBtb2RlbD13aGlzcGVyLTEKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBhdWRpb19maWxlID0gb3BlbigiZ2VybWFuLm00YSIsICJyYiIpCiAgICAgICAgICAgIHRyYW5zY3JpcHQgPSBvcGVuYWkuQXVkaW8udHJhbnNsYXRlKCJ3aGlzcGVyLTEiLCBhdWRpb19maWxlKQogICAgICAgICAgbm9kZTogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBvcGVuYWkuY3JlYXRlVHJhbnNsYXRpb24oCiAgICAgICAgICAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbSgiYXVkaW8ubXAzIiksCiAgICAgICAgICAgICAgIndoaXNwZXItMSIKICAgICAgICAgICAgKTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWxlIjogImdlcm1hbi5tNGEiLAogICAgICAgICAgICAibW9kZWwiOiAid2hpc3Blci0xIgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJ0ZXh0IjogIkhlbGxvLCBteSBuYW1lIGlzIFdvbGZnYW5nIGFuZCBJIGNvbWUgZnJvbSBHZXJtYW55LiBXaGVyZSBhcmUgeW91IGhlYWRpbmcgdG9kYXk/IgogICAgICAgICAgfQoKICAvZW5naW5lcy97ZW5naW5lX2lkfS9zZWFyY2g6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlU2VhcmNoCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIFRoZSBzZWFyY2ggZW5kcG9pbnQgY29tcHV0ZXMgc2ltaWxhcml0eSBzY29yZXMgYmV0d2VlbiBwcm92aWRlZCBxdWVyeSBhbmQgZG9jdW1lbnRzLiBEb2N1bWVudHMgY2FuIGJlIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgQVBJIGlmIHRoZXJlIGFyZSBubyBtb3JlIHRoYW4gMjAwIG9mIHRoZW0uCgogICAgICAgIFRvIGdvIGJleW9uZCB0aGUgMjAwIGRvY3VtZW50IGxpbWl0LCBkb2N1bWVudHMgY2FuIGJlIHByb2Nlc3NlZCBvZmZsaW5lIGFuZCB0aGVuIHVzZWQgZm9yIGVmZmljaWVudCByZXRyaWV2YWwgYXQgcXVlcnkgdGltZS4gV2hlbiBgZmlsZWAgaXMgc2V0LCB0aGUgc2VhcmNoIGVuZHBvaW50IHNlYXJjaGVzIG92ZXIgYWxsIHRoZSBkb2N1bWVudHMgaW4gdGhlIGdpdmVuIGZpbGUgYW5kIHJldHVybnMgdXAgdG8gdGhlIGBtYXhfcmVyYW5rYCBudW1iZXIgb2YgZG9jdW1lbnRzLiBUaGVzZSBkb2N1bWVudHMgd2lsbCBiZSByZXR1cm5lZCBhbG9uZyB3aXRoIHRoZWlyIHNlYXJjaCBzY29yZXMuCgogICAgICAgIFRoZSBzaW1pbGFyaXR5IHNjb3JlIGlzIGEgcG9zaXRpdmUgc2NvcmUgdGhhdCB1c3VhbGx5IHJhbmdlcyBmcm9tIDAgdG8gMzAwIChidXQgY2FuIHNvbWV0aW1lcyBnbyBoaWdoZXIpLCB3aGVyZSBhIHNjb3JlIGFib3ZlIDIwMCB1c3VhbGx5IG1lYW5zIHRoZSBkb2N1bWVudCBpcyBzZW1hbnRpY2FsbHkgc2ltaWxhciB0byB0aGUgcXVlcnkuCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBpbjogcGF0aAogICAgICAgICAgbmFtZTogZW5naW5lX2lkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgZXhhbXBsZTogZGF2aW5jaQogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBJRCBvZiB0aGUgZW5naW5lIHRvIHVzZSBmb3IgdGhpcyByZXF1ZXN0LiAgWW91IGNhbiBzZWxlY3Qgb25lIG9mIGBhZGFgLCBgYmFiYmFnZWAsIGBjdXJpZWAsIG9yIGBkYXZpbmNpYC4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVTZWFyY2hSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZVNlYXJjaFJlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIHNlYXJjaAogICAgICAgIGdyb3VwOiBzZWFyY2hlcwogICAgICAgIHBhdGg6IGNyZWF0ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZW5naW5lcy9kYXZpbmNpL3NlYXJjaCBcCiAgICAgICAgICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAiZG9jdW1lbnRzIjogWyJXaGl0ZSBIb3VzZSIsICJob3NwaXRhbCIsICJzY2hvb2wiXSwKICAgICAgICAgICAgICAicXVlcnkiOiAidGhlIHByZXNpZGVudCIKICAgICAgICAgICAgfScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRW5naW5lKCJkYXZpbmNpIikuc2VhcmNoKAogICAgICAgICAgICAgIGRvY3VtZW50cz1bIldoaXRlIEhvdXNlIiwgImhvc3BpdGFsIiwgInNjaG9vbCJdLAogICAgICAgICAgICAgIHF1ZXJ5PSJ0aGUgcHJlc2lkZW50IgogICAgICAgICAgICApCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY3JlYXRlU2VhcmNoKCJkYXZpbmNpIiwgewogICAgICAgICAgICAgIGRvY3VtZW50czogWyJXaGl0ZSBIb3VzZSIsICJob3NwaXRhbCIsICJzY2hvb2wiXSwKICAgICAgICAgICAgICBxdWVyeTogInRoZSBwcmVzaWRlbnQiLAogICAgICAgICAgICB9KTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkb2N1bWVudHMiOiBbCiAgICAgICAgICAgICAgIldoaXRlIEhvdXNlIiwKICAgICAgICAgICAgICAiaG9zcGl0YWwiLAogICAgICAgICAgICAgICJzY2hvb2wiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJxdWVyeSI6ICJ0aGUgcHJlc2lkZW50IgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDAsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogInNlYXJjaF9yZXN1bHQiLAogICAgICAgICAgICAgICAgInNjb3JlIjogMjE1LjQxMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImRvY3VtZW50IjogMSwKICAgICAgICAgICAgICAgICJvYmplY3QiOiAic2VhcmNoX3Jlc3VsdCIsCiAgICAgICAgICAgICAgICAic2NvcmUiOiA0MC4zMTYKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogInNlYXJjaF9yZXN1bHQiLAogICAgICAgICAgICAgICAgInNjb3JlIjogIDU1LjIyNgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm9iamVjdCI6ICJsaXN0IgogICAgICAgICAgfQoKICAvZmlsZXM6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiBsaXN0RmlsZXMKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogUmV0dXJucyBhIGxpc3Qgb2YgZmlsZXMgdGhhdCBiZWxvbmcgdG8gdGhlIHVzZXIncyBvcmdhbml6YXRpb24uCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTGlzdEZpbGVzUmVzcG9uc2UnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBMaXN0IGZpbGVzCiAgICAgICAgZ3JvdXA6IGZpbGVzCiAgICAgICAgcGF0aDogbGlzdAogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZmlsZXMgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJwogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5GaWxlLmxpc3QoKQogICAgICAgICAgbm9kZS5qczogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLmxpc3RGaWxlcygpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmaWxlLWNjZERackMzaVpWTmlRVmVFQTZaNjZ3ZiIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAgICAgImJ5dGVzIjogMTc1LAogICAgICAgICAgICAgICAgImNyZWF0ZWRfYXQiOiAxNjEzNjc3Mzg1LAogICAgICAgICAgICAgICAgImZpbGVuYW1lIjogInRyYWluLmpzb25sIiwKICAgICAgICAgICAgICAgICJwdXJwb3NlIjogInNlYXJjaCIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmaWxlLVhqR3hTM0tURzB1Tm1OT0szNjJpSnVhMyIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAgICAgImJ5dGVzIjogMTQwLAogICAgICAgICAgICAgICAgImNyZWF0ZWRfYXQiOiAxNjEzNzc5MTIxLAogICAgICAgICAgICAgICAgImZpbGVuYW1lIjogInB1cHB5Lmpzb25sIiwKICAgICAgICAgICAgICAgICJwdXJwb3NlIjogInNlYXJjaCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJvYmplY3QiOiAibGlzdCIKICAgICAgICAgIH0KICAgIHBvc3Q6CiAgICAgIG9wZXJhdGlvbklkOiBjcmVhdGVGaWxlCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IHwKICAgICAgICBVcGxvYWQgYSBmaWxlIHRoYXQgY29udGFpbnMgZG9jdW1lbnQocykgdG8gYmUgdXNlZCBhY3Jvc3MgdmFyaW91cyBlbmRwb2ludHMvZmVhdHVyZXMuIEN1cnJlbnRseSwgdGhlIHNpemUgb2YgYWxsIHRoZSBmaWxlcyB1cGxvYWRlZCBieSBvbmUgb3JnYW5pemF0aW9uIGNhbiBiZSB1cCB0byAxIEdCLiBQbGVhc2UgY29udGFjdCB1cyBpZiB5b3UgbmVlZCB0byBpbmNyZWFzZSB0aGUgc3RvcmFnZSBsaW1pdC4KCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgIG11bHRpcGFydC9mb3JtLWRhdGE6CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlRmlsZVJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvT3BlbkFJRmlsZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IFVwbG9hZCBmaWxlCiAgICAgICAgZ3JvdXA6IGZpbGVzCiAgICAgICAgcGF0aDogdXBsb2FkCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maWxlcyBcCiAgICAgICAgICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkiIFwKICAgICAgICAgICAgICAtRiBwdXJwb3NlPSJmaW5lLXR1bmUiIFwKICAgICAgICAgICAgICAtRiBmaWxlPSdAbXlkYXRhLmpzb25sJwoKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRmlsZS5jcmVhdGUoCiAgICAgICAgICAgICAgZmlsZT1vcGVuKCJteWRhdGEuanNvbmwiLCAicmIiKSwKICAgICAgICAgICAgICBwdXJwb3NlPSdmaW5lLXR1bmUnCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgZnMgPSByZXF1aXJlKCJmcyIpOwogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLmNyZWF0ZUZpbGUoCiAgICAgICAgICAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbSgibXlkYXRhLmpzb25sIiksCiAgICAgICAgICAgICAgImZpbmUtdHVuZSIKICAgICAgICAgICAgKTsKICAgICAgICByZXNwb25zZTogfAogICAgICAgICAgewogICAgICAgICAgICAiaWQiOiAiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiLAogICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAiYnl0ZXMiOiAxNDAsCiAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxMzc3OTEyMSwKICAgICAgICAgICAgImZpbGVuYW1lIjogIm15ZGF0YS5qc29ubCIsCiAgICAgICAgICAgICJwdXJwb3NlIjogImZpbmUtdHVuZSIKICAgICAgICAgIH0KCiAgL2ZpbGVzL3tmaWxlX2lkfToKICAgIGRlbGV0ZToKICAgICAgb3BlcmF0aW9uSWQ6IGRlbGV0ZUZpbGUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogRGVsZXRlIGEgZmlsZS4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaWxlX2lkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgSUQgb2YgdGhlIGZpbGUgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9EZWxldGVGaWxlUmVzcG9uc2UnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBEZWxldGUgZmlsZQogICAgICAgIGdyb3VwOiBmaWxlcwogICAgICAgIHBhdGg6IGRlbGV0ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZmlsZXMvZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMgXAogICAgICAgICAgICAgIC1YIERFTEVURSBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkZpbGUuZGVsZXRlKCJmaWxlLVhqR3hTM0tURzB1Tm1OT0szNjJpSnVhMyIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuZGVsZXRlRmlsZSgiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiKTsKICAgICAgICByZXNwb25zZTogfAogICAgICAgICAgewogICAgICAgICAgICAiaWQiOiAiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiLAogICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAiZGVsZXRlZCI6IHRydWUKICAgICAgICAgIH0KICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IHJldHJpZXZlRmlsZQogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgZmlsZS4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaWxlX2lkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgSUQgb2YgdGhlIGZpbGUgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9PcGVuQUlGaWxlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogUmV0cmlldmUgZmlsZQogICAgICAgIGdyb3VwOiBmaWxlcwogICAgICAgIHBhdGg6IHJldHJpZXZlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maWxlcy9maWxlLVhqR3hTM0tURzB1Tm1OT0szNjJpSnVhMyBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkZpbGUucmV0cmlldmUoImZpbGUtWGpHeFMzS1RHMHVObU5PSzM2MmlKdWEzIikKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5yZXRyaWV2ZUZpbGUoImZpbGUtWGpHeFMzS1RHMHVObU5PSzM2MmlKdWEzIik7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogImZpbGUtWGpHeFMzS1RHMHVObU5PSzM2MmlKdWEzIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJmaWxlIiwKICAgICAgICAgICAgImJ5dGVzIjogMTQwLAogICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTM3Nzk2NTcsCiAgICAgICAgICAgICJmaWxlbmFtZSI6ICJteWRhdGEuanNvbmwiLAogICAgICAgICAgICAicHVycG9zZSI6ICJmaW5lLXR1bmUiCiAgICAgICAgICB9CgogIC9maWxlcy97ZmlsZV9pZH0vY29udGVudDoKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IGRvd25sb2FkRmlsZQogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiBSZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGZpbGUKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaWxlX2lkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgSUQgb2YgdGhlIGZpbGUgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogUmV0cmlldmUgZmlsZSBjb250ZW50CiAgICAgICAgZ3JvdXA6IGZpbGVzCiAgICAgICAgcGF0aDogcmV0cmlldmUtY29udGVudAogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZmlsZXMvZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMvY29udGVudCBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknID4gZmlsZS5qc29ubAogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIGNvbnRlbnQgPSBvcGVuYWkuRmlsZS5kb3dubG9hZCgiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiKQogICAgICAgICAgbm9kZS5qczogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLmRvd25sb2FkRmlsZSgiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiKTsKCiAgL2Fuc3dlcnM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlQW5zd2VyCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIEFuc3dlcnMgdGhlIHNwZWNpZmllZCBxdWVzdGlvbiB1c2luZyB0aGUgcHJvdmlkZWQgZG9jdW1lbnRzIGFuZCBleGFtcGxlcy4KCiAgICAgICAgVGhlIGVuZHBvaW50IGZpcnN0IFtzZWFyY2hlc10oL2RvY3MvYXBpLXJlZmVyZW5jZS9zZWFyY2hlcykgb3ZlciBwcm92aWRlZCBkb2N1bWVudHMgb3IgZmlsZXMgdG8gZmluZCByZWxldmFudCBjb250ZXh0LiBUaGUgcmVsZXZhbnQgY29udGV4dCBpcyBjb21iaW5lZCB3aXRoIHRoZSBwcm92aWRlZCBleGFtcGxlcyBhbmQgcXVlc3Rpb24gdG8gY3JlYXRlIHRoZSBwcm9tcHQgZm9yIFtjb21wbGV0aW9uXSgvZG9jcy9hcGktcmVmZXJlbmNlL2NvbXBsZXRpb25zKS4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVBbnN3ZXJSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUFuc3dlclJlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGFuc3dlcgogICAgICAgIGdyb3VwOiBhbnN3ZXJzCiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9hbnN3ZXJzIFwKICAgICAgICAgICAgICAtWCBQT1NUIFwKICAgICAgICAgICAgICAtSCAiQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSIgXAogICAgICAgICAgICAgIC1IICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIFwKICAgICAgICAgICAgICAtZCAnewogICAgICAgICAgICAgICAgImRvY3VtZW50cyI6IFsiUHVwcHkgQSBpcyBoYXBweS4iLCAiUHVwcHkgQiBpcyBzYWQuIl0sCiAgICAgICAgICAgICAgICAicXVlc3Rpb24iOiAid2hpY2ggcHVwcHkgaXMgaGFwcHk/IiwKICAgICAgICAgICAgICAgICJzZWFyY2hfbW9kZWwiOiAiYWRhIiwKICAgICAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZSIsCiAgICAgICAgICAgICAgICAiZXhhbXBsZXNfY29udGV4dCI6ICJJbiAyMDE3LCBVLlMuIGxpZmUgZXhwZWN0YW5jeSB3YXMgNzguNiB5ZWFycy4iLAogICAgICAgICAgICAgICAgImV4YW1wbGVzIjogW1siV2hhdCBpcyBodW1hbiBsaWZlIGV4cGVjdGFuY3kgaW4gdGhlIFVuaXRlZCBTdGF0ZXM/IiwiNzggeWVhcnMuIl1dLAogICAgICAgICAgICAgICAgIm1heF90b2tlbnMiOiA1LAogICAgICAgICAgICAgICAgInN0b3AiOiBbIlxuIiwgIjx8ZW5kb2Z0ZXh0fD4iXQogICAgICAgICAgICAgIH0nCgogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5BbnN3ZXIuY3JlYXRlKAogICAgICAgICAgICAgIHNlYXJjaF9tb2RlbD0iYWRhIiwKICAgICAgICAgICAgICBtb2RlbD0iY3VyaWUiLAogICAgICAgICAgICAgIHF1ZXN0aW9uPSJ3aGljaCBwdXBweSBpcyBoYXBweT8iLAogICAgICAgICAgICAgIGRvY3VtZW50cz1bIlB1cHB5IEEgaXMgaGFwcHkuIiwgIlB1cHB5IEIgaXMgc2FkLiJdLAogICAgICAgICAgICAgIGV4YW1wbGVzX2NvbnRleHQ9IkluIDIwMTcsIFUuUy4gbGlmZSBleHBlY3RhbmN5IHdhcyA3OC42IHllYXJzLiIsCiAgICAgICAgICAgICAgZXhhbXBsZXM9W1siV2hhdCBpcyBodW1hbiBsaWZlIGV4cGVjdGFuY3kgaW4gdGhlIFVuaXRlZCBTdGF0ZXM/IiwiNzggeWVhcnMuIl1dLAogICAgICAgICAgICAgIG1heF90b2tlbnM9NSwKICAgICAgICAgICAgICBzdG9wPVsiXG4iLCAiPHxlbmRvZnRleHR8PiJdLAogICAgICAgICAgICApCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY3JlYXRlQW5zd2VyKHsKICAgICAgICAgICAgICBzZWFyY2hfbW9kZWw6ICJhZGEiLAogICAgICAgICAgICAgIG1vZGVsOiAiY3VyaWUiLAogICAgICAgICAgICAgIHF1ZXN0aW9uOiAid2hpY2ggcHVwcHkgaXMgaGFwcHk/IiwKICAgICAgICAgICAgICBkb2N1bWVudHM6IFsiUHVwcHkgQSBpcyBoYXBweS4iLCAiUHVwcHkgQiBpcyBzYWQuIl0sCiAgICAgICAgICAgICAgZXhhbXBsZXNfY29udGV4dDogIkluIDIwMTcsIFUuUy4gbGlmZSBleHBlY3RhbmN5IHdhcyA3OC42IHllYXJzLiIsCiAgICAgICAgICAgICAgZXhhbXBsZXM6IFtbIldoYXQgaXMgaHVtYW4gbGlmZSBleHBlY3RhbmN5IGluIHRoZSBVbml0ZWQgU3RhdGVzPyIsIjc4IHllYXJzLiJdXSwKICAgICAgICAgICAgICBtYXhfdG9rZW5zOiA1LAogICAgICAgICAgICAgIHN0b3A6IFsiXG4iLCAiPHxlbmRvZnRleHR8PiJdLAogICAgICAgICAgICB9KTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkb2N1bWVudHMiOiBbIlB1cHB5IEEgaXMgaGFwcHkuIiwgIlB1cHB5IEIgaXMgc2FkLiJdLAogICAgICAgICAgICAicXVlc3Rpb24iOiAid2hpY2ggcHVwcHkgaXMgaGFwcHk/IiwKICAgICAgICAgICAgInNlYXJjaF9tb2RlbCI6ICJhZGEiLAogICAgICAgICAgICAibW9kZWwiOiAiY3VyaWUiLAogICAgICAgICAgICAiZXhhbXBsZXNfY29udGV4dCI6ICJJbiAyMDE3LCBVLlMuIGxpZmUgZXhwZWN0YW5jeSB3YXMgNzguNiB5ZWFycy4iLAogICAgICAgICAgICAiZXhhbXBsZXMiOiBbWyJXaGF0IGlzIGh1bWFuIGxpZmUgZXhwZWN0YW5jeSBpbiB0aGUgVW5pdGVkIFN0YXRlcz8iLCI3OCB5ZWFycy4iXV0sCiAgICAgICAgICAgICJtYXhfdG9rZW5zIjogNSwKICAgICAgICAgICAgInN0b3AiOiBbIlxuIiwgIjx8ZW5kb2Z0ZXh0fD4iXQogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJhbnN3ZXJzIjogWwogICAgICAgICAgICAgICJwdXBweSBBLiIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImNvbXBsZXRpb24iOiAiY21wbC0yZXVWYTFrbUtVdUxwU1g2MDBNNDExMjVNbzlOSSIsCiAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZToyMDIwLTA1LTAzIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJhbnN3ZXIiLAogICAgICAgICAgICAic2VhcmNoX21vZGVsIjogImFkYSIsCiAgICAgICAgICAgICJzZWxlY3RlZF9kb2N1bWVudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImRvY3VtZW50IjogMCwKICAgICAgICAgICAgICAgICJ0ZXh0IjogIlB1cHB5IEEgaXMgaGFwcHkuICIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDEsCiAgICAgICAgICAgICAgICAidGV4dCI6ICJQdXBweSBCIGlzIHNhZC4gIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgICAgfQoKICAvY2xhc3NpZmljYXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUNsYXNzaWZpY2F0aW9uCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIENsYXNzaWZpZXMgdGhlIHNwZWNpZmllZCBgcXVlcnlgIHVzaW5nIHByb3ZpZGVkIGV4YW1wbGVzLgoKICAgICAgICBUaGUgZW5kcG9pbnQgZmlyc3QgW3NlYXJjaGVzXSgvZG9jcy9hcGktcmVmZXJlbmNlL3NlYXJjaGVzKSBvdmVyIHRoZSBsYWJlbGVkIGV4YW1wbGVzCiAgICAgICAgdG8gc2VsZWN0IHRoZSBvbmVzIG1vc3QgcmVsZXZhbnQgZm9yIHRoZSBwYXJ0aWN1bGFyIHF1ZXJ5LiBUaGVuLCB0aGUgcmVsZXZhbnQgZXhhbXBsZXMKICAgICAgICBhcmUgY29tYmluZWQgd2l0aCB0aGUgcXVlcnkgdG8gY29uc3RydWN0IGEgcHJvbXB0IHRvIHByb2R1Y2UgdGhlIGZpbmFsIGxhYmVsIHZpYSB0aGUKICAgICAgICBbY29tcGxldGlvbnNdKC9kb2NzL2FwaS1yZWZlcmVuY2UvY29tcGxldGlvbnMpIGVuZHBvaW50LgoKICAgICAgICBMYWJlbGVkIGV4YW1wbGVzIGNhbiBiZSBwcm92aWRlZCB2aWEgYW4gdXBsb2FkZWQgYGZpbGVgLCBvciBleHBsaWNpdGx5IGxpc3RlZCBpbiB0aGUKICAgICAgICByZXF1ZXN0IHVzaW5nIHRoZSBgZXhhbXBsZXNgIHBhcmFtZXRlciBmb3IgcXVpY2sgdGVzdHMgYW5kIHNtYWxsIHNjYWxlIHVzZSBjYXNlcy4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVDbGFzc2lmaWNhdGlvblJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlQ2xhc3NpZmljYXRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSBjbGFzc2lmaWNhdGlvbgogICAgICAgIGdyb3VwOiBjbGFzc2lmaWNhdGlvbnMKICAgICAgICBwYXRoOiBjcmVhdGUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2NsYXNzaWZpY2F0aW9ucyBcCiAgICAgICAgICAgICAgLVggUE9TVCBcCiAgICAgICAgICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkiIFwKICAgICAgICAgICAgICAtSCAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAgICJleGFtcGxlcyI6IFsKICAgICAgICAgICAgICAgICAgWyJBIGhhcHB5IG1vbWVudCIsICJQb3NpdGl2ZSJdLAogICAgICAgICAgICAgICAgICBbIkkgYW0gc2FkLiIsICJOZWdhdGl2ZSJdLAogICAgICAgICAgICAgICAgICBbIkkgYW0gZmVlbGluZyBhd2Vzb21lIiwgIlBvc2l0aXZlIl1dLAogICAgICAgICAgICAgICAgInF1ZXJ5IjogIkl0IGlzIGEgcmFpbmluZyBkYXkgOigiLAogICAgICAgICAgICAgICAgInNlYXJjaF9tb2RlbCI6ICJhZGEiLAogICAgICAgICAgICAgICAgIm1vZGVsIjogImN1cmllIiwKICAgICAgICAgICAgICAgICJsYWJlbHMiOlsiUG9zaXRpdmUiLCAiTmVnYXRpdmUiLCAiTmV1dHJhbCJdCiAgICAgICAgICAgICAgfScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuQ2xhc3NpZmljYXRpb24uY3JlYXRlKAogICAgICAgICAgICAgIHNlYXJjaF9tb2RlbD0iYWRhIiwKICAgICAgICAgICAgICBtb2RlbD0iY3VyaWUiLAogICAgICAgICAgICAgIGV4YW1wbGVzPVsKICAgICAgICAgICAgICAgIFsiQSBoYXBweSBtb21lbnQiLCAiUG9zaXRpdmUiXSwKICAgICAgICAgICAgICAgIFsiSSBhbSBzYWQuIiwgIk5lZ2F0aXZlIl0sCiAgICAgICAgICAgICAgICBbIkkgYW0gZmVlbGluZyBhd2Vzb21lIiwgIlBvc2l0aXZlIl0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIHF1ZXJ5PSJJdCBpcyBhIHJhaW5pbmcgZGF5IDooIiwKICAgICAgICAgICAgICBsYWJlbHM9WyJQb3NpdGl2ZSIsICJOZWdhdGl2ZSIsICJOZXV0cmFsIl0sCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVDbGFzc2lmaWNhdGlvbih7CiAgICAgICAgICAgICAgc2VhcmNoX21vZGVsOiAiYWRhIiwKICAgICAgICAgICAgICBtb2RlbDogImN1cmllIiwKICAgICAgICAgICAgICBleGFtcGxlczogWwogICAgICAgICAgICAgICAgWyJBIGhhcHB5IG1vbWVudCIsICJQb3NpdGl2ZSJdLAogICAgICAgICAgICAgICAgWyJJIGFtIHNhZC4iLCAiTmVnYXRpdmUiXSwKICAgICAgICAgICAgICAgIFsiSSBhbSBmZWVsaW5nIGF3ZXNvbWUiLCAiUG9zaXRpdmUiXQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcXVlcnk6Ikl0IGlzIGEgcmFpbmluZyBkYXkgOigiLAogICAgICAgICAgICAgIGxhYmVsczogWyJQb3NpdGl2ZSIsICJOZWdhdGl2ZSIsICJOZXV0cmFsIl0sCiAgICAgICAgICAgIH0pOwogICAgICAgIHBhcmFtZXRlcnM6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImV4YW1wbGVzIjogWwogICAgICAgICAgICAgIFsiQSBoYXBweSBtb21lbnQiLCAiUG9zaXRpdmUiXSwKICAgICAgICAgICAgICBbIkkgYW0gc2FkLiIsICJOZWdhdGl2ZSJdLAogICAgICAgICAgICAgIFsiSSBhbSBmZWVsaW5nIGF3ZXNvbWUiLCAiUG9zaXRpdmUiXQogICAgICAgICAgICBdLAogICAgICAgICAgICAibGFiZWxzIjogWyJQb3NpdGl2ZSIsICJOZWdhdGl2ZSIsICJOZXV0cmFsIl0sCiAgICAgICAgICAgICJxdWVyeSI6ICJJdCBpcyBhIHJhaW5pbmcgZGF5IDooIiwKICAgICAgICAgICAgInNlYXJjaF9tb2RlbCI6ICJhZGEiLAogICAgICAgICAgICAibW9kZWwiOiAiY3VyaWUiCiAgICAgICAgICB9CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbXBsZXRpb24iOiAiY21wbC0yZXVON2xVVlowZDRSS2JRcVJWNzlJaWlFNk0xZiIsCiAgICAgICAgICAgICJsYWJlbCI6ICJOZWdhdGl2ZSIsCiAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZToyMDIwLTA1LTAzIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJjbGFzc2lmaWNhdGlvbiIsCiAgICAgICAgICAgICJzZWFyY2hfbW9kZWwiOiAiYWRhIiwKICAgICAgICAgICAgInNlbGVjdGVkX2V4YW1wbGVzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDEsCiAgICAgICAgICAgICAgICAibGFiZWwiOiAiTmVnYXRpdmUiLAogICAgICAgICAgICAgICAgInRleHQiOiAiSSBhbSBzYWQuIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImRvY3VtZW50IjogMCwKICAgICAgICAgICAgICAgICJsYWJlbCI6ICJQb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAidGV4dCI6ICJBIGhhcHB5IG1vbWVudCIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDIsCiAgICAgICAgICAgICAgICAibGFiZWwiOiAiUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgInRleHQiOiAiSSBhbSBmZWVsaW5nIGF3ZXNvbWUiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9CgogIC9maW5lLXR1bmVzOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUZpbmVUdW5lCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IHwKICAgICAgICBDcmVhdGVzIGEgam9iIHRoYXQgZmluZS10dW5lcyBhIHNwZWNpZmllZCBtb2RlbCBmcm9tIGEgZ2l2ZW4gZGF0YXNldC4KCiAgICAgICAgUmVzcG9uc2UgaW5jbHVkZXMgZGV0YWlscyBvZiB0aGUgZW5xdWV1ZWQgam9iIGluY2x1ZGluZyBqb2Igc3RhdHVzIGFuZCB0aGUgbmFtZSBvZiB0aGUgZmluZS10dW5lZCBtb2RlbHMgb25jZSBjb21wbGV0ZS4KCiAgICAgICAgW0xlYXJuIG1vcmUgYWJvdXQgRmluZS10dW5pbmddKC9kb2NzL2d1aWRlcy9maW5lLXR1bmluZykKICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVGaW5lVHVuZVJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvRmluZVR1bmUnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBDcmVhdGUgZmluZS10dW5lCiAgICAgICAgZ3JvdXA6IGZpbmUtdHVuZXMKICAgICAgICBwYXRoOiBjcmVhdGUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2ZpbmUtdHVuZXMgXAogICAgICAgICAgICAgIC1YIFBPU1QgXAogICAgICAgICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAgICAgICAtSCAiQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSIgXAogICAgICAgICAgICAgIC1kICd7CiAgICAgICAgICAgICAgInRyYWluaW5nX2ZpbGUiOiAiZmlsZS1YR2ludWpibEhQd0dMU3p0ejhjUFM4WFkiCiAgICAgICAgICAgIH0nCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkZpbmVUdW5lLmNyZWF0ZSh0cmFpbmluZ19maWxlPSJmaWxlLVhHaW51amJsSFB3R0xTenR6OGNQUzhYWSIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY3JlYXRlRmluZVR1bmUoewogICAgICAgICAgICAgIHRyYWluaW5nX2ZpbGU6ICJmaWxlLVhHaW51amJsSFB3R0xTenR6OGNQUzhYWSIsCiAgICAgICAgICAgIH0pOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJpZCI6ICJmdC1BRjFXb1JxZDNhSkFIc3FjOU5ZN2lMOEYiLAogICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZSIsCiAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZSIsCiAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZS1ldmVudCIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTQ4MDczNTIsCiAgICAgICAgICAgICAgICAibGV2ZWwiOiAiaW5mbyIsCiAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJKb2IgZW5xdWV1ZWQuIFdhaXRpbmcgZm9yIGpvYnMgYWhlYWQgdG8gY29tcGxldGUuIFF1ZXVlIG51bWJlcjogMC4iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiZmluZV90dW5lZF9tb2RlbCI6IG51bGwsCiAgICAgICAgICAgICJoeXBlcnBhcmFtcyI6IHsKICAgICAgICAgICAgICAiYmF0Y2hfc2l6ZSI6IDQsCiAgICAgICAgICAgICAgImxlYXJuaW5nX3JhdGVfbXVsdGlwbGllciI6IDAuMSwKICAgICAgICAgICAgICAibl9lcG9jaHMiOiA0LAogICAgICAgICAgICAgICJwcm9tcHRfbG9zc193ZWlnaHQiOiAwLjEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJvcmdhbml6YXRpb25faWQiOiAib3JnLS4uLiIsCiAgICAgICAgICAgICJyZXN1bHRfZmlsZXMiOiBbXSwKICAgICAgICAgICAgInN0YXR1cyI6ICJwZW5kaW5nIiwKICAgICAgICAgICAgInZhbGlkYXRpb25fZmlsZXMiOiBbXSwKICAgICAgICAgICAgInRyYWluaW5nX2ZpbGVzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmaWxlLVhHaW51amJsSFB3R0xTenR6OGNQUzhYWSIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAgICAgImJ5dGVzIjogMTU0NzI3NiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxMDA2MjI4MSwKICAgICAgICAgICAgICAgICJmaWxlbmFtZSI6ICJteS1kYXRhLXRyYWluLmpzb25sIiwKICAgICAgICAgICAgICAgICJwdXJwb3NlIjogImZpbmUtdHVuZS10cmFpbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cGRhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgIH0KICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IGxpc3RGaW5lVHVuZXMKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIExpc3QgeW91ciBvcmdhbml6YXRpb24ncyBmaW5lLXR1bmluZyBqb2JzCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTGlzdEZpbmVUdW5lc1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogTGlzdCBmaW5lLXR1bmVzCiAgICAgICAgZ3JvdXA6IGZpbmUtdHVuZXMKICAgICAgICBwYXRoOiBsaXN0CiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maW5lLXR1bmVzIFwKICAgICAgICAgICAgICAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRmluZVR1bmUubGlzdCgpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkubGlzdEZpbmVUdW5lcygpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJvYmplY3QiOiAibGlzdCIsCiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmdC1BRjFXb1JxZDNhSkFIc3FjOU5ZN2lMOEYiLAogICAgICAgICAgICAgICAgIm9iamVjdCI6ICJmaW5lLXR1bmUiLAogICAgICAgICAgICAgICAgIm1vZGVsIjogImN1cmllIiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgICAgICJmaW5lX3R1bmVkX21vZGVsIjogbnVsbCwKICAgICAgICAgICAgICAgICJoeXBlcnBhcmFtcyI6IHsgLi4uIH0sCiAgICAgICAgICAgICAgICAib3JnYW5pemF0aW9uX2lkIjogIm9yZy0uLi4iLAogICAgICAgICAgICAgICAgInJlc3VsdF9maWxlcyI6IFtdLAogICAgICAgICAgICAgICAgInN0YXR1cyI6ICJwZW5kaW5nIiwKICAgICAgICAgICAgICAgICJ2YWxpZGF0aW9uX2ZpbGVzIjogW10sCiAgICAgICAgICAgICAgICAidHJhaW5pbmdfZmlsZXMiOiBbIHsgLi4uIH0gXSwKICAgICAgICAgICAgICAgICJ1cGRhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsgLi4uIH0sCiAgICAgICAgICAgICAgeyAuLi4gfQogICAgICAgICAgICBdCiAgICAgICAgICB9CgogIC9maW5lLXR1bmVzL3tmaW5lX3R1bmVfaWR9OgogICAgZ2V0OgogICAgICBvcGVyYXRpb25JZDogcmV0cmlldmVGaW5lVHVuZQogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiB8CiAgICAgICAgR2V0cyBpbmZvIGFib3V0IHRoZSBmaW5lLXR1bmUgam9iLgoKICAgICAgICBbTGVhcm4gbW9yZSBhYm91dCBGaW5lLXR1bmluZ10oL2RvY3MvZ3VpZGVzL2ZpbmUtdHVuaW5nKQogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gaW46IHBhdGgKICAgICAgICAgIG5hbWU6IGZpbmVfdHVuZV9pZAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIGV4YW1wbGU6CiAgICAgICAgICAgICAgZnQtQUYxV29ScWQzYUpBSHNxYzlOWTdpTDhGCiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgSUQgb2YgdGhlIGZpbmUtdHVuZSBqb2IKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9GaW5lVHVuZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IFJldHJpZXZlIGZpbmUtdHVuZQogICAgICAgIGdyb3VwOiBmaW5lLXR1bmVzCiAgICAgICAgcGF0aDogcmV0cmlldmUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2ZpbmUtdHVuZXMvZnQtQUYxV29ScWQzYUpBSHNxYzlOWTdpTDhGIFwKICAgICAgICAgICAgICAtSCAiQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSIKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRmluZVR1bmUucmV0cmlldmUoaWQ9ImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkucmV0cmlldmVGaW5lVHVuZSgiZnQtQUYxV29ScWQzYUpBSHNxYzlOWTdpTDhGIik7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIsCiAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lIiwKICAgICAgICAgICAgIm1vZGVsIjogImN1cmllIiwKICAgICAgICAgICAgImNyZWF0ZWRfYXQiOiAxNjE0ODA3MzUyLAogICAgICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBlbnF1ZXVlZC4gV2FpdGluZyBmb3Igam9icyBhaGVhZCB0byBjb21wbGV0ZS4gUXVldWUgbnVtYmVyOiAwLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1NiwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBzdGFydGVkLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzg2MSwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIlVwbG9hZGVkIHNuYXBzaG90OiBjdXJpZTpmdC1hY21lY28tMjAyMS0wMy0wMy0yMS00NC0yMC4iCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZS1ldmVudCIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTQ4MDc4NjQsCiAgICAgICAgICAgICAgICAibGV2ZWwiOiAiaW5mbyIsCiAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJVcGxvYWRlZCByZXN1bHQgZmlsZXM6IGZpbGUtUVFtNlpwcWROd0FhVkMzYVN6NXNXd0xULiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzg2NCwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBzdWNjZWVkZWQuIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZpbmVfdHVuZWRfbW9kZWwiOiAiY3VyaWU6ZnQtYWNtZWNvLTIwMjEtMDMtMDMtMjEtNDQtMjAiLAogICAgICAgICAgICAiaHlwZXJwYXJhbXMiOiB7CiAgICAgICAgICAgICAgImJhdGNoX3NpemUiOiA0LAogICAgICAgICAgICAgICJsZWFybmluZ19yYXRlX211bHRpcGxpZXIiOiAwLjEsCiAgICAgICAgICAgICAgIm5fZXBvY2hzIjogNCwKICAgICAgICAgICAgICAicHJvbXB0X2xvc3Nfd2VpZ2h0IjogMC4xLAogICAgICAgICAgICB9LAogICAgICAgICAgICAib3JnYW5pemF0aW9uX2lkIjogIm9yZy0uLi4iLAogICAgICAgICAgICAicmVzdWx0X2ZpbGVzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmaWxlLVFRbTZacHFkTndBYVZDM2FTejVzV3dMVCIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAgICAgImJ5dGVzIjogODE1MDksCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTQ4MDc4NjMsCiAgICAgICAgICAgICAgICAiZmlsZW5hbWUiOiAiY29tcGlsZWRfcmVzdWx0cy5jc3YiLAogICAgICAgICAgICAgICAgInB1cnBvc2UiOiAiZmluZS10dW5lLXJlc3VsdHMiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAic3RhdHVzIjogInN1Y2NlZWRlZCIsCiAgICAgICAgICAgICJ2YWxpZGF0aW9uX2ZpbGVzIjogW10sCiAgICAgICAgICAgICJ0cmFpbmluZ19maWxlcyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiAiZmlsZS1YR2ludWpibEhQd0dMU3p0ejhjUFM4WFkiLAogICAgICAgICAgICAgICAgIm9iamVjdCI6ICJmaWxlIiwKICAgICAgICAgICAgICAgICJieXRlcyI6IDE1NDcyNzYsCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTAwNjIyODEsCiAgICAgICAgICAgICAgICAiZmlsZW5hbWUiOiAibXktZGF0YS10cmFpbi5qc29ubCIsCiAgICAgICAgICAgICAgICAicHVycG9zZSI6ICJmaW5lLXR1bmUtdHJhaW4iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAidXBkYXRlZF9hdCI6IDE2MTQ4MDc4NjUsCiAgICAgICAgICB9CgogIC9maW5lLXR1bmVzL3tmaW5lX3R1bmVfaWR9L2NhbmNlbDoKICAgIHBvc3Q6CiAgICAgIG9wZXJhdGlvbklkOiBjYW5jZWxGaW5lVHVuZQogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiB8CiAgICAgICAgSW1tZWRpYXRlbHkgY2FuY2VsIGEgZmluZS10dW5lIGpvYi4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaW5lX3R1bmVfaWQKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBleGFtcGxlOgogICAgICAgICAgICAgIGZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIElEIG9mIHRoZSBmaW5lLXR1bmUgam9iIHRvIGNhbmNlbAogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ZpbmVUdW5lJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ2FuY2VsIGZpbmUtdHVuZQogICAgICAgIGdyb3VwOiBmaW5lLXR1bmVzCiAgICAgICAgcGF0aDogY2FuY2VsCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maW5lLXR1bmVzL2Z0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4Ri9jYW5jZWwgXAogICAgICAgICAgICAgIC1YIFBPU1QgXAogICAgICAgICAgICAgIC1IICJBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZIgogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5GaW5lVHVuZS5jYW5jZWwoaWQ9ImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY2FuY2VsRmluZVR1bmUoImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJpZCI6ICJmdC14aHJwQmJ2VlV6WUdvOG9VTzFGWTRuSTciLAogICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZSIsCiAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZSIsCiAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzc3MCwKICAgICAgICAgICAgImV2ZW50cyI6IFsgeyAuLi4gfSBdLAogICAgICAgICAgICAiZmluZV90dW5lZF9tb2RlbCI6IG51bGwsCiAgICAgICAgICAgICJoeXBlcnBhcmFtcyI6IHsgLi4uIH0sCiAgICAgICAgICAgICJvcmdhbml6YXRpb25faWQiOiAib3JnLS4uLiIsCiAgICAgICAgICAgICJyZXN1bHRfZmlsZXMiOiBbXSwKICAgICAgICAgICAgInN0YXR1cyI6ICJjYW5jZWxsZWQiLAogICAgICAgICAgICAidmFsaWRhdGlvbl9maWxlcyI6IFtdLAogICAgICAgICAgICAidHJhaW5pbmdfZmlsZXMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjogImZpbGUtWEdpbnVqYmxIUHdHTFN6dHo4Y1BTOFhZIiwKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmlsZSIsCiAgICAgICAgICAgICAgICAiYnl0ZXMiOiAxNTQ3Mjc2LAogICAgICAgICAgICAgICAgImNyZWF0ZWRfYXQiOiAxNjEwMDYyMjgxLAogICAgICAgICAgICAgICAgImZpbGVuYW1lIjogIm15LWRhdGEtdHJhaW4uanNvbmwiLAogICAgICAgICAgICAgICAgInB1cnBvc2UiOiAiZmluZS10dW5lLXRyYWluIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInVwZGF0ZWRfYXQiOiAxNjE0ODA3Nzg5LAogICAgICAgICAgfQoKICAvZmluZS10dW5lcy97ZmluZV90dW5lX2lkfS9ldmVudHM6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiBsaXN0RmluZVR1bmVFdmVudHMKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIEdldCBmaW5lLWdyYWluZWQgc3RhdHVzIHVwZGF0ZXMgZm9yIGEgZmluZS10dW5lIGpvYi4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaW5lX3R1bmVfaWQKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBleGFtcGxlOgogICAgICAgICAgICAgIGZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIElEIG9mIHRoZSBmaW5lLXR1bmUgam9iIHRvIGdldCBldmVudHMgZm9yLgogICAgICAgIC0gaW46IHF1ZXJ5CiAgICAgICAgICBuYW1lOiBzdHJlYW0KICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBXaGV0aGVyIHRvIHN0cmVhbSBldmVudHMgZm9yIHRoZSBmaW5lLXR1bmUgam9iLiBJZiBzZXQgdG8gdHJ1ZSwKICAgICAgICAgICAgZXZlbnRzIHdpbGwgYmUgc2VudCBhcyBkYXRhLW9ubHkKICAgICAgICAgICAgW3NlcnZlci1zZW50IGV2ZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1NlcnZlci1zZW50X2V2ZW50cy9Vc2luZ19zZXJ2ZXItc2VudF9ldmVudHMjRXZlbnRfc3RyZWFtX2Zvcm1hdCkKICAgICAgICAgICAgYXMgdGhleSBiZWNvbWUgYXZhaWxhYmxlLiBUaGUgc3RyZWFtIHdpbGwgdGVybWluYXRlIHdpdGggYQogICAgICAgICAgICBgZGF0YTogW0RPTkVdYCBtZXNzYWdlIHdoZW4gdGhlIGpvYiBpcyBmaW5pc2hlZCAoc3VjY2VlZGVkLCBjYW5jZWxsZWQsCiAgICAgICAgICAgIG9yIGZhaWxlZCkuCgogICAgICAgICAgICBJZiBzZXQgdG8gZmFsc2UsIG9ubHkgZXZlbnRzIGdlbmVyYXRlZCBzbyBmYXIgd2lsbCBiZSByZXR1cm5lZC4KICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9MaXN0RmluZVR1bmVFdmVudHNSZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IExpc3QgZmluZS10dW5lIGV2ZW50cwogICAgICAgIGdyb3VwOiBmaW5lLXR1bmVzCiAgICAgICAgcGF0aDogZXZlbnRzCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maW5lLXR1bmVzL2Z0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4Ri9ldmVudHMgXAogICAgICAgICAgICAgIC1IICJBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZIgogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5GaW5lVHVuZS5saXN0X2V2ZW50cyhpZD0iZnQtQUYxV29ScWQzYUpBSHNxYzlOWTdpTDhGIikKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5saXN0RmluZVR1bmVFdmVudHMoImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJvYmplY3QiOiAibGlzdCIsCiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBlbnF1ZXVlZC4gV2FpdGluZyBmb3Igam9icyBhaGVhZCB0byBjb21wbGV0ZS4gUXVldWUgbnVtYmVyOiAwLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1NiwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBzdGFydGVkLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzg2MSwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIlVwbG9hZGVkIHNuYXBzaG90OiBjdXJpZTpmdC1hY21lY28tMjAyMS0wMy0wMy0yMS00NC0yMC4iCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZS1ldmVudCIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTQ4MDc4NjQsCiAgICAgICAgICAgICAgICAibGV2ZWwiOiAiaW5mbyIsCiAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJVcGxvYWRlZCByZXN1bHQgZmlsZXM6IGZpbGUtUVFtNlpwcWROd0FhVkMzYVN6NXNXd0xULiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzg2NCwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBzdWNjZWVkZWQuIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgICAgfQoKICAvbW9kZWxzOgogICAgZ2V0OgogICAgICBvcGVyYXRpb25JZDogbGlzdE1vZGVscwogICAgICB0YWdzOgogICAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IExpc3RzIHRoZSBjdXJyZW50bHkgYXZhaWxhYmxlIG1vZGVscywgYW5kIHByb3ZpZGVzIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggb25lIHN1Y2ggYXMgdGhlIG93bmVyIGFuZCBhdmFpbGFiaWxpdHkuCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTGlzdE1vZGVsc1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogTGlzdCBtb2RlbHMKICAgICAgICBncm91cDogbW9kZWxzCiAgICAgICAgcGF0aDogbGlzdAogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvbW9kZWxzIFwKICAgICAgICAgICAgICAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuTW9kZWwubGlzdCgpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkubGlzdE1vZGVscygpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJtb2RlbC1pZC0wIiwKICAgICAgICAgICAgICAgICJvYmplY3QiOiAibW9kZWwiLAogICAgICAgICAgICAgICAgIm93bmVkX2J5IjogIm9yZ2FuaXphdGlvbi1vd25lciIsCiAgICAgICAgICAgICAgICAicGVybWlzc2lvbiI6IFsuLi5dCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiAibW9kZWwtaWQtMSIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogIm1vZGVsIiwKICAgICAgICAgICAgICAgICJvd25lZF9ieSI6ICJvcmdhbml6YXRpb24tb3duZXIiLAogICAgICAgICAgICAgICAgInBlcm1pc3Npb24iOiBbLi4uXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjogIm1vZGVsLWlkLTIiLAogICAgICAgICAgICAgICAgIm9iamVjdCI6ICJtb2RlbCIsCiAgICAgICAgICAgICAgICAib3duZWRfYnkiOiAib3BlbmFpIiwKICAgICAgICAgICAgICAgICJwZXJtaXNzaW9uIjogWy4uLl0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICAib2JqZWN0IjogImxpc3QiCiAgICAgICAgICB9CgogIC9tb2RlbHMve21vZGVsfToKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IHJldHJpZXZlTW9kZWwKICAgICAgdGFnczoKICAgICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiBSZXRyaWV2ZXMgYSBtb2RlbCBpbnN0YW5jZSwgcHJvdmlkaW5nIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtb2RlbCBzdWNoIGFzIHRoZSBvd25lciBhbmQgcGVybWlzc2lvbmluZy4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBtb2RlbAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICMgaWRlYWxseSB0aGlzIHdpbGwgYmUgYW4gYWN0dWFsIElELCBzbyB0aGlzIHdpbGwgYWx3YXlzIHdvcmsgZnJvbSBicm93c2VyCiAgICAgICAgICAgIGV4YW1wbGU6CiAgICAgICAgICAgICAgdGV4dC1kYXZpbmNpLTAwMQogICAgICAgICAgZGVzY3JpcHRpb246CiAgICAgICAgICAgIFRoZSBJRCBvZiB0aGUgbW9kZWwgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Nb2RlbCcKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IFJldHJpZXZlIG1vZGVsCiAgICAgICAgZ3JvdXA6IG1vZGVscwogICAgICAgIHBhdGg6IHJldHJpZXZlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9tb2RlbHMvVkFSX21vZGVsX2lkIFwKICAgICAgICAgICAgICAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuTW9kZWwucmV0cmlldmUoIlZBUl9tb2RlbF9pZCIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkucmV0cmlldmVNb2RlbCgiVkFSX21vZGVsX2lkIik7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogIlZBUl9tb2RlbF9pZCIsCiAgICAgICAgICAgICJvYmplY3QiOiAibW9kZWwiLAogICAgICAgICAgICAib3duZWRfYnkiOiAib3BlbmFpIiwKICAgICAgICAgICAgInBlcm1pc3Npb24iOiBbLi4uXQogICAgICAgICAgfQogICAgZGVsZXRlOgogICAgICBvcGVyYXRpb25JZDogZGVsZXRlTW9kZWwKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogRGVsZXRlIGEgZmluZS10dW5lZCBtb2RlbC4gWW91IG11c3QgaGF2ZSB0aGUgT3duZXIgcm9sZSBpbiB5b3VyIG9yZ2FuaXphdGlvbi4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBtb2RlbAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIGV4YW1wbGU6IGN1cmllOmZ0LWFjbWVjby0yMDIxLTAzLTAzLTIxLTQ0LTIwCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIG1vZGVsIHRvIGRlbGV0ZQogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0RlbGV0ZU1vZGVsUmVzcG9uc2UnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBEZWxldGUgZmluZS10dW5lIG1vZGVsCiAgICAgICAgZ3JvdXA6IGZpbmUtdHVuZXMKICAgICAgICBwYXRoOiBkZWxldGUtbW9kZWwKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL21vZGVscy9jdXJpZTpmdC1hY21lY28tMjAyMS0wMy0wMy0yMS00NC0yMCBcCiAgICAgICAgICAgICAgLVggREVMRVRFIFwKICAgICAgICAgICAgICAtSCAiQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSIKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuTW9kZWwuZGVsZXRlKCJjdXJpZTpmdC1hY21lY28tMjAyMS0wMy0wMy0yMS00NC0yMCIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuZGVsZXRlTW9kZWwoJ2N1cmllOmZ0LWFjbWVjby0yMDIxLTAzLTAzLTIxLTQ0LTIwJyk7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogImN1cmllOmZ0LWFjbWVjby0yMDIxLTAzLTAzLTIxLTQ0LTIwIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJtb2RlbCIsCiAgICAgICAgICAgICJkZWxldGVkIjogdHJ1ZQogICAgICAgICAgfQoKICAvbW9kZXJhdGlvbnM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlTW9kZXJhdGlvbgogICAgICB0YWdzOgogICAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENsYXNzaWZpZXMgaWYgdGV4dCB2aW9sYXRlcyBPcGVuQUkncyBDb250ZW50IFBvbGljeQogICAgICByZXF1ZXN0Qm9keToKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZU1vZGVyYXRpb25SZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZU1vZGVyYXRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSBtb2RlcmF0aW9uCiAgICAgICAgZ3JvdXA6IG1vZGVyYXRpb25zCiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9tb2RlcmF0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAiaW5wdXQiOiAiSSB3YW50IHRvIGtpbGwgdGhlbS4iCiAgICAgICAgICAgIH0nCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLk1vZGVyYXRpb24uY3JlYXRlKAogICAgICAgICAgICAgIGlucHV0PSJJIHdhbnQgdG8ga2lsbCB0aGVtLiIsCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVNb2RlcmF0aW9uKHsKICAgICAgICAgICAgICBpbnB1dDogIkkgd2FudCB0byBraWxsIHRoZW0uIiwKICAgICAgICAgICAgfSk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAiaW5wdXQiOiAiSSB3YW50IHRvIGtpbGwgdGhlbS4iCiAgICAgICAgICB9CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogIm1vZHItNU1Xb0xPIiwKICAgICAgICAgICAgIm1vZGVsIjogInRleHQtbW9kZXJhdGlvbi0wMDEiLAogICAgICAgICAgICAicmVzdWx0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY2F0ZWdvcmllcyI6IHsKICAgICAgICAgICAgICAgICAgImhhdGUiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgImhhdGUvdGhyZWF0ZW5pbmciOiB0cnVlLAogICAgICAgICAgICAgICAgICAic2VsZi1oYXJtIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICJzZXh1YWwiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgInNleHVhbC9taW5vcnMiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgInZpb2xlbmNlIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgInZpb2xlbmNlL2dyYXBoaWMiOiBmYWxzZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJjYXRlZ29yeV9zY29yZXMiOiB7CiAgICAgICAgICAgICAgICAgICJoYXRlIjogMC4yMjcxNDEwNTI0ODQ1MTIzMywKICAgICAgICAgICAgICAgICAgImhhdGUvdGhyZWF0ZW5pbmciOiAwLjQxMzI0NDc4Mzg3ODMyNjQsCiAgICAgICAgICAgICAgICAgICJzZWxmLWhhcm0iOiAwLjAwNTIzMjM5MTg3ODk2MjUxNywKICAgICAgICAgICAgICAgICAgInNleHVhbCI6IDAuMDE0MDczNDEwMDcxNDMyNTksCiAgICAgICAgICAgICAgICAgICJzZXh1YWwvbWlub3JzIjogMC4wMDM4NTIyMjU4NDAwOTE3MDUzLAogICAgICAgICAgICAgICAgICAidmlvbGVuY2UiOiAwLjkyMjMxNzc0MzMwMTM5MTYsCiAgICAgICAgICAgICAgICAgICJ2aW9sZW5jZS9ncmFwaGljIjogMC4wMzY4NjUxOTcxMjIwOTcwMTUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiZmxhZ2dlZCI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIExpc3RFbmdpbmVzUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGRhdGE6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9FbmdpbmUnCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBkYXRhCgogICAgTGlzdE1vZGVsc1Jlc3BvbnNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBkYXRhOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTW9kZWwnCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBkYXRhCgogICAgRGVsZXRlTW9kZWxSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBkZWxldGVkOgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIGlkCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGRlbGV0ZWQKCiAgICBDcmVhdGVDb21wbGV0aW9uUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbW9kZWw6ICZtb2RlbF9jb25maWd1cmF0aW9uCiAgICAgICAgICBkZXNjcmlwdGlvbjogSUQgb2YgdGhlIG1vZGVsIHRvIHVzZS4gWW91IGNhbiB1c2UgdGhlIFtMaXN0IG1vZGVsc10oL2RvY3MvYXBpLXJlZmVyZW5jZS9tb2RlbHMvbGlzdCkgQVBJIHRvIHNlZSBhbGwgb2YgeW91ciBhdmFpbGFibGUgbW9kZWxzLCBvciBzZWUgb3VyIFtNb2RlbCBvdmVydmlld10oL2RvY3MvbW9kZWxzL292ZXJ2aWV3KSBmb3IgZGVzY3JpcHRpb25zIG9mIHRoZW0uCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBwcm9tcHQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX3Byb21wdF9kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIFRoZSBwcm9tcHQocykgdG8gZ2VuZXJhdGUgY29tcGxldGlvbnMgZm9yLCBlbmNvZGVkIGFzIGEgc3RyaW5nLCBhcnJheSBvZiBzdHJpbmdzLCBhcnJheSBvZiB0b2tlbnMsIG9yIGFycmF5IG9mIHRva2VuIGFycmF5cy4KCiAgICAgICAgICAgIE5vdGUgdGhhdCA8fGVuZG9mdGV4dHw+IGlzIHRoZSBkb2N1bWVudCBzZXBhcmF0b3IgdGhhdCB0aGUgbW9kZWwgc2VlcyBkdXJpbmcgdHJhaW5pbmcsIHNvIGlmIGEgcHJvbXB0IGlzIG5vdCBzcGVjaWZpZWQgdGhlIG1vZGVsIHdpbGwgZ2VuZXJhdGUgYXMgaWYgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGEgbmV3IGRvY3VtZW50LgogICAgICAgICAgZGVmYXVsdDogJzx8ZW5kb2Z0ZXh0fD4nCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgb25lT2Y6CiAgICAgICAgICAgIC0gdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZGVmYXVsdDogJycKICAgICAgICAgICAgICBleGFtcGxlOiAiVGhpcyBpcyBhIHRlc3QuIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICAgICAgICBleGFtcGxlOiAiVGhpcyBpcyBhIHRlc3QuIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgbWluSXRlbXM6IDEKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICBleGFtcGxlOiAiWzEyMTIsIDMxOCwgMjU3LCAxMzMyLCAxM10iCiAgICAgICAgICAgIC0gdHlwZTogYXJyYXkKICAgICAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIG1pbkl0ZW1zOiAxCiAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGV4YW1wbGU6ICJbWzEyMTIsIDMxOCwgMjU3LCAxMzMyLCAxM11dIgogICAgICAgIHN1ZmZpeDoKICAgICAgICAgIGRlc2NyaXB0aW9uOgogICAgICAgICAgICBUaGUgc3VmZml4IHRoYXQgY29tZXMgYWZ0ZXIgYSBjb21wbGV0aW9uIG9mIGluc2VydGVkIHRleHQuCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAidGVzdC4iCiAgICAgICAgbWF4X3Rva2VuczoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIGRlZmF1bHQ6IDE2CiAgICAgICAgICBleGFtcGxlOiAxNgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAmY29tcGxldGlvbnNfbWF4X3Rva2Vuc19kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBbdG9rZW5zXSgvdG9rZW5pemVyKSB0byBnZW5lcmF0ZSBpbiB0aGUgY29tcGxldGlvbi4KCiAgICAgICAgICAgIFRoZSB0b2tlbiBjb3VudCBvZiB5b3VyIHByb21wdCBwbHVzIGBtYXhfdG9rZW5zYCBjYW5ub3QgZXhjZWVkIHRoZSBtb2RlbCdzIGNvbnRleHQgbGVuZ3RoLiBNb3N0IG1vZGVscyBoYXZlIGEgY29udGV4dCBsZW5ndGggb2YgMjA0OCB0b2tlbnMgKGV4Y2VwdCBmb3IgdGhlIG5ld2VzdCBtb2RlbHMsIHdoaWNoIHN1cHBvcnQgNDA5NikuCiAgICAgICAgdGVtcGVyYXR1cmU6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIG1heGltdW06IDIKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX3RlbXBlcmF0dXJlX2Rlc2NyaXB0aW9uIHwKICAgICAgICAgICAgV2hhdCBzYW1wbGluZyB0ZW1wZXJhdHVyZSB0byB1c2UsIGJldHdlZW4gMCBhbmQgMi4gSGlnaGVyIHZhbHVlcyBsaWtlIDAuOCB3aWxsIG1ha2UgdGhlIG91dHB1dCBtb3JlIHJhbmRvbSwgd2hpbGUgbG93ZXIgdmFsdWVzIGxpa2UgMC4yIHdpbGwgbWFrZSBpdCBtb3JlIGZvY3VzZWQgYW5kIGRldGVybWluaXN0aWMuCgogICAgICAgICAgICBXZSBnZW5lcmFsbHkgcmVjb21tZW5kIGFsdGVyaW5nIHRoaXMgb3IgYHRvcF9wYCBidXQgbm90IGJvdGguCiAgICAgICAgdG9wX3A6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIG1heGltdW06IDEKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX3RvcF9wX2Rlc2NyaXB0aW9uIHwKICAgICAgICAgICAgQW4gYWx0ZXJuYXRpdmUgdG8gc2FtcGxpbmcgd2l0aCB0ZW1wZXJhdHVyZSwgY2FsbGVkIG51Y2xldXMgc2FtcGxpbmcsIHdoZXJlIHRoZSBtb2RlbCBjb25zaWRlcnMgdGhlIHJlc3VsdHMgb2YgdGhlIHRva2VucyB3aXRoIHRvcF9wIHByb2JhYmlsaXR5IG1hc3MuIFNvIDAuMSBtZWFucyBvbmx5IHRoZSB0b2tlbnMgY29tcHJpc2luZyB0aGUgdG9wIDEwJSBwcm9iYWJpbGl0eSBtYXNzIGFyZSBjb25zaWRlcmVkLgoKICAgICAgICAgICAgV2UgZ2VuZXJhbGx5IHJlY29tbWVuZCBhbHRlcmluZyB0aGlzIG9yIGB0ZW1wZXJhdHVyZWAgYnV0IG5vdCBib3RoLgogICAgICAgIG46CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBtaW5pbXVtOiAxCiAgICAgICAgICBtYXhpbXVtOiAxMjgKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX2NvbXBsZXRpb25zX2Rlc2NyaXB0aW9uIHwKICAgICAgICAgICAgSG93IG1hbnkgY29tcGxldGlvbnMgdG8gZ2VuZXJhdGUgZm9yIGVhY2ggcHJvbXB0LgoKICAgICAgICAgICAgKipOb3RlOioqIEJlY2F1c2UgdGhpcyBwYXJhbWV0ZXIgZ2VuZXJhdGVzIG1hbnkgY29tcGxldGlvbnMsIGl0IGNhbiBxdWlja2x5IGNvbnN1bWUgeW91ciB0b2tlbiBxdW90YS4gVXNlIGNhcmVmdWxseSBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgcmVhc29uYWJsZSBzZXR0aW5ncyBmb3IgYG1heF90b2tlbnNgIGFuZCBgc3RvcGAuCiAgICAgICAgc3RyZWFtOgogICAgICAgICAgZGVzY3JpcHRpb246ID4KICAgICAgICAgICAgV2hldGhlciB0byBzdHJlYW0gYmFjayBwYXJ0aWFsIHByb2dyZXNzLiBJZiBzZXQsIHRva2VucyB3aWxsIGJlIHNlbnQgYXMgZGF0YS1vbmx5IFtzZXJ2ZXItc2VudCBldmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TZXJ2ZXItc2VudF9ldmVudHMvVXNpbmdfc2VydmVyLXNlbnRfZXZlbnRzI0V2ZW50X3N0cmVhbV9mb3JtYXQpCiAgICAgICAgICAgIGFzIHRoZXkgYmVjb21lIGF2YWlsYWJsZSwgd2l0aCB0aGUgc3RyZWFtIHRlcm1pbmF0ZWQgYnkgYSBgZGF0YTogW0RPTkVdYCBtZXNzYWdlLgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgbG9ncHJvYnM6ICZjb21wbGV0aW9uc19sb2dwcm9ic19jb25maWd1cmF0aW9uCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBtaW5pbXVtOiAwCiAgICAgICAgICBtYXhpbXVtOiA1CiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICZjb21wbGV0aW9uc19sb2dwcm9ic19kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIEluY2x1ZGUgdGhlIGxvZyBwcm9iYWJpbGl0aWVzIG9uIHRoZSBgbG9ncHJvYnNgIG1vc3QgbGlrZWx5IHRva2VucywgYXMgd2VsbCB0aGUgY2hvc2VuIHRva2Vucy4gRm9yIGV4YW1wbGUsIGlmIGBsb2dwcm9ic2AgaXMgNSwgdGhlIEFQSSB3aWxsIHJldHVybiBhIGxpc3Qgb2YgdGhlIDUgbW9zdCBsaWtlbHkgdG9rZW5zLiBUaGUgQVBJIHdpbGwgYWx3YXlzIHJldHVybiB0aGUgYGxvZ3Byb2JgIG9mIHRoZSBzYW1wbGVkIHRva2VuLCBzbyB0aGVyZSBtYXkgYmUgdXAgdG8gYGxvZ3Byb2JzKzFgIGVsZW1lbnRzIGluIHRoZSByZXNwb25zZS4KCiAgICAgICAgICAgIFRoZSBtYXhpbXVtIHZhbHVlIGZvciBgbG9ncHJvYnNgIGlzIDUuIElmIHlvdSBuZWVkIG1vcmUgdGhhbiB0aGlzLCBwbGVhc2UgY29udGFjdCB1cyB0aHJvdWdoIG91ciBbSGVscCBjZW50ZXJdKGh0dHBzOi8vaGVscC5vcGVuYWkuY29tKSBhbmQgZGVzY3JpYmUgeW91ciB1c2UgY2FzZS4KICAgICAgICBlY2hvOgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgZGVmYXVsdDogZmFsc2UKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX2VjaG9fZGVzY3JpcHRpb24gPgogICAgICAgICAgICBFY2hvIGJhY2sgdGhlIHByb21wdCBpbiBhZGRpdGlvbiB0byB0aGUgY29tcGxldGlvbgogICAgICAgIHN0b3A6CiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX3N0b3BfZGVzY3JpcHRpb24gPgogICAgICAgICAgICBVcCB0byA0IHNlcXVlbmNlcyB3aGVyZSB0aGUgQVBJIHdpbGwgc3RvcCBnZW5lcmF0aW5nIGZ1cnRoZXIgdG9rZW5zLiBUaGUgcmV0dXJuZWQgdGV4dCB3aWxsIG5vdCBjb250YWluIHRoZSBzdG9wIHNlcXVlbmNlLgogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIG9uZU9mOgogICAgICAgICAgICAtIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGRlZmF1bHQ6IDx8ZW5kb2Z0ZXh0fD4KICAgICAgICAgICAgICBleGFtcGxlOiAiXG4iCiAgICAgICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgICAgLSB0eXBlOiBhcnJheQogICAgICAgICAgICAgIG1pbkl0ZW1zOiAxCiAgICAgICAgICAgICAgbWF4SXRlbXM6IDQKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgZXhhbXBsZTogJ1siXG4iXScKICAgICAgICBwcmVzZW5jZV9wZW5hbHR5OgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgICBtaW5pbXVtOiAtMgogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAmY29tcGxldGlvbnNfcHJlc2VuY2VfcGVuYWx0eV9kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIE51bWJlciBiZXR3ZWVuIC0yLjAgYW5kIDIuMC4gUG9zaXRpdmUgdmFsdWVzIHBlbmFsaXplIG5ldyB0b2tlbnMgYmFzZWQgb24gd2hldGhlciB0aGV5IGFwcGVhciBpbiB0aGUgdGV4dCBzbyBmYXIsIGluY3JlYXNpbmcgdGhlIG1vZGVsJ3MgbGlrZWxpaG9vZCB0byB0YWxrIGFib3V0IG5ldyB0b3BpY3MuCgogICAgICAgICAgICBbU2VlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgZnJlcXVlbmN5IGFuZCBwcmVzZW5jZSBwZW5hbHRpZXMuXSgvZG9jcy9hcGktcmVmZXJlbmNlL3BhcmFtZXRlci1kZXRhaWxzKQogICAgICAgIGZyZXF1ZW5jeV9wZW5hbHR5OgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgICBtaW5pbXVtOiAtMgogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAmY29tcGxldGlvbnNfZnJlcXVlbmN5X3BlbmFsdHlfZGVzY3JpcHRpb24gfAogICAgICAgICAgICBOdW1iZXIgYmV0d2VlbiAtMi4wIGFuZCAyLjAuIFBvc2l0aXZlIHZhbHVlcyBwZW5hbGl6ZSBuZXcgdG9rZW5zIGJhc2VkIG9uIHRoZWlyIGV4aXN0aW5nIGZyZXF1ZW5jeSBpbiB0aGUgdGV4dCBzbyBmYXIsIGRlY3JlYXNpbmcgdGhlIG1vZGVsJ3MgbGlrZWxpaG9vZCB0byByZXBlYXQgdGhlIHNhbWUgbGluZSB2ZXJiYXRpbS4KCiAgICAgICAgICAgIFtTZWUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBmcmVxdWVuY3kgYW5kIHByZXNlbmNlIHBlbmFsdGllcy5dKC9kb2NzL2FwaS1yZWZlcmVuY2UvcGFyYW1ldGVyLWRldGFpbHMpCiAgICAgICAgYmVzdF9vZjoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIG1heGltdW06IDIwCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICZjb21wbGV0aW9uc19iZXN0X29mX2Rlc2NyaXB0aW9uIHwKICAgICAgICAgICAgR2VuZXJhdGVzIGBiZXN0X29mYCBjb21wbGV0aW9ucyBzZXJ2ZXItc2lkZSBhbmQgcmV0dXJucyB0aGUgImJlc3QiICh0aGUgb25lIHdpdGggdGhlIGhpZ2hlc3QgbG9nIHByb2JhYmlsaXR5IHBlciB0b2tlbikuIFJlc3VsdHMgY2Fubm90IGJlIHN0cmVhbWVkLgoKICAgICAgICAgICAgV2hlbiB1c2VkIHdpdGggYG5gLCBgYmVzdF9vZmAgY29udHJvbHMgdGhlIG51bWJlciBvZiBjYW5kaWRhdGUgY29tcGxldGlvbnMgYW5kIGBuYCBzcGVjaWZpZXMgaG93IG1hbnkgdG8gcmV0dXJuIOKAkyBgYmVzdF9vZmAgbXVzdCBiZSBncmVhdGVyIHRoYW4gYG5gLgoKICAgICAgICAgICAgKipOb3RlOioqIEJlY2F1c2UgdGhpcyBwYXJhbWV0ZXIgZ2VuZXJhdGVzIG1hbnkgY29tcGxldGlvbnMsIGl0IGNhbiBxdWlja2x5IGNvbnN1bWUgeW91ciB0b2tlbiBxdW90YS4gVXNlIGNhcmVmdWxseSBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgcmVhc29uYWJsZSBzZXR0aW5ncyBmb3IgYG1heF90b2tlbnNgIGFuZCBgc3RvcGAuCiAgICAgICAgbG9naXRfYmlhczogJmNvbXBsZXRpb25zX2xvZ2l0X2JpYXMKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgeC1vYWlUeXBlTGFiZWw6IG1hcAogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAmY29tcGxldGlvbnNfbG9naXRfYmlhc19kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIE1vZGlmeSB0aGUgbGlrZWxpaG9vZCBvZiBzcGVjaWZpZWQgdG9rZW5zIGFwcGVhcmluZyBpbiB0aGUgY29tcGxldGlvbi4KCiAgICAgICAgICAgIEFjY2VwdHMgYSBqc29uIG9iamVjdCB0aGF0IG1hcHMgdG9rZW5zIChzcGVjaWZpZWQgYnkgdGhlaXIgdG9rZW4gSUQgaW4gdGhlIEdQVCB0b2tlbml6ZXIpIHRvIGFuIGFzc29jaWF0ZWQgYmlhcyB2YWx1ZSBmcm9tIC0xMDAgdG8gMTAwLiBZb3UgY2FuIHVzZSB0aGlzIFt0b2tlbml6ZXIgdG9vbF0oL3Rva2VuaXplcj92aWV3PWJwZSkgKHdoaWNoIHdvcmtzIGZvciBib3RoIEdQVC0yIGFuZCBHUFQtMykgdG8gY29udmVydCB0ZXh0IHRvIHRva2VuIElEcy4gTWF0aGVtYXRpY2FsbHksIHRoZSBiaWFzIGlzIGFkZGVkIHRvIHRoZSBsb2dpdHMgZ2VuZXJhdGVkIGJ5IHRoZSBtb2RlbCBwcmlvciB0byBzYW1wbGluZy4gVGhlIGV4YWN0IGVmZmVjdCB3aWxsIHZhcnkgcGVyIG1vZGVsLCBidXQgdmFsdWVzIGJldHdlZW4gLTEgYW5kIDEgc2hvdWxkIGRlY3JlYXNlIG9yIGluY3JlYXNlIGxpa2VsaWhvb2Qgb2Ygc2VsZWN0aW9uOyB2YWx1ZXMgbGlrZSAtMTAwIG9yIDEwMCBzaG91bGQgcmVzdWx0IGluIGEgYmFuIG9yIGV4Y2x1c2l2ZSBzZWxlY3Rpb24gb2YgdGhlIHJlbGV2YW50IHRva2VuLgoKICAgICAgICAgICAgQXMgYW4gZXhhbXBsZSwgeW91IGNhbiBwYXNzIGB7IjUwMjU2IjogLTEwMH1gIHRvIHByZXZlbnQgdGhlIDx8ZW5kb2Z0ZXh0fD4gdG9rZW4gZnJvbSBiZWluZyBnZW5lcmF0ZWQuCiAgICAgICAgdXNlcjogJmVuZF91c2VyX3BhcmFtX2NvbmZpZ3VyYXRpb24KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogdXNlci0xMjM0CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBBIHVuaXF1ZSBpZGVudGlmaWVyIHJlcHJlc2VudGluZyB5b3VyIGVuZC11c2VyLCB3aGljaCBjYW4gaGVscCBPcGVuQUkgdG8gbW9uaXRvciBhbmQgZGV0ZWN0IGFidXNlLiBbTGVhcm4gbW9yZV0oL2RvY3MvZ3VpZGVzL3NhZmV0eS1iZXN0LXByYWN0aWNlcy9lbmQtdXNlci1pZHMpLgogICAgICByZXF1aXJlZDoKICAgICAgICAtIG1vZGVsCiAgICAKICAgIENyZWF0ZUNvbXBsZXRpb25SZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBjcmVhdGVkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY2hvaWNlczoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgdGV4dDoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGluZGV4OgogICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGxvZ3Byb2JzOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgdG9rZW5zOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgdG9rZW5fbG9ncHJvYnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgICAgICAgICB0b3BfbG9ncHJvYnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgICAgICB0ZXh0X29mZnNldDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGZpbmlzaF9yZWFzb246CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICB1c2FnZToKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgcHJvbXB0X3Rva2VuczoKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIGNvbXBsZXRpb25fdG9rZW5zOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgdG90YWxfdG9rZW5zOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHJlcXVpcmVkOiAKICAgICAgICAgICAgLSBwcm9tcHRfdG9rZW5zCiAgICAgICAgICAgIC0gY29tcGxldGlvbl90b2tlbnMKICAgICAgICAgICAgLSB0b3RhbF90b2tlbnMKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gY3JlYXRlZAogICAgICAgIC0gbW9kZWwKICAgICAgICAtIGNob2ljZXMKCiAgICBDaGF0Q29tcGxldGlvblJlcXVlc3RNZXNzYWdlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICByb2xlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBlbnVtOiBbInN5c3RlbSIsICJ1c2VyIiwgImFzc2lzdGFudCJdCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIHJvbGUgb2YgdGhlIGF1dGhvciBvZiB0aGlzIG1lc3NhZ2UuCiAgICAgICAgY29udGVudDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBjb250ZW50cyBvZiB0aGUgbWVzc2FnZQogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgbmFtZSBvZiB0aGUgdXNlciBpbiBhIG11bHRpLXVzZXIgY2hhdAogICAgICByZXF1aXJlZDogCiAgICAgICAgLSByb2xlCiAgICAgICAgLSBjb250ZW50CgogICAgQ2hhdENvbXBsZXRpb25SZXNwb25zZU1lc3NhZ2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHJvbGU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGVudW06IFsic3lzdGVtIiwgInVzZXIiLCAiYXNzaXN0YW50Il0KICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgcm9sZSBvZiB0aGUgYXV0aG9yIG9mIHRoaXMgbWVzc2FnZS4KICAgICAgICBjb250ZW50OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIGNvbnRlbnRzIG9mIHRoZSBtZXNzYWdlCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIHJvbGUKICAgICAgICAtIGNvbnRlbnQKCiAgICBDcmVhdGVDaGF0Q29tcGxldGlvblJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG1vZGVsOgogICAgICAgICAgZGVzY3JpcHRpb246IElEIG9mIHRoZSBtb2RlbCB0byB1c2UuIEN1cnJlbnRseSwgb25seSBgZ3B0LTMuNS10dXJib2AgYW5kIGBncHQtMy41LXR1cmJvLTAzMDFgIGFyZSBzdXBwb3J0ZWQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBtZXNzYWdlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgbWVzc2FnZXMgdG8gZ2VuZXJhdGUgY2hhdCBjb21wbGV0aW9ucyBmb3IsIGluIHRoZSBbY2hhdCBmb3JtYXRdKC9kb2NzL2d1aWRlcy9jaGF0L2ludHJvZHVjdGlvbikuCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgbWluSXRlbXM6IDEKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ2hhdENvbXBsZXRpb25SZXF1ZXN0TWVzc2FnZScKICAgICAgICB0ZW1wZXJhdHVyZToKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgbWluaW11bTogMAogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgZGVmYXVsdDogMQogICAgICAgICAgZXhhbXBsZTogMQogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAqY29tcGxldGlvbnNfdGVtcGVyYXR1cmVfZGVzY3JpcHRpb24KICAgICAgICB0b3BfcDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgbWluaW11bTogMAogICAgICAgICAgbWF4aW11bTogMQogICAgICAgICAgZGVmYXVsdDogMQogICAgICAgICAgZXhhbXBsZTogMQogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAqY29tcGxldGlvbnNfdG9wX3BfZGVzY3JpcHRpb24KICAgICAgICBuOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbWluaW11bTogMQogICAgICAgICAgbWF4aW11bTogMTI4CiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246IEhvdyBtYW55IGNoYXQgY29tcGxldGlvbiBjaG9pY2VzIHRvIGdlbmVyYXRlIGZvciBlYWNoIGlucHV0IG1lc3NhZ2UuCiAgICAgICAgc3RyZWFtOgogICAgICAgICAgZGVzY3JpcHRpb246ID4KICAgICAgICAgICAgSWYgc2V0LCBwYXJ0aWFsIG1lc3NhZ2UgZGVsdGFzIHdpbGwgYmUgc2VudCwgbGlrZSBpbiBDaGF0R1BULiBUb2tlbnMgd2lsbCBiZSBzZW50IGFzIGRhdGEtb25seSBbc2VydmVyLXNlbnQgZXZlbnRzXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU2VydmVyLXNlbnRfZXZlbnRzL1VzaW5nX3NlcnZlci1zZW50X2V2ZW50cyNFdmVudF9zdHJlYW1fZm9ybWF0KQogICAgICAgICAgICBhcyB0aGV5IGJlY29tZSBhdmFpbGFibGUsIHdpdGggdGhlIHN0cmVhbSB0ZXJtaW5hdGVkIGJ5IGEgYGRhdGE6IFtET05FXWAgbWVzc2FnZS4KICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgICAgIHN0b3A6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBVcCB0byA0IHNlcXVlbmNlcyB3aGVyZSB0aGUgQVBJIHdpbGwgc3RvcCBnZW5lcmF0aW5nIGZ1cnRoZXIgdG9rZW5zLgogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgb25lT2Y6CiAgICAgICAgICAgIC0gdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgICAgLSB0eXBlOiBhcnJheQogICAgICAgICAgICAgIG1pbkl0ZW1zOiAxCiAgICAgICAgICAgICAgbWF4SXRlbXM6IDQKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG1heF90b2tlbnM6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgbWF4aW11bSBudW1iZXIgb2YgdG9rZW5zIGFsbG93ZWQgZm9yIHRoZSBnZW5lcmF0ZWQgYW5zd2VyLiBCeSBkZWZhdWx0LCB0aGUgbnVtYmVyIG9mIHRva2VucyB0aGUgbW9kZWwgY2FuIHJldHVybiB3aWxsIGJlICg0MDk2IC0gcHJvbXB0IHRva2VucykuCiAgICAgICAgICBkZWZhdWx0OiBpbmYKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBwcmVzZW5jZV9wZW5hbHR5OgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgICBtaW5pbXVtOiAtMgogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAqY29tcGxldGlvbnNfcHJlc2VuY2VfcGVuYWx0eV9kZXNjcmlwdGlvbgogICAgICAgIGZyZXF1ZW5jeV9wZW5hbHR5OgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgICBtaW5pbXVtOiAtMgogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAqY29tcGxldGlvbnNfZnJlcXVlbmN5X3BlbmFsdHlfZGVzY3JpcHRpb24KICAgICAgICBsb2dpdF9iaWFzOgogICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICB4LW9haVR5cGVMYWJlbDogbWFwCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgTW9kaWZ5IHRoZSBsaWtlbGlob29kIG9mIHNwZWNpZmllZCB0b2tlbnMgYXBwZWFyaW5nIGluIHRoZSBjb21wbGV0aW9uLgoKICAgICAgICAgICAgQWNjZXB0cyBhIGpzb24gb2JqZWN0IHRoYXQgbWFwcyB0b2tlbnMgKHNwZWNpZmllZCBieSB0aGVpciB0b2tlbiBJRCBpbiB0aGUgdG9rZW5pemVyKSB0byBhbiBhc3NvY2lhdGVkIGJpYXMgdmFsdWUgZnJvbSAtMTAwIHRvIDEwMC4gTWF0aGVtYXRpY2FsbHksIHRoZSBiaWFzIGlzIGFkZGVkIHRvIHRoZSBsb2dpdHMgZ2VuZXJhdGVkIGJ5IHRoZSBtb2RlbCBwcmlvciB0byBzYW1wbGluZy4gVGhlIGV4YWN0IGVmZmVjdCB3aWxsIHZhcnkgcGVyIG1vZGVsLCBidXQgdmFsdWVzIGJldHdlZW4gLTEgYW5kIDEgc2hvdWxkIGRlY3JlYXNlIG9yIGluY3JlYXNlIGxpa2VsaWhvb2Qgb2Ygc2VsZWN0aW9uOyB2YWx1ZXMgbGlrZSAtMTAwIG9yIDEwMCBzaG91bGQgcmVzdWx0IGluIGEgYmFuIG9yIGV4Y2x1c2l2ZSBzZWxlY3Rpb24gb2YgdGhlIHJlbGV2YW50IHRva2VuLgogICAgICAgIHVzZXI6ICplbmRfdXNlcl9wYXJhbV9jb25maWd1cmF0aW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbW9kZWwKICAgICAgICAtIG1lc3NhZ2VzCgogICAgQ3JlYXRlQ2hhdENvbXBsZXRpb25SZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBjcmVhdGVkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY2hvaWNlczoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgaW5kZXg6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgbWVzc2FnZToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DaGF0Q29tcGxldGlvblJlc3BvbnNlTWVzc2FnZScKICAgICAgICAgICAgICBmaW5pc2hfcmVhc29uOgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgdXNhZ2U6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIHByb21wdF90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBjb21wbGV0aW9uX3Rva2VuczoKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIHRvdGFsX3Rva2VuczoKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICByZXF1aXJlZDogCiAgICAgICAgICAgIC0gcHJvbXB0X3Rva2VucwogICAgICAgICAgICAtIGNvbXBsZXRpb25fdG9rZW5zCiAgICAgICAgICAgIC0gdG90YWxfdG9rZW5zCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIGlkCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGNyZWF0ZWQKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSBjaG9pY2VzCgogICAgQ3JlYXRlRWRpdFJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG1vZGVsOgogICAgICAgICAgZGVzY3JpcHRpb246IElEIG9mIHRoZSBtb2RlbCB0byB1c2UuIFlvdSBjYW4gdXNlIHRoZSBgdGV4dC1kYXZpbmNpLWVkaXQtMDAxYCBvciBgY29kZS1kYXZpbmNpLWVkaXQtMDAxYCBtb2RlbCB3aXRoIHRoaXMgZW5kcG9pbnQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpbnB1dDoKICAgICAgICAgIGRlc2NyaXB0aW9uOgogICAgICAgICAgICBUaGUgaW5wdXQgdGV4dCB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludCBmb3IgdGhlIGVkaXQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZXhhbXBsZTogIldoYXQgZGF5IG9mIHRoZSB3ZWsgaXMgaXQ/IgogICAgICAgIGluc3RydWN0aW9uOgogICAgICAgICAgZGVzY3JpcHRpb246CiAgICAgICAgICAgIFRoZSBpbnN0cnVjdGlvbiB0aGF0IHRlbGxzIHRoZSBtb2RlbCBob3cgdG8gZWRpdCB0aGUgcHJvbXB0LgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiRml4IHRoZSBzcGVsbGluZyBtaXN0YWtlcy4iCiAgICAgICAgbjoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG1pbmltdW06IDEKICAgICAgICAgIG1heGltdW06IDIwCiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246CiAgICAgICAgICAgIEhvdyBtYW55IGVkaXRzIHRvIGdlbmVyYXRlIGZvciB0aGUgaW5wdXQgYW5kIGluc3RydWN0aW9uLgogICAgICAgIHRlbXBlcmF0dXJlOgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBtaW5pbXVtOiAwCiAgICAgICAgICBtYXhpbXVtOiAyCiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICpjb21wbGV0aW9uc190ZW1wZXJhdHVyZV9kZXNjcmlwdGlvbgogICAgICAgIHRvcF9wOgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBtaW5pbXVtOiAwCiAgICAgICAgICBtYXhpbXVtOiAxCiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICpjb21wbGV0aW9uc190b3BfcF9kZXNjcmlwdGlvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSBpbnN0cnVjdGlvbgoKICAgIENyZWF0ZUVkaXRSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY3JlYXRlZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBjaG9pY2VzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICB0ZXh0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgaW5kZXg6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgbG9ncHJvYnM6CiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICB0b2tlbnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICB0b2tlbl9sb2dwcm9iczoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICAgICAgICAgIHRvcF9sb2dwcm9iczoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICAgIHRleHRfb2Zmc2V0OgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgZmluaXNoX3JlYXNvbjoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHVzYWdlOgogICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBwcm9tcHRfdG9rZW5zOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgY29tcGxldGlvbl90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICB0b3RhbF90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAtIHByb21wdF90b2tlbnMKICAgICAgICAgICAgLSBjb21wbGV0aW9uX3Rva2VucwogICAgICAgICAgICAtIHRvdGFsX3Rva2VucwogICAgICByZXF1aXJlZDogCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGNyZWF0ZWQKICAgICAgICAtIGNob2ljZXMKICAgICAgICAtIHVzYWdlCgogICAgQ3JlYXRlSW1hZ2VSZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBwcm9tcHQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQSB0ZXh0IGRlc2NyaXB0aW9uIG9mIHRoZSBkZXNpcmVkIGltYWdlKHMpLiBUaGUgbWF4aW11bSBsZW5ndGggaXMgMTAwMCBjaGFyYWN0ZXJzLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiQSBjdXRlIGJhYnkgc2VhIG90dGVyIgogICAgICAgIG46ICZpbWFnZXNfbgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbWluaW11bTogMQogICAgICAgICAgbWF4aW11bTogMTAKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIG51bWJlciBvZiBpbWFnZXMgdG8gZ2VuZXJhdGUuIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMC4KICAgICAgICBzaXplOiAmaW1hZ2VzX3NpemUKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZW51bTogWyIyNTZ4MjU2IiwgIjUxMng1MTIiLCAiMTAyNHgxMDI0Il0KICAgICAgICAgIGRlZmF1bHQ6ICIxMDI0eDEwMjQiCiAgICAgICAgICBleGFtcGxlOiAiMTAyNHgxMDI0IgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgc2l6ZSBvZiB0aGUgZ2VuZXJhdGVkIGltYWdlcy4gTXVzdCBiZSBvbmUgb2YgYDI1NngyNTZgLCBgNTEyeDUxMmAsIG9yIGAxMDI0eDEwMjRgLgogICAgICAgIHJlc3BvbnNlX2Zvcm1hdDogJmltYWdlc19yZXNwb25zZV9mb3JtYXQKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZW51bTogWyJ1cmwiLCAiYjY0X2pzb24iXQogICAgICAgICAgZGVmYXVsdDogInVybCIKICAgICAgICAgIGV4YW1wbGU6ICJ1cmwiCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBmb3JtYXQgaW4gd2hpY2ggdGhlIGdlbmVyYXRlZCBpbWFnZXMgYXJlIHJldHVybmVkLiBNdXN0IGJlIG9uZSBvZiBgdXJsYCBvciBgYjY0X2pzb25gLgogICAgICAgIHVzZXI6ICplbmRfdXNlcl9wYXJhbV9jb25maWd1cmF0aW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gcHJvbXB0CgogICAgSW1hZ2VzUmVzcG9uc2U6CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgY3JlYXRlZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBkYXRhOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICB1cmw6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICBiNjRfanNvbjoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXF1aXJlZDoKICAgICAgICAtIGNyZWF0ZWQKICAgICAgICAtIGRhdGEKCiAgICBDcmVhdGVJbWFnZUVkaXRSZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpbWFnZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgaW1hZ2UgdG8gZWRpdC4gTXVzdCBiZSBhIHZhbGlkIFBORyBmaWxlLCBsZXNzIHRoYW4gNE1CLCBhbmQgc3F1YXJlLiBJZiBtYXNrIGlzIG5vdCBwcm92aWRlZCwgaW1hZ2UgbXVzdCBoYXZlIHRyYW5zcGFyZW5jeSwgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIHRoZSBtYXNrLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBmb3JtYXQ6IGJpbmFyeQogICAgICAgIG1hc2s6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQW4gYWRkaXRpb25hbCBpbWFnZSB3aG9zZSBmdWxseSB0cmFuc3BhcmVudCBhcmVhcyAoZS5nLiB3aGVyZSBhbHBoYSBpcyB6ZXJvKSBpbmRpY2F0ZSB3aGVyZSBgaW1hZ2VgIHNob3VsZCBiZSBlZGl0ZWQuIE11c3QgYmUgYSB2YWxpZCBQTkcgZmlsZSwgbGVzcyB0aGFuIDRNQiwgYW5kIGhhdmUgdGhlIHNhbWUgZGltZW5zaW9ucyBhcyBgaW1hZ2VgLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBmb3JtYXQ6IGJpbmFyeQogICAgICAgIHByb21wdDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIHRleHQgZGVzY3JpcHRpb24gb2YgdGhlIGRlc2lyZWQgaW1hZ2UocykuIFRoZSBtYXhpbXVtIGxlbmd0aCBpcyAxMDAwIGNoYXJhY3RlcnMuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6ICJBIGN1dGUgYmFieSBzZWEgb3R0ZXIgd2VhcmluZyBhIGJlcmV0IgogICAgICAgIG46ICppbWFnZXNfbgogICAgICAgIHNpemU6ICppbWFnZXNfc2l6ZQogICAgICAgIHJlc3BvbnNlX2Zvcm1hdDogKmltYWdlc19yZXNwb25zZV9mb3JtYXQKICAgICAgICB1c2VyOiAqZW5kX3VzZXJfcGFyYW1fY29uZmlndXJhdGlvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIHByb21wdAogICAgICAgIC0gaW1hZ2UKCiAgICBDcmVhdGVJbWFnZVZhcmlhdGlvblJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGltYWdlOgogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBpbWFnZSB0byB1c2UgYXMgdGhlIGJhc2lzIGZvciB0aGUgdmFyaWF0aW9uKHMpLiBNdXN0IGJlIGEgdmFsaWQgUE5HIGZpbGUsIGxlc3MgdGhhbiA0TUIsIGFuZCBzcXVhcmUuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGZvcm1hdDogYmluYXJ5CiAgICAgICAgbjogKmltYWdlc19uCiAgICAgICAgc2l6ZTogKmltYWdlc19zaXplCiAgICAgICAgcmVzcG9uc2VfZm9ybWF0OiAqaW1hZ2VzX3Jlc3BvbnNlX2Zvcm1hdAogICAgICAgIHVzZXI6ICplbmRfdXNlcl9wYXJhbV9jb25maWd1cmF0aW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaW1hZ2UKCiAgICBDcmVhdGVNb2RlcmF0aW9uUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaW5wdXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIGlucHV0IHRleHQgdG8gY2xhc3NpZnkKICAgICAgICAgIG9uZU9mOgogICAgICAgICAgICAtIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICAgICAgZXhhbXBsZTogIkkgd2FudCB0byBraWxsIHRoZW0uIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICAgICAgICBleGFtcGxlOiAiSSB3YW50IHRvIGtpbGwgdGhlbS4iCiAgICAgICAgbW9kZWw6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUd28gY29udGVudCBtb2RlcmF0aW9ucyBtb2RlbHMgYXJlIGF2YWlsYWJsZTogYHRleHQtbW9kZXJhdGlvbi1zdGFibGVgIGFuZCBgdGV4dC1tb2RlcmF0aW9uLWxhdGVzdGAuCgogICAgICAgICAgICBUaGUgZGVmYXVsdCBpcyBgdGV4dC1tb2RlcmF0aW9uLWxhdGVzdGAgd2hpY2ggd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVwZ3JhZGVkIG92ZXIgdGltZS4gVGhpcyBlbnN1cmVzIHlvdSBhcmUgYWx3YXlzIHVzaW5nIG91ciBtb3N0IGFjY3VyYXRlIG1vZGVsLiBJZiB5b3UgdXNlIGB0ZXh0LW1vZGVyYXRpb24tc3RhYmxlYCwgd2Ugd2lsbCBwcm92aWRlIGFkdmFuY2VkIG5vdGljZSBiZWZvcmUgdXBkYXRpbmcgdGhlIG1vZGVsLiBBY2N1cmFjeSBvZiBgdGV4dC1tb2RlcmF0aW9uLXN0YWJsZWAgbWF5IGJlIHNsaWdodGx5IGxvd2VyIHRoYW4gZm9yIGB0ZXh0LW1vZGVyYXRpb24tbGF0ZXN0YC4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IGZhbHNlCiAgICAgICAgICBkZWZhdWx0OiAidGV4dC1tb2RlcmF0aW9uLWxhdGVzdCIKICAgICAgICAgIGV4YW1wbGU6ICJ0ZXh0LW1vZGVyYXRpb24tc3RhYmxlIgogICAgICByZXF1aXJlZDoKICAgICAgICAtIGlucHV0CgogICAgQ3JlYXRlTW9kZXJhdGlvblJlc3BvbnNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgcmVzdWx0czoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgZmxhZ2dlZDoKICAgICAgICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgICAgICBjYXRlZ29yaWVzOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICBoYXRlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgICAgICAgICAgaGF0ZS90aHJlYXRlbmluZzoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgICAgICAgIHNlbGYtaGFybToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgICAgICAgIHNleHVhbDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgICAgICAgIHNleHVhbC9taW5vcnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgICAgICAgICB2aW9sZW5jZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgICAgICAgIHZpb2xlbmNlL2dyYXBoaWM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAgICAgICAtIGhhdGUKICAgICAgICAgICAgICAgICAgLSBoYXRlL3RocmVhdGVuaW5nCiAgICAgICAgICAgICAgICAgIC0gc2VsZi1oYXJtCiAgICAgICAgICAgICAgICAgIC0gc2V4dWFsCiAgICAgICAgICAgICAgICAgIC0gc2V4dWFsL21pbm9ycwogICAgICAgICAgICAgICAgICAtIHZpb2xlbmNlCiAgICAgICAgICAgICAgICAgIC0gdmlvbGVuY2UvZ3JhcGhpYwogICAgICAgICAgICAgIGNhdGVnb3J5X3Njb3JlczoKICAgICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgaGF0ZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICAgICAgICAgaGF0ZS90aHJlYXRlbmluZzoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICAgICAgICAgc2VsZi1oYXJtOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgICAgICAgICBzZXh1YWw6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICAgICAgICAgIHNleHVhbC9taW5vcnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICAgICAgICAgIHZpb2xlbmNlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgICAgICAgICB2aW9sZW5jZS9ncmFwaGljOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAgICAgICAtIGhhdGUKICAgICAgICAgICAgICAgICAgLSBoYXRlL3RocmVhdGVuaW5nCiAgICAgICAgICAgICAgICAgIC0gc2VsZi1oYXJtCiAgICAgICAgICAgICAgICAgIC0gc2V4dWFsCiAgICAgICAgICAgICAgICAgIC0gc2V4dWFsL21pbm9ycwogICAgICAgICAgICAgICAgICAtIHZpb2xlbmNlCiAgICAgICAgICAgICAgICAgIC0gdmlvbGVuY2UvZ3JhcGhpYwogICAgICAgICAgICByZXF1aXJlZDogCiAgICAgICAgICAgICAgLSBmbGFnZ2VkCiAgICAgICAgICAgICAgLSBjYXRlZ29yaWVzCiAgICAgICAgICAgICAgLSBjYXRlZ29yeV9zY29yZXMKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSByZXN1bHRzCgogICAgQ3JlYXRlU2VhcmNoUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgcXVlcnk6CiAgICAgICAgICBkZXNjcmlwdGlvbjogUXVlcnkgdG8gc2VhcmNoIGFnYWluc3QgdGhlIGRvY3VtZW50cy4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogInRoZSBwcmVzaWRlbnQiCiAgICAgICAgICBtaW5MZW5ndGg6IDEKICAgICAgICBkb2N1bWVudHM6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBVcCB0byAyMDAgZG9jdW1lbnRzIHRvIHNlYXJjaCBvdmVyLCBwcm92aWRlZCBhcyBhIGxpc3Qgb2Ygc3RyaW5ncy4KCiAgICAgICAgICAgIFRoZSBtYXhpbXVtIGRvY3VtZW50IGxlbmd0aCAoaW4gdG9rZW5zKSBpcyAyMDM0IG1pbnVzIHRoZSBudW1iZXIgb2YgdG9rZW5zIGluIHRoZSBxdWVyeS4KCiAgICAgICAgICAgIFlvdSBzaG91bGQgc3BlY2lmeSBlaXRoZXIgYGRvY3VtZW50c2Agb3IgYSBgZmlsZWAsIGJ1dCBub3QgYm90aC4KICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgbWF4SXRlbXM6IDIwMAogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGV4YW1wbGU6ICJbJ1doaXRlIEhvdXNlJywgJ2hvc3BpdGFsJywgJ3NjaG9vbCddIgogICAgICAgIGZpbGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgSUQgb2YgYW4gdXBsb2FkZWQgZmlsZSB0aGF0IGNvbnRhaW5zIGRvY3VtZW50cyB0byBzZWFyY2ggb3Zlci4KCiAgICAgICAgICAgIFlvdSBzaG91bGQgc3BlY2lmeSBlaXRoZXIgYGRvY3VtZW50c2Agb3IgYSBgZmlsZWAsIGJ1dCBub3QgYm90aC4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBtYXhfcmVyYW5rOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGRvY3VtZW50cyB0byBiZSByZS1yYW5rZWQgYW5kIHJldHVybmVkIGJ5IHNlYXJjaC4KCiAgICAgICAgICAgIFRoaXMgZmxhZyBvbmx5IHRha2VzIGVmZmVjdCB3aGVuIGBmaWxlYCBpcyBzZXQuCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBtaW5pbXVtOiAxCiAgICAgICAgICBkZWZhdWx0OiAyMDAKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgcmV0dXJuX21ldGFkYXRhOiAmcmV0dXJuX21ldGFkYXRhX2NvbmZpZ3VyYXRpb24KICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIEEgc3BlY2lhbCBib29sZWFuIGZsYWcgZm9yIHNob3dpbmcgbWV0YWRhdGEuIElmIHNldCB0byBgdHJ1ZWAsIGVhY2ggZG9jdW1lbnQgZW50cnkgaW4gdGhlIHJldHVybmVkIEpTT04gd2lsbCBjb250YWluIGEgIm1ldGFkYXRhIiBmaWVsZC4KCiAgICAgICAgICAgIFRoaXMgZmxhZyBvbmx5IHRha2VzIGVmZmVjdCB3aGVuIGBmaWxlYCBpcyBzZXQuCiAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICB1c2VyOiAqZW5kX3VzZXJfcGFyYW1fY29uZmlndXJhdGlvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIHF1ZXJ5CgogICAgQ3JlYXRlU2VhcmNoUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGF0YToKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgb2JqZWN0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZG9jdW1lbnQ6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgc2NvcmU6CiAgICAgICAgICAgICAgICB0eXBlOiBudW1iZXIKCiAgICBMaXN0RmlsZXNSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGF0YToKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL09wZW5BSUZpbGUnCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gZGF0YQoKICAgIENyZWF0ZUZpbGVSZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgZmlsZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIE5hbWUgb2YgdGhlIFtKU09OIExpbmVzXShodHRwczovL2pzb25saW5lcy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKSBmaWxlIHRvIGJlIHVwbG9hZGVkLgoKICAgICAgICAgICAgSWYgdGhlIGBwdXJwb3NlYCBpcyBzZXQgdG8gImZpbmUtdHVuZSIsIGVhY2ggbGluZSBpcyBhIEpTT04gcmVjb3JkIHdpdGggInByb21wdCIgYW5kICJjb21wbGV0aW9uIiBmaWVsZHMgcmVwcmVzZW50aW5nIHlvdXIgW3RyYWluaW5nIGV4YW1wbGVzXSgvZG9jcy9ndWlkZXMvZmluZS10dW5pbmcvcHJlcGFyZS10cmFpbmluZy1kYXRhKS4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZm9ybWF0OiBiaW5hcnkKICAgICAgICBwdXJwb3NlOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIGludGVuZGVkIHB1cnBvc2Ugb2YgdGhlIHVwbG9hZGVkIGRvY3VtZW50cy4KCiAgICAgICAgICAgIFVzZSAiZmluZS10dW5lIiBmb3IgW0ZpbmUtdHVuaW5nXSgvZG9jcy9hcGktcmVmZXJlbmNlL2ZpbmUtdHVuZXMpLiBUaGlzIGFsbG93cyB1cyB0byB2YWxpZGF0ZSB0aGUgZm9ybWF0IG9mIHRoZSB1cGxvYWRlZCBmaWxlLgoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXF1aXJlZDoKICAgICAgICAtIGZpbGUKICAgICAgICAtIHB1cnBvc2UKCiAgICBEZWxldGVGaWxlUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGVsZXRlZDoKICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gZGVsZXRlZAoKICAgIENyZWF0ZUFuc3dlclJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKICAgICAgcHJvcGVydGllczoKICAgICAgICBtb2RlbDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJRCBvZiB0aGUgbW9kZWwgdG8gdXNlIGZvciBjb21wbGV0aW9uLiBZb3UgY2FuIHNlbGVjdCBvbmUgb2YgYGFkYWAsIGBiYWJiYWdlYCwgYGN1cmllYCwgb3IgYGRhdmluY2lgLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgcXVlc3Rpb246CiAgICAgICAgICBkZXNjcmlwdGlvbjogUXVlc3Rpb24gdG8gZ2V0IGFuc3dlcmVkLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBtaW5MZW5ndGg6IDEKICAgICAgICAgIGV4YW1wbGU6ICJXaGF0IGlzIHRoZSBjYXBpdGFsIG9mIEphcGFuPyIKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBMaXN0IG9mIChxdWVzdGlvbiwgYW5zd2VyKSBwYWlycyB0aGF0IHdpbGwgaGVscCBzdGVlciB0aGUgbW9kZWwgdG93YXJkcyB0aGUgdG9uZSBhbmQgYW5zd2VyIGZvcm1hdCB5b3UnZCBsaWtlLiBXZSByZWNvbW1lbmQgYWRkaW5nIDIgdG8gMyBleGFtcGxlcy4KICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgbWF4SXRlbXM6IDIwMAogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgIG1pbkl0ZW1zOiAyCiAgICAgICAgICAgIG1heEl0ZW1zOiAyCiAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIG1pbkxlbmd0aDogMQogICAgICAgICAgZXhhbXBsZTogIltbJ1doYXQgaXMgdGhlIGNhcGl0YWwgb2YgQ2FuYWRhPycsICdPdHRhd2EnXSwgWydXaGljaCBwcm92aW5jZSBpcyBPdHRhd2EgaW4/JywgJ09udGFyaW8nXV0iCiAgICAgICAgZXhhbXBsZXNfY29udGV4dDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIHRleHQgc25pcHBldCBjb250YWluaW5nIHRoZSBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGFuc3dlcnMgZm9yIHRoZSBgZXhhbXBsZXNgIHlvdSBwcm92aWRlLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiT3R0YXdhLCBDYW5hZGEncyBjYXBpdGFsLCBpcyBsb2NhdGVkIGluIHRoZSBlYXN0IG9mIHNvdXRoZXJuIE9udGFyaW8sIG5lYXIgdGhlIGNpdHkgb2YgTW9udHLDqWFsIGFuZCB0aGUgVS5TLiBib3JkZXIuIgogICAgICAgIGRvY3VtZW50czoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIExpc3Qgb2YgZG9jdW1lbnRzIGZyb20gd2hpY2ggdGhlIGFuc3dlciBmb3IgdGhlIGlucHV0IGBxdWVzdGlvbmAgc2hvdWxkIGJlIGRlcml2ZWQuIElmIHRoaXMgaXMgYW4gZW1wdHkgbGlzdCwgdGhlIHF1ZXN0aW9uIHdpbGwgYmUgYW5zd2VyZWQgYmFzZWQgb24gdGhlIHF1ZXN0aW9uLWFuc3dlciBleGFtcGxlcy4KCiAgICAgICAgICAgIFlvdSBzaG91bGQgc3BlY2lmeSBlaXRoZXIgYGRvY3VtZW50c2Agb3IgYSBgZmlsZWAsIGJ1dCBub3QgYm90aC4KICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBtYXhJdGVtczogMjAwCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiWydKYXBhbiBpcyBhbiBpc2xhbmQgY291bnRyeSBpbiBFYXN0IEFzaWEsIGxvY2F0ZWQgaW4gdGhlIG5vcnRod2VzdCBQYWNpZmljIE9jZWFuLicsICdUb2t5byBpcyB0aGUgY2FwaXRhbCBhbmQgbW9zdCBwb3B1bG91cyBwcmVmZWN0dXJlIG9mIEphcGFuLiddIgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBmaWxlOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIElEIG9mIGFuIHVwbG9hZGVkIGZpbGUgdGhhdCBjb250YWlucyBkb2N1bWVudHMgdG8gc2VhcmNoIG92ZXIuIFNlZSBbdXBsb2FkIGZpbGVdKC9kb2NzL2FwaS1yZWZlcmVuY2UvZmlsZXMvdXBsb2FkKSBmb3IgaG93IHRvIHVwbG9hZCBhIGZpbGUgb2YgdGhlIGRlc2lyZWQgZm9ybWF0IGFuZCBwdXJwb3NlLgoKICAgICAgICAgICAgWW91IHNob3VsZCBzcGVjaWZ5IGVpdGhlciBgZG9jdW1lbnRzYCBvciBhIGBmaWxlYCwgYnV0IG5vdCBib3RoLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIHNlYXJjaF9tb2RlbDogJnNlYXJjaF9tb2RlbF9jb25maWd1cmF0aW9uCiAgICAgICAgICBkZXNjcmlwdGlvbjogSUQgb2YgdGhlIG1vZGVsIHRvIHVzZSBmb3IgW1NlYXJjaF0oL2RvY3MvYXBpLXJlZmVyZW5jZS9zZWFyY2hlcy9jcmVhdGUpLiBZb3UgY2FuIHNlbGVjdCBvbmUgb2YgYGFkYWAsIGBiYWJiYWdlYCwgYGN1cmllYCwgb3IgYGRhdmluY2lgLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBkZWZhdWx0OiBhZGEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgbWF4X3JlcmFuazoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZG9jdW1lbnRzIHRvIGJlIHJhbmtlZCBieSBbU2VhcmNoXSgvZG9jcy9hcGktcmVmZXJlbmNlL3NlYXJjaGVzL2NyZWF0ZSkgd2hlbiB1c2luZyBgZmlsZWAuIFNldHRpbmcgaXQgdG8gYSBoaWdoZXIgdmFsdWUgbGVhZHMgdG8gaW1wcm92ZWQgYWNjdXJhY3kgYnV0IHdpdGggaW5jcmVhc2VkIGxhdGVuY3kgYW5kIGNvc3QuCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBkZWZhdWx0OiAyMDAKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgdGVtcGVyYXR1cmU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogV2hhdCBzYW1wbGluZyB0ZW1wZXJhdHVyZSB0byB1c2UsIGJldHdlZW4gMCBhbmQgMi4gSGlnaGVyIHZhbHVlcyBsaWtlIDAuOCB3aWxsIG1ha2UgdGhlIG91dHB1dCBtb3JlIHJhbmRvbSwgd2hpbGUgbG93ZXIgdmFsdWVzIGxpa2UgMC4yIHdpbGwgbWFrZSBpdCBtb3JlIGZvY3VzZWQgYW5kIGRldGVybWluaXN0aWMuCiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIGRlZmF1bHQ6IDAKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgbG9ncHJvYnM6ICZjb250ZXh0X2NvbXBsZXRpb25zX2xvZ3Byb2JzX2NvbmZpZ3VyYXRpb24KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIG1heGltdW06IDUKICAgICAgICAgIGRlZmF1bHQ6IG51bGwKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBJbmNsdWRlIHRoZSBsb2cgcHJvYmFiaWxpdGllcyBvbiB0aGUgYGxvZ3Byb2JzYCBtb3N0IGxpa2VseSB0b2tlbnMsIGFzIHdlbGwgdGhlIGNob3NlbiB0b2tlbnMuIEZvciBleGFtcGxlLCBpZiBgbG9ncHJvYnNgIGlzIDUsIHRoZSBBUEkgd2lsbCByZXR1cm4gYSBsaXN0IG9mIHRoZSA1IG1vc3QgbGlrZWx5IHRva2Vucy4gVGhlIEFQSSB3aWxsIGFsd2F5cyByZXR1cm4gdGhlIGBsb2dwcm9iYCBvZiB0aGUgc2FtcGxlZCB0b2tlbiwgc28gdGhlcmUgbWF5IGJlIHVwIHRvIGBsb2dwcm9icysxYCBlbGVtZW50cyBpbiB0aGUgcmVzcG9uc2UuCgogICAgICAgICAgICBUaGUgbWF4aW11bSB2YWx1ZSBmb3IgYGxvZ3Byb2JzYCBpcyA1LiBJZiB5b3UgbmVlZCBtb3JlIHRoYW4gdGhpcywgcGxlYXNlIGNvbnRhY3QgdXMgdGhyb3VnaCBvdXIgW0hlbHAgY2VudGVyXShodHRwczovL2hlbHAub3BlbmFpLmNvbSkgYW5kIGRlc2NyaWJlIHlvdXIgdXNlIGNhc2UuCgogICAgICAgICAgICBXaGVuIGBsb2dwcm9ic2AgaXMgc2V0LCBgY29tcGxldGlvbmAgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkIGludG8gYGV4cGFuZGAgdG8gZ2V0IHRoZSBsb2dwcm9icy4KICAgICAgICBtYXhfdG9rZW5zOgogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBtYXhpbXVtIG51bWJlciBvZiB0b2tlbnMgYWxsb3dlZCBmb3IgdGhlIGdlbmVyYXRlZCBhbnN3ZXIKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlZmF1bHQ6IDE2CiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIHN0b3A6CiAgICAgICAgICBkZXNjcmlwdGlvbjogKmNvbXBsZXRpb25zX3N0b3BfZGVzY3JpcHRpb24KICAgICAgICAgIGRlZmF1bHQ6IG51bGwKICAgICAgICAgIG9uZU9mOgogICAgICAgICAgICAtIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGRlZmF1bHQ6IDx8ZW5kb2Z0ZXh0fD4KICAgICAgICAgICAgICBleGFtcGxlOiAiXG4iCiAgICAgICAgICAgIC0gdHlwZTogYXJyYXkKICAgICAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgICAgIG1heEl0ZW1zOiA0CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGV4YW1wbGU6ICdbIlxuIl0nCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIG46CiAgICAgICAgICBkZXNjcmlwdGlvbjogSG93IG1hbnkgYW5zd2VycyB0byBnZW5lcmF0ZSBmb3IgZWFjaCBxdWVzdGlvbi4KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG1pbmltdW06IDEKICAgICAgICAgIG1heGltdW06IDEwCiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIGxvZ2l0X2JpYXM6ICpjb21wbGV0aW9uc19sb2dpdF9iaWFzCiAgICAgICAgcmV0dXJuX21ldGFkYXRhOiAqcmV0dXJuX21ldGFkYXRhX2NvbmZpZ3VyYXRpb24KICAgICAgICByZXR1cm5fcHJvbXB0OiAmcmV0dXJuX3Byb21wdF9jb25maWd1cmF0aW9uCiAgICAgICAgICBkZXNjcmlwdGlvbjogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIHJldHVybmVkIEpTT04gd2lsbCBpbmNsdWRlIGEgInByb21wdCIgZmllbGQgY29udGFpbmluZyB0aGUgZmluYWwgcHJvbXB0IHRoYXQgd2FzIHVzZWQgdG8gcmVxdWVzdCBhIGNvbXBsZXRpb24uIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgZGVmYXVsdDogZmFsc2UKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgZXhwYW5kOiAmZXhwYW5kX2NvbmZpZ3VyYXRpb24KICAgICAgICAgIGRlc2NyaXB0aW9uOiBJZiBhbiBvYmplY3QgbmFtZSBpcyBpbiB0aGUgbGlzdCwgd2UgcHJvdmlkZSB0aGUgZnVsbCBpbmZvcm1hdGlvbiBvZiB0aGUgb2JqZWN0OyBvdGhlcndpc2UsIHdlIG9ubHkgcHJvdmlkZSB0aGUgb2JqZWN0IElELiBDdXJyZW50bHkgd2Ugc3VwcG9ydCBgY29tcGxldGlvbmAgYW5kIGBmaWxlYCBvYmplY3RzIGZvciBleHBhbnNpb24uCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6IHt9CiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVmYXVsdDogW10KICAgICAgICB1c2VyOiAqZW5kX3VzZXJfcGFyYW1fY29uZmlndXJhdGlvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSBxdWVzdGlvbgogICAgICAgIC0gZXhhbXBsZXMKICAgICAgICAtIGV4YW1wbGVzX2NvbnRleHQKCiAgICBDcmVhdGVBbnN3ZXJSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgbW9kZWw6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBzZWFyY2hfbW9kZWw6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBjb21wbGV0aW9uOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgYW5zd2VyczoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgc2VsZWN0ZWRfZG9jdW1lbnRzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICBkb2N1bWVudDoKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICB0ZXh0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCgogICAgQ3JlYXRlQ2xhc3NpZmljYXRpb25SZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbW9kZWw6ICptb2RlbF9jb25maWd1cmF0aW9uCiAgICAgICAgcXVlcnk6CiAgICAgICAgICBkZXNjcmlwdGlvbjogUXVlcnkgdG8gYmUgY2xhc3NpZmllZC4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbWluTGVuZ3RoOiAxCiAgICAgICAgICBleGFtcGxlOiAiVGhlIHBsb3QgaXMgbm90IHZlcnkgYXR0cmFjdGl2ZS4iCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBBIGxpc3Qgb2YgZXhhbXBsZXMgd2l0aCBsYWJlbHMsIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgoKICAgICAgICAgICAgYFtbIlRoZSBtb3ZpZSBpcyBzbyBpbnRlcmVzdGluZy4iLCAiUG9zaXRpdmUiXSwgWyJJdCBpcyBxdWl0ZSBib3JpbmcuIiwgIk5lZ2F0aXZlIl0sIC4uLl1gCgogICAgICAgICAgICBBbGwgdGhlIGxhYmVsIHN0cmluZ3Mgd2lsbCBiZSBub3JtYWxpemVkIHRvIGJlIGNhcGl0YWxpemVkLgoKICAgICAgICAgICAgWW91IHNob3VsZCBzcGVjaWZ5IGVpdGhlciBgZXhhbXBsZXNgIG9yIGBmaWxlYCwgYnV0IG5vdCBib3RoLgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIG1pbkl0ZW1zOiAyCiAgICAgICAgICBtYXhJdGVtczogMjAwCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgbWluSXRlbXM6IDIKICAgICAgICAgICAgbWF4SXRlbXM6IDIKICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgbWluTGVuZ3RoOiAxCiAgICAgICAgICBleGFtcGxlOiAiW1snRG8gbm90IHNlZSB0aGlzIGZpbG0uJywgJ05lZ2F0aXZlJ10sIFsnU21hcnQsIHByb3ZvY2F0aXZlIGFuZCBibGlzdGVyaW5nbHkgZnVubnkuJywgJ1Bvc2l0aXZlJ11dIgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBmaWxlOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIElEIG9mIHRoZSB1cGxvYWRlZCBmaWxlIHRoYXQgY29udGFpbnMgdHJhaW5pbmcgZXhhbXBsZXMuIFNlZSBbdXBsb2FkIGZpbGVdKC9kb2NzL2FwaS1yZWZlcmVuY2UvZmlsZXMvdXBsb2FkKSBmb3IgaG93IHRvIHVwbG9hZCBhIGZpbGUgb2YgdGhlIGRlc2lyZWQgZm9ybWF0IGFuZCBwdXJwb3NlLgoKICAgICAgICAgICAgWW91IHNob3VsZCBzcGVjaWZ5IGVpdGhlciBgZXhhbXBsZXNgIG9yIGBmaWxlYCwgYnV0IG5vdCBib3RoLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIGxhYmVsczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgc2V0IG9mIGNhdGVnb3JpZXMgYmVpbmcgY2xhc3NpZmllZC4gSWYgbm90IHNwZWNpZmllZCwgY2FuZGlkYXRlIGxhYmVscyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY29sbGVjdGVkIGZyb20gdGhlIGV4YW1wbGVzIHlvdSBwcm92aWRlLiBBbGwgdGhlIGxhYmVsIHN0cmluZ3Mgd2lsbCBiZSBub3JtYWxpemVkIHRvIGJlIGNhcGl0YWxpemVkLgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIG1pbkl0ZW1zOiAyCiAgICAgICAgICBtYXhJdGVtczogMjAwCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBbIlBvc2l0aXZlIiwgIk5lZ2F0aXZlIl0KICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgc2VhcmNoX21vZGVsOiAqc2VhcmNoX21vZGVsX2NvbmZpZ3VyYXRpb24KICAgICAgICB0ZW1wZXJhdHVyZToKICAgICAgICAgIGRlc2NyaXB0aW9uOgogICAgICAgICAgICBXaGF0IHNhbXBsaW5nIHRlbXBlcmF0dXJlIHRvIHVzZSwgYmV0d2VlbiAwIGFuZCAyLiBIaWdoZXIgdmFsdWVzIGxpa2UgMC44IHdpbGwgbWFrZSB0aGUgb3V0cHV0IG1vcmUgcmFuZG9tLCB3aGlsZSBsb3dlciB2YWx1ZXMgbGlrZSAwLjIgd2lsbCBtYWtlIGl0IG1vcmUgZm9jdXNlZCBhbmQgZGV0ZXJtaW5pc3RpYy4KICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgbWluaW11bTogMAogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgZGVmYXVsdDogMAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGV4YW1wbGU6IDAKICAgICAgICBsb2dwcm9iczogKmNvbnRleHRfY29tcGxldGlvbnNfbG9ncHJvYnNfY29uZmlndXJhdGlvbgogICAgICAgIG1heF9leGFtcGxlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZXhhbXBsZXMgdG8gYmUgcmFua2VkIGJ5IFtTZWFyY2hdKC9kb2NzL2FwaS1yZWZlcmVuY2Uvc2VhcmNoZXMvY3JlYXRlKSB3aGVuIHVzaW5nIGBmaWxlYC4gU2V0dGluZyBpdCB0byBhIGhpZ2hlciB2YWx1ZSBsZWFkcyB0byBpbXByb3ZlZCBhY2N1cmFjeSBidXQgd2l0aCBpbmNyZWFzZWQgbGF0ZW5jeSBhbmQgY29zdC4KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlZmF1bHQ6IDIwMAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBsb2dpdF9iaWFzOiAqY29tcGxldGlvbnNfbG9naXRfYmlhcwogICAgICAgIHJldHVybl9wcm9tcHQ6ICpyZXR1cm5fcHJvbXB0X2NvbmZpZ3VyYXRpb24KICAgICAgICByZXR1cm5fbWV0YWRhdGE6ICpyZXR1cm5fbWV0YWRhdGFfY29uZmlndXJhdGlvbgogICAgICAgIGV4cGFuZDogKmV4cGFuZF9jb25maWd1cmF0aW9uCiAgICAgICAgdXNlcjogKmVuZF91c2VyX3BhcmFtX2NvbmZpZ3VyYXRpb24KICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBtb2RlbAogICAgICAgIC0gcXVlcnkKCiAgICBDcmVhdGVDbGFzc2lmaWNhdGlvblJlc3BvbnNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBtb2RlbDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHNlYXJjaF9tb2RlbDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNvbXBsZXRpb246CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBsYWJlbDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHNlbGVjdGVkX2V4YW1wbGVzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICBkb2N1bWVudDoKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICB0ZXh0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgbGFiZWw6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKCiAgICBDcmVhdGVGaW5lVHVuZVJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHRyYWluaW5nX2ZpbGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgSUQgb2YgYW4gdXBsb2FkZWQgZmlsZSB0aGF0IGNvbnRhaW5zIHRyYWluaW5nIGRhdGEuCgogICAgICAgICAgICBTZWUgW3VwbG9hZCBmaWxlXSgvZG9jcy9hcGktcmVmZXJlbmNlL2ZpbGVzL3VwbG9hZCkgZm9yIGhvdyB0byB1cGxvYWQgYSBmaWxlLgoKICAgICAgICAgICAgWW91ciBkYXRhc2V0IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgSlNPTkwgZmlsZSwgd2hlcmUgZWFjaCB0cmFpbmluZwogICAgICAgICAgICBleGFtcGxlIGlzIGEgSlNPTiBvYmplY3Qgd2l0aCB0aGUga2V5cyAicHJvbXB0IiBhbmQgImNvbXBsZXRpb24iLgogICAgICAgICAgICBBZGRpdGlvbmFsbHksIHlvdSBtdXN0IHVwbG9hZCB5b3VyIGZpbGUgd2l0aCB0aGUgcHVycG9zZSBgZmluZS10dW5lYC4KCiAgICAgICAgICAgIFNlZSB0aGUgW2ZpbmUtdHVuaW5nIGd1aWRlXSgvZG9jcy9ndWlkZXMvZmluZS10dW5pbmcvY3JlYXRpbmctdHJhaW5pbmctZGF0YSkgZm9yIG1vcmUgZGV0YWlscy4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogImZpbGUtYWpTUkVsczU5V0JidmdTekpTVld4TUNCIgogICAgICAgIHZhbGlkYXRpb25fZmlsZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBJRCBvZiBhbiB1cGxvYWRlZCBmaWxlIHRoYXQgY29udGFpbnMgdmFsaWRhdGlvbiBkYXRhLgoKICAgICAgICAgICAgSWYgeW91IHByb3ZpZGUgdGhpcyBmaWxlLCB0aGUgZGF0YSBpcyB1c2VkIHRvIGdlbmVyYXRlIHZhbGlkYXRpb24KICAgICAgICAgICAgbWV0cmljcyBwZXJpb2RpY2FsbHkgZHVyaW5nIGZpbmUtdHVuaW5nLiBUaGVzZSBtZXRyaWNzIGNhbiBiZSB2aWV3ZWQgaW4KICAgICAgICAgICAgdGhlIFtmaW5lLXR1bmluZyByZXN1bHRzIGZpbGVdKC9kb2NzL2d1aWRlcy9maW5lLXR1bmluZy9hbmFseXppbmcteW91ci1maW5lLXR1bmVkLW1vZGVsKS4KICAgICAgICAgICAgWW91ciB0cmFpbiBhbmQgdmFsaWRhdGlvbiBkYXRhIHNob3VsZCBiZSBtdXR1YWxseSBleGNsdXNpdmUuCgogICAgICAgICAgICBZb3VyIGRhdGFzZXQgbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBKU09OTCBmaWxlLCB3aGVyZSBlYWNoIHZhbGlkYXRpb24KICAgICAgICAgICAgZXhhbXBsZSBpcyBhIEpTT04gb2JqZWN0IHdpdGggdGhlIGtleXMgInByb21wdCIgYW5kICJjb21wbGV0aW9uIi4KICAgICAgICAgICAgQWRkaXRpb25hbGx5LCB5b3UgbXVzdCB1cGxvYWQgeW91ciBmaWxlIHdpdGggdGhlIHB1cnBvc2UgYGZpbmUtdHVuZWAuCgogICAgICAgICAgICBTZWUgdGhlIFtmaW5lLXR1bmluZyBndWlkZV0oL2RvY3MvZ3VpZGVzL2ZpbmUtdHVuaW5nL2NyZWF0aW5nLXRyYWluaW5nLWRhdGEpIGZvciBtb3JlIGRldGFpbHMuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBleGFtcGxlOiAiZmlsZS1YalNSRWxzNTlXQmJ2Z1N6SlNWV3hNQ2EiCiAgICAgICAgbW9kZWw6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgYmFzZSBtb2RlbCB0byBmaW5lLXR1bmUuIFlvdSBjYW4gc2VsZWN0IG9uZSBvZiAiYWRhIiwKICAgICAgICAgICAgImJhYmJhZ2UiLCAiY3VyaWUiLCAiZGF2aW5jaSIsIG9yIGEgZmluZS10dW5lZCBtb2RlbCBjcmVhdGVkIGFmdGVyIDIwMjItMDQtMjEuCiAgICAgICAgICAgIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlc2UgbW9kZWxzLCBzZWUgdGhlCiAgICAgICAgICAgIFtNb2RlbHNdKGh0dHBzOi8vcGxhdGZvcm0ub3BlbmFpLmNvbS9kb2NzL21vZGVscykgZG9jdW1lbnRhdGlvbi4KICAgICAgICAgIGRlZmF1bHQ6ICJjdXJpZSIKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBuX2Vwb2NoczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgZXBvY2hzIHRvIHRyYWluIHRoZSBtb2RlbCBmb3IuIEFuIGVwb2NoIHJlZmVycyB0byBvbmUKICAgICAgICAgICAgZnVsbCBjeWNsZSB0aHJvdWdoIHRoZSB0cmFpbmluZyBkYXRhc2V0LgogICAgICAgICAgZGVmYXVsdDogNAogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBiYXRjaF9zaXplOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIGJhdGNoIHNpemUgdG8gdXNlIGZvciB0cmFpbmluZy4gVGhlIGJhdGNoIHNpemUgaXMgdGhlIG51bWJlciBvZgogICAgICAgICAgICB0cmFpbmluZyBleGFtcGxlcyB1c2VkIHRvIHRyYWluIGEgc2luZ2xlIGZvcndhcmQgYW5kIGJhY2t3YXJkIHBhc3MuCgogICAgICAgICAgICBCeSBkZWZhdWx0LCB0aGUgYmF0Y2ggc2l6ZSB3aWxsIGJlIGR5bmFtaWNhbGx5IGNvbmZpZ3VyZWQgdG8gYmUKICAgICAgICAgICAgfjAuMiUgb2YgdGhlIG51bWJlciBvZiBleGFtcGxlcyBpbiB0aGUgdHJhaW5pbmcgc2V0LCBjYXBwZWQgYXQgMjU2IC0KICAgICAgICAgICAgaW4gZ2VuZXJhbCwgd2UndmUgZm91bmQgdGhhdCBsYXJnZXIgYmF0Y2ggc2l6ZXMgdGVuZCB0byB3b3JrIGJldHRlcgogICAgICAgICAgICBmb3IgbGFyZ2VyIGRhdGFzZXRzLgogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBsZWFybmluZ19yYXRlX211bHRpcGxpZXI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgbGVhcm5pbmcgcmF0ZSBtdWx0aXBsaWVyIHRvIHVzZSBmb3IgdHJhaW5pbmcuCiAgICAgICAgICAgIFRoZSBmaW5lLXR1bmluZyBsZWFybmluZyByYXRlIGlzIHRoZSBvcmlnaW5hbCBsZWFybmluZyByYXRlIHVzZWQgZm9yCiAgICAgICAgICAgIHByZXRyYWluaW5nIG11bHRpcGxpZWQgYnkgdGhpcyB2YWx1ZS4KCiAgICAgICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBsZWFybmluZyByYXRlIG11bHRpcGxpZXIgaXMgdGhlIDAuMDUsIDAuMSwgb3IgMC4yCiAgICAgICAgICAgIGRlcGVuZGluZyBvbiBmaW5hbCBgYmF0Y2hfc2l6ZWAgKGxhcmdlciBsZWFybmluZyByYXRlcyB0ZW5kIHRvCiAgICAgICAgICAgIHBlcmZvcm0gYmV0dGVyIHdpdGggbGFyZ2VyIGJhdGNoIHNpemVzKS4gV2UgcmVjb21tZW5kIGV4cGVyaW1lbnRpbmcKICAgICAgICAgICAgd2l0aCB2YWx1ZXMgaW4gdGhlIHJhbmdlIDAuMDIgdG8gMC4yIHRvIHNlZSB3aGF0IHByb2R1Y2VzIHRoZSBiZXN0CiAgICAgICAgICAgIHJlc3VsdHMuCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgcHJvbXB0X2xvc3Nfd2VpZ2h0OgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIHdlaWdodCB0byB1c2UgZm9yIGxvc3Mgb24gdGhlIHByb21wdCB0b2tlbnMuIFRoaXMgY29udHJvbHMgaG93CiAgICAgICAgICAgIG11Y2ggdGhlIG1vZGVsIHRyaWVzIHRvIGxlYXJuIHRvIGdlbmVyYXRlIHRoZSBwcm9tcHQgKGFzIGNvbXBhcmVkCiAgICAgICAgICAgIHRvIHRoZSBjb21wbGV0aW9uIHdoaWNoIGFsd2F5cyBoYXMgYSB3ZWlnaHQgb2YgMS4wKSwgYW5kIGNhbiBhZGQKICAgICAgICAgICAgYSBzdGFiaWxpemluZyBlZmZlY3QgdG8gdHJhaW5pbmcgd2hlbiBjb21wbGV0aW9ucyBhcmUgc2hvcnQuCgogICAgICAgICAgICBJZiBwcm9tcHRzIGFyZSBleHRyZW1lbHkgbG9uZyAocmVsYXRpdmUgdG8gY29tcGxldGlvbnMpLCBpdCBtYXkgbWFrZQogICAgICAgICAgICBzZW5zZSB0byByZWR1Y2UgdGhpcyB3ZWlnaHQgc28gYXMgdG8gYXZvaWQgb3Zlci1wcmlvcml0aXppbmcKICAgICAgICAgICAgbGVhcm5pbmcgdGhlIHByb21wdC4KICAgICAgICAgIGRlZmF1bHQ6IDAuMDEKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBjb21wdXRlX2NsYXNzaWZpY2F0aW9uX21ldHJpY3M6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBJZiBzZXQsIHdlIGNhbGN1bGF0ZSBjbGFzc2lmaWNhdGlvbi1zcGVjaWZpYyBtZXRyaWNzIHN1Y2ggYXMgYWNjdXJhY3kKICAgICAgICAgICAgYW5kIEYtMSBzY29yZSB1c2luZyB0aGUgdmFsaWRhdGlvbiBzZXQgYXQgdGhlIGVuZCBvZiBldmVyeSBlcG9jaC4KICAgICAgICAgICAgVGhlc2UgbWV0cmljcyBjYW4gYmUgdmlld2VkIGluIHRoZSBbcmVzdWx0cyBmaWxlXSgvZG9jcy9ndWlkZXMvZmluZS10dW5pbmcvYW5hbHl6aW5nLXlvdXItZmluZS10dW5lZC1tb2RlbCkuCgogICAgICAgICAgICBJbiBvcmRlciB0byBjb21wdXRlIGNsYXNzaWZpY2F0aW9uIG1ldHJpY3MsIHlvdSBtdXN0IHByb3ZpZGUgYQogICAgICAgICAgICBgdmFsaWRhdGlvbl9maWxlYC4gQWRkaXRpb25hbGx5LCB5b3UgbXVzdAogICAgICAgICAgICBzcGVjaWZ5IGBjbGFzc2lmaWNhdGlvbl9uX2NsYXNzZXNgIGZvciBtdWx0aWNsYXNzIGNsYXNzaWZpY2F0aW9uIG9yCiAgICAgICAgICAgIGBjbGFzc2lmaWNhdGlvbl9wb3NpdGl2ZV9jbGFzc2AgZm9yIGJpbmFyeSBjbGFzc2lmaWNhdGlvbi4KICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIGNsYXNzaWZpY2F0aW9uX25fY2xhc3NlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgY2xhc3NlcyBpbiBhIGNsYXNzaWZpY2F0aW9uIHRhc2suCgogICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBmb3IgbXVsdGljbGFzcyBjbGFzc2lmaWNhdGlvbi4KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlZmF1bHQ6IG51bGwKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgY2xhc3NpZmljYXRpb25fcG9zaXRpdmVfY2xhc3M6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgcG9zaXRpdmUgY2xhc3MgaW4gYmluYXJ5IGNsYXNzaWZpY2F0aW9uLgoKICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgbmVlZGVkIHRvIGdlbmVyYXRlIHByZWNpc2lvbiwgcmVjYWxsLCBhbmQgRjEKICAgICAgICAgICAgbWV0cmljcyB3aGVuIGRvaW5nIGJpbmFyeSBjbGFzc2lmaWNhdGlvbi4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBjbGFzc2lmaWNhdGlvbl9iZXRhczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIElmIHRoaXMgaXMgcHJvdmlkZWQsIHdlIGNhbGN1bGF0ZSBGLWJldGEgc2NvcmVzIGF0IHRoZSBzcGVjaWZpZWQKICAgICAgICAgICAgYmV0YSB2YWx1ZXMuIFRoZSBGLWJldGEgc2NvcmUgaXMgYSBnZW5lcmFsaXphdGlvbiBvZiBGLTEgc2NvcmUuCiAgICAgICAgICAgIFRoaXMgaXMgb25seSB1c2VkIGZvciBiaW5hcnkgY2xhc3NpZmljYXRpb24uCgogICAgICAgICAgICBXaXRoIGEgYmV0YSBvZiAxIChpLmUuIHRoZSBGLTEgc2NvcmUpLCBwcmVjaXNpb24gYW5kIHJlY2FsbCBhcmUKICAgICAgICAgICAgZ2l2ZW4gdGhlIHNhbWUgd2VpZ2h0LiBBIGxhcmdlciBiZXRhIHNjb3JlIHB1dHMgbW9yZSB3ZWlnaHQgb24KICAgICAgICAgICAgcmVjYWxsIGFuZCBsZXNzIG9uIHByZWNpc2lvbi4gQSBzbWFsbGVyIGJldGEgc2NvcmUgcHV0cyBtb3JlIHdlaWdodAogICAgICAgICAgICBvbiBwcmVjaXNpb24gYW5kIGxlc3Mgb24gcmVjYWxsLgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIGV4YW1wbGU6IFswLjYsIDEsIDEuNSwgMl0KICAgICAgICAgIGRlZmF1bHQ6IG51bGwKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgc3VmZml4OgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgQSBzdHJpbmcgb2YgdXAgdG8gNDAgY2hhcmFjdGVycyB0aGF0IHdpbGwgYmUgYWRkZWQgdG8geW91ciBmaW5lLXR1bmVkIG1vZGVsIG5hbWUuCgogICAgICAgICAgICBGb3IgZXhhbXBsZSwgYSBgc3VmZml4YCBvZiAiY3VzdG9tLW1vZGVsLW5hbWUiIHdvdWxkIHByb2R1Y2UgYSBtb2RlbCBuYW1lIGxpa2UgYGFkYTpmdC15b3VyLW9yZzpjdXN0b20tbW9kZWwtbmFtZS0yMDIyLTAyLTE1LTA0LTIxLTA0YC4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbWluTGVuZ3RoOiAxCiAgICAgICAgICBtYXhMZW5ndGg6IDQwCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICByZXF1aXJlZDoKICAgICAgICAtIHRyYWluaW5nX2ZpbGUKCiAgICBMaXN0RmluZVR1bmVzUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGRhdGE6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9GaW5lVHVuZScKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBkYXRhCgogICAgTGlzdEZpbmVUdW5lRXZlbnRzUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGRhdGE6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9GaW5lVHVuZUV2ZW50JwogICAgICByZXF1aXJlZDogCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGRhdGEKCiAgICBDcmVhdGVFbWJlZGRpbmdSZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbW9kZWw6ICptb2RlbF9jb25maWd1cmF0aW9uCiAgICAgICAgaW5wdXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBJbnB1dCB0ZXh0IHRvIGdldCBlbWJlZGRpbmdzIGZvciwgZW5jb2RlZCBhcyBhIHN0cmluZyBvciBhcnJheSBvZiB0b2tlbnMuIFRvIGdldCBlbWJlZGRpbmdzIGZvciBtdWx0aXBsZSBpbnB1dHMgaW4gYSBzaW5nbGUgcmVxdWVzdCwgcGFzcyBhbiBhcnJheSBvZiBzdHJpbmdzIG9yIGFycmF5IG9mIHRva2VuIGFycmF5cy4gRWFjaCBpbnB1dCBtdXN0IG5vdCBleGNlZWQgODE5MiB0b2tlbnMgaW4gbGVuZ3RoLgogICAgICAgICAgZXhhbXBsZTogIlRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nIgogICAgICAgICAgb25lT2Y6CiAgICAgICAgICAgIC0gdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZGVmYXVsdDogJycKICAgICAgICAgICAgICBleGFtcGxlOiAiVGhpcyBpcyBhIHRlc3QuIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICAgICAgICBleGFtcGxlOiAiVGhpcyBpcyBhIHRlc3QuIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgbWluSXRlbXM6IDEKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICBleGFtcGxlOiAiWzEyMTIsIDMxOCwgMjU3LCAxMzMyLCAxM10iCiAgICAgICAgICAgIC0gdHlwZTogYXJyYXkKICAgICAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIG1pbkl0ZW1zOiAxCiAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGV4YW1wbGU6ICJbWzEyMTIsIDMxOCwgMjU3LCAxMzMyLCAxM11dIgogICAgICAgIHVzZXI6ICplbmRfdXNlcl9wYXJhbV9jb25maWd1cmF0aW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbW9kZWwKICAgICAgICAtIGlucHV0CgogICAgQ3JlYXRlRW1iZWRkaW5nUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGF0YToKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgaW5kZXg6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgb2JqZWN0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZW1iZWRkaW5nOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAgIC0gaW5kZXgKICAgICAgICAgICAgICAtIG9iamVjdAogICAgICAgICAgICAgIC0gZW1iZWRkaW5nCiAgICAgICAgdXNhZ2U6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIHByb21wdF90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICB0b3RhbF90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAtIHByb21wdF90b2tlbnMKICAgICAgICAgICAgLSB0b3RhbF90b2tlbnMKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBtb2RlbAogICAgICAgIC0gZGF0YQogICAgICAgIC0gdXNhZ2UKCiAgICBDcmVhdGVUcmFuc2NyaXB0aW9uUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGZpbGU6IAogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIGF1ZGlvIGZpbGUgdG8gdHJhbnNjcmliZSwgaW4gb25lIG9mIHRoZXNlIGZvcm1hdHM6IG1wMywgbXA0LCBtcGVnLCBtcGdhLCBtNGEsIHdhdiwgb3Igd2VibS4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZm9ybWF0OiBiaW5hcnkKICAgICAgICBtb2RlbDogCiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBJRCBvZiB0aGUgbW9kZWwgdG8gdXNlLiBPbmx5IGB3aGlzcGVyLTFgIGlzIGN1cnJlbnRseSBhdmFpbGFibGUuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBwcm9tcHQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBBbiBvcHRpb25hbCB0ZXh0IHRvIGd1aWRlIHRoZSBtb2RlbCdzIHN0eWxlIG9yIGNvbnRpbnVlIGEgcHJldmlvdXMgYXVkaW8gc2VnbWVudC4gVGhlIFtwcm9tcHRdKC9kb2NzL2d1aWRlcy9zcGVlY2gtdG8tdGV4dC9wcm9tcHRpbmcpIHNob3VsZCBtYXRjaCB0aGUgYXVkaW8gbGFuZ3VhZ2UuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICByZXNwb25zZV9mb3JtYXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgZm9ybWF0IG9mIHRoZSB0cmFuc2NyaXB0IG91dHB1dCwgaW4gb25lIG9mIHRoZXNlIG9wdGlvbnM6IGpzb24sIHRleHQsIHNydCwgdmVyYm9zZV9qc29uLCBvciB2dHQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlZmF1bHQ6IGpzb24KICAgICAgICB0ZW1wZXJhdHVyZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBzYW1wbGluZyB0ZW1wZXJhdHVyZSwgYmV0d2VlbiAwIGFuZCAxLiBIaWdoZXIgdmFsdWVzIGxpa2UgMC44IHdpbGwgbWFrZSB0aGUgb3V0cHV0IG1vcmUgcmFuZG9tLCB3aGlsZSBsb3dlciB2YWx1ZXMgbGlrZSAwLjIgd2lsbCBtYWtlIGl0IG1vcmUgZm9jdXNlZCBhbmQgZGV0ZXJtaW5pc3RpYy4gSWYgc2V0IHRvIDAsIHRoZSBtb2RlbCB3aWxsIHVzZSBbbG9nIHByb2JhYmlsaXR5XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Mb2dfcHJvYmFiaWxpdHkpIHRvIGF1dG9tYXRpY2FsbHkgaW5jcmVhc2UgdGhlIHRlbXBlcmF0dXJlIHVudGlsIGNlcnRhaW4gdGhyZXNob2xkcyBhcmUgaGl0LgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgbGFuZ3VhZ2U6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIGlucHV0IGF1ZGlvLiBTdXBwbHlpbmcgdGhlIGlucHV0IGxhbmd1YWdlIGluIFtJU08tNjM5LTFdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xpc3Rfb2ZfSVNPXzYzOS0xX2NvZGVzKSBmb3JtYXQgd2lsbCBpbXByb3ZlIGFjY3VyYWN5IGFuZCBsYXRlbmN5LgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gZmlsZQogICAgICAgIC0gbW9kZWwKCiAgICAjIE5vdGU6IFRoaXMgZG9lcyBub3QgY3VycmVudGx5IHN1cHBvcnQgdGhlIG5vbi1kZWZhdWx0IHJlc3BvbnNlIGZvcm1hdCB0eXBlcy4gCiAgICBDcmVhdGVUcmFuc2NyaXB0aW9uUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHRleHQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gdGV4dAoKICAgIENyZWF0ZVRyYW5zbGF0aW9uUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGZpbGU6IAogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIGF1ZGlvIGZpbGUgdG8gdHJhbnNsYXRlLCBpbiBvbmUgb2YgdGhlc2UgZm9ybWF0czogbXAzLCBtcDQsIG1wZWcsIG1wZ2EsIG00YSwgd2F2LCBvciB3ZWJtLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBmb3JtYXQ6IGJpbmFyeQogICAgICAgIG1vZGVsOiAKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIElEIG9mIHRoZSBtb2RlbCB0byB1c2UuIE9ubHkgYHdoaXNwZXItMWAgaXMgY3VycmVudGx5IGF2YWlsYWJsZS4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHByb21wdDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIEFuIG9wdGlvbmFsIHRleHQgdG8gZ3VpZGUgdGhlIG1vZGVsJ3Mgc3R5bGUgb3IgY29udGludWUgYSBwcmV2aW91cyBhdWRpbyBzZWdtZW50LiBUaGUgW3Byb21wdF0oL2RvY3MvZ3VpZGVzL3NwZWVjaC10by10ZXh0L3Byb21wdGluZykgc2hvdWxkIGJlIGluIEVuZ2xpc2guCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICByZXNwb25zZV9mb3JtYXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgZm9ybWF0IG9mIHRoZSB0cmFuc2NyaXB0IG91dHB1dCwgaW4gb25lIG9mIHRoZXNlIG9wdGlvbnM6IGpzb24sIHRleHQsIHNydCwgdmVyYm9zZV9qc29uLCBvciB2dHQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlZmF1bHQ6IGpzb24KICAgICAgICB0ZW1wZXJhdHVyZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBzYW1wbGluZyB0ZW1wZXJhdHVyZSwgYmV0d2VlbiAwIGFuZCAxLiBIaWdoZXIgdmFsdWVzIGxpa2UgMC44IHdpbGwgbWFrZSB0aGUgb3V0cHV0IG1vcmUgcmFuZG9tLCB3aGlsZSBsb3dlciB2YWx1ZXMgbGlrZSAwLjIgd2lsbCBtYWtlIGl0IG1vcmUgZm9jdXNlZCBhbmQgZGV0ZXJtaW5pc3RpYy4gSWYgc2V0IHRvIDAsIHRoZSBtb2RlbCB3aWxsIHVzZSBbbG9nIHByb2JhYmlsaXR5XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Mb2dfcHJvYmFiaWxpdHkpIHRvIGF1dG9tYXRpY2FsbHkgaW5jcmVhc2UgdGhlIHRlbXBlcmF0dXJlIHVudGlsIGNlcnRhaW4gdGhyZXNob2xkcyBhcmUgaGl0LgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gZmlsZQogICAgICAgIC0gbW9kZWwKCiAgICAjIE5vdGU6IFRoaXMgZG9lcyBub3QgY3VycmVudGx5IHN1cHBvcnQgdGhlIG5vbi1kZWZhdWx0IHJlc3BvbnNlIGZvcm1hdCB0eXBlcy4gCiAgICBDcmVhdGVUcmFuc2xhdGlvblJlc3BvbnNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICB0ZXh0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIHRleHQKCiAgICBFbmdpbmU6CiAgICAgIHRpdGxlOiBFbmdpbmUKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNyZWF0ZWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIHJlYWR5OgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICByZXF1aXJlZDogCiAgICAgICAgLSBpZAogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBjcmVhdGVkCiAgICAgICAgLSByZWFkeQoKICAgIE1vZGVsOgogICAgICB0aXRsZTogTW9kZWwKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNyZWF0ZWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgb3duZWRfYnk6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gY3JlYXRlZAogICAgICAgIC0gb3duZWRfYnkKCiAgICBPcGVuQUlGaWxlOgogICAgICB0aXRsZTogT3BlbkFJRmlsZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgYnl0ZXM6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgY3JlYXRlZF9hdDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBmaWxlbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHB1cnBvc2U6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBzdGF0dXM6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBzdGF0dXNfZGV0YWlsczoKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gYnl0ZXMKICAgICAgICAtIGNyZWF0ZWRfYXQKICAgICAgICAtIGZpbGVuYW1lCiAgICAgICAgLSBwdXJwb3NlCgogICAgRmluZVR1bmU6CiAgICAgIHRpdGxlOiBGaW5lVHVuZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY3JlYXRlZF9hdDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICB1cGRhdGVkX2F0OgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZmluZV90dW5lZF9tb2RlbDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBvcmdhbml6YXRpb25faWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBzdGF0dXM6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBoeXBlcnBhcmFtczoKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgIHRyYWluaW5nX2ZpbGVzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvT3BlbkFJRmlsZScKICAgICAgICB2YWxpZGF0aW9uX2ZpbGVzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvT3BlbkFJRmlsZScKICAgICAgICByZXN1bHRfZmlsZXM6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9PcGVuQUlGaWxlJwogICAgICAgIGV2ZW50czoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ZpbmVUdW5lRXZlbnQnCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIGlkCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGNyZWF0ZWRfYXQKICAgICAgICAtIHVwZGF0ZWRfYXQKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSBmaW5lX3R1bmVkX21vZGVsCiAgICAgICAgLSBvcmdhbml6YXRpb25faWQKICAgICAgICAtIHN0YXR1cwogICAgICAgIC0gaHlwZXJwYXJhbXMKICAgICAgICAtIHRyYWluaW5nX2ZpbGVzCiAgICAgICAgLSB2YWxpZGF0aW9uX2ZpbGVzCiAgICAgICAgLSByZXN1bHRfZmlsZXMKCiAgICBGaW5lVHVuZUV2ZW50OgogICAgICB0aXRsZTogRmluZVR1bmVFdmVudAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNyZWF0ZWRfYXQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgbGV2ZWw6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBtZXNzYWdlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gY3JlYXRlZF9hdAogICAgICAgIC0gbGV2ZWwKICAgICAgICAtIG1lc3NhZ2UKCngtb2FpTWV0YToKICBncm91cHM6CiAgICAtIGlkOiBtb2RlbHMKICAgICAgdGl0bGU6IE1vZGVscwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIExpc3QgYW5kIGRlc2NyaWJlIHRoZSB2YXJpb3VzIG1vZGVscyBhdmFpbGFibGUgaW4gdGhlIEFQSS4gWW91IGNhbiByZWZlciB0byB0aGUgW01vZGVsc10oL2RvY3MvbW9kZWxzKSBkb2N1bWVudGF0aW9uIHRvIHVuZGVyc3RhbmQgd2hhdCBtb2RlbHMgYXJlIGF2YWlsYWJsZSBhbmQgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlbS4KICAgIC0gaWQ6IGNvbXBsZXRpb25zCiAgICAgIHRpdGxlOiBDb21wbGV0aW9ucwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgcHJvbXB0LCB0aGUgbW9kZWwgd2lsbCByZXR1cm4gb25lIG9yIG1vcmUgcHJlZGljdGVkIGNvbXBsZXRpb25zLCBhbmQgY2FuIGFsc28gcmV0dXJuIHRoZSBwcm9iYWJpbGl0aWVzIG9mIGFsdGVybmF0aXZlIHRva2VucyBhdCBlYWNoIHBvc2l0aW9uLgogICAgLSBpZDogY2hhdAogICAgICB0aXRsZTogQ2hhdAogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgY2hhdCBjb252ZXJzYXRpb24sIHRoZSBtb2RlbCB3aWxsIHJldHVybiBhIGNoYXQgY29tcGxldGlvbiByZXNwb25zZS4KICAgIC0gaWQ6IGVkaXRzCiAgICAgIHRpdGxlOiBFZGl0cwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgcHJvbXB0IGFuZCBhbiBpbnN0cnVjdGlvbiwgdGhlIG1vZGVsIHdpbGwgcmV0dXJuIGFuIGVkaXRlZCB2ZXJzaW9uIG9mIHRoZSBwcm9tcHQuCiAgICAtIGlkOiBpbWFnZXMKICAgICAgdGl0bGU6IEltYWdlcwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgcHJvbXB0IGFuZC9vciBhbiBpbnB1dCBpbWFnZSwgdGhlIG1vZGVsIHdpbGwgZ2VuZXJhdGUgYSBuZXcgaW1hZ2UuCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtJbWFnZSBnZW5lcmF0aW9uXSgvZG9jcy9ndWlkZXMvaW1hZ2VzKQogICAgLSBpZDogZW1iZWRkaW5ncwogICAgICB0aXRsZTogRW1iZWRkaW5ncwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdldCBhIHZlY3RvciByZXByZXNlbnRhdGlvbiBvZiBhIGdpdmVuIGlucHV0IHRoYXQgY2FuIGJlIGVhc2lseSBjb25zdW1lZCBieSBtYWNoaW5lIGxlYXJuaW5nIG1vZGVscyBhbmQgYWxnb3JpdGhtcy4KCiAgICAgICAgUmVsYXRlZCBndWlkZTogW0VtYmVkZGluZ3NdKC9kb2NzL2d1aWRlcy9lbWJlZGRpbmdzKQogICAgLSBpZDogYXVkaW8KICAgICAgdGl0bGU6IEF1ZGlvCiAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgTGVhcm4gaG93IHRvIHR1cm4gYXVkaW8gaW50byB0ZXh0LgoKICAgICAgICBSZWxhdGVkIGd1aWRlOiBbU3BlZWNoIHRvIHRleHRdKC9kb2NzL2d1aWRlcy9zcGVlY2gtdG8tdGV4dCkKICAgIC0gaWQ6IGZpbGVzCiAgICAgIHRpdGxlOiBGaWxlcwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEZpbGVzIGFyZSB1c2VkIHRvIHVwbG9hZCBkb2N1bWVudHMgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIGZlYXR1cmVzIGxpa2UgW0ZpbmUtdHVuaW5nXSgvZG9jcy9hcGktcmVmZXJlbmNlL2ZpbmUtdHVuZXMpLgogICAgLSBpZDogZmluZS10dW5lcwogICAgICB0aXRsZTogRmluZS10dW5lcwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIE1hbmFnZSBmaW5lLXR1bmluZyBqb2JzIHRvIHRhaWxvciBhIG1vZGVsIHRvIHlvdXIgc3BlY2lmaWMgdHJhaW5pbmcgZGF0YS4KCiAgICAgICAgUmVsYXRlZCBndWlkZTogW0ZpbmUtdHVuZSBtb2RlbHNdKC9kb2NzL2d1aWRlcy9maW5lLXR1bmluZykKICAgIC0gaWQ6IG1vZGVyYXRpb25zCiAgICAgIHRpdGxlOiBNb2RlcmF0aW9ucwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgaW5wdXQgdGV4dCwgb3V0cHV0cyBpZiB0aGUgbW9kZWwgY2xhc3NpZmllcyBpdCBhcyB2aW9sYXRpbmcgT3BlbkFJJ3MgY29udGVudCBwb2xpY3kuCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtNb2RlcmF0aW9uc10oL2RvY3MvZ3VpZGVzL21vZGVyYXRpb24pCiAgICAtIGlkOiBzZWFyY2hlcwogICAgICB0aXRsZTogU2VhcmNoZXMKICAgICAgd2FybmluZzoKICAgICAgICB0aXRsZTogVGhpcyBlbmRwb2ludCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gRGVjZW1iZXIgM3JkLCAyMDIyCiAgICAgICAgbWVzc2FnZTogV2XigJl2ZSBkZXZlbG9wZWQgbmV3IG1ldGhvZHMgd2l0aCBiZXR0ZXIgcGVyZm9ybWFuY2UuIFtMZWFybiBtb3JlXShodHRwczovL2hlbHAub3BlbmFpLmNvbS9lbi9hcnRpY2xlcy82MjcyOTUyLXNlYXJjaC10cmFuc2l0aW9uLWd1aWRlKS4KICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICBHaXZlbiBhIHF1ZXJ5IGFuZCBhIHNldCBvZiBkb2N1bWVudHMgb3IgbGFiZWxzLCB0aGUgbW9kZWwgcmFua3MgZWFjaCBkb2N1bWVudCBiYXNlZCBvbiBpdHMgc2VtYW50aWMgc2ltaWxhcml0eSB0byB0aGUgcHJvdmlkZWQgcXVlcnkuCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtTZWFyY2hdKC9kb2NzL2d1aWRlcy9zZWFyY2gpCiAgICAtIGlkOiBjbGFzc2lmaWNhdGlvbnMKICAgICAgdGl0bGU6IENsYXNzaWZpY2F0aW9ucwogICAgICB3YXJuaW5nOgogICAgICAgIHRpdGxlOiBUaGlzIGVuZHBvaW50IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBvbiBEZWNlbWJlciAzcmQsIDIwMjIKICAgICAgICBtZXNzYWdlOiBXZeKAmXZlIGRldmVsb3BlZCBuZXcgbWV0aG9kcyB3aXRoIGJldHRlciBwZXJmb3JtYW5jZS4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vaGVscC5vcGVuYWkuY29tL2VuL2FydGljbGVzLzYyNzI5NDEtY2xhc3NpZmljYXRpb25zLXRyYW5zaXRpb24tZ3VpZGUpLgogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgcXVlcnkgYW5kIGEgc2V0IG9mIGxhYmVsZWQgZXhhbXBsZXMsIHRoZSBtb2RlbCB3aWxsIHByZWRpY3QgdGhlIG1vc3QgbGlrZWx5IGxhYmVsIGZvciB0aGUgcXVlcnkuIFVzZWZ1bCBhcyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIGFueSBNTCBjbGFzc2lmaWNhdGlvbiBvciB0ZXh0LXRvLWxhYmVsIHRhc2suCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtDbGFzc2lmaWNhdGlvbl0oL2RvY3MvZ3VpZGVzL2NsYXNzaWZpY2F0aW9ucykKICAgIC0gaWQ6IGFuc3dlcnMKICAgICAgdGl0bGU6IEFuc3dlcnMKICAgICAgd2FybmluZzoKICAgICAgICB0aXRsZTogVGhpcyBlbmRwb2ludCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gRGVjZW1iZXIgM3JkLCAyMDIyCiAgICAgICAgbWVzc2FnZTogV2XigJl2ZSBkZXZlbG9wZWQgbmV3IG1ldGhvZHMgd2l0aCBiZXR0ZXIgcGVyZm9ybWFuY2UuIFtMZWFybiBtb3JlXShodHRwczovL2hlbHAub3BlbmFpLmNvbS9lbi9hcnRpY2xlcy82MjMzNzI4LWFuc3dlcnMtdHJhbnNpdGlvbi1ndWlkZSkuCiAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgR2l2ZW4gYSBxdWVzdGlvbiwgYSBzZXQgb2YgZG9jdW1lbnRzLCBhbmQgc29tZSBleGFtcGxlcywgdGhlIEFQSSBnZW5lcmF0ZXMgYW4gYW5zd2VyIHRvIHRoZSBxdWVzdGlvbiBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIHNldCBvZiBkb2N1bWVudHMuIFRoaXMgaXMgdXNlZnVsIGZvciBxdWVzdGlvbi1hbnN3ZXJpbmcgYXBwbGljYXRpb25zIG9uIHNvdXJjZXMgb2YgdHJ1dGgsIGxpa2UgY29tcGFueSBkb2N1bWVudGF0aW9uIG9yIGEga25vd2xlZGdlIGJhc2UuCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtRdWVzdGlvbiBhbnN3ZXJpbmddKC9kb2NzL2d1aWRlcy9hbnN3ZXJzKQogICAgLSBpZDogZW5naW5lcwogICAgICB0aXRsZTogRW5naW5lcwogICAgICBkZXNjcmlwdGlvbjogVGhlc2UgZW5kcG9pbnRzIGRlc2NyaWJlIGFuZCBwcm92aWRlIGFjY2VzcyB0byB0aGUgdmFyaW91cyBlbmdpbmVzIGF2YWlsYWJsZSBpbiB0aGUgQVBJLgogICAgICB3YXJuaW5nOgogICAgICAgIHRpdGxlOiBUaGUgRW5naW5lcyBlbmRwb2ludHMgYXJlIGRlcHJlY2F0ZWQuCiAgICAgICAgbWVzc2FnZTogUGxlYXNlIHVzZSB0aGVpciByZXBsYWNlbWVudCwgW01vZGVsc10oL2RvY3MvYXBpLXJlZmVyZW5jZS9tb2RlbHMpLCBpbnN0ZWFkLiBbTGVhcm4gbW9yZV0oaHR0cHM6Ly9oZWxwLm9wZW5haS5jb20vVE9ETykuCg=="},"_type":"JsonSpec"},"description":"","base_classes":["Tool","JsonSpec"]},"id":"dndnode_230","value":null},"selected":true,"positionAbsolute":{"x":390,"y":230},"dragging":false},{"width":384,"height":227,"id":"dndnode_231","type":"genericNode","position":{"x":998,"y":336},"data":{"type":"JsonToolkit","node":{"template":{"spec":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"spec","advanced":false,"type":"JsonSpec","list":false},"_type":"JsonToolkit"},"description":"Toolkit for interacting with a JSON spec.","base_classes":["JsonToolkit","BaseToolkit"]},"id":"dndnode_231","value":null},"selected":false,"positionAbsolute":{"x":998,"y":336},"dragging":false},{"width":384,"height":597,"id":"dndnode_232","type":"genericNode","position":{"x":392,"y":598},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_232","value":null},"selected":false,"positionAbsolute":{"x":392,"y":598},"dragging":false},{"width":384,"height":267,"id":"dndnode_233","type":"genericNode","position":{"x":1500,"y":654},"data":{"type":"JsonAgent","node":{"template":{"toolkit":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"toolkit","advanced":false,"type":"BaseToolkit","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"json_agent"},"description":"Construct a json agent from an LLM and tools.","base_classes":["AgentExecutor"]},"id":"dndnode_233","value":null},"selected":false,"positionAbsolute":{"x":1500,"y":654},"dragging":false}],"edges":[{"source":"dndnode_230","sourceHandle":"JsonSpec|dndnode_230|Tool|JsonSpec","target":"dndnode_231","targetHandle":"JsonSpec|spec|dndnode_231","className":"animate-pulse","id":"reactflow__edge-dndnode_230JsonSpec|dndnode_230|Tool|JsonSpec-dndnode_231JsonSpec|spec|dndnode_231","selected":false},{"source":"dndnode_231","sourceHandle":"JsonToolkit|dndnode_231|JsonToolkit|BaseToolkit","target":"dndnode_233","targetHandle":"BaseToolkit|toolkit|dndnode_233","className":"animate-pulse","id":"reactflow__edge-dndnode_231JsonToolkit|dndnode_231|JsonToolkit|BaseToolkit-dndnode_233BaseToolkit|toolkit|dndnode_233","selected":false},{"source":"dndnode_232","sourceHandle":"OpenAI|dndnode_232|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_233","targetHandle":"BaseLanguageModel|llm|dndnode_233","className":"animate-pulse","id":"reactflow__edge-dndnode_232OpenAI|dndnode_232|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_233BaseLanguageModel|llm|dndnode_233","selected":false}],"viewport":{"x":4,"y":1,"zoom":0.5}}} \ No newline at end of file diff --git a/docs/data/Midjourney_prompt_chain.json b/docs/data/Midjourney_prompt_chain.json deleted file mode 100644 index 9b69fec52..000000000 --- a/docs/data/Midjourney_prompt_chain.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"704dac29-2904-43c6-ac2f-f25339c0d505","data":{"nodes":[{"width":384,"height":247,"id":"dndnode_200","type":"genericNode","position":{"x":1594.6821064425578,"y":693.0461401659423},"data":{"type":"MidJourneyPromptChain","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"MidJourneyPromptChain"},"description":"MidJourneyPromptChain is a chain you can use to generate new MidJourney prompts.","base_classes":["LLMChain","BaseCustomChain","Chain","ConversationChain","MidJourneyPromptChain"]},"id":"dndnode_200","value":null},"selected":false,"positionAbsolute":{"x":1594.6821064425578,"y":693.0461401659423}},{"width":384,"height":597,"id":"dndnode_201","type":"genericNode","position":{"x":999.5906785159896,"y":439.23606126714105},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_201","value":null},"selected":true,"positionAbsolute":{"x":999.5906785159896,"y":439.23606126714105},"dragging":false}],"edges":[{"source":"dndnode_201","sourceHandle":"OpenAI|dndnode_201|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_200","targetHandle":"BaseLanguageModel|llm|dndnode_200","className":"animate-pulse","id":"reactflow__edge-dndnode_201OpenAI|dndnode_201|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_200BaseLanguageModel|llm|dndnode_200","selected":false}],"viewport":{"x":-334.0863839015408,"y":-192.31085724252193,"zoom":0.697371833175203}}} \ No newline at end of file diff --git a/docs/data/Multiple_vectorstores.json b/docs/data/Multiple_vectorstores.json deleted file mode 100644 index 4b91eb39d..000000000 --- a/docs/data/Multiple_vectorstores.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"e32bf3bf-78bd-4b17-9984-09d9a090841c","data":{"nodes":[{"width":384,"height":265,"id":"dndnode_213","type":"genericNode","position":{"x":160.88681321552258,"y":85.60450902748329},"data":{"type":"TextLoader","node":{"template":{"file_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"state-of-the-union.txt","suffixes":[".txt"],"password":false,"name":"file_path","advanced":false,"type":"file","list":false,"fileTypes":["txt"],"content":"data:text/plain;base64,TWFkYW0gU3BlYWtlciwgTWFkYW0gVmljZSBQcmVzaWRlbnQsIG91ciBGaXJzdCBMYWR5IGFuZCBTZWNvbmQgR2VudGxlbWFuLiBNZW1iZXJzIG9mIENvbmdyZXNzIGFuZCB0aGUgQ2FiaW5ldC4gSnVzdGljZXMgb2YgdGhlIFN1cHJlbWUgQ291cnQuIE15IGZlbGxvdyBBbWVyaWNhbnMuICAKCkxhc3QgeWVhciBDT1ZJRC0xOSBrZXB0IHVzIGFwYXJ0LiBUaGlzIHllYXIgd2UgYXJlIGZpbmFsbHkgdG9nZXRoZXIgYWdhaW4uIAoKVG9uaWdodCwgd2UgbWVldCBhcyBEZW1vY3JhdHMgUmVwdWJsaWNhbnMgYW5kIEluZGVwZW5kZW50cy4gQnV0IG1vc3QgaW1wb3J0YW50bHkgYXMgQW1lcmljYW5zLiAKCldpdGggYSBkdXR5IHRvIG9uZSBhbm90aGVyIHRvIHRoZSBBbWVyaWNhbiBwZW9wbGUgdG8gdGhlIENvbnN0aXR1dGlvbi4gCgpBbmQgd2l0aCBhbiB1bndhdmVyaW5nIHJlc29sdmUgdGhhdCBmcmVlZG9tIHdpbGwgYWx3YXlzIHRyaXVtcGggb3ZlciB0eXJhbm55LiAKClNpeCBkYXlzIGFnbywgUnVzc2lh4oCZcyBWbGFkaW1pciBQdXRpbiBzb3VnaHQgdG8gc2hha2UgdGhlIGZvdW5kYXRpb25zIG9mIHRoZSBmcmVlIHdvcmxkIHRoaW5raW5nIGhlIGNvdWxkIG1ha2UgaXQgYmVuZCB0byBoaXMgbWVuYWNpbmcgd2F5cy4gQnV0IGhlIGJhZGx5IG1pc2NhbGN1bGF0ZWQuIAoKSGUgdGhvdWdodCBoZSBjb3VsZCByb2xsIGludG8gVWtyYWluZSBhbmQgdGhlIHdvcmxkIHdvdWxkIHJvbGwgb3Zlci4gSW5zdGVhZCBoZSBtZXQgYSB3YWxsIG9mIHN0cmVuZ3RoIGhlIG5ldmVyIGltYWdpbmVkLiAKCkhlIG1ldCB0aGUgVWtyYWluaWFuIHBlb3BsZS4gCgpGcm9tIFByZXNpZGVudCBaZWxlbnNreXkgdG8gZXZlcnkgVWtyYWluaWFuLCB0aGVpciBmZWFybGVzc25lc3MsIHRoZWlyIGNvdXJhZ2UsIHRoZWlyIGRldGVybWluYXRpb24sIGluc3BpcmVzIHRoZSB3b3JsZC4gCgpHcm91cHMgb2YgY2l0aXplbnMgYmxvY2tpbmcgdGFua3Mgd2l0aCB0aGVpciBib2RpZXMuIEV2ZXJ5b25lIGZyb20gc3R1ZGVudHMgdG8gcmV0aXJlZXMgdGVhY2hlcnMgdHVybmVkIHNvbGRpZXJzIGRlZmVuZGluZyB0aGVpciBob21lbGFuZC4gCgpJbiB0aGlzIHN0cnVnZ2xlIGFzIFByZXNpZGVudCBaZWxlbnNreXkgc2FpZCBpbiBoaXMgc3BlZWNoIHRvIHRoZSBFdXJvcGVhbiBQYXJsaWFtZW50IOKAnExpZ2h0IHdpbGwgd2luIG92ZXIgZGFya25lc3Mu4oCdIFRoZSBVa3JhaW5pYW4gQW1iYXNzYWRvciB0byB0aGUgVW5pdGVkIFN0YXRlcyBpcyBoZXJlIHRvbmlnaHQuIAoKTGV0IGVhY2ggb2YgdXMgaGVyZSB0b25pZ2h0IGluIHRoaXMgQ2hhbWJlciBzZW5kIGFuIHVubWlzdGFrYWJsZSBzaWduYWwgdG8gVWtyYWluZSBhbmQgdG8gdGhlIHdvcmxkLiAKClBsZWFzZSByaXNlIGlmIHlvdSBhcmUgYWJsZSBhbmQgc2hvdyB0aGF0LCBZZXMsIHdlIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2Egc3RhbmQgd2l0aCB0aGUgVWtyYWluaWFuIHBlb3BsZS4gCgpUaHJvdWdob3V0IG91ciBoaXN0b3J5IHdl4oCZdmUgbGVhcm5lZCB0aGlzIGxlc3NvbiB3aGVuIGRpY3RhdG9ycyBkbyBub3QgcGF5IGEgcHJpY2UgZm9yIHRoZWlyIGFnZ3Jlc3Npb24gdGhleSBjYXVzZSBtb3JlIGNoYW9zLiAgIAoKVGhleSBrZWVwIG1vdmluZy4gICAKCkFuZCB0aGUgY29zdHMgYW5kIHRoZSB0aHJlYXRzIHRvIEFtZXJpY2EgYW5kIHRoZSB3b3JsZCBrZWVwIHJpc2luZy4gICAKClRoYXTigJlzIHdoeSB0aGUgTkFUTyBBbGxpYW5jZSB3YXMgY3JlYXRlZCB0byBzZWN1cmUgcGVhY2UgYW5kIHN0YWJpbGl0eSBpbiBFdXJvcGUgYWZ0ZXIgV29ybGQgV2FyIDIuIAoKVGhlIFVuaXRlZCBTdGF0ZXMgaXMgYSBtZW1iZXIgYWxvbmcgd2l0aCAyOSBvdGhlciBuYXRpb25zLiAKCkl0IG1hdHRlcnMuIEFtZXJpY2FuIGRpcGxvbWFjeSBtYXR0ZXJzLiBBbWVyaWNhbiByZXNvbHZlIG1hdHRlcnMuIAoKUHV0aW7igJlzIGxhdGVzdCBhdHRhY2sgb24gVWtyYWluZSB3YXMgcHJlbWVkaXRhdGVkIGFuZCB1bnByb3Zva2VkLiAKCkhlIHJlamVjdGVkIHJlcGVhdGVkIGVmZm9ydHMgYXQgZGlwbG9tYWN5LiAKCkhlIHRob3VnaHQgdGhlIFdlc3QgYW5kIE5BVE8gd291bGRu4oCZdCByZXNwb25kLiBBbmQgaGUgdGhvdWdodCBoZSBjb3VsZCBkaXZpZGUgdXMgYXQgaG9tZS4gUHV0aW4gd2FzIHdyb25nLiBXZSB3ZXJlIHJlYWR5LiAgSGVyZSBpcyB3aGF0IHdlIGRpZC4gICAKCldlIHByZXBhcmVkIGV4dGVuc2l2ZWx5IGFuZCBjYXJlZnVsbHkuIAoKV2Ugc3BlbnQgbW9udGhzIGJ1aWxkaW5nIGEgY29hbGl0aW9uIG9mIG90aGVyIGZyZWVkb20tbG92aW5nIG5hdGlvbnMgZnJvbSBFdXJvcGUgYW5kIHRoZSBBbWVyaWNhcyB0byBBc2lhIGFuZCBBZnJpY2EgdG8gY29uZnJvbnQgUHV0aW4uIAoKSSBzcGVudCBjb3VudGxlc3MgaG91cnMgdW5pZnlpbmcgb3VyIEV1cm9wZWFuIGFsbGllcy4gV2Ugc2hhcmVkIHdpdGggdGhlIHdvcmxkIGluIGFkdmFuY2Ugd2hhdCB3ZSBrbmV3IFB1dGluIHdhcyBwbGFubmluZyBhbmQgcHJlY2lzZWx5IGhvdyBoZSB3b3VsZCB0cnkgdG8gZmFsc2VseSBqdXN0aWZ5IGhpcyBhZ2dyZXNzaW9uLiAgCgpXZSBjb3VudGVyZWQgUnVzc2lh4oCZcyBsaWVzIHdpdGggdHJ1dGguICAgCgpBbmQgbm93IHRoYXQgaGUgaGFzIGFjdGVkIHRoZSBmcmVlIHdvcmxkIGlzIGhvbGRpbmcgaGltIGFjY291bnRhYmxlLiAKCkFsb25nIHdpdGggdHdlbnR5LXNldmVuIG1lbWJlcnMgb2YgdGhlIEV1cm9wZWFuIFVuaW9uIGluY2x1ZGluZyBGcmFuY2UsIEdlcm1hbnksIEl0YWx5LCBhcyB3ZWxsIGFzIGNvdW50cmllcyBsaWtlIHRoZSBVbml0ZWQgS2luZ2RvbSwgQ2FuYWRhLCBKYXBhbiwgS29yZWEsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQsIGFuZCBtYW55IG90aGVycywgZXZlbiBTd2l0emVybGFuZC4gCgpXZSBhcmUgaW5mbGljdGluZyBwYWluIG9uIFJ1c3NpYSBhbmQgc3VwcG9ydGluZyB0aGUgcGVvcGxlIG9mIFVrcmFpbmUuIFB1dGluIGlzIG5vdyBpc29sYXRlZCBmcm9tIHRoZSB3b3JsZCBtb3JlIHRoYW4gZXZlci4gCgpUb2dldGhlciB3aXRoIG91ciBhbGxpZXMg4oCTd2UgYXJlIHJpZ2h0IG5vdyBlbmZvcmNpbmcgcG93ZXJmdWwgZWNvbm9taWMgc2FuY3Rpb25zLiAKCldlIGFyZSBjdXR0aW5nIG9mZiBSdXNzaWHigJlzIGxhcmdlc3QgYmFua3MgZnJvbSB0aGUgaW50ZXJuYXRpb25hbCBmaW5hbmNpYWwgc3lzdGVtLiAgCgpQcmV2ZW50aW5nIFJ1c3NpYeKAmXMgY2VudHJhbCBiYW5rIGZyb20gZGVmZW5kaW5nIHRoZSBSdXNzaWFuIFJ1YmxlIG1ha2luZyBQdXRpbuKAmXMgJDYzMCBCaWxsaW9uIOKAnHdhciBmdW5k4oCdIHdvcnRobGVzcy4gICAKCldlIGFyZSBjaG9raW5nIG9mZiBSdXNzaWHigJlzIGFjY2VzcyB0byB0ZWNobm9sb2d5IHRoYXQgd2lsbCBzYXAgaXRzIGVjb25vbWljIHN0cmVuZ3RoIGFuZCB3ZWFrZW4gaXRzIG1pbGl0YXJ5IGZvciB5ZWFycyB0byBjb21lLiAgCgpUb25pZ2h0IEkgc2F5IHRvIHRoZSBSdXNzaWFuIG9saWdhcmNocyBhbmQgY29ycnVwdCBsZWFkZXJzIHdobyBoYXZlIGJpbGtlZCBiaWxsaW9ucyBvZiBkb2xsYXJzIG9mZiB0aGlzIHZpb2xlbnQgcmVnaW1lIG5vIG1vcmUuIAoKVGhlIFUuUy4gRGVwYXJ0bWVudCBvZiBKdXN0aWNlIGlzIGFzc2VtYmxpbmcgYSBkZWRpY2F0ZWQgdGFzayBmb3JjZSB0byBnbyBhZnRlciB0aGUgY3JpbWVzIG9mIFJ1c3NpYW4gb2xpZ2FyY2hzLiAgCgpXZSBhcmUgam9pbmluZyB3aXRoIG91ciBFdXJvcGVhbiBhbGxpZXMgdG8gZmluZCBhbmQgc2VpemUgeW91ciB5YWNodHMgeW91ciBsdXh1cnkgYXBhcnRtZW50cyB5b3VyIHByaXZhdGUgamV0cy4gV2UgYXJlIGNvbWluZyBmb3IgeW91ciBpbGwtYmVnb3R0ZW4gZ2FpbnMuIAoKQW5kIHRvbmlnaHQgSSBhbSBhbm5vdW5jaW5nIHRoYXQgd2Ugd2lsbCBqb2luIG91ciBhbGxpZXMgaW4gY2xvc2luZyBvZmYgQW1lcmljYW4gYWlyIHNwYWNlIHRvIGFsbCBSdXNzaWFuIGZsaWdodHMg4oCTIGZ1cnRoZXIgaXNvbGF0aW5nIFJ1c3NpYSDigJMgYW5kIGFkZGluZyBhbiBhZGRpdGlvbmFsIHNxdWVlemUg4oCTb24gdGhlaXIgZWNvbm9teS4gVGhlIFJ1YmxlIGhhcyBsb3N0IDMwJSBvZiBpdHMgdmFsdWUuIAoKVGhlIFJ1c3NpYW4gc3RvY2sgbWFya2V0IGhhcyBsb3N0IDQwJSBvZiBpdHMgdmFsdWUgYW5kIHRyYWRpbmcgcmVtYWlucyBzdXNwZW5kZWQuIFJ1c3NpYeKAmXMgZWNvbm9teSBpcyByZWVsaW5nIGFuZCBQdXRpbiBhbG9uZSBpcyB0byBibGFtZS4gCgpUb2dldGhlciB3aXRoIG91ciBhbGxpZXMgd2UgYXJlIHByb3ZpZGluZyBzdXBwb3J0IHRvIHRoZSBVa3JhaW5pYW5zIGluIHRoZWlyIGZpZ2h0IGZvciBmcmVlZG9tLiBNaWxpdGFyeSBhc3Npc3RhbmNlLiBFY29ub21pYyBhc3Npc3RhbmNlLiBIdW1hbml0YXJpYW4gYXNzaXN0YW5jZS4gCgpXZSBhcmUgZ2l2aW5nIG1vcmUgdGhhbiAkMSBCaWxsaW9uIGluIGRpcmVjdCBhc3Npc3RhbmNlIHRvIFVrcmFpbmUuIAoKQW5kIHdlIHdpbGwgY29udGludWUgdG8gYWlkIHRoZSBVa3JhaW5pYW4gcGVvcGxlIGFzIHRoZXkgZGVmZW5kIHRoZWlyIGNvdW50cnkgYW5kIHRvIGhlbHAgZWFzZSB0aGVpciBzdWZmZXJpbmcuICAKCkxldCBtZSBiZSBjbGVhciwgb3VyIGZvcmNlcyBhcmUgbm90IGVuZ2FnZWQgYW5kIHdpbGwgbm90IGVuZ2FnZSBpbiBjb25mbGljdCB3aXRoIFJ1c3NpYW4gZm9yY2VzIGluIFVrcmFpbmUuICAKCk91ciBmb3JjZXMgYXJlIG5vdCBnb2luZyB0byBFdXJvcGUgdG8gZmlnaHQgaW4gVWtyYWluZSwgYnV0IHRvIGRlZmVuZCBvdXIgTkFUTyBBbGxpZXMg4oCTIGluIHRoZSBldmVudCB0aGF0IFB1dGluIGRlY2lkZXMgdG8ga2VlcCBtb3Zpbmcgd2VzdC4gIAoKRm9yIHRoYXQgcHVycG9zZSB3ZeKAmXZlIG1vYmlsaXplZCBBbWVyaWNhbiBncm91bmQgZm9yY2VzLCBhaXIgc3F1YWRyb25zLCBhbmQgc2hpcCBkZXBsb3ltZW50cyB0byBwcm90ZWN0IE5BVE8gY291bnRyaWVzIGluY2x1ZGluZyBQb2xhbmQsIFJvbWFuaWEsIExhdHZpYSwgTGl0aHVhbmlhLCBhbmQgRXN0b25pYS4gCgpBcyBJIGhhdmUgbWFkZSBjcnlzdGFsIGNsZWFyIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBvdXIgQWxsaWVzIHdpbGwgZGVmZW5kIGV2ZXJ5IGluY2ggb2YgdGVycml0b3J5IG9mIE5BVE8gY291bnRyaWVzIHdpdGggdGhlIGZ1bGwgZm9yY2Ugb2Ygb3VyIGNvbGxlY3RpdmUgcG93ZXIuICAKCkFuZCB3ZSByZW1haW4gY2xlYXItZXllZC4gVGhlIFVrcmFpbmlhbnMgYXJlIGZpZ2h0aW5nIGJhY2sgd2l0aCBwdXJlIGNvdXJhZ2UuIEJ1dCB0aGUgbmV4dCBmZXcgZGF5cyB3ZWVrcywgbW9udGhzLCB3aWxsIGJlIGhhcmQgb24gdGhlbS4gIAoKUHV0aW4gaGFzIHVubGVhc2hlZCB2aW9sZW5jZSBhbmQgY2hhb3MuICBCdXQgd2hpbGUgaGUgbWF5IG1ha2UgZ2FpbnMgb24gdGhlIGJhdHRsZWZpZWxkIOKAkyBoZSB3aWxsIHBheSBhIGNvbnRpbnVpbmcgaGlnaCBwcmljZSBvdmVyIHRoZSBsb25nIHJ1bi4gCgpBbmQgYSBwcm91ZCBVa3JhaW5pYW4gcGVvcGxlLCB3aG8gaGF2ZSBrbm93biAzMCB5ZWFycyAgb2YgaW5kZXBlbmRlbmNlLCBoYXZlIHJlcGVhdGVkbHkgc2hvd24gdGhhdCB0aGV5IHdpbGwgbm90IHRvbGVyYXRlIGFueW9uZSB3aG8gdHJpZXMgdG8gdGFrZSB0aGVpciBjb3VudHJ5IGJhY2t3YXJkcy4gIAoKVG8gYWxsIEFtZXJpY2FucywgSSB3aWxsIGJlIGhvbmVzdCB3aXRoIHlvdSwgYXMgSeKAmXZlIGFsd2F5cyBwcm9taXNlZC4gQSBSdXNzaWFuIGRpY3RhdG9yLCBpbnZhZGluZyBhIGZvcmVpZ24gY291bnRyeSwgaGFzIGNvc3RzIGFyb3VuZCB0aGUgd29ybGQuIAoKQW5kIEnigJltIHRha2luZyByb2J1c3QgYWN0aW9uIHRvIG1ha2Ugc3VyZSB0aGUgcGFpbiBvZiBvdXIgc2FuY3Rpb25zICBpcyB0YXJnZXRlZCBhdCBSdXNzaWHigJlzIGVjb25vbXkuIEFuZCBJIHdpbGwgdXNlIGV2ZXJ5IHRvb2wgYXQgb3VyIGRpc3Bvc2FsIHRvIHByb3RlY3QgQW1lcmljYW4gYnVzaW5lc3NlcyBhbmQgY29uc3VtZXJzLiAKClRvbmlnaHQsIEkgY2FuIGFubm91bmNlIHRoYXQgdGhlIFVuaXRlZCBTdGF0ZXMgaGFzIHdvcmtlZCB3aXRoIDMwIG90aGVyIGNvdW50cmllcyB0byByZWxlYXNlIDYwIE1pbGxpb24gYmFycmVscyBvZiBvaWwgZnJvbSByZXNlcnZlcyBhcm91bmQgdGhlIHdvcmxkLiAgCgpBbWVyaWNhIHdpbGwgbGVhZCB0aGF0IGVmZm9ydCwgcmVsZWFzaW5nIDMwIE1pbGxpb24gYmFycmVscyBmcm9tIG91ciBvd24gU3RyYXRlZ2ljIFBldHJvbGV1bSBSZXNlcnZlLiBBbmQgd2Ugc3RhbmQgcmVhZHkgdG8gZG8gbW9yZSBpZiBuZWNlc3NhcnksIHVuaWZpZWQgd2l0aCBvdXIgYWxsaWVzLiAgCgpUaGVzZSBzdGVwcyB3aWxsIGhlbHAgYmx1bnQgZ2FzIHByaWNlcyBoZXJlIGF0IGhvbWUuIEFuZCBJIGtub3cgdGhlIG5ld3MgYWJvdXQgd2hhdOKAmXMgaGFwcGVuaW5nIGNhbiBzZWVtIGFsYXJtaW5nLiAKCkJ1dCBJIHdhbnQgeW91IHRvIGtub3cgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gYmUgb2theS4gCgpXaGVuIHRoZSBoaXN0b3J5IG9mIHRoaXMgZXJhIGlzIHdyaXR0ZW4gUHV0aW7igJlzIHdhciBvbiBVa3JhaW5lIHdpbGwgaGF2ZSBsZWZ0IFJ1c3NpYSB3ZWFrZXIgYW5kIHRoZSByZXN0IG9mIHRoZSB3b3JsZCBzdHJvbmdlci4gCgpXaGlsZSBpdCBzaG91bGRu4oCZdCBoYXZlIHRha2VuIHNvbWV0aGluZyBzbyB0ZXJyaWJsZSBmb3IgcGVvcGxlIGFyb3VuZCB0aGUgd29ybGQgdG8gc2VlIHdoYXTigJlzIGF0IHN0YWtlIG5vdyBldmVyeW9uZSBzZWVzIGl0IGNsZWFybHkuIAoKV2Ugc2VlIHRoZSB1bml0eSBhbW9uZyBsZWFkZXJzIG9mIG5hdGlvbnMgYW5kIGEgbW9yZSB1bmlmaWVkIEV1cm9wZSBhIG1vcmUgdW5pZmllZCBXZXN0LiBBbmQgd2Ugc2VlIHVuaXR5IGFtb25nIHRoZSBwZW9wbGUgd2hvIGFyZSBnYXRoZXJpbmcgaW4gY2l0aWVzIGluIGxhcmdlIGNyb3dkcyBhcm91bmQgdGhlIHdvcmxkIGV2ZW4gaW4gUnVzc2lhIHRvIGRlbW9uc3RyYXRlIHRoZWlyIHN1cHBvcnQgZm9yIFVrcmFpbmUuICAKCkluIHRoZSBiYXR0bGUgYmV0d2VlbiBkZW1vY3JhY3kgYW5kIGF1dG9jcmFjeSwgZGVtb2NyYWNpZXMgYXJlIHJpc2luZyB0byB0aGUgbW9tZW50LCBhbmQgdGhlIHdvcmxkIGlzIGNsZWFybHkgY2hvb3NpbmcgdGhlIHNpZGUgb2YgcGVhY2UgYW5kIHNlY3VyaXR5LiAKClRoaXMgaXMgYSByZWFsIHRlc3QuIEl04oCZcyBnb2luZyB0byB0YWtlIHRpbWUuIFNvIGxldCB1cyBjb250aW51ZSB0byBkcmF3IGluc3BpcmF0aW9uIGZyb20gdGhlIGlyb24gd2lsbCBvZiB0aGUgVWtyYWluaWFuIHBlb3BsZS4gCgpUbyBvdXIgZmVsbG93IFVrcmFpbmlhbiBBbWVyaWNhbnMgd2hvIGZvcmdlIGEgZGVlcCBib25kIHRoYXQgY29ubmVjdHMgb3VyIHR3byBuYXRpb25zIHdlIHN0YW5kIHdpdGggeW91LiAKClB1dGluIG1heSBjaXJjbGUgS3lpdiB3aXRoIHRhbmtzLCBidXQgaGUgd2lsbCBuZXZlciBnYWluIHRoZSBoZWFydHMgYW5kIHNvdWxzIG9mIHRoZSBVa3JhaW5pYW4gcGVvcGxlLiAKCkhlIHdpbGwgbmV2ZXIgZXh0aW5ndWlzaCB0aGVpciBsb3ZlIG9mIGZyZWVkb20uIEhlIHdpbGwgbmV2ZXIgd2Vha2VuIHRoZSByZXNvbHZlIG9mIHRoZSBmcmVlIHdvcmxkLiAKCldlIG1lZXQgdG9uaWdodCBpbiBhbiBBbWVyaWNhIHRoYXQgaGFzIGxpdmVkIHRocm91Z2ggdHdvIG9mIHRoZSBoYXJkZXN0IHllYXJzIHRoaXMgbmF0aW9uIGhhcyBldmVyIGZhY2VkLiAKClRoZSBwYW5kZW1pYyBoYXMgYmVlbiBwdW5pc2hpbmcuIAoKQW5kIHNvIG1hbnkgZmFtaWxpZXMgYXJlIGxpdmluZyBwYXljaGVjayB0byBwYXljaGVjaywgc3RydWdnbGluZyB0byBrZWVwIHVwIHdpdGggdGhlIHJpc2luZyBjb3N0IG9mIGZvb2QsIGdhcywgaG91c2luZywgYW5kIHNvIG11Y2ggbW9yZS4gCgpJIHVuZGVyc3RhbmQuIAoKSSByZW1lbWJlciB3aGVuIG15IERhZCBoYWQgdG8gbGVhdmUgb3VyIGhvbWUgaW4gU2NyYW50b24sIFBlbm5zeWx2YW5pYSB0byBmaW5kIHdvcmsuIEkgZ3JldyB1cCBpbiBhIGZhbWlseSB3aGVyZSBpZiB0aGUgcHJpY2Ugb2YgZm9vZCB3ZW50IHVwLCB5b3UgZmVsdCBpdC4gCgpUaGF04oCZcyB3aHkgb25lIG9mIHRoZSBmaXJzdCB0aGluZ3MgSSBkaWQgYXMgUHJlc2lkZW50IHdhcyBmaWdodCB0byBwYXNzIHRoZSBBbWVyaWNhbiBSZXNjdWUgUGxhbi4gIAoKQmVjYXVzZSBwZW9wbGUgd2VyZSBodXJ0aW5nLiBXZSBuZWVkZWQgdG8gYWN0LCBhbmQgd2UgZGlkLiAKCkZldyBwaWVjZXMgb2YgbGVnaXNsYXRpb24gaGF2ZSBkb25lIG1vcmUgaW4gYSBjcml0aWNhbCBtb21lbnQgaW4gb3VyIGhpc3RvcnkgdG8gbGlmdCB1cyBvdXQgb2YgY3Jpc2lzLiAKCkl0IGZ1ZWxlZCBvdXIgZWZmb3J0cyB0byB2YWNjaW5hdGUgdGhlIG5hdGlvbiBhbmQgY29tYmF0IENPVklELTE5LiBJdCBkZWxpdmVyZWQgaW1tZWRpYXRlIGVjb25vbWljIHJlbGllZiBmb3IgdGVucyBvZiBtaWxsaW9ucyBvZiBBbWVyaWNhbnMuICAKCkhlbHBlZCBwdXQgZm9vZCBvbiB0aGVpciB0YWJsZSwga2VlcCBhIHJvb2Ygb3ZlciB0aGVpciBoZWFkcywgYW5kIGN1dCB0aGUgY29zdCBvZiBoZWFsdGggaW5zdXJhbmNlLiAKCkFuZCBhcyBteSBEYWQgdXNlZCB0byBzYXksIGl0IGdhdmUgcGVvcGxlIGEgbGl0dGxlIGJyZWF0aGluZyByb29tLiAKCkFuZCB1bmxpa2UgdGhlICQyIFRyaWxsaW9uIHRheCBjdXQgcGFzc2VkIGluIHRoZSBwcmV2aW91cyBhZG1pbmlzdHJhdGlvbiB0aGF0IGJlbmVmaXR0ZWQgdGhlIHRvcCAxJSBvZiBBbWVyaWNhbnMsIHRoZSBBbWVyaWNhbiBSZXNjdWUgUGxhbiBoZWxwZWQgd29ya2luZyBwZW9wbGXigJRhbmQgbGVmdCBubyBvbmUgYmVoaW5kLiAKCkFuZCBpdCB3b3JrZWQuIEl0IGNyZWF0ZWQgam9icy4gTG90cyBvZiBqb2JzLiAKCkluIGZhY3TigJRvdXIgZWNvbm9teSBjcmVhdGVkIG92ZXIgNi41IE1pbGxpb24gbmV3IGpvYnMganVzdCBsYXN0IHllYXIsIG1vcmUgam9icyBjcmVhdGVkIGluIG9uZSB5ZWFyICAKdGhhbiBldmVyIGJlZm9yZSBpbiB0aGUgaGlzdG9yeSBvZiBBbWVyaWNhLiAKCk91ciBlY29ub215IGdyZXcgYXQgYSByYXRlIG9mIDUuNyUgbGFzdCB5ZWFyLCB0aGUgc3Ryb25nZXN0IGdyb3d0aCBpbiBuZWFybHkgNDAgeWVhcnMsIHRoZSBmaXJzdCBzdGVwIGluIGJyaW5naW5nIGZ1bmRhbWVudGFsIGNoYW5nZSB0byBhbiBlY29ub215IHRoYXQgaGFzbuKAmXQgd29ya2VkIGZvciB0aGUgd29ya2luZyBwZW9wbGUgb2YgdGhpcyBuYXRpb24gZm9yIHRvbyBsb25nLiAgCgpGb3IgdGhlIHBhc3QgNDAgeWVhcnMgd2Ugd2VyZSB0b2xkIHRoYXQgaWYgd2UgZ2F2ZSB0YXggYnJlYWtzIHRvIHRob3NlIGF0IHRoZSB2ZXJ5IHRvcCwgdGhlIGJlbmVmaXRzIHdvdWxkIHRyaWNrbGUgZG93biB0byBldmVyeW9uZSBlbHNlLiAKCkJ1dCB0aGF0IHRyaWNrbGUtZG93biB0aGVvcnkgbGVkIHRvIHdlYWtlciBlY29ub21pYyBncm93dGgsIGxvd2VyIHdhZ2VzLCBiaWdnZXIgZGVmaWNpdHMsIGFuZCB0aGUgd2lkZXN0IGdhcCBiZXR3ZWVuIHRob3NlIGF0IHRoZSB0b3AgYW5kIGV2ZXJ5b25lIGVsc2UgaW4gbmVhcmx5IGEgY2VudHVyeS4gCgpWaWNlIFByZXNpZGVudCBIYXJyaXMgYW5kIEkgcmFuIGZvciBvZmZpY2Ugd2l0aCBhIG5ldyBlY29ub21pYyB2aXNpb24gZm9yIEFtZXJpY2EuIAoKSW52ZXN0IGluIEFtZXJpY2EuIEVkdWNhdGUgQW1lcmljYW5zLiBHcm93IHRoZSB3b3JrZm9yY2UuIEJ1aWxkIHRoZSBlY29ub215IGZyb20gdGhlIGJvdHRvbSB1cCAgCmFuZCB0aGUgbWlkZGxlIG91dCwgbm90IGZyb20gdGhlIHRvcCBkb3duLiAgCgpCZWNhdXNlIHdlIGtub3cgdGhhdCB3aGVuIHRoZSBtaWRkbGUgY2xhc3MgZ3Jvd3MsIHRoZSBwb29yIGhhdmUgYSBsYWRkZXIgdXAgYW5kIHRoZSB3ZWFsdGh5IGRvIHZlcnkgd2VsbC4gCgpBbWVyaWNhIHVzZWQgdG8gaGF2ZSB0aGUgYmVzdCByb2FkcywgYnJpZGdlcywgYW5kIGFpcnBvcnRzIG9uIEVhcnRoLiAKCk5vdyBvdXIgaW5mcmFzdHJ1Y3R1cmUgaXMgcmFua2VkIDEzdGggaW4gdGhlIHdvcmxkLiAKCldlIHdvbuKAmXQgYmUgYWJsZSB0byBjb21wZXRlIGZvciB0aGUgam9icyBvZiB0aGUgMjFzdCBDZW50dXJ5IGlmIHdlIGRvbuKAmXQgZml4IHRoYXQuIAoKVGhhdOKAmXMgd2h5IGl0IHdhcyBzbyBpbXBvcnRhbnQgdG8gcGFzcyB0aGUgQmlwYXJ0aXNhbiBJbmZyYXN0cnVjdHVyZSBMYXfigJR0aGUgbW9zdCBzd2VlcGluZyBpbnZlc3RtZW50IHRvIHJlYnVpbGQgQW1lcmljYSBpbiBoaXN0b3J5LiAKClRoaXMgd2FzIGEgYmlwYXJ0aXNhbiBlZmZvcnQsIGFuZCBJIHdhbnQgdG8gdGhhbmsgdGhlIG1lbWJlcnMgb2YgYm90aCBwYXJ0aWVzIHdobyB3b3JrZWQgdG8gbWFrZSBpdCBoYXBwZW4uIAoKV2XigJlyZSBkb25lIHRhbGtpbmcgYWJvdXQgaW5mcmFzdHJ1Y3R1cmUgd2Vla3MuIAoKV2XigJlyZSBnb2luZyB0byBoYXZlIGFuIGluZnJhc3RydWN0dXJlIGRlY2FkZS4gCgpJdCBpcyBnb2luZyB0byB0cmFuc2Zvcm0gQW1lcmljYSBhbmQgcHV0IHVzIG9uIGEgcGF0aCB0byB3aW4gdGhlIGVjb25vbWljIGNvbXBldGl0aW9uIG9mIHRoZSAyMXN0IENlbnR1cnkgdGhhdCB3ZSBmYWNlIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHdvcmxk4oCUcGFydGljdWxhcmx5IHdpdGggQ2hpbmEuICAKCkFzIEnigJl2ZSB0b2xkIFhpIEppbnBpbmcsIGl0IGlzIG5ldmVyIGEgZ29vZCBiZXQgdG8gYmV0IGFnYWluc3QgdGhlIEFtZXJpY2FuIHBlb3BsZS4gCgpXZeKAmWxsIGNyZWF0ZSBnb29kIGpvYnMgZm9yIG1pbGxpb25zIG9mIEFtZXJpY2FucywgbW9kZXJuaXppbmcgcm9hZHMsIGFpcnBvcnRzLCBwb3J0cywgYW5kIHdhdGVyd2F5cyBhbGwgYWNyb3NzIEFtZXJpY2EuIAoKQW5kIHdl4oCZbGwgZG8gaXQgYWxsIHRvIHdpdGhzdGFuZCB0aGUgZGV2YXN0YXRpbmcgZWZmZWN0cyBvZiB0aGUgY2xpbWF0ZSBjcmlzaXMgYW5kIHByb21vdGUgZW52aXJvbm1lbnRhbCBqdXN0aWNlLiAKCldl4oCZbGwgYnVpbGQgYSBuYXRpb25hbCBuZXR3b3JrIG9mIDUwMCwwMDAgZWxlY3RyaWMgdmVoaWNsZSBjaGFyZ2luZyBzdGF0aW9ucywgYmVnaW4gdG8gcmVwbGFjZSBwb2lzb25vdXMgbGVhZCBwaXBlc+KAlHNvIGV2ZXJ5IGNoaWxk4oCUYW5kIGV2ZXJ5IEFtZXJpY2Fu4oCUaGFzIGNsZWFuIHdhdGVyIHRvIGRyaW5rIGF0IGhvbWUgYW5kIGF0IHNjaG9vbCwgcHJvdmlkZSBhZmZvcmRhYmxlIGhpZ2gtc3BlZWQgaW50ZXJuZXQgZm9yIGV2ZXJ5IEFtZXJpY2Fu4oCUdXJiYW4sIHN1YnVyYmFuLCBydXJhbCwgYW5kIHRyaWJhbCBjb21tdW5pdGllcy4gCgo0LDAwMCBwcm9qZWN0cyBoYXZlIGFscmVhZHkgYmVlbiBhbm5vdW5jZWQuIAoKQW5kIHRvbmlnaHQsIEnigJltIGFubm91bmNpbmcgdGhhdCB0aGlzIHllYXIgd2Ugd2lsbCBzdGFydCBmaXhpbmcgb3ZlciA2NSwwMDAgbWlsZXMgb2YgaGlnaHdheSBhbmQgMSw1MDAgYnJpZGdlcyBpbiBkaXNyZXBhaXIuIAoKV2hlbiB3ZSB1c2UgdGF4cGF5ZXIgZG9sbGFycyB0byByZWJ1aWxkIEFtZXJpY2Eg4oCTIHdlIGFyZSBnb2luZyB0byBCdXkgQW1lcmljYW46IGJ1eSBBbWVyaWNhbiBwcm9kdWN0cyB0byBzdXBwb3J0IEFtZXJpY2FuIGpvYnMuIAoKVGhlIGZlZGVyYWwgZ292ZXJubWVudCBzcGVuZHMgYWJvdXQgJDYwMCBCaWxsaW9uIGEgeWVhciB0byBrZWVwIHRoZSBjb3VudHJ5IHNhZmUgYW5kIHNlY3VyZS4gCgpUaGVyZeKAmXMgYmVlbiBhIGxhdyBvbiB0aGUgYm9va3MgZm9yIGFsbW9zdCBhIGNlbnR1cnkgCnRvIG1ha2Ugc3VyZSB0YXhwYXllcnPigJkgZG9sbGFycyBzdXBwb3J0IEFtZXJpY2FuIGpvYnMgYW5kIGJ1c2luZXNzZXMuIAoKRXZlcnkgQWRtaW5pc3RyYXRpb24gc2F5cyB0aGV54oCZbGwgZG8gaXQsIGJ1dCB3ZSBhcmUgYWN0dWFsbHkgZG9pbmcgaXQuIAoKV2Ugd2lsbCBidXkgQW1lcmljYW4gdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgZGVjayBvZiBhbiBhaXJjcmFmdCBjYXJyaWVyIHRvIHRoZSBzdGVlbCBvbiBoaWdod2F5IGd1YXJkcmFpbHMgYXJlIG1hZGUgaW4gQW1lcmljYS4gCgpCdXQgdG8gY29tcGV0ZSBmb3IgdGhlIGJlc3Qgam9icyBvZiB0aGUgZnV0dXJlLCB3ZSBhbHNvIG5lZWQgdG8gbGV2ZWwgdGhlIHBsYXlpbmcgZmllbGQgd2l0aCBDaGluYSBhbmQgb3RoZXIgY29tcGV0aXRvcnMuIAoKVGhhdOKAmXMgd2h5IGl0IGlzIHNvIGltcG9ydGFudCB0byBwYXNzIHRoZSBCaXBhcnRpc2FuIElubm92YXRpb24gQWN0IHNpdHRpbmcgaW4gQ29uZ3Jlc3MgdGhhdCB3aWxsIG1ha2UgcmVjb3JkIGludmVzdG1lbnRzIGluIGVtZXJnaW5nIHRlY2hub2xvZ2llcyBhbmQgQW1lcmljYW4gbWFudWZhY3R1cmluZy4gCgpMZXQgbWUgZ2l2ZSB5b3Ugb25lIGV4YW1wbGUgb2Ygd2h5IGl04oCZcyBzbyBpbXBvcnRhbnQgdG8gcGFzcyBpdC4gCgpJZiB5b3UgdHJhdmVsIDIwIG1pbGVzIGVhc3Qgb2YgQ29sdW1idXMsIE9oaW8sIHlvdeKAmWxsIGZpbmQgMSwwMDAgZW1wdHkgYWNyZXMgb2YgbGFuZC4gCgpJdCB3b27igJl0IGxvb2sgbGlrZSBtdWNoLCBidXQgaWYgeW91IHN0b3AgYW5kIGxvb2sgY2xvc2VseSwgeW914oCZbGwgc2VlIGEg4oCcRmllbGQgb2YgZHJlYW1zLOKAnSB0aGUgZ3JvdW5kIG9uIHdoaWNoIEFtZXJpY2HigJlzIGZ1dHVyZSB3aWxsIGJlIGJ1aWx0LiAKClRoaXMgaXMgd2hlcmUgSW50ZWwsIHRoZSBBbWVyaWNhbiBjb21wYW55IHRoYXQgaGVscGVkIGJ1aWxkIFNpbGljb24gVmFsbGV5LCBpcyBnb2luZyB0byBidWlsZCBpdHMgJDIwIGJpbGxpb24gc2VtaWNvbmR1Y3RvciDigJxtZWdhIHNpdGXigJ0uIAoKVXAgdG8gZWlnaHQgc3RhdGUtb2YtdGhlLWFydCBmYWN0b3JpZXMgaW4gb25lIHBsYWNlLiAxMCwwMDAgbmV3IGdvb2QtcGF5aW5nIGpvYnMuIAoKU29tZSBvZiB0aGUgbW9zdCBzb3BoaXN0aWNhdGVkIG1hbnVmYWN0dXJpbmcgaW4gdGhlIHdvcmxkIHRvIG1ha2UgY29tcHV0ZXIgY2hpcHMgdGhlIHNpemUgb2YgYSBmaW5nZXJ0aXAgdGhhdCBwb3dlciB0aGUgd29ybGQgYW5kIG91ciBldmVyeWRheSBsaXZlcy4gCgpTbWFydHBob25lcy4gVGhlIEludGVybmV0LiBUZWNobm9sb2d5IHdlIGhhdmUgeWV0IHRvIGludmVudC4gCgpCdXQgdGhhdOKAmXMganVzdCB0aGUgYmVnaW5uaW5nLiAKCkludGVs4oCZcyBDRU8sIFBhdCBHZWxzaW5nZXIsIHdobyBpcyBoZXJlIHRvbmlnaHQsIHRvbGQgbWUgdGhleSBhcmUgcmVhZHkgdG8gaW5jcmVhc2UgdGhlaXIgaW52ZXN0bWVudCBmcm9tICAKJDIwIGJpbGxpb24gdG8gJDEwMCBiaWxsaW9uLiAKClRoYXQgd291bGQgYmUgb25lIG9mIHRoZSBiaWdnZXN0IGludmVzdG1lbnRzIGluIG1hbnVmYWN0dXJpbmcgaW4gQW1lcmljYW4gaGlzdG9yeS4gCgpBbmQgYWxsIHRoZXnigJlyZSB3YWl0aW5nIGZvciBpcyBmb3IgeW91IHRvIHBhc3MgdGhpcyBiaWxsLiAKClNvIGxldOKAmXMgbm90IHdhaXQgYW55IGxvbmdlci4gU2VuZCBpdCB0byBteSBkZXNrLiBJ4oCZbGwgc2lnbiBpdC4gIAoKQW5kIHdlIHdpbGwgcmVhbGx5IHRha2Ugb2ZmLiAKCkFuZCBJbnRlbCBpcyBub3QgYWxvbmUuIAoKVGhlcmXigJlzIHNvbWV0aGluZyBoYXBwZW5pbmcgaW4gQW1lcmljYS4gCgpKdXN0IGxvb2sgYXJvdW5kIGFuZCB5b3XigJlsbCBzZWUgYW4gYW1hemluZyBzdG9yeS4gCgpUaGUgcmViaXJ0aCBvZiB0aGUgcHJpZGUgdGhhdCBjb21lcyBmcm9tIHN0YW1waW5nIHByb2R1Y3RzIOKAnE1hZGUgSW4gQW1lcmljYS7igJ0gVGhlIHJldml0YWxpemF0aW9uIG9mIEFtZXJpY2FuIG1hbnVmYWN0dXJpbmcuICAgCgpDb21wYW5pZXMgYXJlIGNob29zaW5nIHRvIGJ1aWxkIG5ldyBmYWN0b3JpZXMgaGVyZSwgd2hlbiBqdXN0IGEgZmV3IHllYXJzIGFnbywgdGhleSB3b3VsZCBoYXZlIGJ1aWx0IHRoZW0gb3ZlcnNlYXMuIAoKVGhhdOKAmXMgd2hhdCBpcyBoYXBwZW5pbmcuIEZvcmQgaXMgaW52ZXN0aW5nICQxMSBiaWxsaW9uIHRvIGJ1aWxkIGVsZWN0cmljIHZlaGljbGVzLCBjcmVhdGluZyAxMSwwMDAgam9icyBhY3Jvc3MgdGhlIGNvdW50cnkuIAoKR00gaXMgbWFraW5nIHRoZSBsYXJnZXN0IGludmVzdG1lbnQgaW4gaXRzIGhpc3RvcnnigJQkNyBiaWxsaW9uIHRvIGJ1aWxkIGVsZWN0cmljIHZlaGljbGVzLCBjcmVhdGluZyA0LDAwMCBqb2JzIGluIE1pY2hpZ2FuLiAKCkFsbCB0b2xkLCB3ZSBjcmVhdGVkIDM2OSwwMDAgbmV3IG1hbnVmYWN0dXJpbmcgam9icyBpbiBBbWVyaWNhIGp1c3QgbGFzdCB5ZWFyLiAKClBvd2VyZWQgYnkgcGVvcGxlIEnigJl2ZSBtZXQgbGlrZSBKb0pvIEJ1cmdlc3MsIGZyb20gZ2VuZXJhdGlvbnMgb2YgdW5pb24gc3RlZWx3b3JrZXJzIGZyb20gUGl0dHNidXJnaCwgd2hv4oCZcyBoZXJlIHdpdGggdXMgdG9uaWdodC4gCgpBcyBPaGlvIFNlbmF0b3IgU2hlcnJvZCBCcm93biBzYXlzLCDigJxJdOKAmXMgdGltZSB0byBidXJ5IHRoZSBsYWJlbCDigJxSdXN0IEJlbHQu4oCdIAoKSXTigJlzIHRpbWUuIAoKQnV0IHdpdGggYWxsIHRoZSBicmlnaHQgc3BvdHMgaW4gb3VyIGVjb25vbXksIHJlY29yZCBqb2IgZ3Jvd3RoIGFuZCBoaWdoZXIgd2FnZXMsIHRvbyBtYW55IGZhbWlsaWVzIGFyZSBzdHJ1Z2dsaW5nIHRvIGtlZXAgdXAgd2l0aCB0aGUgYmlsbHMuICAKCkluZmxhdGlvbiBpcyByb2JiaW5nIHRoZW0gb2YgdGhlIGdhaW5zIHRoZXkgbWlnaHQgb3RoZXJ3aXNlIGZlZWwuIAoKSSBnZXQgaXQuIFRoYXTigJlzIHdoeSBteSB0b3AgcHJpb3JpdHkgaXMgZ2V0dGluZyBwcmljZXMgdW5kZXIgY29udHJvbC4gCgpMb29rLCBvdXIgZWNvbm9teSByb2FyZWQgYmFjayBmYXN0ZXIgdGhhbiBtb3N0IHByZWRpY3RlZCwgYnV0IHRoZSBwYW5kZW1pYyBtZWFudCB0aGF0IGJ1c2luZXNzZXMgaGFkIGEgaGFyZCB0aW1lIGhpcmluZyBlbm91Z2ggd29ya2VycyB0byBrZWVwIHVwIHByb2R1Y3Rpb24gaW4gdGhlaXIgZmFjdG9yaWVzLiAKClRoZSBwYW5kZW1pYyBhbHNvIGRpc3J1cHRlZCBnbG9iYWwgc3VwcGx5IGNoYWlucy4gCgpXaGVuIGZhY3RvcmllcyBjbG9zZSwgaXQgdGFrZXMgbG9uZ2VyIHRvIG1ha2UgZ29vZHMgYW5kIGdldCB0aGVtIGZyb20gdGhlIHdhcmVob3VzZSB0byB0aGUgc3RvcmUsIGFuZCBwcmljZXMgZ28gdXAuIAoKTG9vayBhdCBjYXJzLiAKCkxhc3QgeWVhciwgdGhlcmUgd2VyZW7igJl0IGVub3VnaCBzZW1pY29uZHVjdG9ycyB0byBtYWtlIGFsbCB0aGUgY2FycyB0aGF0IHBlb3BsZSB3YW50ZWQgdG8gYnV5LiAKCkFuZCBndWVzcyB3aGF0LCBwcmljZXMgb2YgYXV0b21vYmlsZXMgd2VudCB1cC4gCgpTb+KAlHdlIGhhdmUgYSBjaG9pY2UuIAoKT25lIHdheSB0byBmaWdodCBpbmZsYXRpb24gaXMgdG8gZHJpdmUgZG93biB3YWdlcyBhbmQgbWFrZSBBbWVyaWNhbnMgcG9vcmVyLiAgCgpJIGhhdmUgYSBiZXR0ZXIgcGxhbiB0byBmaWdodCBpbmZsYXRpb24uIAoKTG93ZXIgeW91ciBjb3N0cywgbm90IHlvdXIgd2FnZXMuIAoKTWFrZSBtb3JlIGNhcnMgYW5kIHNlbWljb25kdWN0b3JzIGluIEFtZXJpY2EuIAoKTW9yZSBpbmZyYXN0cnVjdHVyZSBhbmQgaW5ub3ZhdGlvbiBpbiBBbWVyaWNhLiAKCk1vcmUgZ29vZHMgbW92aW5nIGZhc3RlciBhbmQgY2hlYXBlciBpbiBBbWVyaWNhLiAKCk1vcmUgam9icyB3aGVyZSB5b3UgY2FuIGVhcm4gYSBnb29kIGxpdmluZyBpbiBBbWVyaWNhLiAKCkFuZCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZm9yZWlnbiBzdXBwbHkgY2hhaW5zLCBsZXTigJlzIG1ha2UgaXQgaW4gQW1lcmljYS4gCgpFY29ub21pc3RzIGNhbGwgaXQg4oCcaW5jcmVhc2luZyB0aGUgcHJvZHVjdGl2ZSBjYXBhY2l0eSBvZiBvdXIgZWNvbm9teS7igJ0gCgpJIGNhbGwgaXQgYnVpbGRpbmcgYSBiZXR0ZXIgQW1lcmljYS4gCgpNeSBwbGFuIHRvIGZpZ2h0IGluZmxhdGlvbiB3aWxsIGxvd2VyIHlvdXIgY29zdHMgYW5kIGxvd2VyIHRoZSBkZWZpY2l0LiAKCjE3IE5vYmVsIGxhdXJlYXRlcyBpbiBlY29ub21pY3Mgc2F5IG15IHBsYW4gd2lsbCBlYXNlIGxvbmctdGVybSBpbmZsYXRpb25hcnkgcHJlc3N1cmVzLiBUb3AgYnVzaW5lc3MgbGVhZGVycyBhbmQgbW9zdCBBbWVyaWNhbnMgc3VwcG9ydCBteSBwbGFuLiBBbmQgaGVyZeKAmXMgdGhlIHBsYW46IAoKRmlyc3Qg4oCTIGN1dCB0aGUgY29zdCBvZiBwcmVzY3JpcHRpb24gZHJ1Z3MuIEp1c3QgbG9vayBhdCBpbnN1bGluLiBPbmUgaW4gdGVuIEFtZXJpY2FucyBoYXMgZGlhYmV0ZXMuIEluIFZpcmdpbmlhLCBJIG1ldCBhIDEzLXllYXItb2xkIGJveSBuYW1lZCBKb3NodWEgRGF2aXMuICAKCkhlIGFuZCBoaXMgRGFkIGJvdGggaGF2ZSBUeXBlIDEgZGlhYmV0ZXMsIHdoaWNoIG1lYW5zIHRoZXkgbmVlZCBpbnN1bGluIGV2ZXJ5IGRheS4gSW5zdWxpbiBjb3N0cyBhYm91dCAkMTAgYSB2aWFsIHRvIG1ha2UuICAKCkJ1dCBkcnVnIGNvbXBhbmllcyBjaGFyZ2UgZmFtaWxpZXMgbGlrZSBKb3NodWEgYW5kIGhpcyBEYWQgdXAgdG8gMzAgdGltZXMgbW9yZS4gSSBzcG9rZSB3aXRoIEpvc2h1YeKAmXMgbW9tLiAKCkltYWdpbmUgd2hhdCBpdOKAmXMgbGlrZSB0byBsb29rIGF0IHlvdXIgY2hpbGQgd2hvIG5lZWRzIGluc3VsaW4gYW5kIGhhdmUgbm8gaWRlYSBob3cgeW914oCZcmUgZ29pbmcgdG8gcGF5IGZvciBpdC4gIAoKV2hhdCBpdCBkb2VzIHRvIHlvdXIgZGlnbml0eSwgeW91ciBhYmlsaXR5IHRvIGxvb2sgeW91ciBjaGlsZCBpbiB0aGUgZXllLCB0byBiZSB0aGUgcGFyZW50IHlvdSBleHBlY3QgdG8gYmUuIAoKSm9zaHVhIGlzIGhlcmUgd2l0aCB1cyB0b25pZ2h0LiBZZXN0ZXJkYXkgd2FzIGhpcyBiaXJ0aGRheS4gSGFwcHkgYmlydGhkYXksIGJ1ZGR5LiAgCgpGb3IgSm9zaHVhLCBhbmQgZm9yIHRoZSAyMDAsMDAwIG90aGVyIHlvdW5nIHBlb3BsZSB3aXRoIFR5cGUgMSBkaWFiZXRlcywgbGV04oCZcyBjYXAgdGhlIGNvc3Qgb2YgaW5zdWxpbiBhdCAkMzUgYSBtb250aCBzbyBldmVyeW9uZSBjYW4gYWZmb3JkIGl0LiAgCgpEcnVnIGNvbXBhbmllcyB3aWxsIHN0aWxsIGRvIHZlcnkgd2VsbC4gQW5kIHdoaWxlIHdl4oCZcmUgYXQgaXQgbGV0IE1lZGljYXJlIG5lZ290aWF0ZSBsb3dlciBwcmljZXMgZm9yIHByZXNjcmlwdGlvbiBkcnVncywgbGlrZSB0aGUgVkEgYWxyZWFkeSBkb2VzLiAKCkxvb2ssIHRoZSBBbWVyaWNhbiBSZXNjdWUgUGxhbiBpcyBoZWxwaW5nIG1pbGxpb25zIG9mIGZhbWlsaWVzIG9uIEFmZm9yZGFibGUgQ2FyZSBBY3QgcGxhbnMgc2F2ZSAkMiw0MDAgYSB5ZWFyIG9uIHRoZWlyIGhlYWx0aCBjYXJlIHByZW1pdW1zLiBMZXTigJlzIGNsb3NlIHRoZSBjb3ZlcmFnZSBnYXAgYW5kIG1ha2UgdGhvc2Ugc2F2aW5ncyBwZXJtYW5lbnQuIAoKU2Vjb25kIOKAkyBjdXQgZW5lcmd5IGNvc3RzIGZvciBmYW1pbGllcyBhbiBhdmVyYWdlIG9mICQ1MDAgYSB5ZWFyIGJ5IGNvbWJhdHRpbmcgY2xpbWF0ZSBjaGFuZ2UuICAKCkxldOKAmXMgcHJvdmlkZSBpbnZlc3RtZW50cyBhbmQgdGF4IGNyZWRpdHMgdG8gd2VhdGhlcml6ZSB5b3VyIGhvbWVzIGFuZCBidXNpbmVzc2VzIHRvIGJlIGVuZXJneSBlZmZpY2llbnQgYW5kIHlvdSBnZXQgYSB0YXggY3JlZGl0OyBkb3VibGUgQW1lcmljYeKAmXMgY2xlYW4gZW5lcmd5IHByb2R1Y3Rpb24gaW4gc29sYXIsIHdpbmQsIGFuZCBzbyBtdWNoIG1vcmU7ICBsb3dlciB0aGUgcHJpY2Ugb2YgZWxlY3RyaWMgdmVoaWNsZXMsIHNhdmluZyB5b3UgYW5vdGhlciAkODAgYSBtb250aCBiZWNhdXNlIHlvdeKAmWxsIG5ldmVyIGhhdmUgdG8gcGF5IGF0IHRoZSBnYXMgcHVtcCBhZ2Fpbi4gCgpUaGlyZCDigJMgY3V0IHRoZSBjb3N0IG9mIGNoaWxkIGNhcmUuIE1hbnkgZmFtaWxpZXMgcGF5IHVwIHRvICQxNCwwMDAgYSB5ZWFyIGZvciBjaGlsZCBjYXJlIHBlciBjaGlsZC4gIAoKTWlkZGxlLWNsYXNzIGFuZCB3b3JraW5nIGZhbWlsaWVzIHNob3VsZG7igJl0IGhhdmUgdG8gcGF5IG1vcmUgdGhhbiA3JSBvZiB0aGVpciBpbmNvbWUgZm9yIGNhcmUgb2YgeW91bmcgY2hpbGRyZW4uICAKCk15IHBsYW4gd2lsbCBjdXQgdGhlIGNvc3QgaW4gaGFsZiBmb3IgbW9zdCBmYW1pbGllcyBhbmQgaGVscCBwYXJlbnRzLCBpbmNsdWRpbmcgbWlsbGlvbnMgb2Ygd29tZW4sIHdobyBsZWZ0IHRoZSB3b3JrZm9yY2UgZHVyaW5nIHRoZSBwYW5kZW1pYyBiZWNhdXNlIHRoZXkgY291bGRu4oCZdCBhZmZvcmQgY2hpbGQgY2FyZSwgdG8gYmUgYWJsZSB0byBnZXQgYmFjayB0byB3b3JrLiAKCk15IHBsYW4gZG9lc27igJl0IHN0b3AgdGhlcmUuIEl0IGFsc28gaW5jbHVkZXMgaG9tZSBhbmQgbG9uZy10ZXJtIGNhcmUuIE1vcmUgYWZmb3JkYWJsZSBob3VzaW5nLiBBbmQgUHJlLUsgZm9yIGV2ZXJ5IDMtIGFuZCA0LXllYXItb2xkLiAgCgpBbGwgb2YgdGhlc2Ugd2lsbCBsb3dlciBjb3N0cy4gCgpBbmQgdW5kZXIgbXkgcGxhbiwgbm9ib2R5IGVhcm5pbmcgbGVzcyB0aGFuICQ0MDAsMDAwIGEgeWVhciB3aWxsIHBheSBhbiBhZGRpdGlvbmFsIHBlbm55IGluIG5ldyB0YXhlcy4gTm9ib2R5LiAgCgpUaGUgb25lIHRoaW5nIGFsbCBBbWVyaWNhbnMgYWdyZWUgb24gaXMgdGhhdCB0aGUgdGF4IHN5c3RlbSBpcyBub3QgZmFpci4gV2UgaGF2ZSB0byBmaXggaXQuICAKCknigJltIG5vdCBsb29raW5nIHRvIHB1bmlzaCBhbnlvbmUuIEJ1dCBsZXTigJlzIG1ha2Ugc3VyZSBjb3Jwb3JhdGlvbnMgYW5kIHRoZSB3ZWFsdGhpZXN0IEFtZXJpY2FucyBzdGFydCBwYXlpbmcgdGhlaXIgZmFpciBzaGFyZS4gCgpKdXN0IGxhc3QgeWVhciwgNTUgRm9ydHVuZSA1MDAgY29ycG9yYXRpb25zIGVhcm5lZCAkNDAgYmlsbGlvbiBpbiBwcm9maXRzIGFuZCBwYWlkIHplcm8gZG9sbGFycyBpbiBmZWRlcmFsIGluY29tZSB0YXguICAKClRoYXTigJlzIHNpbXBseSBub3QgZmFpci4gVGhhdOKAmXMgd2h5IEnigJl2ZSBwcm9wb3NlZCBhIDE1JSBtaW5pbXVtIHRheCByYXRlIGZvciBjb3Jwb3JhdGlvbnMuIAoKV2UgZ290IG1vcmUgdGhhbiAxMzAgY291bnRyaWVzIHRvIGFncmVlIG9uIGEgZ2xvYmFsIG1pbmltdW0gdGF4IHJhdGUgc28gY29tcGFuaWVzIGNhbuKAmXQgZ2V0IG91dCBvZiBwYXlpbmcgdGhlaXIgdGF4ZXMgYXQgaG9tZSBieSBzaGlwcGluZyBqb2JzIGFuZCBmYWN0b3JpZXMgb3ZlcnNlYXMuIAoKVGhhdOKAmXMgd2h5IEnigJl2ZSBwcm9wb3NlZCBjbG9zaW5nIGxvb3Bob2xlcyBzbyB0aGUgdmVyeSB3ZWFsdGh5IGRvbuKAmXQgcGF5IGEgbG93ZXIgdGF4IHJhdGUgdGhhbiBhIHRlYWNoZXIgb3IgYSBmaXJlZmlnaHRlci4gIAoKU28gdGhhdOKAmXMgbXkgcGxhbi4gSXQgd2lsbCBncm93IHRoZSBlY29ub215IGFuZCBsb3dlciBjb3N0cyBmb3IgZmFtaWxpZXMuIAoKU28gd2hhdCBhcmUgd2Ugd2FpdGluZyBmb3I/IExldOKAmXMgZ2V0IHRoaXMgZG9uZS4gQW5kIHdoaWxlIHlvdeKAmXJlIGF0IGl0LCBjb25maXJtIG15IG5vbWluZWVzIHRvIHRoZSBGZWRlcmFsIFJlc2VydmUsIHdoaWNoIHBsYXlzIGEgY3JpdGljYWwgcm9sZSBpbiBmaWdodGluZyBpbmZsYXRpb24uICAKCk15IHBsYW4gd2lsbCBub3Qgb25seSBsb3dlciBjb3N0cyB0byBnaXZlIGZhbWlsaWVzIGEgZmFpciBzaG90LCBpdCB3aWxsIGxvd2VyIHRoZSBkZWZpY2l0LiAKClRoZSBwcmV2aW91cyBBZG1pbmlzdHJhdGlvbiBub3Qgb25seSBiYWxsb29uZWQgdGhlIGRlZmljaXQgd2l0aCB0YXggY3V0cyBmb3IgdGhlIHZlcnkgd2VhbHRoeSBhbmQgY29ycG9yYXRpb25zLCBpdCB1bmRlcm1pbmVkIHRoZSB3YXRjaGRvZ3Mgd2hvc2Ugam9iIHdhcyB0byBrZWVwIHBhbmRlbWljIHJlbGllZiBmdW5kcyBmcm9tIGJlaW5nIHdhc3RlZC4gCgpCdXQgaW4gbXkgYWRtaW5pc3RyYXRpb24sIHRoZSB3YXRjaGRvZ3MgaGF2ZSBiZWVuIHdlbGNvbWVkIGJhY2suIAoKV2XigJlyZSBnb2luZyBhZnRlciB0aGUgY3JpbWluYWxzIHdobyBzdG9sZSBiaWxsaW9ucyBpbiByZWxpZWYgbW9uZXkgbWVhbnQgZm9yIHNtYWxsIGJ1c2luZXNzZXMgYW5kIG1pbGxpb25zIG9mIEFtZXJpY2Fucy4gIAoKQW5kIHRvbmlnaHQsIEnigJltIGFubm91bmNpbmcgdGhhdCB0aGUgSnVzdGljZSBEZXBhcnRtZW50IHdpbGwgbmFtZSBhIGNoaWVmIHByb3NlY3V0b3IgZm9yIHBhbmRlbWljIGZyYXVkLiAKCkJ5IHRoZSBlbmQgb2YgdGhpcyB5ZWFyLCB0aGUgZGVmaWNpdCB3aWxsIGJlIGRvd24gdG8gbGVzcyB0aGFuIGhhbGYgd2hhdCBpdCB3YXMgYmVmb3JlIEkgdG9vayBvZmZpY2UuICAKClRoZSBvbmx5IHByZXNpZGVudCBldmVyIHRvIGN1dCB0aGUgZGVmaWNpdCBieSBtb3JlIHRoYW4gb25lIHRyaWxsaW9uIGRvbGxhcnMgaW4gYSBzaW5nbGUgeWVhci4gCgpMb3dlcmluZyB5b3VyIGNvc3RzIGFsc28gbWVhbnMgZGVtYW5kaW5nIG1vcmUgY29tcGV0aXRpb24uIAoKSeKAmW0gYSBjYXBpdGFsaXN0LCBidXQgY2FwaXRhbGlzbSB3aXRob3V0IGNvbXBldGl0aW9uIGlzbuKAmXQgY2FwaXRhbGlzbS4gCgpJdOKAmXMgZXhwbG9pdGF0aW9u4oCUYW5kIGl0IGRyaXZlcyB1cCBwcmljZXMuIAoKV2hlbiBjb3Jwb3JhdGlvbnMgZG9u4oCZdCBoYXZlIHRvIGNvbXBldGUsIHRoZWlyIHByb2ZpdHMgZ28gdXAsIHlvdXIgcHJpY2VzIGdvIHVwLCBhbmQgc21hbGwgYnVzaW5lc3NlcyBhbmQgZmFtaWx5IGZhcm1lcnMgYW5kIHJhbmNoZXJzIGdvIHVuZGVyLiAKCldlIHNlZSBpdCBoYXBwZW5pbmcgd2l0aCBvY2VhbiBjYXJyaWVycyBtb3ZpbmcgZ29vZHMgaW4gYW5kIG91dCBvZiBBbWVyaWNhLiAKCkR1cmluZyB0aGUgcGFuZGVtaWMsIHRoZXNlIGZvcmVpZ24tb3duZWQgY29tcGFuaWVzIHJhaXNlZCBwcmljZXMgYnkgYXMgbXVjaCBhcyAxLDAwMCUgYW5kIG1hZGUgcmVjb3JkIHByb2ZpdHMuIAoKVG9uaWdodCwgSeKAmW0gYW5ub3VuY2luZyBhIGNyYWNrZG93biBvbiB0aGVzZSBjb21wYW5pZXMgb3ZlcmNoYXJnaW5nIEFtZXJpY2FuIGJ1c2luZXNzZXMgYW5kIGNvbnN1bWVycy4gCgpBbmQgYXMgV2FsbCBTdHJlZXQgZmlybXMgdGFrZSBvdmVyIG1vcmUgbnVyc2luZyBob21lcywgcXVhbGl0eSBpbiB0aG9zZSBob21lcyBoYXMgZ29uZSBkb3duIGFuZCBjb3N0cyBoYXZlIGdvbmUgdXAuICAKClRoYXQgZW5kcyBvbiBteSB3YXRjaC4gCgpNZWRpY2FyZSBpcyBnb2luZyB0byBzZXQgaGlnaGVyIHN0YW5kYXJkcyBmb3IgbnVyc2luZyBob21lcyBhbmQgbWFrZSBzdXJlIHlvdXIgbG92ZWQgb25lcyBnZXQgdGhlIGNhcmUgdGhleSBkZXNlcnZlIGFuZCBleHBlY3QuIAoKV2XigJlsbCBhbHNvIGN1dCBjb3N0cyBhbmQga2VlcCB0aGUgZWNvbm9teSBnb2luZyBzdHJvbmcgYnkgZ2l2aW5nIHdvcmtlcnMgYSBmYWlyIHNob3QsIHByb3ZpZGUgbW9yZSB0cmFpbmluZyBhbmQgYXBwcmVudGljZXNoaXBzLCBoaXJlIHRoZW0gYmFzZWQgb24gdGhlaXIgc2tpbGxzIG5vdCBkZWdyZWVzLiAKCkxldOKAmXMgcGFzcyB0aGUgUGF5Y2hlY2sgRmFpcm5lc3MgQWN0IGFuZCBwYWlkIGxlYXZlLiAgCgpSYWlzZSB0aGUgbWluaW11bSB3YWdlIHRvICQxNSBhbiBob3VyIGFuZCBleHRlbmQgdGhlIENoaWxkIFRheCBDcmVkaXQsIHNvIG5vIG9uZSBoYXMgdG8gcmFpc2UgYSBmYW1pbHkgaW4gcG92ZXJ0eS4gCgpMZXTigJlzIGluY3JlYXNlIFBlbGwgR3JhbnRzIGFuZCBpbmNyZWFzZSBvdXIgaGlzdG9yaWMgc3VwcG9ydCBvZiBIQkNVcywgYW5kIGludmVzdCBpbiB3aGF0IEppbGzigJRvdXIgRmlyc3QgTGFkeSB3aG8gdGVhY2hlcyBmdWxsLXRpbWXigJRjYWxscyBBbWVyaWNh4oCZcyBiZXN0LWtlcHQgc2VjcmV0OiBjb21tdW5pdHkgY29sbGVnZXMuIAoKQW5kIGxldOKAmXMgcGFzcyB0aGUgUFJPIEFjdCB3aGVuIGEgbWFqb3JpdHkgb2Ygd29ya2VycyB3YW50IHRvIGZvcm0gYSB1bmlvbuKAlHRoZXkgc2hvdWxkbuKAmXQgYmUgc3RvcHBlZC4gIAoKV2hlbiB3ZSBpbnZlc3QgaW4gb3VyIHdvcmtlcnMsIHdoZW4gd2UgYnVpbGQgdGhlIGVjb25vbXkgZnJvbSB0aGUgYm90dG9tIHVwIGFuZCB0aGUgbWlkZGxlIG91dCB0b2dldGhlciwgd2UgY2FuIGRvIHNvbWV0aGluZyB3ZSBoYXZlbuKAmXQgZG9uZSBpbiBhIGxvbmcgdGltZTogYnVpbGQgYSBiZXR0ZXIgQW1lcmljYS4gCgpGb3IgbW9yZSB0aGFuIHR3byB5ZWFycywgQ09WSUQtMTkgaGFzIGltcGFjdGVkIGV2ZXJ5IGRlY2lzaW9uIGluIG91ciBsaXZlcyBhbmQgdGhlIGxpZmUgb2YgdGhlIG5hdGlvbi4gCgpBbmQgSSBrbm93IHlvdeKAmXJlIHRpcmVkLCBmcnVzdHJhdGVkLCBhbmQgZXhoYXVzdGVkLiAKCkJ1dCBJIGFsc28ga25vdyB0aGlzLiAKCkJlY2F1c2Ugb2YgdGhlIHByb2dyZXNzIHdl4oCZdmUgbWFkZSwgYmVjYXVzZSBvZiB5b3VyIHJlc2lsaWVuY2UgYW5kIHRoZSB0b29scyB3ZSBoYXZlLCB0b25pZ2h0IEkgY2FuIHNheSAgCndlIGFyZSBtb3ZpbmcgZm9yd2FyZCBzYWZlbHksIGJhY2sgdG8gbW9yZSBub3JtYWwgcm91dGluZXMuICAKCldl4oCZdmUgcmVhY2hlZCBhIG5ldyBtb21lbnQgaW4gdGhlIGZpZ2h0IGFnYWluc3QgQ09WSUQtMTksIHdpdGggc2V2ZXJlIGNhc2VzIGRvd24gdG8gYSBsZXZlbCBub3Qgc2VlbiBzaW5jZSBsYXN0IEp1bHkuICAKCkp1c3QgYSBmZXcgZGF5cyBhZ28sIHRoZSBDZW50ZXJzIGZvciBEaXNlYXNlIENvbnRyb2wgYW5kIFByZXZlbnRpb27igJR0aGUgQ0RD4oCUaXNzdWVkIG5ldyBtYXNrIGd1aWRlbGluZXMuIAoKVW5kZXIgdGhlc2UgbmV3IGd1aWRlbGluZXMsIG1vc3QgQW1lcmljYW5zIGluIG1vc3Qgb2YgdGhlIGNvdW50cnkgY2FuIG5vdyBiZSBtYXNrIGZyZWUuICAgCgpBbmQgYmFzZWQgb24gdGhlIHByb2plY3Rpb25zLCBtb3JlIG9mIHRoZSBjb3VudHJ5IHdpbGwgcmVhY2ggdGhhdCBwb2ludCBhY3Jvc3MgdGhlIG5leHQgY291cGxlIG9mIHdlZWtzLiAKClRoYW5rcyB0byB0aGUgcHJvZ3Jlc3Mgd2UgaGF2ZSBtYWRlIHRoaXMgcGFzdCB5ZWFyLCBDT1ZJRC0xOSBuZWVkIG5vIGxvbmdlciBjb250cm9sIG91ciBsaXZlcy4gIAoKSSBrbm93IHNvbWUgYXJlIHRhbGtpbmcgYWJvdXQg4oCcbGl2aW5nIHdpdGggQ09WSUQtMTnigJ0uIFRvbmlnaHQg4oCTIEkgc2F5IHRoYXQgd2Ugd2lsbCBuZXZlciBqdXN0IGFjY2VwdCBsaXZpbmcgd2l0aCBDT1ZJRC0xOS4gCgpXZSB3aWxsIGNvbnRpbnVlIHRvIGNvbWJhdCB0aGUgdmlydXMgYXMgd2UgZG8gb3RoZXIgZGlzZWFzZXMuIEFuZCBiZWNhdXNlIHRoaXMgaXMgYSB2aXJ1cyB0aGF0IG11dGF0ZXMgYW5kIHNwcmVhZHMsIHdlIHdpbGwgc3RheSBvbiBndWFyZC4gCgpIZXJlIGFyZSBmb3VyIGNvbW1vbiBzZW5zZSBzdGVwcyBhcyB3ZSBtb3ZlIGZvcndhcmQgc2FmZWx5LiAgCgpGaXJzdCwgc3RheSBwcm90ZWN0ZWQgd2l0aCB2YWNjaW5lcyBhbmQgdHJlYXRtZW50cy4gV2Uga25vdyBob3cgaW5jcmVkaWJseSBlZmZlY3RpdmUgdmFjY2luZXMgYXJlLiBJZiB5b3XigJlyZSB2YWNjaW5hdGVkIGFuZCBib29zdGVkIHlvdSBoYXZlIHRoZSBoaWdoZXN0IGRlZ3JlZSBvZiBwcm90ZWN0aW9uLiAKCldlIHdpbGwgbmV2ZXIgZ2l2ZSB1cCBvbiB2YWNjaW5hdGluZyBtb3JlIEFtZXJpY2Fucy4gTm93LCBJIGtub3cgcGFyZW50cyB3aXRoIGtpZHMgdW5kZXIgNSBhcmUgZWFnZXIgdG8gc2VlIGEgdmFjY2luZSBhdXRob3JpemVkIGZvciB0aGVpciBjaGlsZHJlbi4gCgpUaGUgc2NpZW50aXN0cyBhcmUgd29ya2luZyBoYXJkIHRvIGdldCB0aGF0IGRvbmUgYW5kIHdl4oCZbGwgYmUgcmVhZHkgd2l0aCBwbGVudHkgb2YgdmFjY2luZXMgd2hlbiB0aGV5IGRvLiAKCldl4oCZcmUgYWxzbyByZWFkeSB3aXRoIGFudGktdmlyYWwgdHJlYXRtZW50cy4gSWYgeW91IGdldCBDT1ZJRC0xOSwgdGhlIFBmaXplciBwaWxsIHJlZHVjZXMgeW91ciBjaGFuY2VzIG9mIGVuZGluZyB1cCBpbiB0aGUgaG9zcGl0YWwgYnkgOTAlLiAgCgpXZeKAmXZlIG9yZGVyZWQgbW9yZSBvZiB0aGVzZSBwaWxscyB0aGFuIGFueW9uZSBpbiB0aGUgd29ybGQuIEFuZCBQZml6ZXIgaXMgd29ya2luZyBvdmVydGltZSB0byBnZXQgdXMgMSBNaWxsaW9uIHBpbGxzIHRoaXMgbW9udGggYW5kIG1vcmUgdGhhbiBkb3VibGUgdGhhdCBuZXh0IG1vbnRoLiAgCgpBbmQgd2XigJlyZSBsYXVuY2hpbmcgdGhlIOKAnFRlc3QgdG8gVHJlYXTigJ0gaW5pdGlhdGl2ZSBzbyBwZW9wbGUgY2FuIGdldCB0ZXN0ZWQgYXQgYSBwaGFybWFjeSwgYW5kIGlmIHRoZXnigJlyZSBwb3NpdGl2ZSwgcmVjZWl2ZSBhbnRpdmlyYWwgcGlsbHMgb24gdGhlIHNwb3QgYXQgbm8gY29zdC4gIAoKSWYgeW914oCZcmUgaW1tdW5vY29tcHJvbWlzZWQgb3IgaGF2ZSBzb21lIG90aGVyIHZ1bG5lcmFiaWxpdHksIHdlIGhhdmUgdHJlYXRtZW50cyBhbmQgZnJlZSBoaWdoLXF1YWxpdHkgbWFza3MuIAoKV2XigJlyZSBsZWF2aW5nIG5vIG9uZSBiZWhpbmQgb3IgaWdub3JpbmcgYW55b25l4oCZcyBuZWVkcyBhcyB3ZSBtb3ZlIGZvcndhcmQuIAoKQW5kIG9uIHRlc3RpbmcsIHdlIGhhdmUgbWFkZSBodW5kcmVkcyBvZiBtaWxsaW9ucyBvZiB0ZXN0cyBhdmFpbGFibGUgZm9yIHlvdSB0byBvcmRlciBmb3IgZnJlZS4gICAKCkV2ZW4gaWYgeW91IGFscmVhZHkgb3JkZXJlZCBmcmVlIHRlc3RzIHRvbmlnaHQsIEkgYW0gYW5ub3VuY2luZyB0aGF0IHlvdSBjYW4gb3JkZXIgbW9yZSBmcm9tIGNvdmlkdGVzdHMuZ292IHN0YXJ0aW5nIG5leHQgd2Vlay4gCgpTZWNvbmQg4oCTIHdlIG11c3QgcHJlcGFyZSBmb3IgbmV3IHZhcmlhbnRzLiBPdmVyIHRoZSBwYXN0IHllYXIsIHdl4oCZdmUgZ290dGVuIG11Y2ggYmV0dGVyIGF0IGRldGVjdGluZyBuZXcgdmFyaWFudHMuIAoKSWYgbmVjZXNzYXJ5LCB3ZeKAmWxsIGJlIGFibGUgdG8gZGVwbG95IG5ldyB2YWNjaW5lcyB3aXRoaW4gMTAwIGRheXMgaW5zdGVhZCBvZiBtYW55IG1vcmUgbW9udGhzIG9yIHllYXJzLiAgCgpBbmQsIGlmIENvbmdyZXNzIHByb3ZpZGVzIHRoZSBmdW5kcyB3ZSBuZWVkLCB3ZeKAmWxsIGhhdmUgbmV3IHN0b2NrcGlsZXMgb2YgdGVzdHMsIG1hc2tzLCBhbmQgcGlsbHMgcmVhZHkgaWYgbmVlZGVkLiAKCkkgY2Fubm90IHByb21pc2UgYSBuZXcgdmFyaWFudCB3b27igJl0IGNvbWUuIEJ1dCBJIGNhbiBwcm9taXNlIHlvdSB3ZeKAmWxsIGRvIGV2ZXJ5dGhpbmcgd2l0aGluIG91ciBwb3dlciB0byBiZSByZWFkeSBpZiBpdCBkb2VzLiAgCgpUaGlyZCDigJMgd2UgY2FuIGVuZCB0aGUgc2h1dGRvd24gb2Ygc2Nob29scyBhbmQgYnVzaW5lc3Nlcy4gV2UgaGF2ZSB0aGUgdG9vbHMgd2UgbmVlZC4gCgpJdOKAmXMgdGltZSBmb3IgQW1lcmljYW5zIHRvIGdldCBiYWNrIHRvIHdvcmsgYW5kIGZpbGwgb3VyIGdyZWF0IGRvd250b3ducyBhZ2Fpbi4gIFBlb3BsZSB3b3JraW5nIGZyb20gaG9tZSBjYW4gZmVlbCBzYWZlIHRvIGJlZ2luIHRvIHJldHVybiB0byB0aGUgb2ZmaWNlLiAgIAoKV2XigJlyZSBkb2luZyB0aGF0IGhlcmUgaW4gdGhlIGZlZGVyYWwgZ292ZXJubWVudC4gVGhlIHZhc3QgbWFqb3JpdHkgb2YgZmVkZXJhbCB3b3JrZXJzIHdpbGwgb25jZSBhZ2FpbiB3b3JrIGluIHBlcnNvbi4gCgpPdXIgc2Nob29scyBhcmUgb3Blbi4gTGV04oCZcyBrZWVwIGl0IHRoYXQgd2F5LiBPdXIga2lkcyBuZWVkIHRvIGJlIGluIHNjaG9vbC4gCgpBbmQgd2l0aCA3NSUgb2YgYWR1bHQgQW1lcmljYW5zIGZ1bGx5IHZhY2NpbmF0ZWQgYW5kIGhvc3BpdGFsaXphdGlvbnMgZG93biBieSA3NyUsIG1vc3QgQW1lcmljYW5zIGNhbiByZW1vdmUgdGhlaXIgbWFza3MsIHJldHVybiB0byB3b3JrLCBzdGF5IGluIHRoZSBjbGFzc3Jvb20sIGFuZCBtb3ZlIGZvcndhcmQgc2FmZWx5LiAKCldlIGFjaGlldmVkIHRoaXMgYmVjYXVzZSB3ZSBwcm92aWRlZCBmcmVlIHZhY2NpbmVzLCB0cmVhdG1lbnRzLCB0ZXN0cywgYW5kIG1hc2tzLiAKCk9mIGNvdXJzZSwgY29udGludWluZyB0aGlzIGNvc3RzIG1vbmV5LiAKCkkgd2lsbCBzb29uIHNlbmQgQ29uZ3Jlc3MgYSByZXF1ZXN0LiAKClRoZSB2YXN0IG1ham9yaXR5IG9mIEFtZXJpY2FucyBoYXZlIHVzZWQgdGhlc2UgdG9vbHMgYW5kIG1heSB3YW50IHRvIGFnYWluLCBzbyBJIGV4cGVjdCBDb25ncmVzcyB0byBwYXNzIGl0IHF1aWNrbHkuICAgCgpGb3VydGgsIHdlIHdpbGwgY29udGludWUgdmFjY2luYXRpbmcgdGhlIHdvcmxkLiAgICAgCgpXZeKAmXZlIHNlbnQgNDc1IE1pbGxpb24gdmFjY2luZSBkb3NlcyB0byAxMTIgY291bnRyaWVzLCBtb3JlIHRoYW4gYW55IG90aGVyIG5hdGlvbi4gCgpBbmQgd2Ugd29u4oCZdCBzdG9wLiAKCldlIGhhdmUgbG9zdCBzbyBtdWNoIHRvIENPVklELTE5LiBUaW1lIHdpdGggb25lIGFub3RoZXIuIEFuZCB3b3JzdCBvZiBhbGwsIHNvIG11Y2ggbG9zcyBvZiBsaWZlLiAKCkxldOKAmXMgdXNlIHRoaXMgbW9tZW50IHRvIHJlc2V0LiBMZXTigJlzIHN0b3AgbG9va2luZyBhdCBDT1ZJRC0xOSBhcyBhIHBhcnRpc2FuIGRpdmlkaW5nIGxpbmUgYW5kIHNlZSBpdCBmb3Igd2hhdCBpdCBpczogQSBHb2QtYXdmdWwgZGlzZWFzZS4gIAoKTGV04oCZcyBzdG9wIHNlZWluZyBlYWNoIG90aGVyIGFzIGVuZW1pZXMsIGFuZCBzdGFydCBzZWVpbmcgZWFjaCBvdGhlciBmb3Igd2hvIHdlIHJlYWxseSBhcmU6IEZlbGxvdyBBbWVyaWNhbnMuICAKCldlIGNhbuKAmXQgY2hhbmdlIGhvdyBkaXZpZGVkIHdl4oCZdmUgYmVlbi4gQnV0IHdlIGNhbiBjaGFuZ2UgaG93IHdlIG1vdmUgZm9yd2FyZOKAlG9uIENPVklELTE5IGFuZCBvdGhlciBpc3N1ZXMgd2UgbXVzdCBmYWNlIHRvZ2V0aGVyLiAKCkkgcmVjZW50bHkgdmlzaXRlZCB0aGUgTmV3IFlvcmsgQ2l0eSBQb2xpY2UgRGVwYXJ0bWVudCBkYXlzIGFmdGVyIHRoZSBmdW5lcmFscyBvZiBPZmZpY2VyIFdpbGJlcnQgTW9yYSBhbmQgaGlzIHBhcnRuZXIsIE9mZmljZXIgSmFzb24gUml2ZXJhLiAKClRoZXkgd2VyZSByZXNwb25kaW5nIHRvIGEgOS0xLTEgY2FsbCB3aGVuIGEgbWFuIHNob3QgYW5kIGtpbGxlZCB0aGVtIHdpdGggYSBzdG9sZW4gZ3VuLiAKCk9mZmljZXIgTW9yYSB3YXMgMjcgeWVhcnMgb2xkLiAKCk9mZmljZXIgUml2ZXJhIHdhcyAyMi4gCgpCb3RoIERvbWluaWNhbiBBbWVyaWNhbnMgd2hv4oCZZCBncm93biB1cCBvbiB0aGUgc2FtZSBzdHJlZXRzIHRoZXkgbGF0ZXIgY2hvc2UgdG8gcGF0cm9sIGFzIHBvbGljZSBvZmZpY2Vycy4gCgpJIHNwb2tlIHdpdGggdGhlaXIgZmFtaWxpZXMgYW5kIHRvbGQgdGhlbSB0aGF0IHdlIGFyZSBmb3JldmVyIGluIGRlYnQgZm9yIHRoZWlyIHNhY3JpZmljZSwgYW5kIHdlIHdpbGwgY2Fycnkgb24gdGhlaXIgbWlzc2lvbiB0byByZXN0b3JlIHRoZSB0cnVzdCBhbmQgc2FmZXR5IGV2ZXJ5IGNvbW11bml0eSBkZXNlcnZlcy4gCgpJ4oCZdmUgd29ya2VkIG9uIHRoZXNlIGlzc3VlcyBhIGxvbmcgdGltZS4gCgpJIGtub3cgd2hhdCB3b3JrczogSW52ZXN0aW5nIGluIGNyaW1lIHByZXZlbnRpb25hbmQgY29tbXVuaXR5IHBvbGljZSBvZmZpY2VycyB3aG/igJlsbCB3YWxrIHRoZSBiZWF0LCB3aG/igJlsbCBrbm93IHRoZSBuZWlnaGJvcmhvb2QsIGFuZCB3aG8gY2FuIHJlc3RvcmUgdHJ1c3QgYW5kIHNhZmV0eS4gCgpTbyBsZXTigJlzIG5vdCBhYmFuZG9uIG91ciBzdHJlZXRzLiBPciBjaG9vc2UgYmV0d2VlbiBzYWZldHkgYW5kIGVxdWFsIGp1c3RpY2UuIAoKTGV04oCZcyBjb21lIHRvZ2V0aGVyIHRvIHByb3RlY3Qgb3VyIGNvbW11bml0aWVzLCByZXN0b3JlIHRydXN0LCBhbmQgaG9sZCBsYXcgZW5mb3JjZW1lbnQgYWNjb3VudGFibGUuIAoKVGhhdOKAmXMgd2h5IHRoZSBKdXN0aWNlIERlcGFydG1lbnQgcmVxdWlyZWQgYm9keSBjYW1lcmFzLCBiYW5uZWQgY2hva2Vob2xkcywgYW5kIHJlc3RyaWN0ZWQgbm8ta25vY2sgd2FycmFudHMgZm9yIGl0cyBvZmZpY2Vycy4gCgpUaGF04oCZcyB3aHkgdGhlIEFtZXJpY2FuIFJlc2N1ZSBQbGFuIHByb3ZpZGVkICQzNTAgQmlsbGlvbiB0aGF0IGNpdGllcywgc3RhdGVzLCBhbmQgY291bnRpZXMgY2FuIHVzZSB0byBoaXJlIG1vcmUgcG9saWNlIGFuZCBpbnZlc3QgaW4gcHJvdmVuIHN0cmF0ZWdpZXMgbGlrZSBjb21tdW5pdHkgdmlvbGVuY2UgaW50ZXJydXB0aW9u4oCUdHJ1c3RlZCBtZXNzZW5nZXJzIGJyZWFraW5nIHRoZSBjeWNsZSBvZiB2aW9sZW5jZSBhbmQgdHJhdW1hIGFuZCBnaXZpbmcgeW91bmcgcGVvcGxlIGhvcGUuICAKCldlIHNob3VsZCBhbGwgYWdyZWU6IFRoZSBhbnN3ZXIgaXMgbm90IHRvIERlZnVuZCB0aGUgcG9saWNlLiBUaGUgYW5zd2VyIGlzIHRvIEZVTkQgdGhlIHBvbGljZSB3aXRoIHRoZSByZXNvdXJjZXMgYW5kIHRyYWluaW5nIHRoZXkgbmVlZCB0byBwcm90ZWN0IG91ciBjb21tdW5pdGllcy4gCgpJIGFzayBEZW1vY3JhdHMgYW5kIFJlcHVibGljYW5zIGFsaWtlOiBQYXNzIG15IGJ1ZGdldCBhbmQga2VlcCBvdXIgbmVpZ2hib3Job29kcyBzYWZlLiAgCgpBbmQgSSB3aWxsIGtlZXAgZG9pbmcgZXZlcnl0aGluZyBpbiBteSBwb3dlciB0byBjcmFjayBkb3duIG9uIGd1biB0cmFmZmlja2luZyBhbmQgZ2hvc3QgZ3VucyB5b3UgY2FuIGJ1eSBvbmxpbmUgYW5kIG1ha2UgYXQgaG9tZeKAlHRoZXkgaGF2ZSBubyBzZXJpYWwgbnVtYmVycyBhbmQgY2Fu4oCZdCBiZSB0cmFjZWQuIAoKQW5kIEkgYXNrIENvbmdyZXNzIHRvIHBhc3MgcHJvdmVuIG1lYXN1cmVzIHRvIHJlZHVjZSBndW4gdmlvbGVuY2UuIFBhc3MgdW5pdmVyc2FsIGJhY2tncm91bmQgY2hlY2tzLiBXaHkgc2hvdWxkIGFueW9uZSBvbiBhIHRlcnJvcmlzdCBsaXN0IGJlIGFibGUgdG8gcHVyY2hhc2UgYSB3ZWFwb24/IAoKQmFuIGFzc2F1bHQgd2VhcG9ucyBhbmQgaGlnaC1jYXBhY2l0eSBtYWdhemluZXMuIAoKUmVwZWFsIHRoZSBsaWFiaWxpdHkgc2hpZWxkIHRoYXQgbWFrZXMgZ3VuIG1hbnVmYWN0dXJlcnMgdGhlIG9ubHkgaW5kdXN0cnkgaW4gQW1lcmljYSB0aGF0IGNhbuKAmXQgYmUgc3VlZC4gCgpUaGVzZSBsYXdzIGRvbuKAmXQgaW5mcmluZ2Ugb24gdGhlIFNlY29uZCBBbWVuZG1lbnQuIFRoZXkgc2F2ZSBsaXZlcy4gCgpUaGUgbW9zdCBmdW5kYW1lbnRhbCByaWdodCBpbiBBbWVyaWNhIGlzIHRoZSByaWdodCB0byB2b3RlIOKAkyBhbmQgdG8gaGF2ZSBpdCBjb3VudGVkLiBBbmQgaXTigJlzIHVuZGVyIGFzc2F1bHQuIAoKSW4gc3RhdGUgYWZ0ZXIgc3RhdGUsIG5ldyBsYXdzIGhhdmUgYmVlbiBwYXNzZWQsIG5vdCBvbmx5IHRvIHN1cHByZXNzIHRoZSB2b3RlLCBidXQgdG8gc3VidmVydCBlbnRpcmUgZWxlY3Rpb25zLiAKCldlIGNhbm5vdCBsZXQgdGhpcyBoYXBwZW4uIAoKVG9uaWdodC4gSSBjYWxsIG9uIHRoZSBTZW5hdGUgdG86IFBhc3MgdGhlIEZyZWVkb20gdG8gVm90ZSBBY3QuIFBhc3MgdGhlIEpvaG4gTGV3aXMgVm90aW5nIFJpZ2h0cyBBY3QuIEFuZCB3aGlsZSB5b3XigJlyZSBhdCBpdCwgcGFzcyB0aGUgRGlzY2xvc2UgQWN0IHNvIEFtZXJpY2FucyBjYW4ga25vdyB3aG8gaXMgZnVuZGluZyBvdXIgZWxlY3Rpb25zLiAKClRvbmlnaHQsIEnigJlkIGxpa2UgdG8gaG9ub3Igc29tZW9uZSB3aG8gaGFzIGRlZGljYXRlZCBoaXMgbGlmZSB0byBzZXJ2ZSB0aGlzIGNvdW50cnk6IEp1c3RpY2UgU3RlcGhlbiBCcmV5ZXLigJRhbiBBcm15IHZldGVyYW4sIENvbnN0aXR1dGlvbmFsIHNjaG9sYXIsIGFuZCByZXRpcmluZyBKdXN0aWNlIG9mIHRoZSBVbml0ZWQgU3RhdGVzIFN1cHJlbWUgQ291cnQuIEp1c3RpY2UgQnJleWVyLCB0aGFuayB5b3UgZm9yIHlvdXIgc2VydmljZS4gCgpPbmUgb2YgdGhlIG1vc3Qgc2VyaW91cyBjb25zdGl0dXRpb25hbCByZXNwb25zaWJpbGl0aWVzIGEgUHJlc2lkZW50IGhhcyBpcyBub21pbmF0aW5nIHNvbWVvbmUgdG8gc2VydmUgb24gdGhlIFVuaXRlZCBTdGF0ZXMgU3VwcmVtZSBDb3VydC4gCgpBbmQgSSBkaWQgdGhhdCA0IGRheXMgYWdvLCB3aGVuIEkgbm9taW5hdGVkIENpcmN1aXQgQ291cnQgb2YgQXBwZWFscyBKdWRnZSBLZXRhbmppIEJyb3duIEphY2tzb24uIE9uZSBvZiBvdXIgbmF0aW9u4oCZcyB0b3AgbGVnYWwgbWluZHMsIHdobyB3aWxsIGNvbnRpbnVlIEp1c3RpY2UgQnJleWVy4oCZcyBsZWdhY3kgb2YgZXhjZWxsZW5jZS4gCgpBIGZvcm1lciB0b3AgbGl0aWdhdG9yIGluIHByaXZhdGUgcHJhY3RpY2UuIEEgZm9ybWVyIGZlZGVyYWwgcHVibGljIGRlZmVuZGVyLiBBbmQgZnJvbSBhIGZhbWlseSBvZiBwdWJsaWMgc2Nob29sIGVkdWNhdG9ycyBhbmQgcG9saWNlIG9mZmljZXJzLiBBIGNvbnNlbnN1cyBidWlsZGVyLiBTaW5jZSBzaGXigJlzIGJlZW4gbm9taW5hdGVkLCBzaGXigJlzIHJlY2VpdmVkIGEgYnJvYWQgcmFuZ2Ugb2Ygc3VwcG9ydOKAlGZyb20gdGhlIEZyYXRlcm5hbCBPcmRlciBvZiBQb2xpY2UgdG8gZm9ybWVyIGp1ZGdlcyBhcHBvaW50ZWQgYnkgRGVtb2NyYXRzIGFuZCBSZXB1YmxpY2Fucy4gCgpBbmQgaWYgd2UgYXJlIHRvIGFkdmFuY2UgbGliZXJ0eSBhbmQganVzdGljZSwgd2UgbmVlZCB0byBzZWN1cmUgdGhlIEJvcmRlciBhbmQgZml4IHRoZSBpbW1pZ3JhdGlvbiBzeXN0ZW0uIAoKV2UgY2FuIGRvIGJvdGguIEF0IG91ciBib3JkZXIsIHdl4oCZdmUgaW5zdGFsbGVkIG5ldyB0ZWNobm9sb2d5IGxpa2UgY3V0dGluZy1lZGdlIHNjYW5uZXJzIHRvIGJldHRlciBkZXRlY3QgZHJ1ZyBzbXVnZ2xpbmcuICAKCldl4oCZdmUgc2V0IHVwIGpvaW50IHBhdHJvbHMgd2l0aCBNZXhpY28gYW5kIEd1YXRlbWFsYSB0byBjYXRjaCBtb3JlIGh1bWFuIHRyYWZmaWNrZXJzLiAgCgpXZeKAmXJlIHB1dHRpbmcgaW4gcGxhY2UgZGVkaWNhdGVkIGltbWlncmF0aW9uIGp1ZGdlcyBzbyBmYW1pbGllcyBmbGVlaW5nIHBlcnNlY3V0aW9uIGFuZCB2aW9sZW5jZSBjYW4gaGF2ZSB0aGVpciBjYXNlcyBoZWFyZCBmYXN0ZXIuIAoKV2XigJlyZSBzZWN1cmluZyBjb21taXRtZW50cyBhbmQgc3VwcG9ydGluZyBwYXJ0bmVycyBpbiBTb3V0aCBhbmQgQ2VudHJhbCBBbWVyaWNhIHRvIGhvc3QgbW9yZSByZWZ1Z2VlcyBhbmQgc2VjdXJlIHRoZWlyIG93biBib3JkZXJzLiAKCldlIGNhbiBkbyBhbGwgdGhpcyB3aGlsZSBrZWVwaW5nIGxpdCB0aGUgdG9yY2ggb2YgbGliZXJ0eSB0aGF0IGhhcyBsZWQgZ2VuZXJhdGlvbnMgb2YgaW1taWdyYW50cyB0byB0aGlzIGxhbmTigJRteSBmb3JlZmF0aGVycyBhbmQgc28gbWFueSBvZiB5b3Vycy4gCgpQcm92aWRlIGEgcGF0aHdheSB0byBjaXRpemVuc2hpcCBmb3IgRHJlYW1lcnMsIHRob3NlIG9uIHRlbXBvcmFyeSBzdGF0dXMsIGZhcm0gd29ya2VycywgYW5kIGVzc2VudGlhbCB3b3JrZXJzLiAKClJldmlzZSBvdXIgbGF3cyBzbyBidXNpbmVzc2VzIGhhdmUgdGhlIHdvcmtlcnMgdGhleSBuZWVkIGFuZCBmYW1pbGllcyBkb27igJl0IHdhaXQgZGVjYWRlcyB0byByZXVuaXRlLiAKCkl04oCZcyBub3Qgb25seSB0aGUgcmlnaHQgdGhpbmcgdG8gZG/igJRpdOKAmXMgdGhlIGVjb25vbWljYWxseSBzbWFydCB0aGluZyB0byBkby4gCgpUaGF04oCZcyB3aHkgaW1taWdyYXRpb24gcmVmb3JtIGlzIHN1cHBvcnRlZCBieSBldmVyeW9uZSBmcm9tIGxhYm9yIHVuaW9ucyB0byByZWxpZ2lvdXMgbGVhZGVycyB0byB0aGUgVS5TLiBDaGFtYmVyIG9mIENvbW1lcmNlLiAKCkxldOKAmXMgZ2V0IGl0IGRvbmUgb25jZSBhbmQgZm9yIGFsbC4gCgpBZHZhbmNpbmcgbGliZXJ0eSBhbmQganVzdGljZSBhbHNvIHJlcXVpcmVzIHByb3RlY3RpbmcgdGhlIHJpZ2h0cyBvZiB3b21lbi4gCgpUaGUgY29uc3RpdHV0aW9uYWwgcmlnaHQgYWZmaXJtZWQgaW4gUm9lIHYuIFdhZGXigJRzdGFuZGluZyBwcmVjZWRlbnQgZm9yIGhhbGYgYSBjZW50dXJ54oCUaXMgdW5kZXIgYXR0YWNrIGFzIG5ldmVyIGJlZm9yZS4gCgpJZiB3ZSB3YW50IHRvIGdvIGZvcndhcmTigJRub3QgYmFja3dhcmTigJR3ZSBtdXN0IHByb3RlY3QgYWNjZXNzIHRvIGhlYWx0aCBjYXJlLiBQcmVzZXJ2ZSBhIHdvbWFu4oCZcyByaWdodCB0byBjaG9vc2UuIEFuZCBsZXTigJlzIGNvbnRpbnVlIHRvIGFkdmFuY2UgbWF0ZXJuYWwgaGVhbHRoIGNhcmUgaW4gQW1lcmljYS4gCgpBbmQgZm9yIG91ciBMR0JUUSsgQW1lcmljYW5zLCBsZXTigJlzIGZpbmFsbHkgZ2V0IHRoZSBiaXBhcnRpc2FuIEVxdWFsaXR5IEFjdCB0byBteSBkZXNrLiBUaGUgb25zbGF1Z2h0IG9mIHN0YXRlIGxhd3MgdGFyZ2V0aW5nIHRyYW5zZ2VuZGVyIEFtZXJpY2FucyBhbmQgdGhlaXIgZmFtaWxpZXMgaXMgd3JvbmcuIAoKQXMgSSBzYWlkIGxhc3QgeWVhciwgZXNwZWNpYWxseSB0byBvdXIgeW91bmdlciB0cmFuc2dlbmRlciBBbWVyaWNhbnMsIEkgd2lsbCBhbHdheXMgaGF2ZSB5b3VyIGJhY2sgYXMgeW91ciBQcmVzaWRlbnQsIHNvIHlvdSBjYW4gYmUgeW91cnNlbGYgYW5kIHJlYWNoIHlvdXIgR29kLWdpdmVuIHBvdGVudGlhbC4gCgpXaGlsZSBpdCBvZnRlbiBhcHBlYXJzIHRoYXQgd2UgbmV2ZXIgYWdyZWUsIHRoYXQgaXNu4oCZdCB0cnVlLiBJIHNpZ25lZCA4MCBiaXBhcnRpc2FuIGJpbGxzIGludG8gbGF3IGxhc3QgeWVhci4gRnJvbSBwcmV2ZW50aW5nIGdvdmVybm1lbnQgc2h1dGRvd25zIHRvIHByb3RlY3RpbmcgQXNpYW4tQW1lcmljYW5zIGZyb20gc3RpbGwtdG9vLWNvbW1vbiBoYXRlIGNyaW1lcyB0byByZWZvcm1pbmcgbWlsaXRhcnkganVzdGljZS4gCgpBbmQgc29vbiwgd2XigJlsbCBzdHJlbmd0aGVuIHRoZSBWaW9sZW5jZSBBZ2FpbnN0IFdvbWVuIEFjdCB0aGF0IEkgZmlyc3Qgd3JvdGUgdGhyZWUgZGVjYWRlcyBhZ28uIEl0IGlzIGltcG9ydGFudCBmb3IgdXMgdG8gc2hvdyB0aGUgbmF0aW9uIHRoYXQgd2UgY2FuIGNvbWUgdG9nZXRoZXIgYW5kIGRvIGJpZyB0aGluZ3MuIAoKU28gdG9uaWdodCBJ4oCZbSBvZmZlcmluZyBhIFVuaXR5IEFnZW5kYSBmb3IgdGhlIE5hdGlvbi4gRm91ciBiaWcgdGhpbmdzIHdlIGNhbiBkbyB0b2dldGhlci4gIAoKRmlyc3QsIGJlYXQgdGhlIG9waW9pZCBlcGlkZW1pYy4gCgpUaGVyZSBpcyBzbyBtdWNoIHdlIGNhbiBkby4gSW5jcmVhc2UgZnVuZGluZyBmb3IgcHJldmVudGlvbiwgdHJlYXRtZW50LCBoYXJtIHJlZHVjdGlvbiwgYW5kIHJlY292ZXJ5LiAgCgpHZXQgcmlkIG9mIG91dGRhdGVkIHJ1bGVzIHRoYXQgc3RvcCBkb2N0b3JzIGZyb20gcHJlc2NyaWJpbmcgdHJlYXRtZW50cy4gQW5kIHN0b3AgdGhlIGZsb3cgb2YgaWxsaWNpdCBkcnVncyBieSB3b3JraW5nIHdpdGggc3RhdGUgYW5kIGxvY2FsIGxhdyBlbmZvcmNlbWVudCB0byBnbyBhZnRlciB0cmFmZmlja2Vycy4gCgpJZiB5b3XigJlyZSBzdWZmZXJpbmcgZnJvbSBhZGRpY3Rpb24sIGtub3cgeW91IGFyZSBub3QgYWxvbmUuIEkgYmVsaWV2ZSBpbiByZWNvdmVyeSwgYW5kIEkgY2VsZWJyYXRlIHRoZSAyMyBtaWxsaW9uIEFtZXJpY2FucyBpbiByZWNvdmVyeS4gCgpTZWNvbmQsIGxldOKAmXMgdGFrZSBvbiBtZW50YWwgaGVhbHRoLiBFc3BlY2lhbGx5IGFtb25nIG91ciBjaGlsZHJlbiwgd2hvc2UgbGl2ZXMgYW5kIGVkdWNhdGlvbiBoYXZlIGJlZW4gdHVybmVkIHVwc2lkZSBkb3duLiAgCgpUaGUgQW1lcmljYW4gUmVzY3VlIFBsYW4gZ2F2ZSBzY2hvb2xzIG1vbmV5IHRvIGhpcmUgdGVhY2hlcnMgYW5kIGhlbHAgc3R1ZGVudHMgbWFrZSB1cCBmb3IgbG9zdCBsZWFybmluZy4gIAoKSSB1cmdlIGV2ZXJ5IHBhcmVudCB0byBtYWtlIHN1cmUgeW91ciBzY2hvb2wgZG9lcyBqdXN0IHRoYXQuIEFuZCB3ZSBjYW4gYWxsIHBsYXkgYSBwYXJ04oCUc2lnbiB1cCB0byBiZSBhIHR1dG9yIG9yIGEgbWVudG9yLiAKCkNoaWxkcmVuIHdlcmUgYWxzbyBzdHJ1Z2dsaW5nIGJlZm9yZSB0aGUgcGFuZGVtaWMuIEJ1bGx5aW5nLCB2aW9sZW5jZSwgdHJhdW1hLCBhbmQgdGhlIGhhcm1zIG9mIHNvY2lhbCBtZWRpYS4gCgpBcyBGcmFuY2VzIEhhdWdlbiwgd2hvIGlzIGhlcmUgd2l0aCB1cyB0b25pZ2h0LCBoYXMgc2hvd24sIHdlIG11c3QgaG9sZCBzb2NpYWwgbWVkaWEgcGxhdGZvcm1zIGFjY291bnRhYmxlIGZvciB0aGUgbmF0aW9uYWwgZXhwZXJpbWVudCB0aGV54oCZcmUgY29uZHVjdGluZyBvbiBvdXIgY2hpbGRyZW4gZm9yIHByb2ZpdC4gCgpJdOKAmXMgdGltZSB0byBzdHJlbmd0aGVuIHByaXZhY3kgcHJvdGVjdGlvbnMsIGJhbiB0YXJnZXRlZCBhZHZlcnRpc2luZyB0byBjaGlsZHJlbiwgZGVtYW5kIHRlY2ggY29tcGFuaWVzIHN0b3AgY29sbGVjdGluZyBwZXJzb25hbCBkYXRhIG9uIG91ciBjaGlsZHJlbi4gCgpBbmQgbGV04oCZcyBnZXQgYWxsIEFtZXJpY2FucyB0aGUgbWVudGFsIGhlYWx0aCBzZXJ2aWNlcyB0aGV5IG5lZWQuIE1vcmUgcGVvcGxlIHRoZXkgY2FuIHR1cm4gdG8gZm9yIGhlbHAsIGFuZCBmdWxsIHBhcml0eSBiZXR3ZWVuIHBoeXNpY2FsIGFuZCBtZW50YWwgaGVhbHRoIGNhcmUuIAoKVGhpcmQsIHN1cHBvcnQgb3VyIHZldGVyYW5zLiAKClZldGVyYW5zIGFyZSB0aGUgYmVzdCBvZiB1cy4gCgpJ4oCZdmUgYWx3YXlzIGJlbGlldmVkIHRoYXQgd2UgaGF2ZSBhIHNhY3JlZCBvYmxpZ2F0aW9uIHRvIGVxdWlwIGFsbCB0aG9zZSB3ZSBzZW5kIHRvIHdhciBhbmQgY2FyZSBmb3IgdGhlbSBhbmQgdGhlaXIgZmFtaWxpZXMgd2hlbiB0aGV5IGNvbWUgaG9tZS4gCgpNeSBhZG1pbmlzdHJhdGlvbiBpcyBwcm92aWRpbmcgYXNzaXN0YW5jZSB3aXRoIGpvYiB0cmFpbmluZyBhbmQgaG91c2luZywgYW5kIG5vdyBoZWxwaW5nIGxvd2VyLWluY29tZSB2ZXRlcmFucyBnZXQgVkEgY2FyZSBkZWJ0LWZyZWUuICAKCk91ciB0cm9vcHMgaW4gSXJhcSBhbmQgQWZnaGFuaXN0YW4gZmFjZWQgbWFueSBkYW5nZXJzLiAKCk9uZSB3YXMgc3RhdGlvbmVkIGF0IGJhc2VzIGFuZCBicmVhdGhpbmcgaW4gdG94aWMgc21va2UgZnJvbSDigJxidXJuIHBpdHPigJ0gdGhhdCBpbmNpbmVyYXRlZCB3YXN0ZXMgb2Ygd2Fy4oCUbWVkaWNhbCBhbmQgaGF6YXJkIG1hdGVyaWFsLCBqZXQgZnVlbCwgYW5kIG1vcmUuIAoKV2hlbiB0aGV5IGNhbWUgaG9tZSwgbWFueSBvZiB0aGUgd29ybGTigJlzIGZpdHRlc3QgYW5kIGJlc3QgdHJhaW5lZCB3YXJyaW9ycyB3ZXJlIG5ldmVyIHRoZSBzYW1lLiAKCkhlYWRhY2hlcy4gTnVtYm5lc3MuIERpenppbmVzcy4gCgpBIGNhbmNlciB0aGF0IHdvdWxkIHB1dCB0aGVtIGluIGEgZmxhZy1kcmFwZWQgY29mZmluLiAKCkkga25vdy4gCgpPbmUgb2YgdGhvc2Ugc29sZGllcnMgd2FzIG15IHNvbiBNYWpvciBCZWF1IEJpZGVuLiAKCldlIGRvbuKAmXQga25vdyBmb3Igc3VyZSBpZiBhIGJ1cm4gcGl0IHdhcyB0aGUgY2F1c2Ugb2YgaGlzIGJyYWluIGNhbmNlciwgb3IgdGhlIGRpc2Vhc2VzIG9mIHNvIG1hbnkgb2Ygb3VyIHRyb29wcy4gCgpCdXQgSeKAmW0gY29tbWl0dGVkIHRvIGZpbmRpbmcgb3V0IGV2ZXJ5dGhpbmcgd2UgY2FuLiAKCkNvbW1pdHRlZCB0byBtaWxpdGFyeSBmYW1pbGllcyBsaWtlIERhbmllbGxlIFJvYmluc29uIGZyb20gT2hpby4gCgpUaGUgd2lkb3cgb2YgU2VyZ2VhbnQgRmlyc3QgQ2xhc3MgSGVhdGggUm9iaW5zb24uICAKCkhlIHdhcyBib3JuIGEgc29sZGllci4gQXJteSBOYXRpb25hbCBHdWFyZC4gQ29tYmF0IG1lZGljIGluIEtvc292byBhbmQgSXJhcS4gCgpTdGF0aW9uZWQgbmVhciBCYWdoZGFkLCBqdXN0IHlhcmRzIGZyb20gYnVybiBwaXRzIHRoZSBzaXplIG9mIGZvb3RiYWxsIGZpZWxkcy4gCgpIZWF0aOKAmXMgd2lkb3cgRGFuaWVsbGUgaXMgaGVyZSB3aXRoIHVzIHRvbmlnaHQuIFRoZXkgbG92ZWQgZ29pbmcgdG8gT2hpbyBTdGF0ZSBmb290YmFsbCBnYW1lcy4gSGUgbG92ZWQgYnVpbGRpbmcgTGVnb3Mgd2l0aCB0aGVpciBkYXVnaHRlci4gCgpCdXQgY2FuY2VyIGZyb20gcHJvbG9uZ2VkIGV4cG9zdXJlIHRvIGJ1cm4gcGl0cyByYXZhZ2VkIEhlYXRo4oCZcyBsdW5ncyBhbmQgYm9keS4gCgpEYW5pZWxsZSBzYXlzIEhlYXRoIHdhcyBhIGZpZ2h0ZXIgdG8gdGhlIHZlcnkgZW5kLiAKCkhlIGRpZG7igJl0IGtub3cgaG93IHRvIHN0b3AgZmlnaHRpbmcsIGFuZCBuZWl0aGVyIGRpZCBzaGUuIAoKVGhyb3VnaCBoZXIgcGFpbiBzaGUgZm91bmQgcHVycG9zZSB0byBkZW1hbmQgd2UgZG8gYmV0dGVyLiAKClRvbmlnaHQsIERhbmllbGxl4oCUd2UgYXJlLiAKClRoZSBWQSBpcyBwaW9uZWVyaW5nIG5ldyB3YXlzIG9mIGxpbmtpbmcgdG94aWMgZXhwb3N1cmVzIHRvIGRpc2Vhc2VzLCBhbHJlYWR5IGhlbHBpbmcgbW9yZSB2ZXRlcmFucyBnZXQgYmVuZWZpdHMuIAoKQW5kIHRvbmlnaHQsIEnigJltIGFubm91bmNpbmcgd2XigJlyZSBleHBhbmRpbmcgZWxpZ2liaWxpdHkgdG8gdmV0ZXJhbnMgc3VmZmVyaW5nIGZyb20gbmluZSByZXNwaXJhdG9yeSBjYW5jZXJzLiAKCknigJltIGFsc28gY2FsbGluZyBvbiBDb25ncmVzczogcGFzcyBhIGxhdyB0byBtYWtlIHN1cmUgdmV0ZXJhbnMgZGV2YXN0YXRlZCBieSB0b3hpYyBleHBvc3VyZXMgaW4gSXJhcSBhbmQgQWZnaGFuaXN0YW4gZmluYWxseSBnZXQgdGhlIGJlbmVmaXRzIGFuZCBjb21wcmVoZW5zaXZlIGhlYWx0aCBjYXJlIHRoZXkgZGVzZXJ2ZS4gCgpBbmQgZm91cnRoLCBsZXTigJlzIGVuZCBjYW5jZXIgYXMgd2Uga25vdyBpdC4gCgpUaGlzIGlzIHBlcnNvbmFsIHRvIG1lIGFuZCBKaWxsLCB0byBLYW1hbGEsIGFuZCB0byBzbyBtYW55IG9mIHlvdS4gCgpDYW5jZXIgaXMgdGhlICMyIGNhdXNlIG9mIGRlYXRoIGluIEFtZXJpY2HigJNzZWNvbmQgb25seSB0byBoZWFydCBkaXNlYXNlLiAKCkxhc3QgbW9udGgsIEkgYW5ub3VuY2VkIG91ciBwbGFuIHRvIHN1cGVyY2hhcmdlICAKdGhlIENhbmNlciBNb29uc2hvdCB0aGF0IFByZXNpZGVudCBPYmFtYSBhc2tlZCBtZSB0byBsZWFkIHNpeCB5ZWFycyBhZ28uIAoKT3VyIGdvYWwgaXMgdG8gY3V0IHRoZSBjYW5jZXIgZGVhdGggcmF0ZSBieSBhdCBsZWFzdCA1MCUgb3ZlciB0aGUgbmV4dCAyNSB5ZWFycywgdHVybiBtb3JlIGNhbmNlcnMgZnJvbSBkZWF0aCBzZW50ZW5jZXMgaW50byB0cmVhdGFibGUgZGlzZWFzZXMuICAKCk1vcmUgc3VwcG9ydCBmb3IgcGF0aWVudHMgYW5kIGZhbWlsaWVzLiAKClRvIGdldCB0aGVyZSwgSSBjYWxsIG9uIENvbmdyZXNzIHRvIGZ1bmQgQVJQQS1ILCB0aGUgQWR2YW5jZWQgUmVzZWFyY2ggUHJvamVjdHMgQWdlbmN5IGZvciBIZWFsdGguIAoKSXTigJlzIGJhc2VkIG9uIERBUlBB4oCUdGhlIERlZmVuc2UgRGVwYXJ0bWVudCBwcm9qZWN0IHRoYXQgbGVkIHRvIHRoZSBJbnRlcm5ldCwgR1BTLCBhbmQgc28gbXVjaCBtb3JlLiAgCgpBUlBBLUggd2lsbCBoYXZlIGEgc2luZ3VsYXIgcHVycG9zZeKAlHRvIGRyaXZlIGJyZWFrdGhyb3VnaHMgaW4gY2FuY2VyLCBBbHpoZWltZXLigJlzLCBkaWFiZXRlcywgYW5kIG1vcmUuIAoKQSB1bml0eSBhZ2VuZGEgZm9yIHRoZSBuYXRpb24uIAoKV2UgY2FuIGRvIHRoaXMuIAoKTXkgZmVsbG93IEFtZXJpY2Fuc+KAlHRvbmlnaHQgLCB3ZSBoYXZlIGdhdGhlcmVkIGluIGEgc2FjcmVkIHNwYWNl4oCUdGhlIGNpdGFkZWwgb2Ygb3VyIGRlbW9jcmFjeS4gCgpJbiB0aGlzIENhcGl0b2wsIGdlbmVyYXRpb24gYWZ0ZXIgZ2VuZXJhdGlvbiwgQW1lcmljYW5zIGhhdmUgZGViYXRlZCBncmVhdCBxdWVzdGlvbnMgYW1pZCBncmVhdCBzdHJpZmUsIGFuZCBoYXZlIGRvbmUgZ3JlYXQgdGhpbmdzLiAKCldlIGhhdmUgZm91Z2h0IGZvciBmcmVlZG9tLCBleHBhbmRlZCBsaWJlcnR5LCBkZWZlYXRlZCB0b3RhbGl0YXJpYW5pc20gYW5kIHRlcnJvci4gCgpBbmQgYnVpbHQgdGhlIHN0cm9uZ2VzdCwgZnJlZXN0LCBhbmQgbW9zdCBwcm9zcGVyb3VzIG5hdGlvbiB0aGUgd29ybGQgaGFzIGV2ZXIga25vd24uIAoKTm93IGlzIHRoZSBob3VyLiAKCk91ciBtb21lbnQgb2YgcmVzcG9uc2liaWxpdHkuIAoKT3VyIHRlc3Qgb2YgcmVzb2x2ZSBhbmQgY29uc2NpZW5jZSwgb2YgaGlzdG9yeSBpdHNlbGYuIAoKSXQgaXMgaW4gdGhpcyBtb21lbnQgdGhhdCBvdXIgY2hhcmFjdGVyIGlzIGZvcm1lZC4gT3VyIHB1cnBvc2UgaXMgZm91bmQuIE91ciBmdXR1cmUgaXMgZm9yZ2VkLiAKCldlbGwgSSBrbm93IHRoaXMgbmF0aW9uLiAgCgpXZSB3aWxsIG1lZXQgdGhlIHRlc3QuIAoKVG8gcHJvdGVjdCBmcmVlZG9tIGFuZCBsaWJlcnR5LCB0byBleHBhbmQgZmFpcm5lc3MgYW5kIG9wcG9ydHVuaXR5LiAKCldlIHdpbGwgc2F2ZSBkZW1vY3JhY3kuIAoKQXMgaGFyZCBhcyB0aGVzZSB0aW1lcyBoYXZlIGJlZW4sIEkgYW0gbW9yZSBvcHRpbWlzdGljIGFib3V0IEFtZXJpY2EgdG9kYXkgdGhhbiBJIGhhdmUgYmVlbiBteSB3aG9sZSBsaWZlLiAKCkJlY2F1c2UgSSBzZWUgdGhlIGZ1dHVyZSB0aGF0IGlzIHdpdGhpbiBvdXIgZ3Jhc3AuIAoKQmVjYXVzZSBJIGtub3cgdGhlcmUgaXMgc2ltcGx5IG5vdGhpbmcgYmV5b25kIG91ciBjYXBhY2l0eS4gCgpXZSBhcmUgdGhlIG9ubHkgbmF0aW9uIG9uIEVhcnRoIHRoYXQgaGFzIGFsd2F5cyB0dXJuZWQgZXZlcnkgY3Jpc2lzIHdlIGhhdmUgZmFjZWQgaW50byBhbiBvcHBvcnR1bml0eS4gCgpUaGUgb25seSBuYXRpb24gdGhhdCBjYW4gYmUgZGVmaW5lZCBieSBhIHNpbmdsZSB3b3JkOiBwb3NzaWJpbGl0aWVzLiAKClNvIG9uIHRoaXMgbmlnaHQsIGluIG91ciAyNDV0aCB5ZWFyIGFzIGEgbmF0aW9uLCBJIGhhdmUgY29tZSB0byByZXBvcnQgb24gdGhlIFN0YXRlIG9mIHRoZSBVbmlvbi4gCgpBbmQgbXkgcmVwb3J0IGlzIHRoaXM6IHRoZSBTdGF0ZSBvZiB0aGUgVW5pb24gaXMgc3Ryb25n4oCUYmVjYXVzZSB5b3UsIHRoZSBBbWVyaWNhbiBwZW9wbGUsIGFyZSBzdHJvbmcuIAoKV2UgYXJlIHN0cm9uZ2VyIHRvZGF5IHRoYW4gd2Ugd2VyZSBhIHllYXIgYWdvLiAKCkFuZCB3ZSB3aWxsIGJlIHN0cm9uZ2VyIGEgeWVhciBmcm9tIG5vdyB0aGFuIHdlIGFyZSB0b2RheS4gCgpOb3cgaXMgb3VyIG1vbWVudCB0byBtZWV0IGFuZCBvdmVyY29tZSB0aGUgY2hhbGxlbmdlcyBvZiBvdXIgdGltZS4gCgpBbmQgd2Ugd2lsbCwgYXMgb25lIHBlb3BsZS4gCgpPbmUgQW1lcmljYS4gCgpUaGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhLiAKCk1heSBHb2QgYmxlc3MgeW91IGFsbC4gTWF5IEdvZCBwcm90ZWN0IG91ciB0cm9vcHMu"},"_type":"TextLoader"},"description":"Load text files.","base_classes":["TextLoader","BaseLoader"]},"id":"dndnode_213","value":null},"selected":false,"positionAbsolute":{"x":160.88681321552258,"y":85.60450902748329},"dragging":false},{"width":384,"height":293,"id":"dndnode_214","type":"genericNode","position":{"x":179.10633869463402,"y":745.0870354962836},"data":{"type":"WebBaseLoader","node":{"template":{"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"https://beta.ruff.rs/docs/faq/","password":false,"name":"web_path","advanced":false,"type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["WebBaseLoader","BaseLoader"]},"id":"dndnode_214","value":null},"selected":false,"positionAbsolute":{"x":179.10633869463402,"y":745.0870354962836},"dragging":false},{"width":384,"height":489,"id":"dndnode_215","type":"genericNode","position":{"x":764.7962774179402,"y":-41.66146949279698},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"dndnode_215","value":null},"selected":false,"positionAbsolute":{"x":764.7962774179402,"y":-41.66146949279698},"dragging":false},{"width":384,"height":489,"id":"dndnode_216","type":"genericNode","position":{"x":741.7004274223395,"y":1023.597430357632},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"dndnode_216","value":null},"selected":false,"positionAbsolute":{"x":741.7004274223395,"y":1023.597430357632},"dragging":false},{"width":384,"height":267,"id":"dndnode_217","type":"genericNode","position":{"x":1301.2422429392857,"y":152.6224992269589},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_217","value":null},"selected":true,"positionAbsolute":{"x":1301.2422429392857,"y":152.6224992269589},"dragging":false},{"width":384,"height":531,"id":"dndnode_218","type":"genericNode","position":{"x":749.7322367184304,"y":472.14072103514684},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":false,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":false,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_version","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","advanced":false,"type":"str","list":false,"value":""},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":false,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["OpenAIEmbeddings","Embeddings"]},"id":"dndnode_218","value":null},"selected":false,"positionAbsolute":{"x":749.7322367184304,"y":472.14072103514684},"dragging":false},{"width":384,"height":267,"id":"dndnode_219","type":"genericNode","position":{"x":1319.0884617250285,"y":830.8624396889157},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_219","value":null},"selected":false,"positionAbsolute":{"x":1319.0884617250285,"y":830.8624396889157},"dragging":false},{"width":384,"height":399,"id":"dndnode_220","type":"genericNode","position":{"x":1749.0884617250285,"y":164.46243968891588},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"state_of_union_address"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"the most recent state of the Union address\n"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_220","value":null},"selected":false,"positionAbsolute":{"x":1749.0884617250285,"y":164.46243968891588},"dragging":false},{"width":384,"height":399,"id":"dndnode_221","type":"genericNode","position":{"x":1781.0884617250285,"y":766.4624396889159},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"ruff"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"Information about the Ruff python linting library\n"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_221","value":null},"selected":false,"positionAbsolute":{"x":1781.0884617250285,"y":766.4624396889159},"dragging":false},{"width":384,"height":227,"id":"dndnode_222","type":"genericNode","position":{"x":2259.0884617250285,"y":382.4624396889159},"data":{"type":"VectorStoreRouterToolkit","node":{"template":{"vectorstores":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstores","advanced":false,"type":"VectorStoreInfo","list":true},"llm":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"VectorStoreRouterToolkit"},"description":"Toolkit for routing between vectorstores.","base_classes":["VectorStoreRouterToolkit","BaseToolkit"]},"id":"dndnode_222","value":null},"selected":false,"positionAbsolute":{"x":2259.0884617250285,"y":382.4624396889159},"dragging":false},{"width":384,"height":597,"id":"dndnode_223","type":"genericNode","position":{"x":2247.0884617250285,"y":686.462439688916},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_223","value":null},"selected":false,"positionAbsolute":{"x":2247.0884617250285,"y":686.462439688916},"dragging":false},{"width":384,"height":267,"id":"dndnode_224","type":"genericNode","position":{"x":2741.0884617250285,"y":416.4624396889159},"data":{"type":"VectorStoreRouterAgent","node":{"template":{"vectorstoreroutertoolkit":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreroutertoolkit","display_name":"Vector Store Router Toolkit","advanced":false,"type":"VectorStoreRouterToolkit","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstorerouter_agent"},"description":"Construct an agent from a Vector Store Router.","base_classes":["AgentExecutor"]},"id":"dndnode_224","value":null},"selected":false,"positionAbsolute":{"x":2741.0884617250285,"y":416.4624396889159},"dragging":false}],"edges":[{"source":"dndnode_213","sourceHandle":"TextLoader|dndnode_213|TextLoader|BaseLoader","target":"dndnode_215","targetHandle":"BaseLoader|documents|dndnode_215","className":"animate-pulse","id":"reactflow__edge-dndnode_213TextLoader|dndnode_213|TextLoader|BaseLoader-dndnode_215BaseLoader|documents|dndnode_215","selected":false},{"source":"dndnode_214","sourceHandle":"WebBaseLoader|dndnode_214|WebBaseLoader|BaseLoader","target":"dndnode_216","targetHandle":"BaseLoader|documents|dndnode_216","className":"animate-pulse","id":"reactflow__edge-dndnode_214WebBaseLoader|dndnode_214|WebBaseLoader|BaseLoader-dndnode_216BaseLoader|documents|dndnode_216","selected":false},{"source":"dndnode_215","sourceHandle":"CharacterTextSplitter|dndnode_215|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"dndnode_217","targetHandle":"TextSplitter|documents|dndnode_217","className":"animate-pulse","id":"reactflow__edge-dndnode_215CharacterTextSplitter|dndnode_215|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-dndnode_217TextSplitter|documents|dndnode_217","selected":false},{"source":"dndnode_218","sourceHandle":"OpenAIEmbeddings|dndnode_218|OpenAIEmbeddings|Embeddings","target":"dndnode_217","targetHandle":"Embeddings|embedding|dndnode_217","className":"animate-pulse","id":"reactflow__edge-dndnode_218OpenAIEmbeddings|dndnode_218|OpenAIEmbeddings|Embeddings-dndnode_217Embeddings|embedding|dndnode_217","selected":false},{"source":"dndnode_216","sourceHandle":"CharacterTextSplitter|dndnode_216|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"dndnode_219","targetHandle":"TextSplitter|documents|dndnode_219","className":"animate-pulse","id":"reactflow__edge-dndnode_216CharacterTextSplitter|dndnode_216|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-dndnode_219TextSplitter|documents|dndnode_219","selected":false},{"source":"dndnode_218","sourceHandle":"OpenAIEmbeddings|dndnode_218|OpenAIEmbeddings|Embeddings","target":"dndnode_219","targetHandle":"Embeddings|embedding|dndnode_219","className":"animate-pulse","id":"reactflow__edge-dndnode_218OpenAIEmbeddings|dndnode_218|OpenAIEmbeddings|Embeddings-dndnode_219Embeddings|embedding|dndnode_219","selected":false},{"source":"dndnode_217","sourceHandle":"Chroma|dndnode_217|Chroma|VectorStore","target":"dndnode_220","targetHandle":"VectorStore|vectorstore|dndnode_220","className":"animate-pulse","id":"reactflow__edge-dndnode_217Chroma|dndnode_217|Chroma|VectorStore-dndnode_220VectorStore|vectorstore|dndnode_220","selected":false},{"source":"dndnode_219","sourceHandle":"Chroma|dndnode_219|Chroma|VectorStore","target":"dndnode_221","targetHandle":"VectorStore|vectorstore|dndnode_221","className":"animate-pulse","id":"reactflow__edge-dndnode_219Chroma|dndnode_219|Chroma|VectorStore-dndnode_221VectorStore|vectorstore|dndnode_221","selected":false},{"source":"dndnode_220","sourceHandle":"VectorStoreInfo|dndnode_220|VectorStoreInfo","target":"dndnode_222","targetHandle":"VectorStoreInfo|vectorstores|dndnode_222","className":"animate-pulse","id":"reactflow__edge-dndnode_220VectorStoreInfo|dndnode_220|VectorStoreInfo-dndnode_222VectorStoreInfo|vectorstores|dndnode_222","selected":false},{"source":"dndnode_221","sourceHandle":"VectorStoreInfo|dndnode_221|VectorStoreInfo","target":"dndnode_222","targetHandle":"VectorStoreInfo|vectorstores|dndnode_222","className":"animate-pulse","id":"reactflow__edge-dndnode_221VectorStoreInfo|dndnode_221|VectorStoreInfo-dndnode_222VectorStoreInfo|vectorstores|dndnode_222","selected":false},{"source":"dndnode_223","sourceHandle":"OpenAI|dndnode_223|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_224","targetHandle":"BaseLanguageModel|llm|dndnode_224","className":"animate-pulse","id":"reactflow__edge-dndnode_223OpenAI|dndnode_223|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_224BaseLanguageModel|llm|dndnode_224","selected":false},{"source":"dndnode_222","sourceHandle":"VectorStoreRouterToolkit|dndnode_222|VectorStoreRouterToolkit|BaseToolkit","target":"dndnode_224","targetHandle":"VectorStoreRouterToolkit|vectorstoreroutertoolkit|dndnode_224","className":"animate-pulse","id":"reactflow__edge-dndnode_222VectorStoreRouterToolkit|dndnode_222|VectorStoreRouterToolkit|BaseToolkit-dndnode_224VectorStoreRouterToolkit|vectorstoreroutertoolkit|dndnode_224","selected":false}],"viewport":{"x":27.70798566234498,"y":76.92203484317952,"zoom":0.5}}} \ No newline at end of file diff --git a/docs/data/News_api.json b/docs/data/News_api.json deleted file mode 100644 index 915fab63a..000000000 --- a/docs/data/News_api.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"news_api","id":"53ba777b-ee08-49cc-a45d-b9cea033a910","data":{"nodes":[{"width":384,"height":597,"id":"dndnode_161","type":"genericNode","position":{"x":373.05375840382635,"y":523.1549490482104},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["OpenAI","BaseOpenAI","BaseLLM","BaseLanguageModel"]},"id":"dndnode_161","value":null},"selected":false,"positionAbsolute":{"x":373.05375840382635,"y":523.1549490482104},"dragging":false},{"width":384,"height":373,"id":"dndnode_162","type":"genericNode","position":{"x":945.1723101025489,"y":641.4497339807061},"data":{"type":"News API","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"news_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"news_api_key","advanced":false,"type":"str","list":false},"_type":"News API"},"description":"Use this when you want to get information about the top headlines of current news stories. The input should be a question in natural language that this API can answer.","base_classes":["Tool"]},"id":"dndnode_162","value":null},"selected":false,"positionAbsolute":{"x":945.1723101025489,"y":641.4497339807061},"dragging":false}],"edges":[{"source":"dndnode_161","sourceHandle":"OpenAI|dndnode_161|OpenAI|BaseOpenAI|BaseLLM|BaseLanguageModel","target":"dndnode_162","targetHandle":"BaseLanguageModel|llm|dndnode_162","className":"animate-pulse","id":"reactflow__edge-dndnode_161OpenAI|dndnode_161|OpenAI|BaseOpenAI|BaseLLM|BaseLanguageModel-dndnode_162BaseLanguageModel|llm|dndnode_162","selected":false}],"viewport":{"x":-125.88529903330328,"y":-377.2488516968368,"zoom":0.9726549474122861}}} \ No newline at end of file diff --git a/docs/data/Py_pdf_loader.json b/docs/data/Py_pdf_loader.json deleted file mode 100644 index d661bec47..000000000 --- a/docs/data/Py_pdf_loader.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"38dd2d35-d7aa-4099-96db-542cef1b3f4a","data":{"nodes":[{"width":384,"height":489,"id":"dndnode_249","type":"genericNode","position":{"x":542.6168807505579,"y":170.34781931881435},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"dndnode_249","value":null},"selected":false,"positionAbsolute":{"x":542.6168807505579,"y":170.34781931881435},"dragging":false},{"width":384,"height":531,"id":"dndnode_251","type":"genericNode","position":{"x":541.0328556358809,"y":677.6804475111904},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":false,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":false,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_version","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","advanced":false,"type":"str","list":false,"value":""},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":false,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["OpenAIEmbeddings","Embeddings"]},"id":"dndnode_251","value":null},"selected":false,"positionAbsolute":{"x":541.0328556358809,"y":677.6804475111904},"dragging":false},{"width":384,"height":267,"id":"dndnode_252","type":"genericNode","position":{"x":1044.0204407094081,"y":279.9557730573877},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_252","value":null},"selected":false,"positionAbsolute":{"x":1044.0204407094081,"y":279.9557730573877},"dragging":false},{"width":384,"height":399,"id":"dndnode_253","type":"genericNode","position":{"x":1539.1220751701976,"y":271.2557189294075},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"organizations 100"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"A table contains 100 companies.\n"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_253","value":null},"selected":false,"positionAbsolute":{"x":1539.1220751701976,"y":271.2557189294075},"dragging":false},{"width":384,"height":597,"id":"dndnode_254","type":"genericNode","position":{"x":1561.137453291623,"y":692.9348844859459},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_254","value":null},"selected":false,"positionAbsolute":{"x":1561.137453291623,"y":692.9348844859459},"dragging":false},{"width":384,"height":267,"id":"dndnode_255","type":"genericNode","position":{"x":2158.939643819567,"y":410.12195015686194},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","advanced":false,"type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"dndnode_255","value":null},"selected":false,"positionAbsolute":{"x":2158.939643819567,"y":410.12195015686194},"dragging":false},{"width":384,"height":265,"id":"dndnode_267","type":"genericNode","position":{"x":45.46334416270031,"y":240.7728876843567},"data":{"type":"PyPDFLoader","node":{"template":{"file_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"example.pdf","suffixes":[".pdf"],"password":false,"name":"file_path","advanced":false,"type":"file","list":false,"fileTypes":["pdf"],"content":"data:application/pdf;base64,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UgovRjQgMTggMCBSPj4KL1hPYmplY3QgPDwvR0kxIDE5IDAgUj4+Ci9Qcm9jU2V0IFsvUERGIC9UZXh0IC9JbWFnZUNdCi9QYXR0ZXJuIDw8L1BhdDEgMjAgMCBSPj4+PgovR3JvdXAgPDwvUyAvVHJhbnNwYXJlbmN5Ci9DUyAvRGV2aWNlUkdCPj4KL0Fubm90cyBbMTAgMCBSIDExIDAgUiAxMiAwIFIgMTMgMCBSIDE0IDAgUiAxNSAwIFJdPj4KZW5kb2JqCgoxMCAwIG9iago8PC9UeXBlIC9Bbm5vdAovUmVjdCBbMjA4LjY5NTAgNjc1LjIwMDAgMjk2Ljc4NTAgNjg3LjIwMDBdCi9Cb3JkZXIgWzAgMCAwXQovU3VidHlwZSAvTGluawovQSA8PC9UeXBlIC9BY3Rpb24KL1MgL1VSSQovVVJJIChodHRwOi8vd3d3LnBuci5pa2kuZmkvY3YuaHRtbCk+Pj4+CmVuZG9iagoKMTEgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzIwOC42OTUwIDY2My4yMDAwIDI5Ni43ODUwIDY3NS4yMDAwXQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL3d3dy5hYWx0by5maSk+Pj4+CmVuZG9iagoKMTIgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzI5Ni43ODUwIDY3NS4yMDAwIDQwMy4zMDUwIDY4Ny4yMDAwXQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL3d3dy5wbnIuaWtpLmZpL2N2Lmh0bWwpPj4+PgplbmRvYmoKCjEzIDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsyOTYuNzg1MCA2NjMuMjAwMCA0MDMuMzA1MCA2NzUuMjAwMF0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly93d3cudXNlbml4Lm9yZyk+Pj4+CmVuZG9iagoKMTQgMCBvYmoKPDwvVHlw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QqL22mcYI3QaoZ1WW3m6eN/2DSsWz58ROpE6rxWk4UrjYhL1/RcR+rlITlXb2MbFN2T6nOTl67btLT5VeeXm3dYnXS9ewWmNhNDf+MJqfWeEziPYah/ev+nt6Xzy8N7NuktwGO3ctGpJ/Cx4Gdmb66Mrjc7PxTFmmBD90AjG6OMHaqfBnXb18rkTh3ZvyVyWMDss0BOuNPS+pr6CMB5GQ5/oR0Z//glE716/eN7x6MGd61XlJYfzctakJkaHB3k5WhpqKssyiX4bHkRf/k5EndifPqLDqKOtubG++nxpYf7WtWlJMRHB3ujWByIhAUQ0crgQffk7ERgBERxG1HldX1NRdmRPblb6wtjIYG9na+phRBGNGj5EX74j+otB1NP5uKWpofbCyaKCbdkZyXHTQnycrY21KSIe6u04bIi+fEf05+dPDKKHd+F9fapo77bs5SnwLc3XxYZBRBtuRF9+QISuNCZR8d7t6waIVOUkhYcf0ZcfE3U9af2OiPoGMhyJvgxGBG/Hi6eP7tuxfsWiuVGT/Vxthy/RF0KEjxDhI0T4CBE+5jcQQjR4/V9kCdGg9Rn9NNGI4UfEMELfY9GvIf1E+78mGkv9eI1+dkT/rT9Mif7z1x+f0a8hz58+un/r6qUzx/bv3LBy8bwZoRPQj9djFaRE6ISIEA0eIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJs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L1BhdDEwNSAzOSAwIFIKL1BhdDEwNiA0MCAwIFIKL1BhdDEwNyA0MSAwIFIKL1BhdDEwOCA0MiAwIFIKL1BhdDEwOSA0MyAwIFIKL1BhdDExIDQ0IDAgUgovUGF0MTEwIDQ1IDAgUgovUGF0MTExIDQ2IDAgUgovUGF0MTEyIDQ3IDAgUgovUGF0MTEzIDQ4IDAgUgovUGF0MTE0IDQ5IDAgUgovUGF0MTE1IDUwIDAgUgovUGF0MTE2IDUxIDAgUgovUGF0MTE3IDUyIDAgUgovUGF0MTE4IDUzIDAgUgovUGF0MTE5IDU0IDAgUgovUGF0MTIgNTUgMCBSCi9QYXQxMjAgNTYgMCBSCi9QYXQxMjEgNTcgMCBSCi9QYXQxMjIgNTggMCBSCi9QYXQxMjMgNTkgMCBSCi9QYXQxMjQgNjAgMCBSCi9QYXQxMjUgNjEgMCBSCi9QYXQxMjYgNjIgMCBSCi9QYXQxMjcgNjMgMCBSCi9QYXQxMjggNjQgMCBSCi9QYXQxMjkgNjUgMCBSCi9QYXQxMyA2NiAwIFIKL1BhdDEzMCA2NyAwIFIKL1BhdDEzMSA2OCAwIFIKL1BhdDEzMiA2OSAwIFIKL1BhdDEzMyA3MCAwIFIKL1BhdDEzNCA3MSAwIFIKL1BhdDEzNSA3MiAwIFIKL1BhdDEzNiA3MyAwIFIKL1BhdDEzNyA3NCAwIFIKL1BhdDEzOCA3NSAwIFIKL1BhdDEzOSA3NiAwIFIKL1BhdDE0IDc3IDAgUgovUGF0MTQwIDc4IDAgUgovUGF0MTQxIDc5IDAgUgovUGF0MTQyIDgwIDAgUgovUGF0MTQzIDgxIDAgUgovUGF0MTQ0IDgyIDAgUgovUGF0MTQ1IDgzIDAgUgovUGF0MTQ2IDg0IDAgUgovUGF0MTQ3IDg1IDAgUgovUGF0MTQ4IDg2IDAgUgovUGF0MTQ5IDg3IDAgUgovUGF0MTUgODggMCBSCi9QYXQxNTAgODkgMCBSCi9QYXQxNTEgOTAgMCBSCi9QYXQxNTIgOTEgMCBSCi9QYXQxNTMgOTIgMCBSCi9QYXQxNTQgOTMgMCBSCi9QYXQxNTUgOTQgMCBSCi9QYXQxNTYgOTUgMCBSCi9QYXQxNTcgOTYgMCBSCi9QYXQxNTggOTcgMCBSCi9QYXQxNTkgOTggMCBSCi9QYXQxNiA5OSAwIFIKL1BhdDE2MCAxMDAgMCBSCi9QYXQxNjEgMTAxIDAgUgovUGF0MTYyIDEwMiAwIFIKL1BhdDE2MyAxMDMgMCBSCi9QYXQxNjQgMTA0IDAgUgovUGF0MTY1IDEwNSAwIFIKL1BhdDE2NiAxMDYgMCBSCi9QYXQxNjcgMTA3IDAgUgovUGF0MTY4IDEwOCAwIFIKL1BhdDE2OSAxMDkgMCBSCi9QYXQxNyAxMTAgMCBSCi9QYXQxNzAgMTExIDAgUgovUGF0MTcxIDExMiAwIFIKL1BhdDE3MiAxMTMgMCBSCi9QYXQxNzMgMTE0IDAgUgovUGF0MTc0IDExNSAwIFIKL1BhdDE3NSAxMTYgMCBSCi9QYXQxNzYgMTE3IDAgUgovUGF0MTc3IDExOCAwIFIKL1BhdDE3OCAxMTkgMCBSCi9QYXQxNzkgMTIwIDAgUgovUGF0MTggMTIxIDAgUgovUGF0MTgwIDEyMiAwIFIKL1BhdDE4MSAxMjMgMCBSCi9QYXQxODIgMTI0IDAgUgovUGF0MTgzIDEyNSAwIFIKL1BhdDE4NCAxMjYgMCBSCi9QYXQxODUgMTI3IDAgUgovUGF0MTg2IDEyOCAwIFIKL1BhdDE4NyAxMjkgMCBSCi9QYXQxODggMTMwIDAgUgovUGF0MTg5IDEzMSAwIFIKL1BhdDE5IDEzMiAwIFIKL1BhdDE5MCAxMzMgMCBSCi9QYXQxOTEgMTM0IDAgUgovUGF0MTkyIDEzNSAwIFIKL1BhdDE5MyAxMzYgMCBSCi9QYXQxOTQgMTM3IDAgUgovUGF0MTk1IDEzOCAwIFIKL1BhdDE5NiAxMzkgMCBSCi9QYXQxOTcgMTQwIDAgUgovUGF0MTk4IDE0MSAwIFIKL1BhdDE5OSAxNDIgMCBSCi9QYXQyIDE0MyAwIFIKL1BhdDIwIDE0NCAwIFIKL1BhdDIwMCAxNDUgMCBSCi9QYXQyMDEgMTQ2IDAgUgovUGF0MjAyIDE0NyAwIFIKL1BhdDIwMyAxNDggMCBSCi9QYXQyMDQgMTQ5IDAgUgovUGF0MjA1IDE1MCAwIFIKL1BhdDIwNiAxNTEgMCBSCi9QYXQyMDcgMTUyIDAgUgovUGF0MjA4IDE1MyAwIFIKL1BhdDIwOSAxNTQgMCBSCi9QYXQyMSAxNTUgMCBSCi9QYXQyMTAgMTU2IDAgUgovUGF0MjExIDE1NyAwIFIKL1BhdDIxMiAxNTggMCBSCi9QYXQyMTMgMTU5IDAgUgovUGF0MjE0IDE2MCAwIFIKL1BhdDIxNSAxNjEgMCBSCi9QYXQyMTYgMTYyIDAgUgovUGF0MjE3IDE2MyAwIFIKL1BhdDIxOCAxNjQgMCBSCi9QYXQyMTkgMTY1IDAgUgovUGF0MjIgMTY2IDAgUgovUGF0MjIwIDE2NyAwIFIKL1BhdDIyMSAxNjggMCBSCi9QYXQyMjIgMTY5IDAgUgovUGF0MjIzIDE3MCAwIFIKL1BhdDIyNCAxNzEgMCBSCi9QYXQyMjUgMTcyIDAgUgovUGF0MjI2IDE3MyAwIFIKL1BhdDIyNyAxNzQgMCBSCi9QYXQyMjggMTc1IDAgUgovUGF0MjI5IDE3NiAwIFIKL1BhdDIzIDE3NyAwIFIKL1BhdDIzMCAxNzggMCBSCi9QYXQyMzEgMTc5IDAgUgovUGF0MjMyIDE4MCAwIFIKL1BhdDIzMyAxODEgMCBSCi9QYXQyMzQgMTgyIDAgUgovUGF0MjM1IDE4MyAwIFIKL1BhdDIzNiAxODQgMCBSCi9QYXQyMzcgMTg1IDAgUgovUGF0MjM4IDE4NiAwIFIKL1BhdDIzOSAxODcgMCBSCi9QYXQyNCAxODggMCBSCi9QYXQyNDAgMTg5IDAgUgovUGF0MjQxIDE5MCAwIFIKL1BhdDI0MiAxOTEgMCBSCi9QYXQyNDMgMTkyIDAgUgovUGF0MjQ0IDE5MyAwIFIKL1BhdDI0NSAxOTQgMCBSCi9QYXQyNDYgMTk1IDAgUgovUGF0MjQ3IDE5NiAwIFIKL1BhdDI0OCAxOTcgMCBSCi9QYXQyNDkgMTk4IDAgUgovUGF0MjUgMTk5IDAgUgovUGF0MjUwIDIwMCAwIFIKL1BhdDI1MSAyMDEgMCBSCi9QYXQyNTIgMjAyIDAgUgovUGF0MjUzIDIwMyAwIFIKL1BhdDI1NCAyMDQgMCBSCi9QYXQyNTUgMjA1IDAgUgovUGF0MjU2IDIwNiAwIFIKL1BhdDI1NyAyMDcgMCBSCi9QYXQyNTggMjA4IDAgUgovUGF0MjU5IDIwOSAwIFIKL1BhdDI2IDIxMCAwIFIKL1BhdDI2MCAyMTEgMCBSCi9QYXQyNjEgMjEyIDAgUgovUGF0MjYyIDIxMyAwIFIKL1BhdDI2MyAyMTQgMCBSCi9QYXQyNjQgMjE1IDAgUgovUGF0MjY1IDIxNiAwIFIKL1BhdDI2NiAyMTcgMCBSCi9QYXQyNjcgMjE4IDAgUgovUGF0MjY4IDIxOSAwIFIKL1BhdDI2OSAyMjAgMCBSCi9QYXQyNyAyMjEgMCBSCi9QYXQyNzAgMjIyIDAgUgovUGF0MjcxIDIyMyAwIFIKL1BhdDI3MiAyMjQgMCBSCi9QYXQyNzMgMjI1IDAgUgovUGF0Mjc0IDIyNiAwIFIKL1BhdDI3NSAyMjcgMCBSCi9QYXQyNzYgMjI4IDAgUgovUGF0Mjc3IDIyOSAwIFIKL1BhdDI3OCAyMzAgMCBSCi9QYXQyNzkgMjMxIDAgUgovUGF0MjggMjMyIDAgUgovUGF0MjgwIDIzMyAwIFIKL1BhdDI4MSAyMzQgMCBSCi9QYXQyODIgMjM1IDAgUgovUGF0MjgzIDIzNiAwIFIKL1BhdDI4NCAyMzcgMCBSCi9QYXQyODUgMjM4IDAgUgovUGF0Mjg2IDIzOSAwIFIKL1BhdDI4NyAyNDAgMCBSCi9QYXQyODggMjQxIDAgUgovUGF0Mjg5IDI0MiAwIFIKL1BhdDI5IDI0MyAwIFIKL1BhdDI5MCAyNDQgMCBSCi9QYXQyOTEgMjQ1IDAgUgovUGF0MjkyIDI0NiAwIFIKL1BhdDI5MyAyNDcgMCBSCi9QYXQyOTQgMjQ4IDAgUgovUGF0Mjk1IDI0OSAwIFIKL1BhdDI5NiAyNTAgMCBSCi9QYXQyOTcgMjUxIDAgUgovUGF0Mjk4IDI1MiAwIFIKL1BhdDI5OSAyNTMgMCBSCi9QYXQzIDI1NCAwIFIKL1BhdDMwIDI1NSAwIFIKL1BhdDMwMCAyNTYgMCBSCi9QYXQzMDEgMjU3IDAgUgovUGF0MzAyIDI1OCAwIFIKL1BhdDMwMyAyNTkgMCBSCi9QYXQzMDQgMjYwIDAgUgovUGF0MzA1IDI2MSAwIFIKL1BhdDMwNiAyNjIgMCBSCi9QYXQzMDcgMjYzIDAgUgovUGF0MzA4IDI2NCAwIFIKL1BhdDMwOSAyNjUgMCBSCi9QYXQzMSAyNjYgMCBSCi9QYXQzMTAgMjY3IDAgUgovUGF0MzExIDI2OCAwIFIKL1BhdDMxMiAyNjkgMCBSCi9QYXQzMTMgMjcwIDAgUgovUGF0MzE0IDI3MSAwIFIKL1BhdDMxNSAyNzIgMCBSCi9QYXQzMTYgMjczIDAgUgovUGF0MzE3IDI3NCAwIFIKL1BhdDMxOCAyNzUgMCBSCi9QYXQzMTkgMjc2IDAgUgovUGF0MzIgMjc3IDAgUgovUGF0MzIwIDI3OCAwIFIKL1BhdDMyMSAyNzkgMCBSCi9QYXQzMjIgMjgwIDAgUgovUGF0MzIzIDI4MSAwIFIKL1BhdDMyNCAyODIgMCBSCi9QYXQzMjUgMjgzIDAgUgovUGF0MzI2IDI4NCAwIFIKL1BhdDMyNyAyODUgMCBSCi9QYXQzMjggMjg2IDAgUgovUGF0MzI5IDI4NyAwIFIKL1BhdDMzIDI4OCAwIFIKL1BhdDMzMCAyODkgMCBSCi9QYXQzMzEgMjkwIDAgUgovUGF0MzMyIDI5MSAwIFIKL1BhdDMzMyAyOTIgMCBSCi9QYXQzMzQgMjkzIDAgUgovUGF0MzM1IDI5NCAwIFIKL1BhdDMzNiAyOTUgMCBSCi9QYXQzMzcgMjk2IDAgUgovUGF0MzM4IDI5NyAwIFIKL1BhdDMzOSAyOTggMCBSCi9QYXQzNCAyOTkgMCBSCi9QYXQzNDAgMzAwIDAgUgovUGF0MzQxIDMwMSAwIFIKL1BhdDM0MiAzMDIgMCBSCi9QYXQzNDMgMzAzIDAgUgovUGF0MzQ0IDMwNCAwIFIKL1BhdDM0NSAzMDUgMCBSCi9QYXQzNDYgMzA2IDAgUgovUGF0MzQ3IDMwNyAwIFIKL1BhdDM0OCAzMDggMCBSCi9QYXQzNDkgMzA5IDAgUgovUGF0MzUgMzEwIDAgUgovUGF0MzUwIDMxMSAwIFIKL1BhdDM1MSAzMTIgMCBSCi9QYXQzNTIgMzEzIDAgUgovUGF0MzUzIDMxNCAwIFIKL1BhdDM1NCAzMTUgMCBSCi9QYXQzNTUgMzE2IDAgUgovUGF0MzU2IDMxNyAwIFIKL1BhdDM1NyAzMTggMCBSCi9QYXQzNTggMzE5IDAgUgovUGF0MzU5IDMyMCAwIFIKL1BhdDM2IDMyMSAwIFIKL1BhdDM2MCAzMjIgMCBSCi9QYXQzNjEgMzIzIDAgUgovUGF0MzYyIDMyNCAwIFIKL1BhdDM2MyAzMjUgMCBSCi9QYXQzNjQgMzI2IDAgUgovUGF0MzY1IDMyNyAwIFIKL1BhdDM2NiAzMjggMCBSCi9QYXQzNjcgMzI5IDAgUgovUGF0MzY4IDMzMCAwIFIKL1BhdDM2OSAzMzEgMCBSCi9QYXQzNyAzMzIgMCBSCi9QYXQzNzAgMzMzIDAgUgovUGF0MzcxIDMzNCAwIFIKL1BhdDM3MiAzMzUgMCBSCi9QYXQzNzMgMzM2IDAgUgovUGF0Mzc0IDMzNyAwIFIKL1BhdDM3NSAzMzggMCBSCi9QYXQzNzYgMzM5IDAgUgovUGF0Mzc3IDM0MCAwIFIKL1BhdDM3OCAzNDEgMCBSCi9QYXQzNzkgMzQyIDAgUgovUGF0MzggMzQzIDAgUgovUGF0MzgwIDM0NCAwIFIKL1BhdDM4MSAzNDUgMCBSCi9QYXQzODIgMzQ2IDAgUgovUGF0MzgzIDM0NyAwIFIKL1BhdDM4NCAzNDggMCBSCi9QYXQzODUgMzQ5IDAgUgovUGF0Mzg2IDM1MCAwIFIKL1BhdDM4NyAzNTEgMCBSCi9QYXQzODggMzUyIDAgUgovUGF0Mzg5IDM1MyAwIFIKL1BhdDM5IDM1NCAwIFIKL1BhdDM5MCAzNTUgMCBSCi9QYXQzOTEgMzU2IDAgUgovUGF0MzkyIDM1NyAwIFIKL1BhdDM5MyAzNTggMCBSCi9QYXQzOTQgMzU5IDAgUgovUGF0Mzk1IDM2MCAwIFIKL1BhdDM5NiAzNjEgMCBSCi9QYXQzOTcgMzYyIDAgUgovUGF0Mzk4IDM2MyAwIFIKL1BhdDM5OSAzNjQgMCBSCi9QYXQ0IDM2NSAwIFIKL1BhdDQwIDM2NiAwIFIKL1BhdDQwMCAzNjcgMCBSCi9QYXQ0MDEgMzY4IDAgUgovUGF0NDAyIDM2OSAwIFIKL1BhdDQwMyAzNzAgMCBSCi9QYXQ0MDQgMzcxIDAgUgovUGF0NDA1IDM3MiAwIFIKL1BhdDQwNiAzNzMgMCBSCi9QYXQ0MDcgMzc0IDAgUgovUGF0NDA4IDM3NSAwIFIKL1BhdDQwOSAzNzYgMCBSCi9QYXQ0MSAzNzcgMCBSCi9QYXQ0MTAgMzc4IDAgUgovUGF0NDExIDM3OSAwIFIKL1BhdDQxMiAzODAgMCBSCi9QYXQ0MTMgMzgxIDAgUgovUGF0NDE0IDM4MiAwIFIKL1BhdDQxNSAzODMgMCBSCi9QYXQ0MTYgMzg0IDAgUgovUGF0NDE3IDM4NSAwIFIKL1BhdDQxOCAzODYgMCBSCi9QYXQ0MTkgMzg3IDAgUgovUGF0NDIgMzg4IDAgUgovUGF0NDIwIDM4OSAwIFIKL1BhdDQyMSAzOTAgMCBSCi9QYXQ0MjIgMzkxIDAgUgovUGF0NDIzIDM5MiAwIFIKL1BhdDQyNCAzOTMgMCBSCi9QYXQ0MjUgMzk0IDAgUgovUGF0NDI2IDM5NSAwIFIKL1BhdDQyNyAzOTYgMCBSCi9QYXQ0MjggMzk3IDAgUgovUGF0NDI5IDM5OCAwIFIKL1BhdDQzIDM5OSAwIFIKL1BhdDQzMCA0MDAgMCBSCi9QYXQ0MzEgNDAxIDAgUgovUGF0NDMyIDQwMiAwIFIKL1BhdDQzMyA0MDMgMCBSCi9QYXQ0MzQgNDA0IDAgUgovUGF0NDM1IDQwNSAwIFIKL1BhdDQzNiA0MDYgMCBSCi9QYXQ0MzcgNDA3IDAgUgovUGF0NDM4IDQwOCAwIFIKL1BhdDQzOSA0MDkgMCBSCi9QYXQ0NCA0MTAgMCBSCi9QYXQ0NSA0MTEgMCBSCi9QYXQ0NiA0MTIgMCBSCi9QYXQ0NyA0MTMgMCBSCi9QYXQ0OCA0MTQgMCBSCi9QYXQ0OSA0MTUgMCBSCi9QYXQ1IDQxNiAwIFIKL1BhdDUwIDQxNyAwIFIKL1BhdDUxIDQxOCAwIFIKL1BhdDUyIDQxOSAwIFIKL1BhdDUzIDQyMCAwIFIKL1BhdDU0IDQyMSAwIFIKL1BhdDU1IDQyMiAwIFIKL1BhdDU2IDQyMyAwIFIKL1BhdDU3IDQyNCAwIFIKL1BhdDU4IDQyNSAwIFIKL1BhdDU5IDQyNiAwIFIKL1BhdDYgNDI3IDAgUgovUGF0NjAgNDI4IDAgUgovUGF0NjEgNDI5IDAgUgovUGF0NjIgNDMwIDAgUgovUGF0NjMgNDMxIDAgUgovUGF0NjQgNDMyIDAgUgovUGF0NjUgNDMzIDAgUgovUGF0NjYgNDM0IDAgUgovUGF0NjcgNDM1IDAgUgovUGF0NjggNDM2IDAgUgovUGF0NjkgNDM3IDAgUgovUGF0NyA0MzggMCBSCi9QYXQ3MCA0MzkgMCBSCi9QYXQ3MSA0NDAgMCBSCi9QYXQ3MiA0NDEgMCBSCi9QYXQ3MyA0NDIgMCBSCi9QYXQ3NCA0NDMgMCBSCi9QYXQ3NSA0NDQgMCBSCi9QYXQ3NiA0NDUgMCBSCi9QYXQ3NyA0NDYgMCBSCi9QYXQ3OCA0NDcgMCBSCi9QYXQ3OSA0NDggMCBSCi9QYXQ4IDQ0OSAwIFIKL1BhdDgwIDQ1MCAwIFIKL1BhdDgxIDQ1MSAwIFIKL1BhdDgyIDQ1MiAwIFIKL1BhdDgzIDQ1MyAwIFIKL1BhdDg0IDQ1NCAwIFIKL1BhdDg1IDQ1NSAwIFIKL1BhdDg2IDQ1NiAwIFIKL1BhdDg3IDQ1NyAwIFIKL1BhdDg4IDQ1OCAwIFIKL1BhdDg5IDQ1OSAwIFIKL1BhdDkgNDYwIDAgUgovUGF0OTAgNDYxIDAgUgovUGF0OTEgNDYyIDAgUgovUGF0OTIgNDYzIDAgUgovUGF0OTMgNDY0IDAgUgovUGF0OTQgNDY1IDAgUgovUGF0OTUgNDY2IDAgUgovUGF0OTYgNDY3IDAgUgovUGF0OTcgNDY4IDAgUgovUGF0OTggNDY5IDAgUgovUGF0OTkgNDcwIDAgUj4+Pj4KL0Fubm90cyBbMjYgMCBSIDI3IDAgUiAyOCAwIFIgMjkgMCBSIDMwIDAgUl0+PgplbmRvYmoKCjI2IDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFszNTUuOTYwMiAxMzUuMTAyMSA0MzYuMTYwMiAxNDguMzUyMV0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvWF9XaW5kb3dfU3lzdGVtKT4+Pj4KZW5kb2JqCgoyNyAwIG9iago8PC9UeXBlIC9Bbm5vdAovUmVjdCBbMzU1Ljk2MDIgMTE4LjUzOTYgNDMwLjE4MDIgMTMxLjc4OTZdCi9Cb3JkZXIgWzAgMCAwXQovU3VidHlwZSAvTGluawovQSA8PC9UeXBlIC9BY3Rpb24KL1MgL1VSSQovVVJJIChodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1RpbV9CZXJuZXJzLUxlZSk+Pj4+CmVuZG9iagoKMjggMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzM1NS45NjAyIDEwMS45NzcxIDQ0Mi4yMjAyIDExNS4yMjcxXQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Ccmlhbl9XLl9LZXJuaWdoYW4pPj4+PgplbmRvYmoKCjI5IDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFs3Mi4wMDAwIDU0MC4wODk2IDU0MC4wMDAwIDU1Mi4wMTQ2XQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoQ29tcHV0ZXJfa2V5Ym9hcmRfRGFuaXNoX2xheW91dC5zdmcpPj4+PgplbmRvYmoKCjMwIDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFs3Mi4wMDAwIDU0Mi42NjM2IDU0MC4wMDAwIDcyMC4wMDAwXQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoQ29tcHV0ZXJfa2V5Ym9hcmRfRGFuaXNoX2xheW91dC5zdmcpPj4+PgplbmRvYmoKCjQ3MSAwIG9iago8PC9MZW5ndGggNDcyIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nJVY225dNw5991f4MXlRJeoOGAV8bn1v/QNt6mQy4zhA05li/n4Wpb33Eal93EwA2yc6FEnxshalTMbi33223gSf4/2XO6pZrb1gLfWP2ZIpOVqsZTIxkVj6x91HXm67U0l9edC4rQ0aec07ioPGYUlozLYvjxrXtVFjqgZGRh+HJaEx+r48alzXRo1YcyULH69LrNE5a2qydJ/Jdj1frmuDLK/5mvNoZlvLrq4BH70cVF5zs66Nublu33IjNV4PScHge1a5xWJdGs5IcfX7GorrmojkrHBwccedHRvCw71DDy7u+bMXCNZ5eLrLYa3VbFLGh6ff7364hHu3GHn6ePdgHx05spcf75/+eXd+4m3Lt8sf1//88QkZoyXbg74Hyj77YB0lf/axqfFIMl01sFTwIXkbXJPMXQrarJSChrM/BIJMaDKUTC5Kk4NM9cFTl3Cmem1rPczuSX7+CeuRP/01HimZSr3LfEvlsPZy90uLy/2nLaSpOoMK7gaXGJ6HGG6KheAaK5c5EoiH9wWnOVm3xe5vUlCCKWFSWyg5eIqfvCoZJNFnqZcU4WR5XBtORiizaLVqG2wY/NqOzx9CjuPxT7vHHwWJfOBC6InzhkinH2F5REhOcG4rE5SASjAnH4E8cbHgJ2FHCLTnZsymliiydPx/Kl0ocAlm4GB3H5vS5NbB92hhf6mqKguOVJCkEx22JI12yDcgcRnNFce1vfILzgRaOtByRR18CXHtiDJ7hhpDtZ3b76UGm3QoYJKpC4/+iEydoLP3Esw53Yc4D1cwTmVbZye/WylUhafK12Sitr75+j2JggIXtBl3RkUcYagiIWxsq41BvnQIQ8ATkmXHtSHgLkUkQRvwFrHx39mvZPX2pbIjIjRHfit8NGuYsC+g0Bfkc8hc1fsXxWGC395LJtvdLxbAICtDQwGzULoRmo0ELQgfsNLZhe4dbezyLr6/xqhgnZT8u2MTyCaCMAa/3n19/fDy72+fv75+GzSsFiNjW7J2j8+Qc8voMCSnFuOi2vbgUyObMYkgHZPzJHiBwgt3/igaIZom0Z6YMOWNMR5OHdBTXkEVmqdTnNDUm3QUA1y6MBk8AjIpjIfAoGBsnfQROiK1hmZHUL5i0xZYfLjuOXGRdzRmSuZPV/jgNvXe5j0tId0siMeWTsacJPL94V+vX9tXhFpQ3/318vz7py/Pr3/u1oK3t2thpNTiQHkkN3Byzw0hvIi2sxXkGbSwDaEd/yxrIRD4Mk3CSDePPEWkG8xvAqBUCZfb9eFC50mtncCUp6XhgWqaS2EbZAR1CUUSON/I4W62gCOb3jagMLg9imgwbqQsRZeAociishzXLzQ6rT1UjQ2aTNY9eadzgo2i9yzIyHvtDmr80iaDwrFHMMu4CdN0JH3cJZukWg34WfRxEc8sKIkCeDpNbsTGm55DPwoD/BpYz+ZH097F5R6AMm7c303/2EHSTXTB44jI6qYhMZwXeqMJswEkiEb7z6+fX3797fPL5z+bQHQIWRES/32/ZyqVzVndgtRmIrSBjLEPfLlB8Ma9qg1G8eJN9EiJFLejSKU+oggRNrvSZTBWjRrr+D2oCcCfmifHrIBLIIPxpN2ZshligdfapQ6co1gGt4bJpLwQBB7Ky2TydtsESVjRLYQljexx2zWvMY2ifPFaIzn3PCK5cMWoKvEMU7QqC3EL4QN+u/Z3mzPDPLqMbRwcbgOYmpRCthvXwdtNQxE8Pw6XrSyCn8H5QSl0Jxn8UkFKpISmfEdbcF/UgQM/F+Zo5P24G2Wc+fsSOu7GFbtip9zdycNT4KA62UHZm1RKVRskOXGblciVKIRkug6yxkE9weaijiGn9+CLCZlI6b09rHJgMeuSwH1oWLpOeqfbCZ2CK6zTJxUZjTyDhpiU0LHVisgpzlemNLVRKO1m09MgtjyHGApvl6RqGUdak6X2YHDhjY3JRWBsu0Vq44yiK+XDPc3GVgQNo2+drDYXRfthsqM6iTkFe7jquEno7DvIgB10ccNR23qYP8g0hT4qSFVlGUypRXCXQDHpiXLki/uxTbGtXvC3F350U/lxQppHywMTmlFfw3yfhlfMwTirXyjewpzNyVhvc/TPy6Bss+To54/vlyhmxc3Pfzy/fmhfehxKzdDP3/aYO+Y3mPtsH+kiMAdzV0xF7Hqg3ga8uwybcVdsjx2X7Vvx6BhFxQMdiotKb59Ay3RjlaEEYqVYvNzrzrs+xX1flg5xPGFIS7LJnMnOzTEbLLiIE4t+wR3eF5ffDvTjnrfu6E6UXf37+AHGeF5V8QMLZtTAxHWgBxXorMcW3Jejro6H9pYSrncJVRi9nFISDS+yHJzh9pNClBbir9NrWmDCCXOl8GOM0GG5W2VRRBOrL1IMB/ATbILalNsu9ruDmgqL4QcudcKJevjiS1n559KGJei7tPM0oGiuos2K9p7vFYlff4KCSIb2qIPf3zqd5IlrnuLAZSiz5BKuj7j02gN+zvZoK7bif9eXSoEaYQBjwMRBwURErLIWOy1kr54mdY96xy/Z9jtQg6cBxk5hxp0VPGRwb9W+rNCS9BOtay8BeooNVI1nGBZa3iR30Z4WEOW1o91NpMxO9XDErB06ZwkuBNSlKfypXXj5TrHQVZlfn8KNMvBWKLqEzmpps+xxaVaTvk1UVx7XT8KNZXlKTLKiHY9/fKEeDbpyvZol9KtWhTA4FQK+KWW+nAlFS633miG+mdnbMB5de11Xh197YDdKbkRBAgU8tgZx+H3ghlk3/Q8U1D4tCmVuZHN0cmVhbQplbmRvYmoKCjQ3MiAwIG9iagoyMDgzCmVuZG9iagoKNSAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMiAwIFIKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL0NvbnRlbnRzIDQ3MSAwIFIKL1Jlc291cmNlcyA8PC9Gb250IDw8L0YyIDE2IDAgUgovRjQgMTggMCBSPj4KL1Byb2NTZXQgWy9QREYgL1RleHRdPj4KL0Fubm90cyBbNDczIDAgUiA0NzQgMCBSIDQ3NSAwIFIgNDc2IDAgUiA0NzcgMCBSXT4+CmVuZG9iagoKNDczIDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsxMTIuOTYwMiA3MDQuODEyNSAyMzIuMDAwMiA3MTguMDYyNV0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3cvaW5kZXgucGhwP3RpdGxlPVRoZV9Tb2Z0d2FyZV9Ub29sc19Qcm9qZWN0JmFjdGlvbj1lZGl0JnJlZGxpbms9MSk+Pj4+CmVuZG9iagoKNDc0IDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsxODQuODQwMiA2ODguMjUwMCAyMjIuMDcwMiA3MDEuNTAwMF0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVNFTkVUKT4+Pj4KZW5kb2JqCgo0NzUgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzExMi45NjAyIDY1NS4xMjUwIDE3Ny42NTAyIDY2OC4zNzUwXQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CZXJrZWxleV9VTklYKT4+Pj4KZW5kb2JqCgo0NzYgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzEyNi4xNDI1IDYyNi41NjI1IDE2Mi44MDI1IDYzOS44MTI1XQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9KaW1fRWxsaXNfXChjb21wdXRpbmdcKSk+Pj4+CmVuZG9iagoKNDc3IDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsxODQuMjAyNSA2MjYuNTYyNSAyNDMuNDYyNSA2MzkuODEyNV0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVG9tX1RydXNjb3R0KT4+Pj4KZW5kb2JqCgo0NzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K5ubmgICACmVuZHN0cmVhbQplbmRvYmoKCjIwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMwLjAwMDAgMTIuNTAwMCA3MC4wMDAwIDM3LjUwMDBdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ3OCAwIFI+PgovTWF0cml4IFsyLjY0NzEgMC4wMDAwIDAuMDAwMCAtMi42NDcxIDI4OC41Mjk0IDY2My4wNTI5XT4+CmVuZG9iagoKNDc5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozNzAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ3OSAwIFI+PgovTWF0cml4IFswLjAzNTMgMC4wMDAwIDAuMDAwMCAtMC4wODI4IDEwOC43Njk2IDY2NC40NDU4XT4+CmVuZG9iagoKNDgwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo1OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDgwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggODAuODcxOCA2OTYuNzM3N10+PgplbmRvYmoKCjQ4MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNDIyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0ODEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA4MS4zMTQwIDcxOS41ODgzXT4+CmVuZG9iagoKNDgyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo2MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDgyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggOTkuODIzMiA2OTYuNzM3N10+PgplbmRvYmoKCjQ4MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjI0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0ODMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMDMuNTM3OCA2MzkuNDk1MV0+PgplbmRvYmoKCjQ4NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTE3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0ODQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMTAuMDMzMCA2NzcuODI5Nl0+PgplbmRvYmoKCjQ4NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTcxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0ODUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMTMuNjc5NCA2NTguNzQ2OV0+PgplbmRvYmoKCjQ4NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNjggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ4NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDExOC43NzQ1IDY5Ni43Mzc3XT4+CmVuZG9iagoKNDg3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MzggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ4NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDExOC43ODY0IDcxOS41ODgzXT4+CmVuZG9iagoKNDg4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMjggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ4OCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyMi40ODkyIDYzOS40OTUxXT4+CmVuZG9iagoKNDg5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ4OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyOC45ODQ0IDY3Ny44Mjk2XT4+CmVuZG9iagoKNDkwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNzUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ5MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzMi42MzA3IDY1OC43NDY5XT4+CmVuZG9iagoKNDkxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo3MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDkxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTM3LjcyNTkgNjk2LjczNzddPj4KZW5kb2JqCgo0OTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQ0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0OTIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMzcuNzgyMiA3MTkuNTg4M10+PgplbmRvYmoKCjQ5MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjMzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0OTMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNDEuNDQwNSA2MzkuNDk1MV0+PgplbmRvYmoKCjQ5NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTI2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0OTQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNDcuOTM1NyA2NzcuODI5Nl0+PgplbmRvYmoKCjQ5NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTgwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0OTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTEuNTgyMSA2NTguNzQ2OV0+PgplbmRvYmoKCjQ5NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNzYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ5NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE1Ni42NzcyIDY5Ni43Mzc3XT4+CmVuZG9iagoKNDk3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo4OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDk3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTU2Ljc3ODAgNzE5LjU4ODNdPj4KZW5kb2JqCgo0OTggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjIzNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDk4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTYwLjM5MTggNjM5LjQ5NTFdPj4KZW5kb2JqCgo0OTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjEzMCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDk5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTY2Ljg4NzEgNjc3LjgyOTZdPj4KZW5kb2JqCgo1MDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjE4NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTAwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTcwLjUzMzQgNjU4Ljc0NjldPj4KZW5kb2JqCgo1MDEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjgxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNzUuNjI4NiA2OTYuNzM3N10+PgplbmRvYmoKCjUwMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTMyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNzUuNzczOCA3MTkuNTg4M10+PgplbmRvYmoKCjUwMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjQxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNzkuMzQzMiA2MzkuNDk1MV0+PgplbmRvYmoKCjUwNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTM1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODUuODM4NCA2NzcuODI5Nl0+PgplbmRvYmoKCjUwNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTg5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODkuNDg0OCA2NTguNzQ2OV0+PgplbmRvYmoKCjUwNiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKODUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUwNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE5NC41Nzk5IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTA3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyNDYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUwNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE5OC4yOTQ1IDYzOS40OTUxXT4+CmVuZG9iagoKNTA4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUwOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwNC43ODk3IDY3Ny44Mjk2XT4+CmVuZG9iagoKNTA5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNzcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUwOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwNC44NDA3IDcxOS41ODgzXT4+CmVuZG9iagoKNTEwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxOTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUxMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwOC40MzYxIDY1OC43NDY5XT4+CmVuZG9iagoKNTExIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo5MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTExIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjEzLjUzMTIgNjk2LjczNzddPj4KZW5kb2JqCgo1MTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjI1MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTEyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjE3LjI0NTggNjM5LjQ5NTFdPj4KZW5kb2JqCgo1MTMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjE0NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTEzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjIzLjc0MTEgNjc3LjgyOTZdPj4KZW5kb2JqCgo1MTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjIyMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTE0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjIzLjgzNjUgNzE5LjU4ODNdPj4KZW5kb2JqCgo1MTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjE5NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTE1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjI3LjM4NzQgNjU4Ljc0NjldPj4KZW5kb2JqCgo1MTYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjk0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MTYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMzIuNDgyNiA2OTYuNzM3N10+PgplbmRvYmoKCjUxNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjU2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MTcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMzYuMTk3MiA2MzkuNDk1MV0+PgplbmRvYmoKCjUxOCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTQ5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MTggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDIuNjkyNCA2NzcuODI5Nl0+PgplbmRvYmoKCjUxOSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjY2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MTkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDIuODMyMyA3MTkuNTg4M10+PgplbmRvYmoKCjUyMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjAyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MjAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDYuMzM4OCA2NTguNzQ2OV0+PgplbmRvYmoKCjUyMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKOTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI1MS40MzM5IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTIyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyNjAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyMiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI1NS4xNDg1IDYzOS40OTUxXT4+CmVuZG9iagoKNTIzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyMyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI2MS42NDM3IDY3Ny44Mjk2XT4+CmVuZG9iagoKNTI0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozMTAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyNCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI2MS44MjgxIDcxOS41ODgzXT4+CmVuZG9iagoKNTI1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMDYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI2NS4yOTAxIDY1OC43NDY5XT4+CmVuZG9iagoKNTI2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMDMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI3MC4zODUyIDY5Ni43Mzc3XT4+CmVuZG9iagoKNTI3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyNjQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI3NC4wOTk5IDYzOS40OTUxXT4+CmVuZG9iagoKNTI4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4MC41OTUxIDY3Ny44Mjk2XT4+CmVuZG9iagoKNTI5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMTEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4NC4yNDE1IDY1OC43NDY5XT4+CmVuZG9iagoKNTMwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4OS4zMzY2IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTMxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozNTQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4OS40MzY1IDcxOS41ODgzXT4+CmVuZG9iagoKNTMyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyNjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzMiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI5My4wNTEyIDYzOS40OTUxXT4+CmVuZG9iagoKNTMzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzMyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI5OS41NDY0IDY3Ny44Mjk2XT4+CmVuZG9iagoKNTM0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMTUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzNCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwMy4xOTI4IDY1OC43NDY5XT4+CmVuZG9iagoKNTM1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMTIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwOC4yODc5IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTM2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozOTkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwOC40MzIzIDcxOS41ODgzXT4+CmVuZG9iagoKNTM3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNjcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMxOC40OTc3IDY3Ny44Mjk2XT4+CmVuZG9iagoKNTM4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMTkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMyMi4xNDQxIDY1OC43NDY5XT4+CmVuZG9iagoKNTM5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMyNy40MjgxIDcxOS41ODgzXT4+CmVuZG9iagoKNTQwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU0MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM0Ni40MjM5IDcxOS41ODgzXT4+CmVuZG9iagoKNTQxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NDAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU0MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM2OC45NjIwIDY5Ni43Mzc3XT4+CmVuZG9iagoKNTQyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU0MiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM2OC45NjIwIDY3Ny43NzY2XT4+CmVuZG9iagoKNTQzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NjYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU0MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM2OC45NjIwIDY1OC44MTU0XT4+CmVuZG9iagoKNTQ0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzY4Ljk2MjAgNjIwLjY1MDFdPj4KZW5kb2JqCgo1NDUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQyNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzY5LjIwNTEgNzE5LjU4ODNdPj4KZW5kb2JqCgo1NDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQ0NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzg3Ljk1NzggNjk2LjczNzddPj4KZW5kb2JqCgo1NDcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQ1NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzg3Ljk1NzggNjc3Ljc3NjZdPj4KZW5kb2JqCgo1NDggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQ3MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzg3Ljk1NzggNjU4LjgxNTRdPj4KZW5kb2JqCgo1NDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjU0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NDkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzODcuOTU3OCA2NDAuMDk3NF0+PgplbmRvYmoKCjU1MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNDYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU1MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM4Ny45NTc4IDYyMC42NTAxXT4+CmVuZG9iagoKNTUxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MzEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU1MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM4OC4yMDA5IDcxOS41ODgzXT4+CmVuZG9iagoKNTUyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NDggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU1MiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQwNi45NTM3IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTUzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU1MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQwNi45NTM3IDY3Ny43NzY2XT4+CmVuZG9iagoKNTU0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTU0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDA2Ljk1MzcgNjU4LjgxNTRdPj4KZW5kb2JqCgo1NTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjUwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MDYuOTUzNyA2MjAuNjUwMV0+PgplbmRvYmoKCjU1NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNDM1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MDcuMTk2NyA3MTkuNTg4M10+PgplbmRvYmoKCjU1NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjc4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MzAuNDY0MSA2OTYuNzM3N10+PgplbmRvYmoKCjU1OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjk1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MzAuNDY0MSA2NzcuNzE1OF0+PgplbmRvYmoKCjU1OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzA4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MzAuNDY0MSA2NTguNjkzOV0+PgplbmRvYmoKCjU2MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzI2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MzAuNDY0MSA2MzkuNjcyMF0+PgplbmRvYmoKCjU2MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjgyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDkuMjA1MyA2OTYuNzM3N10+PgplbmRvYmoKCjU2MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzAwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDkuMjA1MyA2NzcuNzE1OF0+PgplbmRvYmoKCjU2MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzEzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDkuMjA1MyA2NTguNjkzOV0+PgplbmRvYmoKCjU2NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzMwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDkuMjA1MyA2MzkuNjcyMF0+PgplbmRvYmoKCjU2NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjg2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2OTYuNzM3N10+PgplbmRvYmoKCjU2NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzA0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2NzcuNzE1OF0+PgplbmRvYmoKCjU2NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzE3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2NTguNjkzOV0+PgplbmRvYmoKCjU2OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzM1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2MzkuNjcyMF0+PgplbmRvYmoKCjU2OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzQ0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2MjAuNjUwMV0+PgplbmRvYmoKCjU3MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjkxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NzAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0ODYuNjg3NiA2OTYuNzM3N10+PgplbmRvYmoKCjU3MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzQ4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMTY4OCA0ODYuNjg3NiA2ODYuMTc2M10+PgplbmRvYmoKCjU3MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzIyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMTY5MSA0ODYuNjg3NiA3MjQuNDMwMV0+PgplbmRvYmoKCjU3MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzc4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NzMgMCBSPj4KL01hdHJpeCBbMC4wOTE1IDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA3Ni40OTA2IDYyMC41ODcwXT4+CmVuZG9iagoKNTc0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozODIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU3NCAwIFI+PgovTWF0cml4IFswLjA5MTUgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDk5LjQ2MjcgNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM4NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc1IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTIyLjY3NzkgNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM5NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc2IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjY4Ljc3NTggNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQwOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc3IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjkxLjc5MTEgNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQwNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc4IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzE0LjkwNDQgNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQwMCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc5IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzM4LjAxNzcgNjIwLjU4NzBdPj4KZW5kb2JqCgo1ODAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM1OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTgwIDAgUj4+Ci9NYXRyaXggWzAuMDkyNyAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzYuMDYyMyA2MzkuNDk1MV0+PgplbmRvYmoKCjU4MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzY5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1ODEgMCBSPj4KL01hdHJpeCBbMC4wOTQ2IDAuMDAwMCAwLjAwMDAgLTAuMTY4OCAzMzcuMDQ5MyA3MjQuMzk0Nl0+PgplbmRvYmoKCjU4MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzczIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1ODIgMCBSPj4KL01hdHJpeCBbMC4xMTA3IDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA3Mi4wMTk3IDY1OC43NDY5XT4+CmVuZG9iagoKNTgzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozNTIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU4MyAwIFI+PgovTWF0cml4IFswLjEyNTQgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDY4Ljc3MTUgNjc3LjgyOTZdPj4KZW5kb2JqCgo1ODQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjMzOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg0IDAgUj4+Ci9NYXRyaXggWzAuMTc5MCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDA2LjI4NjQgNjIwLjY1MDFdPj4KZW5kb2JqCgo1ODUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM2MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg1IDAgUj4+Ci9NYXRyaXggWzAuMTgxNyAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzAyLjg4ODggNjk2LjczNzddPj4KZW5kb2JqCgo1ODYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjI3MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg2IDAgUj4+Ci9NYXRyaXggWzAuMjcyMiAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjY2Ljk0MDkgNjM5LjQ5NTFdPj4KZW5kb2JqCgo1ODcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM5MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg3IDAgUj4+Ci9NYXRyaXggWzAuNjc5NCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTQuMTExMyA2MjAuNTg3MF0+PgplbmRvYmoKCjU4OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzYzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1ODggMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAwLjAzNDIgMzgxLjA5NjggNjA5LjI4MDFdPj4KZW5kb2JqCgo1ODkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjExMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjAzNDIgMzI4LjM4NjYgNjQ1Ljk4ODRdPj4KZW5kb2JqCgo1OTAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM3NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTkwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzEuNzMyMyA2MDkuNDM3NF0+PgplbmRvYmoKCjU5MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU5MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDcxLjc3NDkgNjg1LjU4ODBdPj4KZW5kb2JqCgo1OTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM1NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTkyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzEuODA4OSA2MjguMzQ1NV0+PgplbmRvYmoKCjU5MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzUzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1OTMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA3MS44MDkyIDY0Ny41OTczXT4+CmVuZG9iagoKNTk0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozNTEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU5NCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDcxLjg0MzQgNjY2LjY4MDBdPj4KZW5kb2JqCgo1OTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQyMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTk1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzIuMjE3MSA3MDguNDM4Nl0+PgplbmRvYmoKCjU5NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU5NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDkwLjcyNjIgNjg1LjU4ODBdPj4KZW5kb2JqCgo1OTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIyMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTk3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggOTQuNDQwOCA2MjguMzQ1NV0+PgplbmRvYmoKCjU5OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzgxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1OTggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA5NC43MDQ1IDYwOS40Mzc0XT4+CmVuZG9iagoKNTk5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU5OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEwMC45MzYxIDY2Ni42ODAwXT4+CmVuZG9iagoKNjAwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNzAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYwMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEwNC41ODI0IDY0Ny41OTczXT4+CmVuZG9iagoKNjAxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo2NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjAxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTA5LjY3NzYgNjg1LjU4ODBdPj4KZW5kb2JqCgo2MDIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQyNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjAyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTA5LjY4OTQgNzA4LjQzODZdPj4KZW5kb2JqCgo2MDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIyNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjAzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTEzLjM5MjIgNjI4LjM0NTVdPj4KZW5kb2JqCgo2MDQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM4NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjA0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTE3LjkxOTcgNjA5LjQzNzRdPj4KZW5kb2JqCgo2MDUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEyMCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjA1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTE5Ljg4NzQgNjY2LjY4MDBdPj4KZW5kb2JqCgo2MDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE3NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjA2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTIzLjUzMzggNjQ3LjU5NzNdPj4KZW5kb2JqCgo2MDcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjcxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MDcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMjguNjI4OSA2ODUuNTg4MF0+PgplbmRvYmoKCjYwOCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYwOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyOC42ODUyIDcwOC40Mzg2XT4+CmVuZG9iagoKNjA5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMzEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYwOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzMi4zNDM1IDYyOC4zNDU1XT4+CmVuZG9iagoKNjEwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMjUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzOC44Mzg4IDY2Ni42ODAwXT4+CmVuZG9iagoKNjExIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozOTAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE0MS4wMTM0IDYwOS40Mzc0XT4+CmVuZG9iagoKNjEyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxMiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE0Mi40ODUxIDY0Ny41OTczXT4+CmVuZG9iagoKNjEzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo3NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjEzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTQ3LjU4MDMgNjg1LjU4ODBdPj4KZW5kb2JqCgo2MTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjc3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MTQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNDcuNjgxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjYxNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjM2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTEuMjk0OSA2MjguMzQ1NV0+PgplbmRvYmoKCjYxNiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTI5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MTYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTcuNzkwMSA2NjYuNjgwMF0+PgplbmRvYmoKCjYxNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTgzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MTcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNjEuNDM2NSA2NDcuNTk3M10+PgplbmRvYmoKCjYxOCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKODAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE2Ni41MzE2IDY4NS41ODgwXT4+CmVuZG9iagoKNjE5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMjEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE2Ni42NzY5IDcwOC40Mzg2XT4+CmVuZG9iagoKNjIwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNDAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYyMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE3MC4yNDYyIDYyOC4zNDU1XT4+CmVuZG9iagoKNjIxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYyMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE3Ni43NDE0IDY2Ni42ODAwXT4+CmVuZG9iagoKNjIyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxODcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYyMiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE4MC4zODc4IDY0Ny41OTczXT4+CmVuZG9iagoKNjIzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo4NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjIzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTg1LjQ4MjkgNjg1LjU4ODBdPj4KZW5kb2JqCgo2MjQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI0NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjI0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTg5LjE5NzUgNjI4LjM0NTVdPj4KZW5kb2JqCgo2MjUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEzOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjI1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTk1LjY5MjggNjY2LjY4MDBdPj4KZW5kb2JqCgo2MjYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE2NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjI2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTk1Ljc0MzcgNzA4LjQzODZdPj4KZW5kb2JqCgo2MjcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE5MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjI3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTk5LjMzOTEgNjQ3LjU5NzNdPj4KZW5kb2JqCgo2MjggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjg5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MjggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMDQuNDM0MyA2ODUuNTg4MF0+PgplbmRvYmoKCjYyOSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjQ5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MjkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMDguMTQ4OSA2MjguMzQ1NV0+PgplbmRvYmoKCjYzMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTQyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MzAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMTQuNjQ0MSA2NjYuNjgwMF0+PgplbmRvYmoKCjYzMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjEwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMTQuNzM5NSA3MDguNDM4Nl0+PgplbmRvYmoKCjYzMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTk2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMTguMjkwNSA2NDcuNTk3M10+PgplbmRvYmoKCjYzMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKOTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzMyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIyMy4zODU2IDY4NS41ODgwXT4+CmVuZG9iagoKNjM0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzNCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIyNy4xMDAyIDYyOC4zNDU1XT4+CmVuZG9iagoKNjM1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNDggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIzMy41OTU0IDY2Ni42ODAwXT4+CmVuZG9iagoKNjM2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNTUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIzMy43MzU0IDcwOC40Mzg2XT4+CmVuZG9iagoKNjM3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMDEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIzNy4yNDE4IDY0Ny41OTczXT4+CmVuZG9iagoKNjM4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo5NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjM4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjQyLjMzNjkgNjg1LjU4ODBdPj4KZW5kb2JqCgo2MzkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI1OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjM5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjQ2LjA1MTUgNjI4LjM0NTVdPj4KZW5kb2JqCgo2NDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjUyLjU0NjggNjY2LjY4MDBdPj4KZW5kb2JqCgo2NDEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI5OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjUyLjczMTIgNzA4LjQzODZdPj4KZW5kb2JqCgo2NDIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIwNSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjU2LjE5MzEgNjQ3LjU5NzNdPj4KZW5kb2JqCgo2NDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEwMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjYxLjI4ODMgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NDQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM5NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjY0LjAxNzYgNjA5LjQzNzRdPj4KZW5kb2JqCgo2NDUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI2MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjY1LjAwMjkgNjI4LjM0NTVdPj4KZW5kb2JqCgo2NDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjcxLjQ5ODEgNjY2LjY4MDBdPj4KZW5kb2JqCgo2NDcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIwOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjc1LjE0NDUgNjQ3LjU5NzNdPj4KZW5kb2JqCgo2NDggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEwNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjgwLjIzOTYgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM0MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjgwLjMzOTUgNzA4LjQzODZdPj4KZW5kb2JqCgo2NTAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI2OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjUwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjgzLjk1NDIgNjI4LjM0NTVdPj4KZW5kb2JqCgo2NTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjUxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjg3LjAzMjggNjA5LjQzNzRdPj4KZW5kb2JqCgo2NTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE2MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjUyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjkwLjQ0OTUgNjY2LjY4MDBdPj4KZW5kb2JqCgo2NTMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIxNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjUzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjk0LjA5NTggNjQ3LjU5NzNdPj4KZW5kb2JqCgo2NTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjExMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjk5LjE5MTAgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM4OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjk5LjMzNTMgNzA4LjQzODZdPj4KZW5kb2JqCgo2NTYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI3MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzAyLjkwNTYgNjI4LjM0NTVdPj4KZW5kb2JqCgo2NTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE2NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzA5LjQwMDggNjY2LjY4MDBdPj4KZW5kb2JqCgo2NTggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzEwLjE0NjEgNjA5LjQzNzRdPj4KZW5kb2JqCgo2NTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIxOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzEzLjA0NzIgNjQ3LjU5NzNdPj4KZW5kb2JqCgo2NjAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQxMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjYwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzE4LjMzMTEgNzA4LjQzODZdPj4KZW5kb2JqCgo2NjEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM2MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjYxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzE4LjQxNTEgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NjIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM2OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjYyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzMzLjIzNjIgNjQ3LjY3OTldPj4KZW5kb2JqCgo2NjMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM5OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjYzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzMzLjI1OTQgNjA5LjQzNzRdPj4KZW5kb2JqCgo2NjQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQxNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjY0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzM3LjMyNzAgNzA4LjQzODZdPj4KZW5kb2JqCgo2NjUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQzOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjY1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzU5Ljg2NTEgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NjYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ1MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjY2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzU5Ljg2NTEgNjY2LjYyNjldPj4KZW5kb2JqCgo2NjcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjY3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzU5Ljg2NTEgNjQ3LjY2NThdPj4KZW5kb2JqCgo2NjggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NjggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTkuODY1MSA2MDkuNTAwNV0+PgplbmRvYmoKCjY2OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDI1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NjkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNjAuMTA4MSA3MDguNDM4Nl0+PgplbmRvYmoKCjY3MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDQzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NzAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzguODYwOSA2ODUuNTg4MF0+PgplbmRvYmoKCjY3MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDU2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzguODYwOSA2NjYuNjI2OV0+PgplbmRvYmoKCjY3MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDY5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzguODYwOSA2NDcuNjY1OF0+PgplbmRvYmoKCjY3MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY3MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3OC44NjA5IDYyOC45NDc4XT4+CmVuZG9iagoKNjc0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo0NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjc0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzc4Ljg2MDkgNjA5LjUwMDVdPj4KZW5kb2JqCgo2NzUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQzMCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjc1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzc5LjEwNDAgNzA4LjQzODZdPj4KZW5kb2JqCgo2NzYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ0NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjc2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzk3Ljg1NjcgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NzcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjc3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzk3Ljg1NjcgNjY2LjYyNjldPj4KZW5kb2JqCgo2NzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NzggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzOTcuODU2NyA2NDcuNjY1OF0+PgplbmRvYmoKCjY3OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY3OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM5Ny44NTY3IDYwOS41MDA1XT4+CmVuZG9iagoKNjgwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo0MzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM5OC4wOTk4IDcwOC40Mzg2XT4+CmVuZG9iagoKNjgxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNzYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDY4NS41ODgwXT4+CmVuZG9iagoKNjgyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyOTQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4MiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDY2Ni41NjYyXT4+CmVuZG9iagoKNjgzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDY0Ny41NDQzXT4+CmVuZG9iagoKNjg0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMjUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4NCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDYyOC41MjI0XT4+CmVuZG9iagoKNjg1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMzggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4NSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDYwOS41MDA1XT4+CmVuZG9iagoKNjg2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyODEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MC4xMDgzIDY4NS41ODgwXT4+CmVuZG9iagoKNjg3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyOTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MC4xMDgzIDY2Ni41NjYyXT4+CmVuZG9iagoKNjg4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMTIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4OCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MC4xMDgzIDY0Ny41NDQzXT4+CmVuZG9iagoKNjg5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MC4xMDgzIDYyOC41MjI0XT4+CmVuZG9iagoKNjkwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyODUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDY4NS41ODgwXT4+CmVuZG9iagoKNjkxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMDMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDY2Ni41NjYyXT4+CmVuZG9iagoKNjkyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5MiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDY0Ny41NDQzXT4+CmVuZG9iagoKNjkzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDYyOC41MjI0XT4+CmVuZG9iagoKNjk0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozNDIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5NCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDYwOS41MDA1XT4+CmVuZG9iagoKNjk1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyOTAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5NSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ3Ny41OTA2IDY4NS41ODgwXT4+CmVuZG9iagoKNjk2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMjAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ3Ny41OTA2IDY0Ny41NDQzXT4+CmVuZG9iagoKNjk3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozNDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ3Ny41OTA2IDYwOS41MDA1XT4+CmVuZG9iagoKNjk4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo1NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjk4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMzQuNjk2NSA2ODUuNTg4MF0+PgplbmRvYmoKCjY5OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDIwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2OTkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzNS4xMzg2IDcwOC40Mzg2XT4+CmVuZG9iagoKNzAwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcwMCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTM4LjQ5ODQgNjI4LjM0NTVdPj4KZW5kb2JqCgo3MDEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM3NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzAxIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMzguODI1NSA2MDkuNDM3NF0+PgplbmRvYmoKCjcwMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzcyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MDIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE0Mi40NjU5IDY0Ny41OTczXT4+CmVuZG9iagoKNzAzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNTAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcwMyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTQ0LjEyNDAgNjY2LjY4MDBdPj4KZW5kb2JqCgo3MDQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjYxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MDQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE1My42NDc4IDY4NS41ODgwXT4+CmVuZG9iagoKNzA1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcwNSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTU3LjM2MjQgNjI4LjM0NTVdPj4KZW5kb2JqCgo3MDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM4MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzA2IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNjEuNzk3NiA2MDkuNDM3NF0+PgplbmRvYmoKCjcwNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTE1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MDcgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE2My44NTc2IDY2Ni42ODAwXT4+CmVuZG9iagoKNzA4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcwOCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTY3LjUwNDAgNjQ3LjU5NzNdPj4KZW5kb2JqCgo3MDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjY1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MDkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE3Mi41OTkxIDY4NS41ODgwXT4+CmVuZG9iagoKNzEwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo0MTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcxMCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTcyLjYxMTAgNzA4LjQzODZdPj4KZW5kb2JqCgo3MTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIyNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzExIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNzYuMzEzOCA2MjguMzQ1NV0+PgplbmRvYmoKCjcxMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTE5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MTIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE4Mi44MDkwIDY2Ni42ODAwXT4+CmVuZG9iagoKNzEzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozODQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcxMyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTg1LjAxMjkgNjA5LjQzNzRdPj4KZW5kb2JqCgo3MTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE3MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzE0IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODYuNDU1NCA2NDcuNTk3M10+PgplbmRvYmoKCjcxNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNzAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcxNSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTkxLjU1MDUgNjg1LjU4ODBdPj4KZW5kb2JqCgo3MTYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzE2IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxOTEuNjA2OCA3MDguNDM4Nl0+PgplbmRvYmoKCjcxNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjMwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MTcgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE5NS4yNjUxIDYyOC4zNDU1XT4+CmVuZG9iagoKNzE4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMjQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcxOCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjAxLjc2MDMgNjY2LjY4MDBdPj4KZW5kb2JqCgo3MTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE3OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzE5IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMDUuNDA2NyA2NDcuNTk3M10+PgplbmRvYmoKCjcyMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcyMCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjEwLjUwMTggNjg1LjU4ODBdPj4KZW5kb2JqCgo3MjEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjY2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MjEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIxMC42MDI2IDcwOC40Mzg2XT4+CmVuZG9iagoKNzIyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMzUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcyMiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjE0LjIxNjQgNjI4LjM0NTVdPj4KZW5kb2JqCgo3MjMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEyOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzIzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMjAuNzExNyA2NjYuNjgwMF0+PgplbmRvYmoKCjcyNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTgyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MjQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIyNC4zNTgwIDY0Ny41OTczXT4+CmVuZG9iagoKNzI1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo3OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzI1IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMjkuNDUzMiA2ODUuNTg4MF0+PgplbmRvYmoKCjcyNiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTEwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MjYgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIyOS41OTg0IDcwOC40Mzg2XT4+CmVuZG9iagoKNzI3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcyNyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjMzLjE2NzggNjI4LjM0NTVdPj4KZW5kb2JqCgo3MjggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEzMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzI4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMzkuNjYzMCA2NjYuNjgwMF0+PgplbmRvYmoKCjcyOSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTg2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MjkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI0My4zMDk0IDY0Ny41OTczXT4+CmVuZG9iagoKNzMwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo4MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzMwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDguNDA0NSA2ODUuNTg4MF0+PgplbmRvYmoKCjczMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjQ0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MzEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI1Mi4xMTkxIDYyOC4zNDU1XT4+CmVuZG9iagoKNzMyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMzcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDczMiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjU4LjYxNDMgNjY2LjY4MDBdPj4KZW5kb2JqCgo3MzMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzMzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNTguNjY1MyA3MDguNDM4Nl0+PgplbmRvYmoKCjczNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTkxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MzQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI2Mi4yNjA3IDY0Ny41OTczXT4+CmVuZG9iagoKNzM1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo4NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzM1IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNjcuMzU1OCA2ODUuNTg4MF0+PgplbmRvYmoKCjczNiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjQ4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MzYgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI3MS4wNzA0IDYyOC4zNDU1XT4+CmVuZG9iagoKNzM3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNDEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDczNyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjc3LjU2NTcgNjY2LjY4MDBdPj4KZW5kb2JqCgo3MzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE5OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzM4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNzcuNjYxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjczOSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTk1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MzkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4MS4yMTIwIDY0Ny41OTczXT4+CmVuZG9iagoKNzQwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo5MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzQwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyODYuMzA3MiA2ODUuNTg4MF0+PgplbmRvYmoKCjc0MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjUyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NDEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI5MC4wMjE4IDYyOC4zNDU1XT4+CmVuZG9iagoKNzQyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc0MiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjk2LjUxNzAgNjY2LjY4MDBdPj4KZW5kb2JqCgo3NDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI0MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzQzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTYuNjU2OSA3MDguNDM4Nl0+PgplbmRvYmoKCjc0NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjAwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NDQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwMC4xNjM0IDY0Ny41OTczXT4+CmVuZG9iagoKNzQ1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo5NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzQ1IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMDUuMjU4NSA2ODUuNTg4MF0+PgplbmRvYmoKCjc0NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzg5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NDYgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwOC4xOTk0IDYwOS42ODA1XT4+CmVuZG9iagoKNzQ3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc0NyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzA4Ljk3MzEgNjI4LjM0NTVdPj4KZW5kb2JqCgo3NDggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzQ4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMTUuNDY4MyA2NjYuNjgwMF0+PgplbmRvYmoKCjc0OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjg4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NDkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMxNS42NTI4IDcwOC40Mzg2XT4+CmVuZG9iagoKNzUwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMDQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc1MCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzE5LjExNDcgNjQ3LjU5NzNdPj4KZW5kb2JqCgo3NTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEwMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzUxIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMjQuMjA5OCA2ODUuNTg4MF0+PgplbmRvYmoKCjc1MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjYyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NTIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMyNy45MjQ1IDYyOC4zNDU1XT4+CmVuZG9iagoKNzUzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozOTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc1MyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzMxLjExMDcgNjA5LjQzNzRdPj4KZW5kb2JqCgo3NTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzU0IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzQuNDE5NyA2NjYuNjgwMF0+PgplbmRvYmoKCjc1NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjA4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NTUgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMzOC4wNjYxIDY0Ny41OTczXT4+CmVuZG9iagoKNzU2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMDUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc1NiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzQzLjE2MTIgNjg1LjU4ODBdPj4KZW5kb2JqCgo3NTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjMzMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzU3IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNDMuMjYxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjc1OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjY3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NTggMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM0Ni44NzU4IDYyOC4zNDU1XT4+CmVuZG9iagoKNzU5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNjAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc1OSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzUzLjM3MTAgNjY2LjY4MDBdPj4KZW5kb2JqCgo3NjAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzYwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTQuMTI2MCA2MDkuNDM3NF0+PgplbmRvYmoKCjc2MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjEzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NjEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM1Ny4wMTc0IDY0Ny41OTczXT4+CmVuZG9iagoKNzYyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMDkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc2MiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzYyLjExMjUgNjg1LjU4ODBdPj4KZW5kb2JqCgo3NjMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM3NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzYzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNjIuMjU2OSA3MDguNDM4Nl0+PgplbmRvYmoKCjc2NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTY0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NjQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3Mi4zMjIzIDY2Ni42ODAwXT4+CmVuZG9iagoKNzY1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMTcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc2NSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzc1Ljk2ODcgNjQ3LjU5NzNdPj4KZW5kb2JqCgo3NjYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzY2IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzcuMjM5MyA2MDkuNDM3NF0+PgplbmRvYmoKCjc2NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDExIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NjcgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM4MS4yNTI3IDcwOC40Mzg2XT4+CmVuZG9iagoKNzY4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNzEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc2OCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDAwLjE2MzggNjI4LjM0NTVdPj4KZW5kb2JqCgo3NjkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM2NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzY5IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MDAuMTY4OCA2NDcuNjc5OV0+PgplbmRvYmoKCjc3MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDE1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NzAgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQwMC4yNDg1IDcwOC40Mzg2XT4+CmVuZG9iagoKNzcxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNjAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc3MSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDAwLjMzMDcgNjg1LjU4ODBdPj4KZW5kb2JqCgo3NzIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM5NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzcyIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MDAuMzUyNiA2MDkuNDM3NF0+PgplbmRvYmoKCjc3MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDM3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NzMgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMi43ODY2IDY4NS41ODgwXT4+CmVuZG9iagoKNzc0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo0NTEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc3NCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIyLjc4NjYgNjY2LjYyNjldPj4KZW5kb2JqCgo3NzUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzc1IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MjIuNzg2NiA2NDcuNjY1OF0+PgplbmRvYmoKCjc3NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc3NiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIyLjc4NjYgNjA5LjUwMDVdPj4KZW5kb2JqCgo3NzcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQyNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzc3IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MjMuMDI5NyA3MDguNDM4Nl0+PgplbmRvYmoKCjc3OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDQyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NzggMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MS43ODI0IDY4NS41ODgwXT4+CmVuZG9iagoKNzc5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo0NTUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc3OSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQxLjc4MjQgNjY2LjYyNjldPj4KZW5kb2JqCgo3ODAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzgwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDEuNzgyNCA2NDcuNjY1OF0+PgplbmRvYmoKCjc4MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNTIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc4MSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQxLjc4MjQgNjI4Ljk0NzhdPj4KZW5kb2JqCgo3ODIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3ODIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MS43ODI0IDYwOS41MDA1XT4+CmVuZG9iagoKNzgzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo0MjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc4MyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQyLjAyNTUgNzA4LjQzODZdPj4KZW5kb2JqCgo3ODQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ0NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzg0IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjAuNzc4MyA2ODUuNTg4MF0+PgplbmRvYmoKCjc4NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDU5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3ODUgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ2MC43NzgzIDY2Ni42MjY5XT4+CmVuZG9iagoKNzg2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzg2IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjAuNzc4MyA2NDcuNjY1OF0+PgplbmRvYmoKCjc4NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc4NyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDYwLjc3ODMgNjA5LjUwMDVdPj4KZW5kb2JqCgo3ODggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQzMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzg4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjEuMDIxMyA3MDguNDM4Nl0+PgplbmRvYmoKCjc4OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjc1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3ODkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ4NC4yODg3IDY4NS41ODgwXT4+CmVuZG9iagoKNzkwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyOTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc5MCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDg0LjI4ODcgNjY2LjU2NjJdPj4KZW5kb2JqCgo3OTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjMwNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzkxIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0ODQuMjg4NyA2NDcuNTQ0M10+PgplbmRvYmoKCjc5MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzI0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3OTIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ4NC4yODg3IDYyOC41MjI0XT4+CmVuZG9iagoKNzkzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozMzcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc5MyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTAyLjg4NTIgNjA5LjUwMDVdPj4KZW5kb2JqCgo3OTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI4MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzk0IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA1MDMuMDI5OSA2ODUuNTg4MF0+PgplbmRvYmoKCjc5NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjk3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3OTUgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDUwMy4wMjk5IDY2Ni41NjYyXT4+CmVuZG9iagoKNzk2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozMTEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc5NiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTAzLjAyOTkgNjQ3LjU0NDNdPj4KZW5kb2JqCgo3OTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjMyOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzk3IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA1MDMuMDI5OSA2MjguNTIyNF0+PgplbmRvYmoKCjc5OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjg0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3OTggMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDUyMS43NzExIDY4NS41ODgwXT4+CmVuZG9iagoKNzk5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozMDIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc5OSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTIxLjc3MTEgNjY2LjU2NjJdPj4KZW5kb2JqCgo4MDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjMxNSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODAwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA1MjEuNzcxMSA2NDcuNTQ0M10+PgplbmRvYmoKCjgwMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzMzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MDEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDUyMS43NzExIDYyOC41MjI0XT4+CmVuZG9iagoKODAyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNDEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgwMiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTIxLjc3MTEgNjA5LjUwMDVdPj4KZW5kb2JqCgo4MDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI4OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODAzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA1NDAuNTEyMiA2ODUuNTg4MF0+PgplbmRvYmoKCjgwNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzE5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MDQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDU0MC41MTIyIDY0Ny41NDQzXT4+CmVuZG9iagoKODA1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNDYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgwNSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTQwLjUxMjIgNjA5LjUwMDVdPj4KZW5kb2JqCgo4MDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI1NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODA2IDAgUj4+Ci9NYXRyaXggWy0wLjAzNTIgLTAuMDAwMCAwLjAwMDAgLTAuMDM2OCAxMzYuMTg2NCA2MjguMzgwNl0+PgplbmRvYmoKCjgwNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTQzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MDcgMCBSPj4KL01hdHJpeCBbMC4wMzUyIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMDQuOTcwNCA2NDcuNTk3M10+PgplbmRvYmoKCjgwOCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgwOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDcxLjc3NDkgNjg1LjU4ODBdPj4KZW5kb2JqCgo4MDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjQxOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODA5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzIuMjE3MSA3MDguNDM4Nl0+PgplbmRvYmoKCjgxMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzU1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MTAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA3NS41NzY4IDYyOC4zNDU1XT4+CmVuZG9iagoKODExIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgozNzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgxMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDc1LjkwNDAgNjA5LjEwMDVdPj4KZW5kb2JqCgo4MTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjM3MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODEyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzkuNTQ0NCA2NDcuNTk3M10+PgplbmRvYmoKCjgxMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzQ5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MTMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA4MS4yMDI0IDY2Ni42ODAwXT4+CmVuZG9iagoKODE0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo2MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODE0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggOTAuNzI2MiA2ODUuNTg4MF0+PgplbmRvYmoKCjgxNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjIwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA5NC40NDA4IDYyOC4zNDU1XT4+CmVuZG9iagoKODE2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgozNzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgxNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDk4Ljg3NjEgNjA5LjEwMDVdPj4KZW5kb2JqCgo4MTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjExNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODE3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTAwLjkzNjEgNjY2LjY4MDBdPj4KZW5kb2JqCgo4MTggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjE2OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODE4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTA0LjU4MjQgNjQ3LjU5NzNdPj4KZW5kb2JqCgo4MTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjY0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MTkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMDkuNjc3NiA2ODUuNTg4MF0+PgplbmRvYmoKCjgyMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzY1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMDkuNjg5NCA3MDguNDM4Nl0+PgplbmRvYmoKCjgyMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjI1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMTMuMzkyMiA2MjguMzQ1NV0+PgplbmRvYmoKCjgyMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTE4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMTkuODg3NCA2NjYuNjgwMF0+PgplbmRvYmoKCjgyMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzgzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMjIuMDkxMyA2MDkuMTAwNV0+PgplbmRvYmoKCjgyNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTcyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMjMuNTMzOCA2NDcuNTk3M10+PgplbmRvYmoKCjgyNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyOC42Mjg5IDY4NS41ODgwXT4+CmVuZG9iagoKODI2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NDkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyOC42ODUyIDcwOC40Mzg2XT4+CmVuZG9iagoKODI3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoyMjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzMi4zNDM1IDYyOC4zNDU1XT4+CmVuZG9iagoKODI4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxMjMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzOC44Mzg4IDY2Ni42ODAwXT4+CmVuZG9iagoKODI5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxNzYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE0Mi40ODUxIDY0Ny41OTczXT4+CmVuZG9iagoKODMwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo3MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODMwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTQ3LjU4MDMgNjg1LjU4ODBdPj4KZW5kb2JqCgo4MzEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjU1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNDcuNjgxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjgzMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjM0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTEuMjk0OSA2MjguMzQ1NV0+PgplbmRvYmoKCjgzMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTI3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MzMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTcuNzkwMSA2NjYuNjgwMF0+PgplbmRvYmoKCjgzNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTgxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MzQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNjEuNDM2NSA2NDcuNTk3M10+PgplbmRvYmoKCjgzNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNzggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgzNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE2Ni41MzE2IDY4NS41ODgwXT4+CmVuZG9iagoKODM2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo5OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODM2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTY2LjY3NjkgNzA4LjQzODZdPj4KZW5kb2JqCgo4MzcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjIzOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODM3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTcwLjI0NjIgNjI4LjM0NTVdPj4KZW5kb2JqCgo4MzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjEzMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODM4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTc2Ljc0MTQgNjY2LjY4MDBdPj4KZW5kb2JqCgo4MzkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjE4NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODM5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTgwLjM4NzggNjQ3LjU5NzNdPj4KZW5kb2JqCgo4NDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjgyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODUuNDgyOSA2ODUuNTg4MF0+PgplbmRvYmoKCjg0MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjQyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODkuMTk3NSA2MjguMzQ1NV0+PgplbmRvYmoKCjg0MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTM2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxOTUuNjkyOCA2NjYuNjgwMF0+PgplbmRvYmoKCjg0MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTQ0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxOTUuNzQzNyA3MDguNDM4Nl0+PgplbmRvYmoKCjg0NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTkwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxOTkuMzM5MSA2NDcuNTk3M10+PgplbmRvYmoKCjg0NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKODYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0NSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwNC40MzQzIDY4NS41ODgwXT4+CmVuZG9iagoKODQ2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoyNDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwOC4xNDg5IDYyOC4zNDU1XT4+CmVuZG9iagoKODQ3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxNDAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIxNC42NDQxIDY2Ni42ODAwXT4+CmVuZG9iagoKODQ4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxODggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0OCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIxNC43Mzk1IDcwOC40Mzg2XT4+CmVuZG9iagoKODQ5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxOTQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIxOC4yOTA1IDY0Ny41OTczXT4+CmVuZG9iagoKODUwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo5MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODUwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjIzLjM4NTYgNjg1LjU4ODBdPj4KZW5kb2JqCgo4NTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI1MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODUxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjI3LjEwMDIgNjI4LjM0NTVdPj4KZW5kb2JqCgo4NTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjE0NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODUyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjMzLjU5NTQgNjY2LjY4MDBdPj4KZW5kb2JqCgo4NTMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjIzMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODUzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjMzLjczNTQgNzA4LjQzODZdPj4KZW5kb2JqCgo4NTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjE5OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODU0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjM3LjI0MTggNjQ3LjU5NzNdPj4KZW5kb2JqCgo4NTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjk1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDIuMzM2OSA2ODUuNTg4MF0+PgplbmRvYmoKCjg1NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzg3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDUuMjc3OCA2MDkuMzQzNl0+PgplbmRvYmoKCjg1NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjU3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDYuMDUxNSA2MjguMzQ1NV0+PgplbmRvYmoKCjg1OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTUwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNTIuNTQ2OCA2NjYuNjgwMF0+PgplbmRvYmoKCjg1OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjc3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNTIuNzMxMiA3MDguNDM4Nl0+PgplbmRvYmoKCjg2MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjAzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNTYuMTkzMSA2NDcuNTk3M10+PgplbmRvYmoKCjg2MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTAwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNjEuMjg4MyA2ODUuNTg4MF0+PgplbmRvYmoKCjg2MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjYxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNjUuMDAyOSA2MjguMzQ1NV0+PgplbmRvYmoKCjg2MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzkyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNjguMTg5MiA2MDkuMTAwNV0+PgplbmRvYmoKCjg2NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTU0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNzEuNDk4MSA2NjYuNjgwMF0+PgplbmRvYmoKCjg2NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjA3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNzUuMTQ0NSA2NDcuNTk3M10+PgplbmRvYmoKCjg2NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTA0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyODAuMjM5NiA2ODUuNTg4MF0+PgplbmRvYmoKCjg2NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzIxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyODAuMzM5NSA3MDguNDM4Nl0+PgplbmRvYmoKCjg2OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjY1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyODMuOTU0MiA2MjguMzQ1NV0+PgplbmRvYmoKCjg2OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTU5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTAuNDQ5NSA2NjYuNjgwMF0+PgplbmRvYmoKCjg3MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDA1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTEuMjA0NCA2MDkuMTAwNV0+PgplbmRvYmoKCjg3MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjEyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTQuMDk1OCA2NDcuNTk3M10+PgplbmRvYmoKCjg3MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTA4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTkuMTkxMCA2ODUuNTg4MF0+PgplbmRvYmoKCjg3MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzY2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTkuMzM1MyA3MDguNDM4Nl0+PgplbmRvYmoKCjg3NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTYzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMDkuNDAwOCA2NjYuNjgwMF0+PgplbmRvYmoKCjg3NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjE2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMTMuMDQ3MiA2NDcuNTk3M10+PgplbmRvYmoKCjg3NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDAxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMTQuMzE3NyA2MDkuMTAwNV0+PgplbmRvYmoKCjg3NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDEwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMTguMzMxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjg3OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjcwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuMjQyMiA2MjguMzQ1NV0+PgplbmRvYmoKCjg3OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzY0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuMjQ3MiA2NjYuNjgwMF0+PgplbmRvYmoKCjg4MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDE0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuMzI3MCA3MDguNDM4Nl0+PgplbmRvYmoKCjg4MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzU5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuNDA5MiA2ODUuNTg4MF0+PgplbmRvYmoKCjg4MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzk2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuNDMxMCA2MDkuMTAwNV0+PgplbmRvYmoKCjg4MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDM2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTkuODY1MSA2ODUuNTg4MF0+PgplbmRvYmoKCjg4NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDUwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTkuODY1MSA2NjYuNjI2OV0+PgplbmRvYmoKCjg4NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDYzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTkuODY1MSA2NDcuNjY1OF0+PgplbmRvYmoKCjg4NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg4NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM1OS44NjUxIDYwOS41MDA1XT4+CmVuZG9iagoKODg3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0MjMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg4NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM2MC4xMDgxIDcwOC40Mzg2XT4+CmVuZG9iagoKODg4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NDEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg4OCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3OC44NjA5IDY4NS41ODgwXT4+CmVuZG9iagoKODg5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NTQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg4OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3OC44NjA5IDY2Ni42MjY5XT4+CmVuZG9iagoKODkwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NjcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg5MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3OC44NjA5IDY0Ny42NjU4XT4+CmVuZG9iagoKODkxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo1MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODkxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzc4Ljg2MDkgNjI4Ljk0NzhdPj4KZW5kb2JqCgo4OTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjQyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4OTIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzguODYwOSA2MDkuNTAwNV0+PgplbmRvYmoKCjg5MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDI4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4OTMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzkuMTA0MCA3MDguNDM4Nl0+PgplbmRvYmoKCjg5NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDQ1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4OTQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzOTcuODU2NyA2ODUuNTg4MF0+PgplbmRvYmoKCjg5NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDU4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4OTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzOTcuODU2NyA2NjYuNjI2OV0+PgplbmRvYmoKCjg5NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg5NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM5Ny44NTY3IDY0Ny42NjU4XT4+CmVuZG9iagoKODk3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODk3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzk3Ljg1NjcgNjA5LjUwMDVdPj4KZW5kb2JqCgo4OTggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjQzMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODk4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzk4LjA5OTggNzA4LjQzODZdPj4KZW5kb2JqCgo4OTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI3NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODk5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIxLjM2NzIgNjg1LjU4ODBdPj4KZW5kb2JqCgo5MDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI5MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTAwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIxLjM2NzIgNjY2LjU2NjJdPj4KZW5kb2JqCgo5MDEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMwNSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTAxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIxLjM2NzIgNjQ3LjU0NDNdPj4KZW5kb2JqCgo5MDIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMyMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTAyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIxLjM2NzIgNjI4LjUyMjRdPj4KZW5kb2JqCgo5MDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMzNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTAzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDM5Ljk2MzYgNjA5LjUwMDVdPj4KZW5kb2JqCgo5MDQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI3OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQwLjEwODMgNjg1LjU4ODBdPj4KZW5kb2JqCgo5MDUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI5NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQwLjEwODMgNjY2LjU2NjJdPj4KZW5kb2JqCgo5MDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMwOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQwLjEwODMgNjQ3LjU0NDNdPj4KZW5kb2JqCgo5MDcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMyNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQwLjEwODMgNjI4LjUyMjRdPj4KZW5kb2JqCgo5MDggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI4MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjg1LjU4ODBdPj4KZW5kb2JqCgo5MDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMwMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjY2LjU2NjJdPj4KZW5kb2JqCgo5MTAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMxNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTEwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjQ3LjU0NDNdPj4KZW5kb2JqCgo5MTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMzMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTExIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjI4LjUyMjRdPj4KZW5kb2JqCgo5MTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjM0MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTEyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjA5LjUwMDVdPj4KZW5kb2JqCgo5MTMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI4NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTEzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDc3LjU5MDYgNjg1LjU4ODBdPj4KZW5kb2JqCgo5MTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMxOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTE0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDc3LjU5MDYgNjY2LjU2NjJdPj4KZW5kb2JqCgo5MTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjM0NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTE1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDc3LjU5MDYgNjI4LjQ2MTZdPj4KZW5kb2JqCgo5MTYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KAAAAAAAACmVuZHN0cmVhbQplbmRvYmoKCjQwOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1ODAuMzQyOCA1MjQuMDA2NyA1ODAuMDgzOSA1NjUuOTM5OF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTE2IDAgUj4+Ci9NYXRyaXggWzAuMzQwMyAwLjAwMDAgMC4wMDAwIC0wLjM0MDMgODkuNjMzMiA3NDIuNDEzOF0+PgplbmRvYmoKCjMxIDAgb2JqCjw8L1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1RydWVUeXBlCi9CYXNlRm9udCAvUFhBQUFBK0FyaWFsTVQKL0ZpcnN0Q2hhciAxCi9MYXN0Q2hhciA5OQovV2lkdGhzIFsyNzcgMjc3IDM1NCA1NTYgNTU2IDg4OSA2NjYgMTkwIDMzMyAzMzMgMzg5IDU4MyAyNzcgMzMzIDI3NyAyNzcgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDI3NyAyNzcgNTgzIDU4MyA1ODMgNTU2IDEwMTUgNjY2IDY2NiA3MjIgNzIyIDY2NiA2MTAgNzc3IDcyMiAyNzcgNTAwIDY2NiA1NTYgODMzIDcyMiA3NzcgNjY2IDc3NyA3MjIgNjY2IDYxMCA3MjIgNjY2IDk0MyA2NjYgNjY2IDYxMCAyNzcgMjc3IDI3NyA0NjkgNTU2IDMzMyA1NTYgNTU2IDUwMCA1NTYgNTU2IDU1NiAyMjIgNTAwIDIyMiA4MzMgNTU2IDU1NiA1NTYgNTU2IDMzMyA1MDAgMjc3IDU1NiA1MDAgNzIyIDUwMCA1MDAgMzMzIDI1OSAzMzMgNTgzIDY2NiA1NTYgNTU2IDEwMDAgNzc3IDU1NiA4MzMgNTU2XQovRm9udERlc2NyaXB0b3IgOTE3IDAgUgovVG9Vbmljb2RlIDkxOCAwIFI+PgplbmRvYmoKCjkxNyAwIG9iago8PC9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL0FyaWFsTVQKL0FzY2VudCA5MDUKL0Rlc2NlbnQgLTIxMQovSXRhbGljQW5nbGUgMAovU3RlbVYgMAovQ2FwSGVpZ2h0IDAKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNjY0IC0zMjQgMjAyOCAxMDM3XQovRm9udEZpbGUyIDkxOSAwIFI+PgplbmRvYmoKCjkxOCAwIG9iago8PC9MZW5ndGggOTIwIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nF3Uy2rbQBTG8b2eQst0EayZc85MDMZQUgJe9ELdPoAuI0dQS0JWFn776psvpNCFzV/MRT+0OLvn05fTOKzl7scytee0lv0wdku6TW9Lm8omXYaxcL7shnZ9f8r/7bWei912+Hy/rel6GvupOBzK3c9t8bYu9/Lhczc16VOx+750aRnGS/nw+/m8PZ/f5vlPuqZxLavieCy71G8Xfa3nb/U1lbt87PHUbevDen/czvzb8es+p9LnZ0dMO3XpNtdtWurxkopDVR3Lw8vLsUhj99/afs8jTd++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MDAwMDAgbiAKMDAwMDMwMTkwNiAwMDAwMCBuIAowMDAwMzEwNzk1IDAwMDAwIG4gCjAwMDAwMTQ3MDQgMDAwMDAgbiAKMDAwMDA5MzE1NyAwMDAwMCBuIAowMDAwMDA3NTA3IDAwMDAwIG4gCjAwMDAwMTQ2ODIgMDAwMDAgbiAKMDAwMDAyMTczNCAwMDAwMCBuIAowMDAwMDIxNzU2IDAwMDAwIG4gCjAwMDAwODE2MTEgMDAwMDAgbiAKMDAwMDA4ODcwNSAwMDAwMCBuIAowMDAwMDg4ODk1IDAwMDAwIG4gCjAwMDAwODkwODUgMDAwMDAgbiAKMDAwMDA4OTI3OCAwMDAwMCBuIAowMDAwMDg5NDU4IDAwMDAwIG4gCjAwMDAyNTkwODQgMDAwMDAgbiAKMDAwMDMyODg4NyAwMDAwMCBuIAowMDAwMTQyMjU0IDAwMDAwIG4gCjAwMDAyNTEyODMgMDAwMDAgbiAKMDAwMDIwOTY4NyAwMDAwMCBuIAowMDAwMTY4NzAzIDAwMDAwIG4gCjAwMDAxMjE4NjIgMDAwMDAgbiAKMDAwMDI0NzUwNiAwMDAwMCBuIAowMDAwMjA1ODkwIDAwMDAwIG4gCjAwMDAxNjQ5MjYgMDAwMDAgbiAKMDAwMDExODA4NSAwMDAwMCBuIAowMDAwMjQ5NzcyIDAwMDAwIG4gCjAwMDAyMDgxNjggMDAwMDAgbiAKMDAwMDA5ODQzNyAwMDAwMCBuIAowMDAwMTY3MTkyIDAwMDAwIG4gCjAwMDAxMjAzNTEgMDAwMDAgbiAKMDAwMDI1MTY2MCAwMDAwMCBuIAowMDAwMjEwMDY2IDAwMDAwIG4gCjAwMDAxNjkwODAgMDAwMDAgbiAKMDAwMDEyMjIzOSAwMDAwMCBuIAowMDAwMjQ5Mzk1IDAwMDAwIG4gCjAwMDAyMDc3ODkgMDAwMDAgbiAKMDAwMDE2NjgxNSAwMDAwMCBuIAowMDAwMTE5OTc0IDAwMDAwIG4gCjAwMDAyMjY3MjMgMDAwMDAgbiAKMDAwMDIxODA0MyAwMDAwMCBuIAowMDAwMTc2MjYxIDAwMDAwIG4gCjAwMDAxMzU4NDAgMDAwMDAgbiAKMDAwMDA5MzkwOCAwMDAwMCBuIAowMDAwMjIwMzA0IDAwMDAwIG4gCjAwMDAxNzg1NDAgMDAwMDAgbiAKMDAwMDEzNzcyNCAwMDAwMCBuIAowMDAwMDk0NjYxIDAwMDAwIG4gCjAwMDAyMjIxOTAgMDAwMDAgbiAKMDAwMDE4MDQzOSAwMDAwMCBuIAowMDAwMTg0OTk2IDAwMDAwIG4gCjAwMDAxMzk2MTAgMDAwMDAgbiAKMDAwMDA5NjE3MSAwMDAwMCBuIAowMDAwMjI0NDU3IDAwMDAwIG4gCjAwMDAxODI3MTggMDAwMDAgbiAKMDAwMDE0MTg3NyAwMDAwMCBuIAowMDAwMDk4MDYwIDAwMDAwIG4gCjAwMDAyMjYzNDYgMDAwMDAgbiAKMDAwMDE4NDYxNyAwMDAwMCBuIAowMDAwMTQ0MTQzIDAwMDAwIG4gCjAwMDAwOTk5NDggMDAwMDAgbiAKMDAwMDE0NDUyMCAwMDAwMCBuIAowMDAwMjI4MjM0IDAwMDAwIG4gCjAwMDAxODY1MTUgMDAwMDAgbiAKMDAwMDE0NjAzMSAwMDAwMCBuIAowMDAwMTAxODM2IDAwMDAwIG4gCjAwMDAyMzAxMjIgMDAwMDAgbiAKMDAwMDE4ODQxNCAwMDAwMCBuIAowMDAwMTQ3OTIwIDAwMDAwIG4gCjAwMDAxMDM3MjUgMDAwMDAgbiAKMDAwMDIzMjAxMSAwMDAwMCBuIAowMDAwMTkwMzEzIDAwMDAwIG4gCjAwMDAxMDAzMjUgMDAwMDAgbiAKMDAwMDE0OTgwOSAwMDAwMCBuIAowMDAwMTA1NjE0IDAwMDAwIG4gCjAwMDAyMzM5MDAgMDAwMDAgbiAKMDAwMDE5MjIxMiAwMDAwMCBuIAowMDAwMTUxNjk4IDAwMDAwIG4gCjAwMDAxMDc1MDMgMDAwMDAgbiAKMDAwMDIzNTc4OSAwMDAwMCBuIAowMDAwMTk0MTExIDAwMDAwIG4gCjAwMDAxNTM1ODcgMDAwMDAgbiAKMDAwMDEwOTM5MiAwMDAwMCBuIAowMDAwMjI4NjExIDAwMDAwIG4gCjAwMDAyMzgwNTYgMDAwMDAgbiAKMDAwMDE5NjM5MCAwMDAwMCBuIAowMDAwMTU1NDc2IDAwMDAwIG4gCjAwMDAxMTEyODEgMDAwMDAgbiAKMDAwMDIzOTk0NiAwMDAwMCBuIAowMDAwMTk4MjkwIDAwMDAwIG4gCjAwMDAxNTczNjYgMDAwMDAgbiAKMDAwMDExMjc5MyAwMDAwMCBuIAowMDAwMjQyMjE0IDAwMDAwIG4gCjAwMDAyMDA1NzAgMDAwMDAgbiAKMDAwMDE4Njg5NCAwMDAwMCBuIAowMDAwMTU5NjM0IDAwMDAwIG4gCjAwMDAxMTQ2ODMgMDAwMDAgbiAKMDAwMDEzNTA4NSAwMDAwMCBuIAowMDAwMjIxNDM0IDAwMDAwIG4gCjAwMDAxNzk2NzkgMDAwMDAgbiAKMDAwMDEzODg1NCAwMDAwMCBuIAowMDAwMDk1NDE1IDAwMDAwIG4gCjAwMDAyMjMzMjMgMDAwMDAgbiAKMDAwMDE4MTU3OCAwMDAwMCBuIAowMDAwMTQxMTIxIDAwMDAwIG4gCjAwMDAxNDY0MDggMDAwMDAgbiAKMDAwMDA5NzMwNCAwMDAwMCBuIAowMDAwMjI1NTkwIDAwMDAwIG4gCjAwMDAxODM4NTcgMDAwMDAgbiAKMDAwMDE0MzAwOSAwMDAwMCBuIAowMDAwMDk5MTkyIDAwMDAwIG4gCjAwMDAyMjc0NzggMDAwMDAgbiAKMDAwMDE4NTc1NSAwMDAwMCBuIAowMDAwMTQ1Mjc1IDAwMDAwIG4gCjAwMDAxMDEwODAgMDAwMDAgbiAKMDAwMDIyOTM2NiAwMDAwMCBuIAowMDAwMTAyMjEzIDAwMDAwIG4gCjAwMDAxODc2NTQgMDAwMDAgbiAKMDAwMDE0NzE2NCAwMDAwMCBuIAowMDAwMTAyOTY5IDAwMDAwIG4gCjAwMDAyMzA4NzcgMDAwMDAgbiAKMDAwMDE4OTE3MyAwMDAwMCBuIAowMDAwMTQ4Njc1IDAwMDAwIG4gCjAwMDAxMDQ0ODAgMDAwMDAgbiAKMDAwMDIzMjc2NiAwMDAwMCBuIAowMDAwMTkxMDcyIDAwMDAwIG4gCjAwMDAxNTA1NjQgMDAwMDAgbiAKMDAwMDIxNzY2NSAwMDAwMCBuIAowMDAwMjMxMjU1IDAwMDAwIG4gCjAwMDAxMDYzNjkgMDAwMDAgbiAKMDAwMDIzNDY1NSAwMDAwMCBuIAowMDAwMTkyOTcxIDAwMDAwIG4gCjAwMDAxNTI0NTMgMDAwMDAgbiAKMDAwMDEwODI1OCAwMDAwMCBuIAowMDAwMjM2OTIyIDAwMDAwIG4gCjAwMDAxOTUyNTAgMDAwMDAgbiAKMDAwMDE1NDM0MiAwMDAwMCBuIAowMDAwMTEwMTQ3IDAwMDAwIG4gCjAwMDAyMzkxOTAgMDAwMDAgbiAKMDAwMDE4OTU1MyAwMDAwMCBuIAowMDAwMTk3NTMwIDAwMDAwIG4gCjAwMDAxNTY2MTAgMDAwMDAgbiAKMDAwMDExMjAzNyAwMDAwMCBuIAowMDAwMjQxMDgwIDAwMDAwIG4gCjAwMDAxOTk0MzAgMDAwMDAgbiAKMDAwMDE1ODg3OCAwMDAwMCBuIAowMDAwMTEzOTI3IDAwMDAwIG4gCjAwMDAyNDI5NzAgMDAwMDAgbiAKMDAwMDIwMTMzMCAwMDAwMCBuIAowMDAwMTYwNzY4IDAwMDAwIG4gCjAwMDAxNDkwNTMgMDAwMDAgbiAKMDAwMDExNTQzOSAwMDAwMCBuIAowMDAwMjIxODEyIDAwMDAwIG4gCjAwMDAxODAwNTkgMDAwMDAgbiAKMDAwMDEzOTIzMiAwMDAwMCBuIAowMDAwMDk1NzkzIDAwMDAwIG4gCjAwMDAyMjQwNzkgMDAwMDAgbiAKMDAwMDE4MjMzOCAwMDAwMCBuIAowMDAwMTQxNDk5IDAwMDAwIG4gCjAwMDAwOTc2ODIgMDAwMDAgbiAKMDAwMDIyNTk2OCAwMDAwMCBuIAowMDAwMTA0ODU4IDAwMDAwIG4gCjAwMDAxODQyMzcgMDAwMDAgbiAKMDAwMDE0Mzc2NSAwMDAwMCBuIAowMDAwMDk5NTcwIDAwMDAwIG4gCjAwMDAyMjc4NTYgMDAwMDAgbiAKMDAwMDE4NjEzNSAwMDAwMCBuIAowMDAwMTQ1NjUzIDAwMDAwIG4gCjAwMDAxMDE0NTggMDAwMDAgbiAKMDAwMDIyOTc0NCAwMDAwMCBuIAowMDAwMTg4MDM0IDAwMDAwIG4gCjAwMDAxNDc1NDIgMDAwMDAgbiAKMDAwMDIzMzE0NCAwMDAwMCBuIAowMDAwMTAzMzQ3IDAwMDAwIG4gCjAwMDAyMzE2MzMgMDAwMDAgbiAKMDAwMDE4OTkzMyAwMDAwMCBuIAowMDAwMTQ5NDMxIDAwMDAwIG4gCjAwMDAxMDUyMzYgMDAwMDAgbiAKMDAwMDIzMzUyMiAwMDAwMCBuIAowMDAwMTkxODMyIDAwMDAwIG4gCjAwMDAxNTEzMjAgMDAwMDAgbiAKMDAwMDEwNzEyNSAwMDAwMCBuIAowMDAwMjM1NDExIDAwMDAwIG4gCjAwMDAxOTE0NTIgMDAwMDAgbiAKMDAwMDE5MzczMSAwMDAwMCBuIAowMDAwMTUzMjA5IDAwMDAwIG4gCjAwMDAxMDkwMTQgMDAwMDAgbiAKMDAwMDIzNzY3OCAwMDAwMCBuIAowMDAwMTk2MDEwIDAwMDAwIG4gCjAwMDAxNTUwOTggMDAwMDAgbiAKMDAwMDExMDkwMyAwMDAwMCBuIAowMDAwMjM5NTY4IDAwMDAwIG4gCjAwMDAxOTc5MTAgMDAwMDAgbiAKMDAwMDE1Njk4OCAwMDAwMCBuIAowMDAwMTUwOTQyIDAwMDAwIG4gCjAwMDAxMTI0MTUgMDAwMDAgbiAKMDAwMDI0MTgzNiAwMDAwMCBuIAowMDAwMjAwMTkwIDAwMDAwIG4gCjAwMDAxNTkyNTYgMDAwMDAgbiAKMDAwMDExNDMwNSAwMDAwMCBuIAowMDAwMjQzMzQ4IDAwMDAwIG4gCjAwMDAyMDE3MTAgMDAwMDAgbiAKMDAwMDE2MTUyNCAwMDAwMCBuIAowMDAwMTE1ODE3IDAwMDAwIG4gCjAwMDAyMjA2ODAgMDAwMDAgbiAKMDAwMDEwNjc0NyAwMDAwMCBuIAowMDAwMTc4OTE5IDAwMDAwIG4gCjAwMDAxMzgxMDAgMDAwMDAgbiAKMDAwMDA5NTAzNyAwMDAwMCBuIAowMDAwMjIyOTQ1IDAwMDAwIG4gCjAwMDAxODExOTggMDAwMDAgbiAKMDAwMDE0MDM2NSAwMDAwMCBuIAowMDAwMDk2OTI2IDAwMDAwIG4gCjAwMDAyMjUyMTIgMDAwMDAgbiAKMDAwMDE4MzQ3NyAwMDAwMCBuIAowMDAwMTQyNjMxIDAwMDAwIG4gCjAwMDAyMzUwMzMgMDAwMDAgbiAKMDAwMDA5ODgxNCAwMDAwMCBuIAowMDAwMjI3MTAwIDAwMDAwIG4gCjAwMDAxODUzNzUgMDAwMDAgbiAKMDAwMDE0NDg5NyAwMDAwMCBuIAowMDAwMTAwNzAyIDAwMDAwIG4gCjAwMDAyMjg5ODggMDAwMDAgbiAKMDAwMDE4NzI3NCAwMDAwMCBuIAowMDAwMTQ2Nzg2IDAwMDAwIG4gCjAwMDAxMDI1OTEgMDAwMDAgbiAKMDAwMDIzMDQ5OSAwMDAwMCBuIAowMDAwMTkzMzUxIDAwMDAwIG4gCjAwMDAxODg3OTMgMDAwMDAgbiAKMDAwMDE0ODI5NyAwMDAwMCBuIAowMDAwMTA0MTAyIDAwMDAwIG4gCjAwMDAyMzIzODggMDAwMDAgbiAKMDAwMDE5MDY5MiAwMDAwMCBuIAowMDAwMTUwMTg2IDAwMDAwIG4gCjAwMDAxMDU5OTEgMDAwMDAgbiAKMDAwMDIzNDI3NyAwMDAwMCBuIAowMDAwMTkyNTkxIDAwMDAwIG4gCjAwMDAxNTIwNzUgMDAwMDAgbiAKMDAwMDIxNzI4NSAwMDAwMCBuIAowMDAwMTUyODMxIDAwMDAwIG4gCjAwMDAxMDc4ODAgMDAwMDAgbiAKMDAwMDIzNjU0NCAwMDAwMCBuIAowMDAwMTk0ODcwIDAwMDAwIG4gCjAwMDAxNTM5NjQgMDAwMDAgbiAKMDAwMDEwOTc2OSAwMDAwMCBuIAowMDAwMjM4NDM0IDAwMDAwIG4gCjAwMDAxOTY3NzAgMDAwMDAgbiAKMDAwMDE1NjIzMiAwMDAwMCBuIAowMDAwMTExNjU5IDAwMDAwIG4gCjAwMDAyNDA3MDIgMDAwMDAgbiAKMDAwMDEwODYzNiAwMDAwMCBuIAowMDAwMTk5MDUwIDAwMDAwIG4gCjAwMDAxNTgxMjIgMDAwMDAgbiAKMDAwMDExMzU0OSAwMDAwMCBuIAowMDAwMjQ0NDgyIDAwMDAwIG4gCjAwMDAyMDI4NTAgMDAwMDAgbiAKMDAwMDE2MDM5MCAwMDAwMCBuIAowMDAwMTMzOTUxIDAwMDAwIG4gCjAwMDAyNTI0MTUgMDAwMDAgbiAKMDAwMDIxMDgyNSAwMDAwMCBuIAowMDAwMTY5ODM1IDAwMDAwIG4gCjAwMDAyMzczMDAgMDAwMDAgbiAKMDAwMDEyMjk5NCAwMDAwMCBuIAowMDAwMjU0MzA1IDAwMDAwIG4gCjAwMDAyMTI3MjUgMDAwMDAgbiAKMDAwMDE3MTcyNSAwMDAwMCBuIAowMDAwMTI0NTA2IDAwMDAwIG4gCjAwMDAyNTU4MTcgMDAwMDAgbiAKMDAwMDIxNDI0NSAwMDAwMCBuIAowMDAwMTczMjM3IDAwMDAwIG4gCjAwMDAxMjYwMTggMDAwMDAgbiAKMDAwMDI1NzcwNyAwMDAwMCBuIAowMDAwMTk1NjMwIDAwMDAwIG4gCjAwMDAyMTYxNDUgMDAwMDAgbiAKMDAwMDE3NTEyNyAwMDAwMCBuIAowMDAwMTI3OTA4IDAwMDAwIG4gCjAwMDAyNTI3OTMgMDAwMDAgbiAKMDAwMDIxMTIwNSAwMDAwMCBuIAowMDAwMTcwMjEzIDAwMDAwIG4gCjAwMDAxMjMzNzIgMDAwMDAgbiAKMDAwMDI1NDY4MyAwMDAwMCBuIAowMDAwMjEzMTA1IDAwMDAwIG4gCjAwMDAxNzIxMDMgMDAwMDAgbiAKMDAwMDE1NDcyMCAwMDAwMCBuIAowMDAwMTI0ODg0IDAwMDAwIG4gCjAwMDAyNTYxOTUgMDAwMDAgbiAKMDAwMDIxNDYyNSAwMDAwMCBuIAowMDAwMTczNjE1IDAwMDAwIG4gCjAwMDAxMjYzOTYgMDAwMDAgbiAKMDAwMDI1MzE3MSAwMDAwMCBuIAowMDAwMjExNTg1IDAwMDAwIG4gCjAwMDAxNzA1OTEgMDAwMDAgbiAKMDAwMDEyMzc1MCAwMDAwMCBuIAowMDAwMjU1MDYxIDAwMDAwIG4gCjAwMDAxMTA1MjUgMDAwMDAgbiAKMDAwMDIxMzQ4NSAwMDAwMCBuIAowMDAwMTcyNDgxIDAwMDAwIG4gCjAwMDAxMjUyNjIgMDAwMDAgbiAKMDAwMDI1NjU3MyAwMDAwMCBuIAowMDAwMjE1MDA1IDAwMDAwIG4gCjAwMDAxNzM5OTMgMDAwMDAgbiAKMDAwMDEyNjc3NCAwMDAwMCBuIAowMDAwMjU4MDg1IDAwMDAwIG4gCjAwMDAyMTY1MjUgMDAwMDAgbiAKMDAwMDE3NTUwNSAwMDAwMCBuIAowMDAwMjQwMzI0IDAwMDAwIG4gCjAwMDAxMjg2NjQgMDAwMDAgbiAKMDAwMDI1MzU0OSAwMDAwMCBuIAowMDAwMjExOTY1IDAwMDAwIG4gCjAwMDAxNzA5NjkgMDAwMDAgbiAKMDAwMDEyNDEyOCAwMDAwMCBuIAowMDAwMjU1NDM5IDAwMDAwIG4gCjAwMDAyMTM4NjUgMDAwMDAgbiAKMDAwMDE3Mjg1OSAwMDAwMCBuIAowMDAwMTI1NjQwIDAwMDAwIG4gCjAwMDAyNTY5NTEgMDAwMDAgbiAKMDAwMDE5ODY3MCAwMDAwMCBuIAowMDAwMjE1Mzg1IDAwMDAwIG4gCjAwMDAxNzQzNzEgMDAwMDAgbiAKMDAwMDEyNzE1MiAwMDAwMCBuIAowMDAwMjUzOTI3IDAwMDAwIG4gCjAwMDAyMTIzNDUgMDAwMDAgbiAKMDAwMDE3MTM0NyAwMDAwMCBuIAowMDAwMTMzMTk1IDAwMDAwIG4gCjAwMDAyNTczMjkgMDAwMDAgbiAKMDAwMDIxNTc2NSAwMDAwMCBuIAowMDAwMTc0NzQ5IDAwMDAwIG4gCjAwMDAxNTc3NDQgMDAwMDAgbiAKMDAwMDEyNzUzMCAwMDAwMCBuIAowMDAwMjU4NDYzIDAwMDAwIG4gCjAwMDAyMTY5MDUgMDAwMDAgbiAKMDAwMDE3NTg4MyAwMDAwMCBuIAowMDAwMTI4Mjg2IDAwMDAwIG4gCjAwMDAyMTk5MjcgMDAwMDAgbiAKMDAwMDE3ODE2MCAwMDAwMCBuIAowMDAwMTM2OTcwIDAwMDAwIG4gCjAwMDAxMzI4MTggMDAwMDAgbiAKMDAwMDEzNjU5MyAwMDAwMCBuIAowMDAwMTEzMTcxIDAwMDAwIG4gCjAwMDAyMTg3OTYgMDAwMDAgbiAKMDAwMDE3NzAyMCAwMDAwMCBuIAowMDAwMTM2MjE2IDAwMDAwIG4gCjAwMDAxMzE2ODYgMDAwMDAgbiAKMDAwMDI0NTYxNiAwMDAwMCBuIAowMDAwMjAzOTkwIDAwMDAwIG4gCjAwMDAxNjIyODAgMDAwMDAgbiAKMDAwMDEzMzU3MyAwMDAwMCBuIAowMDAwMTM0NzA2IDAwMDAwIG4gCjAwMDAyNDQ4NjAgMDAwMDAgbiAKMDAwMDIyMjU2NyAwMDAwMCBuIAowMDAwMjQyNTkyIDAwMDAwIG4gCjAwMDAyMDMyMzAgMDAwMDAgbiAKMDAwMDE2MjY1OCAwMDAwMCBuIAowMDAwMTMyMDYzIDAwMDAwIG4gCjAwMDAwOTM1MzAgMDAwMDAgbiAKMDAwMDIxOTU1MCAwMDAwMCBuIAowMDAwMTc3NzgwIDAwMDAwIG4gCjAwMDAxMzI0NDEgMDAwMDAgbiAKMDAwMDIxOTE3MyAwMDAwMCBuIAowMDAwMTc3NDAwIDAwMDAwIG4gCjAwMDAxMzU0NjMgMDAwMDAgbiAKMDAwMDIwMDk1MCAwMDAwMCBuIAowMDAwMTI5MDQyIDAwMDAwIG4gCjAwMDAyMjEwNTcgMDAwMDAgbiAKMDAwMDE3OTI5OSAwMDAwMCBuIAowMDAwMTM4NDc3IDAwMDAwIG4gCjAwMDAxMjk0MTkgMDAwMDAgbiAKMDAwMDIyMzcwMSAwMDAwMCBuIAowMDAwMTgxOTU4IDAwMDAwIG4gCjAwMDAxNDA3NDMgMDAwMDAgbiAKMDAwMDEyOTc5NiAwMDAwMCBuIAowMDAwMjM2MTY2IDAwMDAwIG4gCjAwMDAxNjAwMTIgMDAwMDAgbiAKMDAwMDE5NDQ5MCAwMDAwMCBuIAowMDAwMTQzMzg3IDAwMDAwIG4gCjAwMDAxMzQzMjkgMDAwMDAgbiAKMDAwMDIzODgxMiAwMDAwMCBuIAowMDAwMTk3MTUwIDAwMDAwIG4gCjAwMDAxNTU4NTQgMDAwMDAgbiAKMDAwMDEzMDE3NCAwMDAwMCBuIAowMDAwMjQ1OTk0IDAwMDAwIG4gCjAwMDAyMDQzNzAgMDAwMDAgbiAKMDAwMDE2MzAzNiAwMDAwMCBuIAowMDAwMTE1MDYxIDAwMDAwIG4gCjAwMDAxMzEzMDggMDAwMDAgbiAKMDAwMDI0MzcyNiAwMDAwMCBuIAowMDAwMjAyMDkwIDAwMDAwIG4gCjAwMDAxNjExNDYgMDAwMDAgbiAKMDAwMDEzMDkzMCAwMDAwMCBuIAowMDAwMjQxNDU4IDAwMDAwIG4gCjAwMDAxOTk4MTAgMDAwMDAgbiAKMDAwMDE1ODUwMCAwMDAwMCBuIAowMDAwMTMwNTUyIDAwMDAwIG4gCjAwMDAyNTg4NDEgMDAwMDAgbiAKMDAwMDI0NDEwNCAwMDAwMCBuIAowMDAwMjAyNDcwIDAwMDAwIG4gCjAwMDAxNjE5MDIgMDAwMDAgbiAKMDAwMDExNjE5NSAwMDAwMCBuIAowMDAwMjQ1MjM4IDAwMDAwIG4gCjAwMDAyMDM2MTAgMDAwMDAgbiAKMDAwMDE4MDgxOCAwMDAwMCBuIAowMDAwMTYzNDE0IDAwMDAwIG4gCjAwMDAxMTY1NzMgMDAwMDAgbiAKMDAwMDIxODQxOSAwMDAwMCBuIAowMDAwMTc2NjQwIDAwMDAwIG4gCjAwMDAxMzczNDcgMDAwMDAgbiAKMDAwMDA5NDI4NCAwMDAwMCBuIAowMDAwMjQ3ODgzIDAwMDAwIG4gCjAwMDAyMDYyNjkgMDAwMDAgbiAKMDAwMDE2NTMwMyAwMDAwMCBuIAowMDAwMTE4NDYyIDAwMDAwIG4gCjAwMDAxMzk5ODcgMDAwMDAgbiAKMDAwMDI1MDE0OSAwMDAwMCBuIAowMDAwMjA4NTQ3IDAwMDAwIG4gCjAwMDAxNjc1NjkgMDAwMDAgbiAKMDAwMDEyMDcyOCAwMDAwMCBuIAowMDAwMjUyMDM3IDAwMDAwIG4gCjAwMDAyMTA0NDUgMDAwMDAgbiAKMDAwMDE2OTQ1NyAwMDAwMCBuIAowMDAwMTIyNjE2IDAwMDAwIG4gCjAwMDAyNDYzNzIgMDAwMDAgbiAKMDAwMDIwNDc1MCAwMDAwMCBuIAowMDAwMDk2NTQ4IDAwMDAwIG4gCjAwMDAxNjM3OTIgMDAwMDAgbiAKMDAwMDExNjk1MSAwMDAwMCBuIAowMDAwMjQ4MjYxIDAwMDAwIG4gCjAwMDAyMDY2NDkgMDAwMDAgbiAKMDAwMDE2NTY4MSAwMDAwMCBuIAowMDAwMTE4ODQwIDAwMDAwIG4gCjAwMDAyNTA1MjcgMDAwMDAgbiAKMDAwMDIwODkyNyAwMDAwMCBuIAowMDAwMTY3OTQ3IDAwMDAwIG4gCjAwMDAxMjExMDYgMDAwMDAgbiAKMDAwMDIyNDgzNCAwMDAwMCBuIAowMDAwMjQ2NzUwIDAwMDAwIG4gCjAwMDAyMDUxMzAgMDAwMDAgbiAKMDAwMDE2NDE3MCAwMDAwMCBuIAowMDAwMTE3MzI5IDAwMDAwIG4gCjAwMDAyNDg2MzkgMDAwMDAgbiAKMDAwMDIwNzAyOSAwMDAwMCBuIAowMDAwMTY2MDU5IDAwMDAwIG4gCjAwMDAxMTkyMTggMDAwMDAgbiAKMDAwMDI1MDkwNSAwMDAwMCBuIAowMDAwMjA5MzA3IDAwMDAwIG4gCjAwMDAxODMwOTcgMDAwMDAgbiAKMDAwMDE2ODMyNSAwMDAwMCBuIAowMDAwMTIxNDg0IDAwMDAwIG4gCjAwMDAyNDcxMjggMDAwMDAgbiAKMDAwMDIwNTUxMCAwMDAwMCBuIAowMDAwMTY0NTQ4IDAwMDAwIG4gCjAwMDAxMTc3MDcgMDAwMDAgbiAKMDAwMDI0OTAxNyAwMDAwMCBuIAowMDAwMjA3NDA5IDAwMDAwIG4gCjAwMDAxNjY0MzcgMDAwMDAgbiAKMDAwMDExOTU5NiAwMDAwMCBuIAowMDAwMDg5NjM4IDAwMDAwIG4gCjAwMDAwOTE3OTggMDAwMDAgbiAKMDAwMDA5MjAyOCAwMDAwMCBuIAowMDAwMDkyMjY1IDAwMDAwIG4gCjAwMDAwOTI0NDcgMDAwMDAgbiAKMDAwMDA5MjYzNiAwMDAwMCBuIAowMDAwMDkyODM1IDAwMDAwIG4gCjAwMDAwOTMwMjMgMDAwMDAgbiAKMDAwMDA5MzM5NiAwMDAwMCBuIAowMDAwMDkzNzc0IDAwMDAwIG4gCjAwMDAwOTQxNTAgMDAwMDAgbiAKMDAwMDA5NDUyNyAwMDAwMCBuIAowMDAwMDk0OTAzIDAwMDAwIG4gCjAwMDAwOTUyODEgMDAwMDAgbiAKMDAwMDA5NTY1OSAwMDAwMCBuIAowMDAwMDk2MDM3IDAwMDAwIG4gCjAwMDAwOTY0MTQgMDAwMDAgbiAKMDAwMDA5Njc5MiAwMDAwMCBuIAowMDAwMDk3MTcwIDAwMDAwIG4gCjAwMDAwOTc1NDggMDAwMDAgbiAKMDAwMDA5NzkyNiAwMDAwMCBuIAowMDAwMDk4MzAzIDAwMDAwIG4gCjAwMDAwOTg2ODAgMDAwMDAgbiAKMDAwMDA5OTA1OCAwMDAwMCBuIAowMDAwMDk5NDM2IDAwMDAwIG4gCjAwMDAwOTk4MTQgMDAwMDAgbiAKMDAwMDEwMDE5MSAwMDAwMCBuIAowMDAwMTAwNTY4IDAwMDAwIG4gCjAwMDAxMDA5NDYgMDAwMDAgbiAKMDAwMDEwMTMyNCAwMDAwMCBuIAowMDAwMTAxNzAyIDAwMDAwIG4gCjAwMDAxMDIwNzkgMDAwMDAgbiAKMDAwMDEwMjQ1NyAwMDAwMCBuIAowMDAwMTAyODM1IDAwMDAwIG4gCjAwMDAxMDMyMTMgMDAwMDAgbiAKMDAwMDEwMzU5MSAwMDAwMCBuIAowMDAwMTAzOTY4IDAwMDAwIG4gCjAwMDAxMDQzNDYgMDAwMDAgbiAKMDAwMDEwNDcyNCAwMDAwMCBuIAowMDAwMTA1MTAyIDAwMDAwIG4gCjAwMDAxMDU0ODAgMDAwMDAgbiAKMDAwMDEwNTg1NyAwMDAwMCBuIAowMDAwMTA2MjM1IDAwMDAwIG4gCjAwMDAxMDY2MTMgMDAwMDAgbiAKMDAwMDEwNjk5MSAwMDAwMCBuIAowMDAwMTA3MzY5IDAwMDAwIG4gCjAwMDAxMDc3NDYgMDAwMDAgbiAKMDAwMDEwODEyNCAwMDAwMCBuIAowMDAwMTA4NTAyIDAwMDAwIG4gCjAwMDAxMDg4ODAgMDAwMDAgbiAKMDAwMDEwOTI1OCAwMDAwMCBuIAowMDAwMTA5NjM1IDAwMDAwIG4gCjAwMDAxMTAwMTMgMDAwMDAgbiAKMDAwMDExMDM5MSAwMDAwMCBuIAowMDAwMTEwNzY5IDAwMDAwIG4gCjAwMDAxMTExNDcgMDAwMDAgbiAKMDAwMDExMTUyNSAwMDAwMCBuIAowMDAwMTExOTAzIDAwMDAwIG4gCjAwMDAxMTIyODEgMDAwMDAgbiAKMDAwMDExMjY1OSAwMDAwMCBuIAowMDAwMTEzMDM3IDAwMDAwIG4gCjAwMDAxMTM0MTUgMDAwMDAgbiAKMDAwMDExMzc5MyAwMDAwMCBuIAowMDAwMTE0MTcxIDAwMDAwIG4gCjAwMDAxMTQ1NDkgMDAwMDAgbiAKMDAwMDExNDkyNyAwMDAwMCBuIAowMDAwMTE1MzA1IDAwMDAwIG4gCjAwMDAxMTU2ODMgMDAwMDAgbiAKMDAwMDExNjA2MSAwMDAwMCBuIAowMDAwMTE2NDM5IDAwMDAwIG4gCjAwMDAxMTY4MTcgMDAwMDAgbiAKMDAwMDExNzE5NSAwMDAwMCBuIAowMDAwMTE3NTczIDAwMDAwIG4gCjAwMDAxMTc5NTEgMDAwMDAgbiAKMDAwMDExODMyOCAwMDAwMCBuIAowMDAwMTE4NzA2IDAwMDAwIG4gCjAwMDAxMTkwODQgMDAwMDAgbiAKMDAwMDExOTQ2MiAwMDAwMCBuIAowMDAwMTE5ODQwIDAwMDAwIG4gCjAwMDAxMjAyMTcgMDAwMDAgbiAKMDAwMDEyMDU5NCAwMDAwMCBuIAowMDAwMTIwOTcyIDAwMDAwIG4gCjAwMDAxMjEzNTAgMDAwMDAgbiAKMDAwMDEyMTcyOCAwMDAwMCBuIAowMDAwMTIyMTA1IDAwMDAwIG4gCjAwMDAxMjI0ODIgMDAwMDAgbiAKMDAwMDEyMjg2MCAwMDAwMCBuIAowMDAwMTIzMjM4IDAwMDAwIG4gCjAwMDAxMjM2MTYgMDAwMDAgbiAKMDAwMDEyMzk5NCAwMDAwMCBuIAowMDAwMTI0MzcyIDAwMDAwIG4gCjAwMDAxMjQ3NTAgMDAwMDAgbiAKMDAwMDEyNTEyOCAwMDAwMCBuIAowMDAwMTI1NTA2IDAwMDAwIG4gCjAwMDAxMjU4ODQgMDAwMDAgbiAKMDAwMDEyNjI2MiAwMDAwMCBuIAowMDAwMTI2NjQwIDAwMDAwIG4gCjAwMDAxMjcwMTggMDAwMDAgbiAKMDAwMDEyNzM5NiAwMDAwMCBuIAowMDAwMTI3Nzc0IDAwMDAwIG4gCjAwMDAxMjgxNTIgMDAwMDAgbiAKMDAwMDEyODUzMCAwMDAwMCBuIAowMDAwMTI4OTA4IDAwMDAwIG4gCjAwMDAxMjkyODUgMDAwMDAgbiAKMDAwMDEyOTY2MiAwMDAwMCBuIAowMDAwMTMwMDQwIDAwMDAwIG4gCjAwMDAxMzA0MTggMDAwMDAgbiAKMDAwMDEzMDc5NiAwMDAwMCBuIAowMDAwMTMxMTc0IDAwMDAwIG4gCjAwMDAxMzE1NTIgMDAwMDAgbiAKMDAwMDEzMTkyOSAwMDAwMCBuIAowMDAwMTMyMzA3IDAwMDAwIG4gCjAwMDAxMzI2ODQgMDAwMDAgbiAKMDAwMDEzMzA2MSAwMDAwMCBuIAowMDAwMTMzNDM5IDAwMDAwIG4gCjAwMDAxMzM4MTcgMDAwMDAgbiAKMDAwMDEzNDE5NSAwMDAwMCBuIAowMDAwMTM0NTcyIDAwMDAwIG4gCjAwMDAxMzQ5NTEgMDAwMDAgbiAKMDAwMDEzNTMyOSAwMDAwMCBuIAowMDAwMTM1NzA2IDAwMDAwIG4gCjAwMDAxMzYwODIgMDAwMDAgbiAKMDAwMDEzNjQ1OSAwMDAwMCBuIAowMDAwMTM2ODM2IDAwMDAwIG4gCjAwMDAxMzcyMTMgMDAwMDAgbiAKMDAwMDEzNzU5MCAwMDAwMCBuIAowMDAwMTM3OTY2IDAwMDAwIG4gCjAwMDAxMzgzNDMgMDAwMDAgbiAKMDAwMDEzODcyMCAwMDAwMCBuIAowMDAwMTM5MDk4IDAwMDAwIG4gCjAwMDAxMzk0NzYgMDAwMDAgbiAKMDAwMDEzOTg1MyAwMDAwMCBuIAowMDAwMTQwMjMxIDAwMDAwIG4gCjAwMDAxNDA2MDkgMDAwMDAgbiAKMDAwMDE0MDk4NyAwMDAwMCBuIAowMDAwMTQxMzY1IDAwMDAwIG4gCjAwMDAxNDE3NDMgMDAwMDAgbiAKMDAwMDE0MjEyMCAwMDAwMCBuIAowMDAwMTQyNDk3IDAwMDAwIG4gCjAwMDAxNDI4NzUgMDAwMDAgbiAKMDAwMDE0MzI1MyAwMDAwMCBuIAowMDAwMTQzNjMxIDAwMDAwIG4gCjAwMDAxNDQwMDkgMDAwMDAgbiAKMDAwMDE0NDM4NiAwMDAwMCBuIAowMDAwMTQ0NzYzIDAwMDAwIG4gCjAwMDAxNDUxNDEgMDAwMDAgbiAKMDAwMDE0NTUxOSAwMDAwMCBuIAowMDAwMTQ1ODk3IDAwMDAwIG4gCjAwMDAxNDYyNzQgMDAwMDAgbiAKMDAwMDE0NjY1MiAwMDAwMCBuIAowMDAwMTQ3MDMwIDAwMDAwIG4gCjAwMDAxNDc0MDggMDAwMDAgbiAKMDAwMDE0Nzc4NiAwMDAwMCBuIAowMDAwMTQ4MTYzIDAwMDAwIG4gCjAwMDAxNDg1NDEgMDAwMDAgbiAKMDAwMDE0ODkxOSAwMDAwMCBuIAowMDAwMTQ5Mjk3IDAwMDAwIG4gCjAwMDAxNDk2NzUgMDAwMDAgbiAKMDAwMDE1MDA1MiAwMDAwMCBuIAowMDAwMTUwNDMwIDAwMDAwIG4gCjAwMDAxNTA4MDggMDAwMDAgbiAKMDAwMDE1MTE4NiAwMDAwMCBuIAowMDAwMTUxNTY0IDAwMDAwIG4gCjAwMDAxNTE5NDEgMDAwMDAgbiAKMDAwMDE1MjMxOSAwMDAwMCBuIAowMDAwMTUyNjk3IDAwMDAwIG4gCjAwMDAxNTMwNzUgMDAwMDAgbiAKMDAwMDE1MzQ1MyAwMDAwMCBuIAowMDAwMTUzODMwIDAwMDAwIG4gCjAwMDAxNTQyMDggMDAwMDAgbiAKMDAwMDE1NDU4NiAwMDAwMCBuIAowMDAwMTU0OTY0IDAwMDAwIG4gCjAwMDAxNTUzNDIgMDAwMDAgbiAKMDAwMDE1NTcyMCAwMDAwMCBuIAowMDAwMTU2MDk4IDAwMDAwIG4gCjAwMDAxNTY0NzYgMDAwMDAgbiAKMDAwMDE1Njg1NCAwMDAwMCBuIAowMDAwMTU3MjMyIDAwMDAwIG4gCjAwMDAxNTc2MTAgMDAwMDAgbiAKMDAwMDE1Nzk4OCAwMDAwMCBuIAowMDAwMTU4MzY2IDAwMDAwIG4gCjAwMDAxNTg3NDQgMDAwMDAgbiAKMDAwMDE1OTEyMiAwMDAwMCBuIAowMDAwMTU5NTAwIDAwMDAwIG4gCjAwMDAxNTk4NzggMDAwMDAgbiAKMDAwMDE2MDI1NiAwMDAwMCBuIAowMDAwMTYwNjM0IDAwMDAwIG4gCjAwMDAxNjEwMTIgMDAwMDAgbiAKMDAwMDE2MTM5MCAwMDAwMCBuIAowMDAwMTYxNzY4IDAwMDAwIG4gCjAwMDAxNjIxNDYgMDAwMDAgbiAKMDAwMDE2MjUyNCAwMDAwMCBuIAowMDAwMTYyOTAyIDAwMDAwIG4gCjAwMDAxNjMyODAgMDAwMDAgbiAKMDAwMDE2MzY1OCAwMDAwMCBuIAowMDAwMTY0MDM2IDAwMDAwIG4gCjAwMDAxNjQ0MTQgMDAwMDAgbiAKMDAwMDE2NDc5MiAwMDAwMCBuIAowMDAwMTY1MTY5IDAwMDAwIG4gCjAwMDAxNjU1NDcgMDAwMDAgbiAKMDAwMDE2NTkyNSAwMDAwMCBuIAowMDAwMTY2MzAzIDAwMDAwIG4gCjAwMDAxNjY2ODEgMDAwMDAgbiAKMDAwMDE2NzA1OCAwMDAwMCBuIAowMDAwMTY3NDM1IDAwMDAwIG4gCjAwMDAxNjc4MTMgMDAwMDAgbiAKMDAwMDE2ODE5MSAwMDAwMCBuIAowMDAwMTY4NTY5IDAwMDAwIG4gCjAwMDAxNjg5NDYgMDAwMDAgbiAKMDAwMDE2OTMyMyAwMDAwMCBuIAowMDAwMTY5NzAxIDAwMDAwIG4gCjAwMDAxNzAwNzkgMDAwMDAgbiAKMDAwMDE3MDQ1NyAwMDAwMCBuIAowMDAwMTcwODM1IDAwMDAwIG4gCjAwMDAxNzEyMTMgMDAwMDAgbiAKMDAwMDE3MTU5MSAwMDAwMCBuIAowMDAwMTcxOTY5IDAwMDAwIG4gCjAwMDAxNzIzNDcgMDAwMDAgbiAKMDAwMDE3MjcyNSAwMDAwMCBuIAowMDAwMTczMTAzIDAwMDAwIG4gCjAwMDAxNzM0ODEgMDAwMDAgbiAKMDAwMDE3Mzg1OSAwMDAwMCBuIAowMDAwMTc0MjM3IDAwMDAwIG4gCjAwMDAxNzQ2MTUgMDAwMDAgbiAKMDAwMDE3NDk5MyAwMDAwMCBuIAowMDAwMTc1MzcxIDAwMDAwIG4gCjAwMDAxNzU3NDkgMDAwMDAgbiAKMDAwMDE3NjEyNyAwMDAwMCBuIAowMDAwMTc2NTA2IDAwMDAwIG4gCjAwMDAxNzY4ODYgMDAwMDAgbiAKMDAwMDE3NzI2NiAwMDAwMCBuIAowMDAwMTc3NjQ2IDAwMDAwIG4gCjAwMDAxNzgwMjYgMDAwMDAgbiAKMDAwMDE3ODQwNiAwMDAwMCBuIAowMDAwMTc4Nzg1IDAwMDAwIG4gCjAwMDAxNzkxNjUgMDAwMDAgbiAKMDAwMDE3OTU0NSAwMDAwMCBuIAowMDAwMTc5OTI1IDAwMDAwIG4gCjAwMDAxODAzMDUgMDAwMDAgbiAKMDAwMDE4MDY4NCAwMDAwMCBuIAowMDAwMTgxMDY0IDAwMDAwIG4gCjAwMDAxODE0NDQgMDAwMDAgbiAKMDAwMDE4MTgyNCAwMDAwMCBuIAowMDAwMTgyMjA0IDAwMDAwIG4gCjAwMDAxODI1ODQgMDAwMDAgbiAKMDAwMDE4Mjk2MyAwMDAwMCBuIAowMDAwMTgzMzQzIDAwMDAwIG4gCjAwMDAxODM3MjMgMDAwMDAgbiAKMDAwMDE4NDEwMyAwMDAwMCBuIAowMDAwMTg0NDgzIDAwMDAwIG4gCjAwMDAxODQ4NjIgMDAwMDAgbiAKMDAwMDE4NTI0MSAwMDAwMCBuIAowMDAwMTg1NjIxIDAwMDAwIG4gCjAwMDAxODYwMDEgMDAwMDAgbiAKMDAwMDE4NjM4MSAwMDAwMCBuIAowMDAwMTg2NzYwIDAwMDAwIG4gCjAwMDAxODcxNDAgMDAwMDAgbiAKMDAwMDE4NzUyMCAwMDAwMCBuIAowMDAwMTg3OTAwIDAwMDAwIG4gCjAwMDAxODgyODAgMDAwMDAgbiAKMDAwMDE4ODY1OSAwMDAwMCBuIAowMDAwMTg5MDM5IDAwMDAwIG4gCjAwMDAxODk0MTkgMDAwMDAgbiAKMDAwMDE4OTc5OSAwMDAwMCBuIAowMDAwMTkwMTc5IDAwMDAwIG4gCjAwMDAxOTA1NTggMDAwMDAgbiAKMDAwMDE5MDkzOCAwMDAwMCBuIAowMDAwMTkxMzE4IDAwMDAwIG4gCjAwMDAxOTE2OTggMDAwMDAgbiAKMDAwMDE5MjA3OCAwMDAwMCBuIAowMDAwMTkyNDU3IDAwMDAwIG4gCjAwMDAxOTI4MzcgMDAwMDAgbiAKMDAwMDE5MzIxNyAwMDAwMCBuIAowMDAwMTkzNTk3IDAwMDAwIG4gCjAwMDAxOTM5NzcgMDAwMDAgbiAKMDAwMDE5NDM1NiAwMDAwMCBuIAowMDAwMTk0NzM2IDAwMDAwIG4gCjAwMDAxOTUxMTYgMDAwMDAgbiAKMDAwMDE5NTQ5NiAwMDAwMCBuIAowMDAwMTk1ODc2IDAwMDAwIG4gCjAwMDAxOTYyNTYgMDAwMDAgbiAKMDAwMDE5NjYzNiAwMDAwMCBuIAowMDAwMTk3MDE2IDAwMDAwIG4gCjAwMDAxOTczOTYgMDAwMDAgbiAKMDAwMDE5Nzc3NiAwMDAwMCBuIAowMDAwMTk4MTU2IDAwMDAwIG4gCjAwMDAxOTg1MzYgMDAwMDAgbiAKMDAwMDE5ODkxNiAwMDAwMCBuIAowMDAwMTk5Mjk2IDAwMDAwIG4gCjAwMDAxOTk2NzYgMDAwMDAgbiAKMDAwMDIwMDA1NiAwMDAwMCBuIAowMDAwMjAwNDM2IDAwMDAwIG4gCjAwMDAyMDA4MTYgMDAwMDAgbiAKMDAwMDIwMTE5NiAwMDAwMCBuIAowMDAwMjAxNTc2IDAwMDAwIG4gCjAwMDAyMDE5NTYgMDAwMDAgbiAKMDAwMDIwMjMzNiAwMDAwMCBuIAowMDAwMjAyNzE2IDAwMDAwIG4gCjAwMDAyMDMwOTYgMDAwMDAgbiAKMDAwMDIwMzQ3NiAwMDAwMCBuIAowMDAwMjAzODU2IDAwMDAwIG4gCjAwMDAyMDQyMzYgMDAwMDAgbiAKMDAwMDIwNDYxNiAwMDAwMCBuIAowMDAwMjA0OTk2IDAwMDAwIG4gCjAwMDAyMDUzNzYgMDAwMDAgbiAKMDAwMDIwNTc1NiAwMDAwMCBuIAowMDAwMjA2MTM1IDAwMDAwIG4gCjAwMDAyMDY1MTUgMDAwMDAgbiAKMDAwMDIwNjg5NSAwMDAwMCBuIAowMDAwMjA3Mjc1IDAwMDAwIG4gCjAwMDAyMDc2NTUgMDAwMDAgbiAKMDAwMDIwODAzNCAwMDAwMCBuIAowMDAwMjA4NDEzIDAwMDAwIG4gCjAwMDAyMDg3OTMgMDAwMDAgbiAKMDAwMDIwOTE3MyAwMDAwMCBuIAowMDAwMjA5NTUzIDAwMDAwIG4gCjAwMDAyMDk5MzIgMDAwMDAgbiAKMDAwMDIxMDMxMSAwMDAwMCBuIAowMDAwMjEwNjkxIDAwMDAwIG4gCjAwMDAyMTEwNzEgMDAwMDAgbiAKMDAwMDIxMTQ1MSAwMDAwMCBuIAowMDAwMjExODMxIDAwMDAwIG4gCjAwMDAyMTIyMTEgMDAwMDAgbiAKMDAwMDIxMjU5MSAwMDAwMCBuIAowMDAwMjEyOTcxIDAwMDAwIG4gCjAwMDAyMTMzNTEgMDAwMDAgbiAKMDAwMDIxMzczMSAwMDAwMCBuIAowMDAwMjE0MTExIDAwMDAwIG4gCjAwMDAyMTQ0OTEgMDAwMDAgbiAKMDAwMDIxNDg3MSAwMDAwMCBuIAowMDAwMjE1MjUxIDAwMDAwIG4gCjAwMDAyMTU2MzEgMDAwMDAgbiAKMDAwMDIxNjAxMSAwMDAwMCBuIAowMDAwMjE2MzkxIDAwMDAwIG4gCjAwMDAyMTY3NzEgMDAwMDAgbiAKMDAwMDIxNzE1MSAwMDAwMCBuIAowMDAwMjE3NTMxIDAwMDAwIG4gCjAwMDAyMTc5MDkgMDAwMDAgbiAKMDAwMDIxODI4NSAwMDAwMCBuIAowMDAwMjE4NjYyIDAwMDAwIG4gCjAwMDAyMTkwMzkgMDAwMDAgbiAKMDAwMDIxOTQxNiAwMDAwMCBuIAowMDAwMjE5NzkzIDAwMDAwIG4gCjAwMDAyMjAxNzAgMDAwMDAgbiAKMDAwMDIyMDU0NiAwMDAwMCBuIAowMDAwMjIwOTIzIDAwMDAwIG4gCjAwMDAyMjEzMDAgMDAwMDAgbiAKMDAwMDIyMTY3OCAwMDAwMCBuIAowMDAwMjIyMDU2IDAwMDAwIG4gCjAwMDAyMjI0MzMgMDAwMDAgbiAKMDAwMDIyMjgxMSAwMDAwMCBuIAowMDAwMjIzMTg5IDAwMDAwIG4gCjAwMDAyMjM1NjcgMDAwMDAgbiAKMDAwMDIyMzk0NSAwMDAwMCBuIAowMDAwMjI0MzIzIDAwMDAwIG4gCjAwMDAyMjQ3MDAgMDAwMDAgbiAKMDAwMDIyNTA3OCAwMDAwMCBuIAowMDAwMjI1NDU2IDAwMDAwIG4gCjAwMDAyMjU4MzQgMDAwMDAgbiAKMDAwMDIyNjIxMiAwMDAwMCBuIAowMDAwMjI2NTg5IDAwMDAwIG4gCjAwMDAyMjY5NjYgMDAwMDAgbiAKMDAwMDIyNzM0NCAwMDAwMCBuIAowMDAwMjI3NzIyIDAwMDAwIG4gCjAwMDAyMjgxMDAgMDAwMDAgbiAKMDAwMDIyODQ3NyAwMDAwMCBuIAowMDAwMjI4ODU0IDAwMDAwIG4gCjAwMDAyMjkyMzIgMDAwMDAgbiAKMDAwMDIyOTYxMCAwMDAwMCBuIAowMDAwMjI5OTg4IDAwMDAwIG4gCjAwMDAyMzAzNjUgMDAwMDAgbiAKMDAwMDIzMDc0MyAwMDAwMCBuIAowMDAwMjMxMTIxIDAwMDAwIG4gCjAwMDAyMzE0OTkgMDAwMDAgbiAKMDAwMDIzMTg3NyAwMDAwMCBuIAowMDAwMjMyMjU0IDAwMDAwIG4gCjAwMDAyMzI2MzIgMDAwMDAgbiAKMDAwMDIzMzAxMCAwMDAwMCBuIAowMDAwMjMzMzg4IDAwMDAwIG4gCjAwMDAyMzM3NjYgMDAwMDAgbiAKMDAwMDIzNDE0MyAwMDAwMCBuIAowMDAwMjM0NTIxIDAwMDAwIG4gCjAwMDAyMzQ4OTkgMDAwMDAgbiAKMDAwMDIzNTI3NyAwMDAwMCBuIAowMDAwMjM1NjU1IDAwMDAwIG4gCjAwMDAyMzYwMzIgMDAwMDAgbiAKMDAwMDIzNjQxMCAwMDAwMCBuIAowMDAwMjM2Nzg4IDAwMDAwIG4gCjAwMDAyMzcxNjYgMDAwMDAgbiAKMDAwMDIzNzU0NCAwMDAwMCBuIAowMDAwMjM3OTIyIDAwMDAwIG4gCjAwMDAyMzgzMDAgMDAwMDAgbiAKMDAwMDIzODY3OCAwMDAwMCBuIAowMDAwMjM5MDU2IDAwMDAwIG4gCjAwMDAyMzk0MzQgMDAwMDAgbiAKMDAwMDIzOTgxMiAwMDAwMCBuIAowMDAwMjQwMTkwIDAwMDAwIG4gCjAwMDAyNDA1NjggMDAwMDAgbiAKMDAwMDI0MDk0NiAwMDAwMCBuIAowMDAwMjQxMzI0IDAwMDAwIG4gCjAwMDAyNDE3MDIgMDAwMDAgbiAKMDAwMDI0MjA4MCAwMDAwMCBuIAowMDAwMjQyNDU4IDAwMDAwIG4gCjAwMDAyNDI4MzYgMDAwMDAgbiAKMDAwMDI0MzIxNCAwMDAwMCBuIAowMDAwMjQzNTkyIDAwMDAwIG4gCjAwMDAyNDM5NzAgMDAwMDAgbiAKMDAwMDI0NDM0OCAwMDAwMCBuIAowMDAwMjQ0NzI2IDAwMDAwIG4gCjAwMDAyNDUxMDQgMDAwMDAgbiAKMDAwMDI0NTQ4MiAwMDAwMCBuIAowMDAwMjQ1ODYwIDAwMDAwIG4gCjAwMDAyNDYyMzggMDAwMDAgbiAKMDAwMDI0NjYxNiAwMDAwMCBuIAowMDAwMjQ2OTk0IDAwMDAwIG4gCjAwMDAyNDczNzIgMDAwMDAgbiAKMDAwMDI0Nzc0OSAwMDAwMCBuIAowMDAwMjQ4MTI3IDAwMDAwIG4gCjAwMDAyNDg1MDUgMDAwMDAgbiAKMDAwMDI0ODg4MyAwMDAwMCBuIAowMDAwMjQ5MjYxIDAwMDAwIG4gCjAwMDAyNDk2MzggMDAwMDAgbiAKMDAwMDI1MDAxNSAwMDAwMCBuIAowMDAwMjUwMzkzIDAwMDAwIG4gCjAwMDAyNTA3NzEgMDAwMDAgbiAKMDAwMDI1MTE0OSAwMDAwMCBuIAowMDAwMjUxNTI2IDAwMDAwIG4gCjAwMDAyNTE5MDMgMDAwMDAgbiAKMDAwMDI1MjI4MSAwMDAwMCBuIAowMDAwMjUyNjU5IDAwMDAwIG4gCjAwMDAyNTMwMzcgMDAwMDAgbiAKMDAwMDI1MzQxNSAwMDAwMCBuIAowMDAwMjUzNzkzIDAwMDAwIG4gCjAwMDAyNTQxNzEgMDAwMDAgbiAKMDAwMDI1NDU0OSAwMDAwMCBuIAowMDAwMjU0OTI3IDAwMDAwIG4gCjAwMDAyNTUzMDUgMDAwMDAgbiAKMDAwMDI1NTY4MyAwMDAwMCBuIAowMDAwMjU2MDYxIDAwMDAwIG4gCjAwMDAyNTY0MzkgMDAwMDAgbiAKMDAwMDI1NjgxNyAwMDAwMCBuIAowMDAwMjU3MTk1IDAwMDAwIG4gCjAwMDAyNTc1NzMgMDAwMDAgbiAKMDAwMDI1Nzk1MSAwMDAwMCBuIAowMDAwMjU4MzI5IDAwMDAwIG4gCjAwMDAyNTg3MDcgMDAwMDAgbiAKMDAwMDI1OTYzOSAwMDAwMCBuIAowMDAwMjU5ODI1IDAwMDAwIG4gCjAwMDAyNjA1NDIgMDAwMDAgbiAKMDAwMDI2MDUyMCAwMDAwMCBuIAowMDAwMjg5Mzk0IDAwMDAwIG4gCjAwMDAyOTAxMzYgMDAwMDAgbiAKMDAwMDI5MDMzMSAwMDAwMCBuIAowMDAwMzAxODgyIDAwMDAwIG4gCjAwMDAzMDI1ODMgMDAwMDAgbiAKMDAwMDMwMjc4MSAwMDAwMCBuIAowMDAwMzEwNzcyIDAwMDAwIG4gCjAwMDAzMTEyNzIgMDAwMDAgbiAKMDAwMDMxMTQ2OSAwMDAwMCBuIAowMDAwMzEyMTE1IDAwMDAwIG4gCjAwMDAzMTIwOTMgMDAwMDAgbiAKMDAwMDMyODg2MyAwMDAwMCBuIAowMDAwMzI5NTU4IDAwMDAwIG4gCjAwMDAzMjk3NTAgMDAwMDAgbiAKMDAwMDM0MzM2MiAwMDAwMCBuIAowMDAwMzQzMzg2IDAwMDAwIG4gCgp0cmFpbGVyCjw8L0luZm8gOTM2IDAgUgovU2l6ZSA5MzcKL1Jvb3QgMSAwIFIKL0lEIFs8QUVFNEYxN0MxNTlBNjQ3NzkwRDdDM0FDNzg1NUM3MkQ+IDxBRUU0RjE3QzE1OUE2NDc3OTBEN0MzQUM3ODU1QzcyRD5dPj4Kc3RhcnR4cmVmCjM0MzQ1OAolJUVPRgo="},"_type":"PyPDFLoader"},"description":"Loads a PDF with pypdf and chunks at character level.","base_classes":["PyPDFLoader","BaseLoader","BasePDFLoader"]},"id":"dndnode_267","value":null},"selected":false,"positionAbsolute":{"x":45.46334416270031,"y":240.7728876843567},"dragging":false}],"edges":[{"source":"dndnode_249","sourceHandle":"CharacterTextSplitter|dndnode_249|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"dndnode_252","targetHandle":"TextSplitter|documents|dndnode_252","className":"animate-pulse","id":"reactflow__edge-dndnode_249CharacterTextSplitter|dndnode_249|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-dndnode_252TextSplitter|documents|dndnode_252","selected":false},{"source":"dndnode_251","sourceHandle":"OpenAIEmbeddings|dndnode_251|OpenAIEmbeddings|Embeddings","target":"dndnode_252","targetHandle":"Embeddings|embedding|dndnode_252","className":"animate-pulse","id":"reactflow__edge-dndnode_251OpenAIEmbeddings|dndnode_251|OpenAIEmbeddings|Embeddings-dndnode_252Embeddings|embedding|dndnode_252","selected":false},{"source":"dndnode_252","sourceHandle":"Chroma|dndnode_252|Chroma|VectorStore","target":"dndnode_253","targetHandle":"VectorStore|vectorstore|dndnode_253","className":"animate-pulse","id":"reactflow__edge-dndnode_252Chroma|dndnode_252|Chroma|VectorStore-dndnode_253VectorStore|vectorstore|dndnode_253","selected":false},{"source":"dndnode_253","sourceHandle":"VectorStoreInfo|dndnode_253|VectorStoreInfo","target":"dndnode_255","targetHandle":"VectorStoreInfo|vectorstoreinfo|dndnode_255","className":"animate-pulse","id":"reactflow__edge-dndnode_253VectorStoreInfo|dndnode_253|VectorStoreInfo-dndnode_255VectorStoreInfo|vectorstoreinfo|dndnode_255","selected":false},{"source":"dndnode_254","sourceHandle":"OpenAI|dndnode_254|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_255","targetHandle":"BaseLanguageModel|llm|dndnode_255","className":"animate-pulse","id":"reactflow__edge-dndnode_254OpenAI|dndnode_254|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_255BaseLanguageModel|llm|dndnode_255","selected":false},{"source":"dndnode_267","sourceHandle":"PyPDFLoader|dndnode_267|PyPDFLoader|BaseLoader|BasePDFLoader","target":"dndnode_249","targetHandle":"BaseLoader|documents|dndnode_249","className":"animate-pulse","id":"reactflow__edge-dndnode_267PyPDFLoader|dndnode_267|PyPDFLoader|BaseLoader|BasePDFLoader-dndnode_249BaseLoader|documents|dndnode_249","selected":false}],"viewport":{"x":15.934900620023427,"y":-3.6982963320258477,"zoom":0.5904963307147654}}} \ No newline at end of file diff --git a/docs/data/Series_character_chain.json b/docs/data/Series_character_chain.json deleted file mode 100644 index d8af38a4f..000000000 --- a/docs/data/Series_character_chain.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"704dac29-2904-43c6-ac2f-f25339c0d505","data":{"nodes":[{"width":384,"height":597,"id":"dndnode_197","type":"genericNode","position":{"x":931.6201577976027,"y":388.0007437103224},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_197","value":null},"selected":false,"positionAbsolute":{"x":931.6201577976027,"y":388.0007437103224},"dragging":false},{"width":384,"height":419,"id":"dndnode_199","type":"genericNode","position":{"x":1468.4921587004076,"y":481.4720138392878},"data":{"type":"SeriesCharacterChain","node":{"template":{"character":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"character","advanced":false,"type":"str","list":false,"value":"Gandalf"},"series":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"series","advanced":false,"type":"str","list":false,"value":"The Lord of the Rings"},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"SeriesCharacterChain"},"description":"SeriesCharacterChain is a chain you can use to have a conversation with a character from a series.","base_classes":["LLMChain","BaseCustomChain","Chain","ConversationChain","SeriesCharacterChain","function"]},"id":"dndnode_199","value":null},"selected":true,"positionAbsolute":{"x":1468.4921587004076,"y":481.4720138392878},"dragging":false}],"edges":[{"source":"dndnode_197","sourceHandle":"OpenAI|dndnode_197|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_199","targetHandle":"BaseLanguageModel|llm|dndnode_199","className":"animate-pulse","id":"reactflow__edge-dndnode_197OpenAI|dndnode_197|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_199BaseLanguageModel|llm|dndnode_199","selected":false}],"viewport":{"x":-334.0863839015408,"y":-192.31085724252193,"zoom":0.697371833175203}}} \ No newline at end of file diff --git a/docs/data/Serp_api.json b/docs/data/Serp_api.json deleted file mode 100644 index f0b2a5b56..000000000 --- a/docs/data/Serp_api.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"1d7db1bf-bde5-4e0b-bd08-4fff445fa870","data":{"nodes":[{"width":384,"height":267,"id":"dndnode_242","type":"genericNode","position":{"x":2131.170891805563,"y":564.5660447519842},"data":{"type":"ZeroShotAgent","node":{"template":{"llm_chain":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm_chain","advanced":false,"type":"LLMChain","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"type":"AgentOutputParser","list":false},"allowed_tools":{"required":false,"placeholder":"","show":true,"multiline":false,"value":[],"password":false,"name":"allowed_tools","advanced":false,"type":"Tool","list":true},"_type":"ZeroShotAgent"},"description":"Agent for the MRKL chain.","base_classes":["ZeroShotAgent","BaseSingleActionAgent","Agent","function"]},"id":"dndnode_242","value":null},"selected":false,"positionAbsolute":{"x":2131.170891805563,"y":564.5660447519842},"dragging":false},{"width":384,"height":307,"id":"dndnode_243","type":"genericNode","position":{"x":1484,"y":326},"data":{"type":"LLMChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"]},"id":"dndnode_243","value":null},"selected":false,"positionAbsolute":{"x":1484,"y":326},"dragging":false},{"width":384,"height":597,"id":"dndnode_244","type":"genericNode","position":{"x":754.603731488095,"y":772.8675386408706},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_244","value":null},"selected":false,"positionAbsolute":{"x":754.603731488095,"y":772.8675386408706},"dragging":false},{"width":384,"height":359,"id":"dndnode_245","type":"genericNode","position":{"x":760.6794768154778,"y":366.3764955059467},"data":{"type":"ZeroShotPrompt","node":{"template":{"prefix":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"Answer the following questions as best you can. You have access to the following tools:","password":false,"name":"prefix","advanced":false,"type":"str","list":false},"suffix":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}","password":false,"name":"suffix","advanced":false,"type":"str","list":false},"format_instructions":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question","password":false,"name":"format_instructions","advanced":false,"type":"str","list":false},"_type":"zero_shot"},"description":"Prompt template for Zero Shot Agent.","base_classes":["BasePromptTemplate"]},"id":"dndnode_245","value":null},"selected":false,"positionAbsolute":{"x":760.6794768154778,"y":366.3764955059467},"dragging":false},{"width":384,"height":313,"id":"dndnode_246","type":"genericNode","position":{"x":1586,"y":842},"data":{"type":"Search","node":{"template":{"serpapi_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"serpapi_api_key","advanced":false,"type":"str","list":false},"aiosession":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"","password":false,"name":"aiosession","advanced":false,"type":"str","list":false},"_type":"Search"},"description":"A search engine. Useful for when you need to answer questions about current events. Input should be a search query.","base_classes":["Tool"]},"id":"dndnode_246","value":null},"selected":true,"positionAbsolute":{"x":1586,"y":842},"dragging":false}],"edges":[{"source":"dndnode_245","sourceHandle":"ZeroShotPrompt|dndnode_245|BasePromptTemplate","target":"dndnode_243","targetHandle":"BasePromptTemplate|prompt|dndnode_243","className":"animate-pulse","id":"reactflow__edge-dndnode_245ZeroShotPrompt|dndnode_245|BasePromptTemplate-dndnode_243BasePromptTemplate|prompt|dndnode_243","selected":false},{"source":"dndnode_244","sourceHandle":"OpenAI|dndnode_244|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_243","targetHandle":"BaseLanguageModel|llm|dndnode_243","className":"animate-pulse","id":"reactflow__edge-dndnode_244OpenAI|dndnode_244|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_243BaseLanguageModel|llm|dndnode_243","selected":false},{"source":"dndnode_246","sourceHandle":"Search|dndnode_246|Tool","target":"dndnode_242","targetHandle":"Tool|allowed_tools|dndnode_242","className":"animate-pulse","id":"reactflow__edge-dndnode_246Search|dndnode_246|Tool-dndnode_242Tool|allowed_tools|dndnode_242","selected":false},{"source":"dndnode_243","sourceHandle":"LLMChain|dndnode_243|LLMChain|Chain|function","target":"dndnode_242","targetHandle":"LLMChain|llm_chain|dndnode_242","className":"animate-pulse","id":"reactflow__edge-dndnode_243LLMChain|dndnode_243|LLMChain|Chain|function-dndnode_242LLMChain|llm_chain|dndnode_242","selected":false}],"viewport":{"x":-220.38408534242762,"y":-198.24138533854057,"zoom":0.6973718331752029}}} \ No newline at end of file diff --git a/docs/data/Time_travel_guide_chain.json b/docs/data/Time_travel_guide_chain.json deleted file mode 100644 index 07ddf9f33..000000000 --- a/docs/data/Time_travel_guide_chain.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"18f7277b-9deb-4dda-b1ef-e5c9b829fb25","data":{"nodes":[{"width":384,"height":267,"id":"dndnode_202","type":"genericNode","position":{"x":1567.5832147718147,"y":676.7921651686486},"data":{"type":"TimeTravelGuideChain","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseChatMemory","list":false},"_type":"TimeTravelGuideChain"},"description":"Time travel guide chain to be used in the flow.","base_classes":["LLMChain","BaseCustomChain","TimeTravelGuideChain","Chain","ConversationChain"]},"id":"dndnode_202","value":null},"selected":false,"positionAbsolute":{"x":1567.5832147718147,"y":676.7921651686486},"dragging":false},{"width":384,"height":313,"id":"dndnode_204","type":"genericNode","position":{"x":1089.3962685119054,"y":329.92648580358434},"data":{"type":"ConversationSummaryMemory","node":{"template":{"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"type":"str","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"type":"str","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"summary_message_cls":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"summary_message_cls","advanced":false,"type":"Type[langchain.schema.BaseMessage]","list":false},"chat_memory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"type":"BaseChatMessageHistory","list":false},"output_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_key","advanced":false,"type":"str","list":false},"input_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_key","advanced":false,"type":"str","list":false},"return_messages":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"return_messages","advanced":false,"type":"bool","list":false},"buffer":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"","password":false,"name":"buffer","advanced":false,"type":"str","list":false},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"type":"str","list":false},"_type":"ConversationSummaryMemory"},"description":"Conversation summarizer to memory.","base_classes":["SummarizerMixin","BaseChatMemory","BaseMemory","ConversationSummaryMemory"]},"id":"dndnode_204","value":null},"selected":false,"positionAbsolute":{"x":1089.3962685119054,"y":329.92648580358434},"dragging":false},{"width":384,"height":597,"id":"dndnode_205","type":"genericNode","position":{"x":561.7007372420808,"y":355.7376802678691},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_205","value":null},"selected":false,"positionAbsolute":{"x":561.7007372420808,"y":355.7376802678691},"dragging":false}],"edges":[{"source":"dndnode_205","sourceHandle":"OpenAI|dndnode_205|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_204","targetHandle":"BaseLanguageModel|llm|dndnode_204","className":"animate-pulse","id":"reactflow__edge-dndnode_205OpenAI|dndnode_205|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_204BaseLanguageModel|llm|dndnode_204","selected":false},{"source":"dndnode_204","sourceHandle":"ConversationSummaryMemory|dndnode_204|SummarizerMixin|BaseChatMemory|BaseMemory|ConversationSummaryMemory","target":"dndnode_202","targetHandle":"BaseChatMemory|memory|dndnode_202","className":"animate-pulse","id":"reactflow__edge-dndnode_204ConversationSummaryMemory|dndnode_204|SummarizerMixin|BaseChatMemory|BaseMemory|ConversationSummaryMemory-dndnode_202BaseChatMemory|memory|dndnode_202","selected":false},{"source":"dndnode_205","sourceHandle":"OpenAI|dndnode_205|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_202","targetHandle":"BaseLanguageModel|llm|dndnode_202","className":"animate-pulse","id":"reactflow__edge-dndnode_205OpenAI|dndnode_205|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_202BaseLanguageModel|llm|dndnode_202","selected":false}],"viewport":{"x":-215.71427282637273,"y":-82.0814382178981,"zoom":0.6973718331752029}}} \ No newline at end of file diff --git a/docs/data/Tool_pal_math.json b/docs/data/Tool_pal_math.json deleted file mode 100644 index 2f6cb69fe..000000000 --- a/docs/data/Tool_pal_math.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"a78febc5-498e-40eb-b228-922bf9c58e51","data":{"nodes":[{"width":384,"height":359,"id":"dndnode_235","type":"genericNode","position":{"x":310.07611718254395,"y":264.41529780754104},"data":{"type":"ZeroShotPrompt","node":{"template":{"prefix":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"Answer the following questions as best you can. You have access to the following tools:","password":false,"name":"prefix","advanced":false,"type":"str","list":false},"suffix":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}","password":false,"name":"suffix","advanced":false,"type":"str","list":false},"format_instructions":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question","password":false,"name":"format_instructions","advanced":false,"type":"str","list":false},"_type":"zero_shot"},"description":"Prompt template for Zero Shot Agent.","base_classes":["BasePromptTemplate"]},"id":"dndnode_235","value":null},"selected":false,"positionAbsolute":{"x":310.07611718254395,"y":264.41529780754104},"dragging":false},{"width":384,"height":597,"id":"dndnode_236","type":"genericNode","position":{"x":296.68594225840127,"y":652.7786022737267},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_236","value":null},"selected":true,"positionAbsolute":{"x":296.68594225840127,"y":652.7786022737267},"dragging":false},{"width":384,"height":307,"id":"dndnode_237","type":"genericNode","position":{"x":967.7769983298081,"y":424.77971783921026},"data":{"type":"LLMChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"]},"id":"dndnode_237","value":null},"selected":false,"positionAbsolute":{"x":967.7769983298081,"y":424.77971783921026},"dragging":false},{"width":384,"height":267,"id":"dndnode_238","type":"genericNode","position":{"x":963.4751325857608,"y":816.249500547531},"data":{"type":"PAL-MATH","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"PAL-MATH"},"description":"A language model that is really good at solving complex word math problems. Input should be a fully worded hard word math problem.","base_classes":["Tool"]},"id":"dndnode_238","value":null},"selected":false,"positionAbsolute":{"x":963.4751325857608,"y":816.249500547531},"dragging":false},{"width":384,"height":267,"id":"dndnode_239","type":"genericNode","position":{"x":1565.7363367524079,"y":523.7226299523023},"data":{"type":"ZeroShotAgent","node":{"template":{"llm_chain":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm_chain","advanced":false,"type":"LLMChain","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"type":"AgentOutputParser","list":false},"allowed_tools":{"required":false,"placeholder":"","show":true,"multiline":false,"value":[],"password":false,"name":"allowed_tools","advanced":false,"type":"Tool","list":true},"_type":"ZeroShotAgent"},"description":"Agent for the MRKL chain.","base_classes":["ZeroShotAgent","BaseSingleActionAgent","Agent","function"]},"id":"dndnode_239","value":null},"selected":false,"positionAbsolute":{"x":1565.7363367524079,"y":523.7226299523023},"dragging":false}],"edges":[{"source":"dndnode_236","sourceHandle":"OpenAI|dndnode_236|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_238","targetHandle":"BaseLanguageModel|llm|dndnode_238","className":"animate-pulse","id":"reactflow__edge-dndnode_236OpenAI|dndnode_236|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_238BaseLanguageModel|llm|dndnode_238","selected":false},{"source":"dndnode_235","sourceHandle":"ZeroShotPrompt|dndnode_235|BasePromptTemplate","target":"dndnode_237","targetHandle":"BasePromptTemplate|prompt|dndnode_237","className":"animate-pulse","id":"reactflow__edge-dndnode_235ZeroShotPrompt|dndnode_235|BasePromptTemplate-dndnode_237BasePromptTemplate|prompt|dndnode_237","selected":false},{"source":"dndnode_236","sourceHandle":"OpenAI|dndnode_236|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_237","targetHandle":"BaseLanguageModel|llm|dndnode_237","className":"animate-pulse","id":"reactflow__edge-dndnode_236OpenAI|dndnode_236|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_237BaseLanguageModel|llm|dndnode_237","selected":false},{"source":"dndnode_237","sourceHandle":"LLMChain|dndnode_237|LLMChain|Chain|function","target":"dndnode_239","targetHandle":"LLMChain|llm_chain|dndnode_239","className":"animate-pulse","id":"reactflow__edge-dndnode_237LLMChain|dndnode_237|LLMChain|Chain|function-dndnode_239LLMChain|llm_chain|dndnode_239","selected":false},{"source":"dndnode_238","sourceHandle":"PAL-MATH|dndnode_238|Tool","target":"dndnode_239","targetHandle":"Tool|allowed_tools|dndnode_239","className":"animate-pulse","id":"reactflow__edge-dndnode_238PAL-MATH|dndnode_238|Tool-dndnode_239Tool|allowed_tools|dndnode_239","selected":false}],"viewport":{"x":-128.90041943005372,"y":-119.22941052517558,"zoom":0.697371833175203}}} \ No newline at end of file diff --git a/docs/data/Vectorstore_agent.json b/docs/data/Vectorstore_agent.json deleted file mode 100644 index 344fc5325..000000000 --- a/docs/data/Vectorstore_agent.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"b81bba63-2251-479e-87ac-4e7c92014907","data":{"nodes":[{"width":384,"height":293,"id":"dndnode_206","type":"genericNode","position":{"x":67.20895039683455,"y":227.92499838293958},"data":{"type":"WebBaseLoader","node":{"template":{"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"https://beta.ruff.rs/docs/faq/","password":false,"name":"web_path","advanced":false,"type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["WebBaseLoader","BaseLoader"]},"id":"dndnode_206","value":null},"selected":false,"positionAbsolute":{"x":67.20895039683455,"y":227.92499838293958},"dragging":false},{"width":384,"height":489,"id":"dndnode_207","type":"genericNode","position":{"x":587.4697827083206,"y":140.756337708344},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"dndnode_207","value":null},"selected":true,"positionAbsolute":{"x":587.4697827083206,"y":140.756337708344},"dragging":false},{"width":384,"height":531,"id":"dndnode_208","type":"genericNode","position":{"x":583.7339617162575,"y":660.3764955059467},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":false,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":false,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_version","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","advanced":false,"type":"str","list":false,"value":""},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":false,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["OpenAIEmbeddings","Embeddings"]},"id":"dndnode_208","value":null},"selected":false,"positionAbsolute":{"x":583.7339617162575,"y":660.3764955059467},"dragging":false},{"width":384,"height":267,"id":"dndnode_209","type":"genericNode","position":{"x":1159.542181339253,"y":333.43469895833823},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_209","value":null},"selected":false,"positionAbsolute":{"x":1159.542181339253,"y":333.43469895833823},"dragging":false},{"width":384,"height":399,"id":"dndnode_210","type":"genericNode","position":{"x":1771.358581775794,"y":295.3190357638778},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"ruff"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"Information about the Ruff python linting library"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_210","value":null},"selected":false,"positionAbsolute":{"x":1771.358581775794,"y":295.3190357638778},"dragging":false},{"width":384,"height":597,"id":"dndnode_211","type":"genericNode","position":{"x":1745.358581775794,"y":801.3190357638778},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_211","value":null},"selected":false,"positionAbsolute":{"x":1745.358581775794,"y":801.3190357638778},"dragging":false},{"width":384,"height":267,"id":"dndnode_212","type":"genericNode","position":{"x":2305.358581775794,"y":425.31903576387776},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","advanced":false,"type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"dndnode_212","value":null},"selected":false,"positionAbsolute":{"x":2305.358581775794,"y":425.31903576387776},"dragging":false}],"edges":[{"source":"dndnode_206","sourceHandle":"WebBaseLoader|dndnode_206|WebBaseLoader|BaseLoader","target":"dndnode_207","targetHandle":"BaseLoader|documents|dndnode_207","className":"animate-pulse","id":"reactflow__edge-dndnode_206WebBaseLoader|dndnode_206|WebBaseLoader|BaseLoader-dndnode_207BaseLoader|documents|dndnode_207","selected":false},{"source":"dndnode_207","sourceHandle":"CharacterTextSplitter|dndnode_207|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"dndnode_209","targetHandle":"TextSplitter|documents|dndnode_209","className":"animate-pulse","id":"reactflow__edge-dndnode_207CharacterTextSplitter|dndnode_207|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-dndnode_209TextSplitter|documents|dndnode_209","selected":false},{"source":"dndnode_208","sourceHandle":"OpenAIEmbeddings|dndnode_208|OpenAIEmbeddings|Embeddings","target":"dndnode_209","targetHandle":"Embeddings|embedding|dndnode_209","className":"animate-pulse","id":"reactflow__edge-dndnode_208OpenAIEmbeddings|dndnode_208|OpenAIEmbeddings|Embeddings-dndnode_209Embeddings|embedding|dndnode_209","selected":false},{"source":"dndnode_209","sourceHandle":"Chroma|dndnode_209|Chroma|VectorStore","target":"dndnode_210","targetHandle":"VectorStore|vectorstore|dndnode_210","className":"animate-pulse","id":"reactflow__edge-dndnode_209Chroma|dndnode_209|Chroma|VectorStore-dndnode_210VectorStore|vectorstore|dndnode_210","selected":false},{"source":"dndnode_210","sourceHandle":"VectorStoreInfo|dndnode_210|VectorStoreInfo","target":"dndnode_212","targetHandle":"VectorStoreInfo|vectorstoreinfo|dndnode_212","className":"animate-pulse","id":"reactflow__edge-dndnode_210VectorStoreInfo|dndnode_210|VectorStoreInfo-dndnode_212VectorStoreInfo|vectorstoreinfo|dndnode_212","selected":false},{"source":"dndnode_211","sourceHandle":"OpenAI|dndnode_211|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_212","targetHandle":"BaseLanguageModel|llm|dndnode_212","className":"animate-pulse","id":"reactflow__edge-dndnode_211OpenAI|dndnode_211|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_212BaseLanguageModel|llm|dndnode_212","selected":false}],"viewport":{"x":115.45066272803774,"y":111.39970589300202,"zoom":0.5000000000000002}}} \ No newline at end of file diff --git a/docs/data/example.pdf b/docs/data/example.pdf deleted file mode 100644 index 3863fd6d2..000000000 Binary files a/docs/data/example.pdf and /dev/null differ diff --git a/docs/data/llm_chain.json b/docs/data/llm_chain.json deleted file mode 100644 index 2933e7e92..000000000 --- a/docs/data/llm_chain.json +++ /dev/null @@ -1 +0,0 @@ -{"description":"","name":"New Flow","id":"3ec9b945-02a1-481b-9d52-2a2d67677b09","data":{"nodes":[{"width":384,"height":265,"id":"dndnode_194","type":"genericNode","position":{"x":760.2694953200939,"y":176.93739631967088},"data":{"type":"PromptTemplate","node":{"template":{"input_variables":{"required":true,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_variables","advanced":false,"type":"str","list":true},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"type":"BaseOutputParser","list":false},"partial_variables":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"partial_variables","advanced":false,"type":"code","list":false},"template":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"template","advanced":false,"type":"prompt","list":false,"value":"I want you to act as a naming consultant for new companies.\n\nHere are some examples of good company names:\n\n- search engine, Google\n- social media, Facebook\n- video sharing, YouTube\n\nThe name should be short, catchy, and easy to remember.\n\nWhat is a good name for a company that makes {product}?"},"template_format":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"f-string","password":false,"name":"template_format","advanced":false,"type":"str","list":false},"validate_template":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"validate_template","advanced":false,"type":"bool","list":false},"_type":"PromptTemplate"},"description":"Schema to represent a prompt for an LLM.","base_classes":["PromptTemplate","BasePromptTemplate","StringPromptTemplate"]},"id":"dndnode_194","value":null},"selected":false,"positionAbsolute":{"x":760.2694953200939,"y":176.93739631967088},"dragging":false},{"width":384,"height":597,"id":"dndnode_195","type":"genericNode","position":{"x":772.707635444933,"y":496.2580253961801},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_195","value":null},"selected":false,"positionAbsolute":{"x":772.707635444933,"y":496.2580253961801},"dragging":false},{"width":384,"height":307,"id":"dndnode_196","type":"genericNode","position":{"x":1358.0205275141518,"y":385.99468770628937},"data":{"type":"LLMChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"]},"id":"dndnode_196","value":null},"selected":false,"positionAbsolute":{"x":1358.0205275141518,"y":385.99468770628937},"dragging":false}],"edges":[{"source":"dndnode_194","sourceHandle":"PromptTemplate|dndnode_194|PromptTemplate|BasePromptTemplate|StringPromptTemplate","target":"dndnode_196","targetHandle":"BasePromptTemplate|prompt|dndnode_196","className":"animate-pulse","id":"reactflow__edge-dndnode_194PromptTemplate|dndnode_194|PromptTemplate|BasePromptTemplate|StringPromptTemplate-dndnode_196BasePromptTemplate|prompt|dndnode_196","selected":false},{"source":"dndnode_195","sourceHandle":"OpenAI|dndnode_195|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_196","targetHandle":"BaseLanguageModel|llm|dndnode_196","className":"animate-pulse","id":"reactflow__edge-dndnode_195OpenAI|dndnode_195|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_196BaseLanguageModel|llm|dndnode_196","selected":false}],"viewport":{"x":-133.04526476210015,"y":-22.181822961625073,"zoom":0.697371833175203}}} \ No newline at end of file diff --git a/docs/data/openapi.yaml b/docs/data/openapi.yaml deleted file mode 100644 index 8962cccc7..000000000 --- a/docs/data/openapi.yaml +++ /dev/null @@ -1,3650 +0,0 @@ -openapi: 3.0.0 -info: - title: OpenAI API - description: APIs for sampling from and fine-tuning language models - version: '1.2.0' -servers: - - url: https://api.openai.com/v1 -tags: -- name: OpenAI - description: The OpenAI REST API -paths: - /engines: - get: - operationId: listEngines - deprecated: true - tags: - - OpenAI - summary: Lists the currently available (non-finetuned) models, and provides basic information about each one such as the owner and availability. - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ListEnginesResponse' - x-oaiMeta: - name: List engines - group: engines - path: list - examples: - curl: | - curl https://api.openai.com/v1/engines \ - -H 'Authorization: Bearer YOUR_API_KEY' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Engine.list() - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.listEngines(); - response: | - { - "data": [ - { - "id": "engine-id-0", - "object": "engine", - "owner": "organization-owner", - "ready": true - }, - { - "id": "engine-id-2", - "object": "engine", - "owner": "organization-owner", - "ready": true - }, - { - "id": "engine-id-3", - "object": "engine", - "owner": "openai", - "ready": false - }, - ], - "object": "list" - } - - /engines/{engine_id}: - get: - operationId: retrieveEngine - deprecated: true - tags: - - OpenAI - summary: Retrieves a model instance, providing basic information about it such as the owner and availability. - parameters: - - in: path - name: engine_id - required: true - schema: - type: string - # ideally this will be an actual ID, so this will always work from browser - example: - davinci - description: &engine_id_description > - The ID of the engine to use for this request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Engine' - x-oaiMeta: - name: Retrieve engine - group: engines - path: retrieve - examples: - curl: | - curl https://api.openai.com/v1/engines/VAR_model_id \ - -H 'Authorization: Bearer YOUR_API_KEY' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Engine.retrieve("VAR_model_id") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.retrieveEngine("VAR_model_id"); - response: | - { - "id": "VAR_model_id", - "object": "engine", - "owner": "openai", - "ready": true - } - - /completions: - post: - operationId: createCompletion - tags: - - OpenAI - summary: Creates a completion for the provided prompt and parameters - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateCompletionRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateCompletionResponse' - x-oaiMeta: - name: Create completion - group: completions - path: create - examples: - curl: | - curl https://api.openai.com/v1/completions \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer YOUR_API_KEY' \ - -d '{ - "model": "VAR_model_id", - "prompt": "Say this is a test", - "max_tokens": 7, - "temperature": 0 - }' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Completion.create( - model="VAR_model_id", - prompt="Say this is a test", - max_tokens=7, - temperature=0 - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createCompletion({ - model: "VAR_model_id", - prompt: "Say this is a test", - max_tokens: 7, - temperature: 0, - }); - parameters: | - { - "model": "VAR_model_id", - "prompt": "Say this is a test", - "max_tokens": 7, - "temperature": 0, - "top_p": 1, - "n": 1, - "stream": false, - "logprobs": null, - "stop": "\n" - } - response: | - { - "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7", - "object": "text_completion", - "created": 1589478378, - "model": "VAR_model_id", - "choices": [ - { - "text": "\n\nThis is indeed a test", - "index": 0, - "logprobs": null, - "finish_reason": "length" - } - ], - "usage": { - "prompt_tokens": 5, - "completion_tokens": 7, - "total_tokens": 12 - } - } - /chat/completions: - post: - operationId: createChatCompletion - tags: - - OpenAI - summary: Creates a completion for the chat message - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateChatCompletionRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateChatCompletionResponse' - - x-oaiMeta: - name: Create chat completion - group: chat - path: create - beta: true - examples: - curl: | - curl https://api.openai.com/v1/chat/completions \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer YOUR_API_KEY' \ - -d '{ - "model": "gpt-3.5-turbo", - "messages": [{"role": "user", "content": "Hello!"}] - }' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - - completion = openai.ChatCompletion.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "user", "content": "Hello!"} - ] - ) - - print(completion.choices[0].message) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - - const completion = await openai.createChatCompletion({ - model: "gpt-3.5-turbo", - messages: [{role: "user", content: "Hello world"}], - }); - console.log(completion.data.choices[0].message); - parameters: | - { - "model": "gpt-3.5-turbo", - "messages": [{"role": "user", "content": "Hello!"}] - } - response: | - { - "id": "chatcmpl-123", - "object": "chat.completion", - "created": 1677652288, - "choices": [{ - "index": 0, - "message": { - "role": "assistant", - "content": "\n\nHello there, how may I assist you today?", - }, - "finish_reason": "stop" - }], - "usage": { - "prompt_tokens": 9, - "completion_tokens": 12, - "total_tokens": 21 - } - } - - /edits: - post: - operationId: createEdit - tags: - - OpenAI - summary: Creates a new edit for the provided input, instruction, and parameters. - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateEditRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateEditResponse' - x-oaiMeta: - name: Create edit - group: edits - path: create - examples: - curl: | - curl https://api.openai.com/v1/edits \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer YOUR_API_KEY' \ - -d '{ - "model": "VAR_model_id", - "input": "What day of the wek is it?", - "instruction": "Fix the spelling mistakes" - }' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Edit.create( - model="VAR_model_id", - input="What day of the wek is it?", - instruction="Fix the spelling mistakes" - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createEdit({ - model: "VAR_model_id", - input: "What day of the wek is it?", - instruction: "Fix the spelling mistakes", - }); - parameters: | - { - "model": "VAR_model_id", - "input": "What day of the wek is it?", - "instruction": "Fix the spelling mistakes", - } - response: | - { - "object": "edit", - "created": 1589478378, - "choices": [ - { - "text": "What day of the week is it?", - "index": 0, - } - ], - "usage": { - "prompt_tokens": 25, - "completion_tokens": 32, - "total_tokens": 57 - } - } - - /images/generations: - post: - operationId: createImage - tags: - - OpenAI - summary: Creates an image given a prompt. - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateImageRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ImagesResponse' - x-oaiMeta: - name: Create image - group: images - path: create - beta: true - examples: - curl: | - curl https://api.openai.com/v1/images/generations \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer YOUR_API_KEY' \ - -d '{ - "prompt": "A cute baby sea otter", - "n": 2, - "size": "1024x1024" - }' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Image.create( - prompt="A cute baby sea otter", - n=2, - size="1024x1024" - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createImage({ - prompt: "A cute baby sea otter", - n: 2, - size: "1024x1024", - }); - parameters: | - { - "prompt": "A cute baby sea otter", - "n": 2, - "size": "1024x1024" - } - response: | - { - "created": 1589478378, - "data": [ - { - "url": "https://..." - }, - { - "url": "https://..." - } - ] - } - - /images/edits: - post: - operationId: createImageEdit - tags: - - OpenAI - summary: Creates an edited or extended image given an original image and a prompt. - requestBody: - required: true - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/CreateImageEditRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ImagesResponse' - x-oaiMeta: - name: Create image edit - group: images - path: create-edit - beta: true - examples: - curl: | - curl https://api.openai.com/v1/images/edits \ - -H 'Authorization: Bearer YOUR_API_KEY' \ - -F image='@otter.png' \ - -F mask='@mask.png' \ - -F prompt="A cute baby sea otter wearing a beret" \ - -F n=2 \ - -F size="1024x1024" - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Image.create_edit( - image=open("otter.png", "rb"), - mask=open("mask.png", "rb"), - prompt="A cute baby sea otter wearing a beret", - n=2, - size="1024x1024" - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createImageEdit( - fs.createReadStream("otter.png"), - fs.createReadStream("mask.png"), - "A cute baby sea otter wearing a beret", - 2, - "1024x1024" - ); - response: | - { - "created": 1589478378, - "data": [ - { - "url": "https://..." - }, - { - "url": "https://..." - } - ] - } - - /images/variations: - post: - operationId: createImageVariation - tags: - - OpenAI - summary: Creates a variation of a given image. - requestBody: - required: true - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/CreateImageVariationRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ImagesResponse' - x-oaiMeta: - name: Create image variation - group: images - path: create-variation - beta: true - examples: - curl: | - curl https://api.openai.com/v1/images/variations \ - -H 'Authorization: Bearer YOUR_API_KEY' \ - -F image='@otter.png' \ - -F n=2 \ - -F size="1024x1024" - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Image.create_variation( - image=open("otter.png", "rb"), - n=2, - size="1024x1024" - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createImageVariation( - fs.createReadStream("otter.png"), - 2, - "1024x1024" - ); - response: | - { - "created": 1589478378, - "data": [ - { - "url": "https://..." - }, - { - "url": "https://..." - } - ] - } - - /embeddings: - post: - operationId: createEmbedding - tags: - - OpenAI - summary: Creates an embedding vector representing the input text. - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateEmbeddingRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateEmbeddingResponse' - x-oaiMeta: - name: Create embeddings - group: embeddings - path: create - examples: - curl: | - curl https://api.openai.com/v1/embeddings \ - -X POST \ - -H "Authorization: Bearer YOUR_API_KEY" \ - -H "Content-Type: application/json" \ - -d '{"input": "The food was delicious and the waiter...", - "model": "text-embedding-ada-002"}' - - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Embedding.create( - model="text-embedding-ada-002", - input="The food was delicious and the waiter..." - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createEmbedding({ - model: "text-embedding-ada-002", - input: "The food was delicious and the waiter...", - }); - parameters: | - { - "model": "text-embedding-ada-002", - "input": "The food was delicious and the waiter..." - } - response: | - { - "object": "list", - "data": [ - { - "object": "embedding", - "embedding": [ - 0.0023064255, - -0.009327292, - .... (1536 floats total for ada-002) - -0.0028842222, - ], - "index": 0 - } - ], - "model": "text-embedding-ada-002", - "usage": { - "prompt_tokens": 8, - "total_tokens": 8 - } - } - - /audio/transcriptions: - post: - operationId: createTranscription - tags: - - OpenAI - summary: Transcribes audio into the input language. - requestBody: - required: true - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/CreateTranscriptionRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTranscriptionResponse' - x-oaiMeta: - name: Create transcription - group: audio - path: create - beta: true - examples: - curl: | - curl https://api.openai.com/v1/audio/transcriptions \ - -X POST \ - -H 'Authorization: Bearer TOKEN' \ - -H 'Content-Type: multipart/form-data' \ - -F file=@/path/to/file/audio.mp3 \ - -F model=whisper-1 - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - audio_file = open("audio.mp3", "rb") - transcript = openai.Audio.transcribe("whisper-1", audio_file) - node: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const resp = await openai.createTranscription( - fs.createReadStream("audio.mp3"), - "whisper-1" - ); - parameters: | - { - "file": "audio.mp3", - "model": "whisper-1" - } - response: | - { - "text": "Imagine the wildest idea that you've ever had, and you're curious about how it might scale to something that's a 100, a 1,000 times bigger. This is a place where you can get to do that." - } - - /audio/translations: - post: - operationId: createTranslation - tags: - - OpenAI - summary: Translates audio into into English. - requestBody: - required: true - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/CreateTranslationRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTranslationResponse' - x-oaiMeta: - name: Create translation - group: audio - path: create - beta: true - examples: - curl: | - curl https://api.openai.com/v1/audio/translations \ - -X POST \ - -H 'Authorization: Bearer TOKEN' \ - -H 'Content-Type: multipart/form-data' \ - -F file=@/path/to/file/german.m4a \ - -F model=whisper-1 - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - audio_file = open("german.m4a", "rb") - transcript = openai.Audio.translate("whisper-1", audio_file) - node: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const resp = await openai.createTranslation( - fs.createReadStream("audio.mp3"), - "whisper-1" - ); - parameters: | - { - "file": "german.m4a", - "model": "whisper-1" - } - response: | - { - "text": "Hello, my name is Wolfgang and I come from Germany. Where are you heading today?" - } - - /engines/{engine_id}/search: - post: - operationId: createSearch - deprecated: true - tags: - - OpenAI - summary: | - The search endpoint computes similarity scores between provided query and documents. Documents can be passed directly to the API if there are no more than 200 of them. - - To go beyond the 200 document limit, documents can be processed offline and then used for efficient retrieval at query time. When `file` is set, the search endpoint searches over all the documents in the given file and returns up to the `max_rerank` number of documents. These documents will be returned along with their search scores. - - The similarity score is a positive score that usually ranges from 0 to 300 (but can sometimes go higher), where a score above 200 usually means the document is semantically similar to the query. - parameters: - - in: path - name: engine_id - required: true - schema: - type: string - example: davinci - description: The ID of the engine to use for this request. You can select one of `ada`, `babbage`, `curie`, or `davinci`. - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSearchRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSearchResponse' - x-oaiMeta: - name: Create search - group: searches - path: create - examples: - curl: | - curl https://api.openai.com/v1/engines/davinci/search \ - -H "Content-Type: application/json" \ - -H 'Authorization: Bearer YOUR_API_KEY' \ - -d '{ - "documents": ["White House", "hospital", "school"], - "query": "the president" - }' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Engine("davinci").search( - documents=["White House", "hospital", "school"], - query="the president" - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createSearch("davinci", { - documents: ["White House", "hospital", "school"], - query: "the president", - }); - parameters: | - { - "documents": [ - "White House", - "hospital", - "school" - ], - "query": "the president" - } - response: | - { - "data": [ - { - "document": 0, - "object": "search_result", - "score": 215.412 - }, - { - "document": 1, - "object": "search_result", - "score": 40.316 - }, - { - "document": 2, - "object": "search_result", - "score": 55.226 - } - ], - "object": "list" - } - - /files: - get: - operationId: listFiles - tags: - - OpenAI - summary: Returns a list of files that belong to the user's organization. - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ListFilesResponse' - x-oaiMeta: - name: List files - group: files - path: list - examples: - curl: | - curl https://api.openai.com/v1/files \ - -H 'Authorization: Bearer YOUR_API_KEY' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.File.list() - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.listFiles(); - response: | - { - "data": [ - { - "id": "file-ccdDZrC3iZVNiQVeEA6Z66wf", - "object": "file", - "bytes": 175, - "created_at": 1613677385, - "filename": "train.jsonl", - "purpose": "search" - }, - { - "id": "file-XjGxS3KTG0uNmNOK362iJua3", - "object": "file", - "bytes": 140, - "created_at": 1613779121, - "filename": "puppy.jsonl", - "purpose": "search" - } - ], - "object": "list" - } - post: - operationId: createFile - tags: - - OpenAI - summary: | - Upload a file that contains document(s) to be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please contact us if you need to increase the storage limit. - - requestBody: - required: true - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/CreateFileRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIFile' - x-oaiMeta: - name: Upload file - group: files - path: upload - examples: - curl: | - curl https://api.openai.com/v1/files \ - -H "Authorization: Bearer YOUR_API_KEY" \ - -F purpose="fine-tune" \ - -F file='@mydata.jsonl' - - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.File.create( - file=open("mydata.jsonl", "rb"), - purpose='fine-tune' - ) - node.js: | - const fs = require("fs"); - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createFile( - fs.createReadStream("mydata.jsonl"), - "fine-tune" - ); - response: | - { - "id": "file-XjGxS3KTG0uNmNOK362iJua3", - "object": "file", - "bytes": 140, - "created_at": 1613779121, - "filename": "mydata.jsonl", - "purpose": "fine-tune" - } - - /files/{file_id}: - delete: - operationId: deleteFile - tags: - - OpenAI - summary: Delete a file. - parameters: - - in: path - name: file_id - required: true - schema: - type: string - description: The ID of the file to use for this request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteFileResponse' - x-oaiMeta: - name: Delete file - group: files - path: delete - examples: - curl: | - curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \ - -X DELETE \ - -H 'Authorization: Bearer YOUR_API_KEY' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.File.delete("file-XjGxS3KTG0uNmNOK362iJua3") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.deleteFile("file-XjGxS3KTG0uNmNOK362iJua3"); - response: | - { - "id": "file-XjGxS3KTG0uNmNOK362iJua3", - "object": "file", - "deleted": true - } - get: - operationId: retrieveFile - tags: - - OpenAI - summary: Returns information about a specific file. - parameters: - - in: path - name: file_id - required: true - schema: - type: string - description: The ID of the file to use for this request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIFile' - x-oaiMeta: - name: Retrieve file - group: files - path: retrieve - examples: - curl: | - curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \ - -H 'Authorization: Bearer YOUR_API_KEY' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.File.retrieve("file-XjGxS3KTG0uNmNOK362iJua3") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.retrieveFile("file-XjGxS3KTG0uNmNOK362iJua3"); - response: | - { - "id": "file-XjGxS3KTG0uNmNOK362iJua3", - "object": "file", - "bytes": 140, - "created_at": 1613779657, - "filename": "mydata.jsonl", - "purpose": "fine-tune" - } - - /files/{file_id}/content: - get: - operationId: downloadFile - tags: - - OpenAI - summary: Returns the contents of the specified file - parameters: - - in: path - name: file_id - required: true - schema: - type: string - description: The ID of the file to use for this request - responses: - "200": - description: OK - content: - application/json: - schema: - type: string - x-oaiMeta: - name: Retrieve file content - group: files - path: retrieve-content - examples: - curl: | - curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3/content \ - -H 'Authorization: Bearer YOUR_API_KEY' > file.jsonl - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - content = openai.File.download("file-XjGxS3KTG0uNmNOK362iJua3") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.downloadFile("file-XjGxS3KTG0uNmNOK362iJua3"); - - /answers: - post: - operationId: createAnswer - deprecated: true - tags: - - OpenAI - summary: | - Answers the specified question using the provided documents and examples. - - The endpoint first [searches](/docs/api-reference/searches) over provided documents or files to find relevant context. The relevant context is combined with the provided examples and question to create the prompt for [completion](/docs/api-reference/completions). - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAnswerRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAnswerResponse' - x-oaiMeta: - name: Create answer - group: answers - path: create - examples: - curl: | - curl https://api.openai.com/v1/answers \ - -X POST \ - -H "Authorization: Bearer YOUR_API_KEY" \ - -H 'Content-Type: application/json' \ - -d '{ - "documents": ["Puppy A is happy.", "Puppy B is sad."], - "question": "which puppy is happy?", - "search_model": "ada", - "model": "curie", - "examples_context": "In 2017, U.S. life expectancy was 78.6 years.", - "examples": [["What is human life expectancy in the United States?","78 years."]], - "max_tokens": 5, - "stop": ["\n", "<|endoftext|>"] - }' - - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Answer.create( - search_model="ada", - model="curie", - question="which puppy is happy?", - documents=["Puppy A is happy.", "Puppy B is sad."], - examples_context="In 2017, U.S. life expectancy was 78.6 years.", - examples=[["What is human life expectancy in the United States?","78 years."]], - max_tokens=5, - stop=["\n", "<|endoftext|>"], - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createAnswer({ - search_model: "ada", - model: "curie", - question: "which puppy is happy?", - documents: ["Puppy A is happy.", "Puppy B is sad."], - examples_context: "In 2017, U.S. life expectancy was 78.6 years.", - examples: [["What is human life expectancy in the United States?","78 years."]], - max_tokens: 5, - stop: ["\n", "<|endoftext|>"], - }); - parameters: | - { - "documents": ["Puppy A is happy.", "Puppy B is sad."], - "question": "which puppy is happy?", - "search_model": "ada", - "model": "curie", - "examples_context": "In 2017, U.S. life expectancy was 78.6 years.", - "examples": [["What is human life expectancy in the United States?","78 years."]], - "max_tokens": 5, - "stop": ["\n", "<|endoftext|>"] - } - response: | - { - "answers": [ - "puppy A." - ], - "completion": "cmpl-2euVa1kmKUuLpSX600M41125Mo9NI", - "model": "curie:2020-05-03", - "object": "answer", - "search_model": "ada", - "selected_documents": [ - { - "document": 0, - "text": "Puppy A is happy. " - }, - { - "document": 1, - "text": "Puppy B is sad. " - } - ] - } - - /classifications: - post: - operationId: createClassification - deprecated: true - tags: - - OpenAI - summary: | - Classifies the specified `query` using provided examples. - - The endpoint first [searches](/docs/api-reference/searches) over the labeled examples - to select the ones most relevant for the particular query. Then, the relevant examples - are combined with the query to construct a prompt to produce the final label via the - [completions](/docs/api-reference/completions) endpoint. - - Labeled examples can be provided via an uploaded `file`, or explicitly listed in the - request using the `examples` parameter for quick tests and small scale use cases. - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateClassificationRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateClassificationResponse' - x-oaiMeta: - name: Create classification - group: classifications - path: create - examples: - curl: | - curl https://api.openai.com/v1/classifications \ - -X POST \ - -H "Authorization: Bearer YOUR_API_KEY" \ - -H 'Content-Type: application/json' \ - -d '{ - "examples": [ - ["A happy moment", "Positive"], - ["I am sad.", "Negative"], - ["I am feeling awesome", "Positive"]], - "query": "It is a raining day :(", - "search_model": "ada", - "model": "curie", - "labels":["Positive", "Negative", "Neutral"] - }' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Classification.create( - search_model="ada", - model="curie", - examples=[ - ["A happy moment", "Positive"], - ["I am sad.", "Negative"], - ["I am feeling awesome", "Positive"] - ], - query="It is a raining day :(", - labels=["Positive", "Negative", "Neutral"], - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createClassification({ - search_model: "ada", - model: "curie", - examples: [ - ["A happy moment", "Positive"], - ["I am sad.", "Negative"], - ["I am feeling awesome", "Positive"] - ], - query:"It is a raining day :(", - labels: ["Positive", "Negative", "Neutral"], - }); - parameters: | - { - "examples": [ - ["A happy moment", "Positive"], - ["I am sad.", "Negative"], - ["I am feeling awesome", "Positive"] - ], - "labels": ["Positive", "Negative", "Neutral"], - "query": "It is a raining day :(", - "search_model": "ada", - "model": "curie" - } - response: | - { - "completion": "cmpl-2euN7lUVZ0d4RKbQqRV79IiiE6M1f", - "label": "Negative", - "model": "curie:2020-05-03", - "object": "classification", - "search_model": "ada", - "selected_examples": [ - { - "document": 1, - "label": "Negative", - "text": "I am sad." - }, - { - "document": 0, - "label": "Positive", - "text": "A happy moment" - }, - { - "document": 2, - "label": "Positive", - "text": "I am feeling awesome" - } - ] - } - - /fine-tunes: - post: - operationId: createFineTune - tags: - - OpenAI - summary: | - Creates a job that fine-tunes a specified model from a given dataset. - - Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. - - [Learn more about Fine-tuning](/docs/guides/fine-tuning) - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateFineTuneRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/FineTune' - x-oaiMeta: - name: Create fine-tune - group: fine-tunes - path: create - examples: - curl: | - curl https://api.openai.com/v1/fine-tunes \ - -X POST \ - -H "Content-Type: application/json" \ - -H "Authorization: Bearer YOUR_API_KEY" \ - -d '{ - "training_file": "file-XGinujblHPwGLSztz8cPS8XY" - }' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.FineTune.create(training_file="file-XGinujblHPwGLSztz8cPS8XY") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createFineTune({ - training_file: "file-XGinujblHPwGLSztz8cPS8XY", - }); - response: | - { - "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", - "object": "fine-tune", - "model": "curie", - "created_at": 1614807352, - "events": [ - { - "object": "fine-tune-event", - "created_at": 1614807352, - "level": "info", - "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." - } - ], - "fine_tuned_model": null, - "hyperparams": { - "batch_size": 4, - "learning_rate_multiplier": 0.1, - "n_epochs": 4, - "prompt_loss_weight": 0.1, - }, - "organization_id": "org-...", - "result_files": [], - "status": "pending", - "validation_files": [], - "training_files": [ - { - "id": "file-XGinujblHPwGLSztz8cPS8XY", - "object": "file", - "bytes": 1547276, - "created_at": 1610062281, - "filename": "my-data-train.jsonl", - "purpose": "fine-tune-train" - } - ], - "updated_at": 1614807352, - } - get: - operationId: listFineTunes - tags: - - OpenAI - summary: | - List your organization's fine-tuning jobs - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ListFineTunesResponse' - x-oaiMeta: - name: List fine-tunes - group: fine-tunes - path: list - examples: - curl: | - curl https://api.openai.com/v1/fine-tunes \ - -H 'Authorization: Bearer YOUR_API_KEY' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.FineTune.list() - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.listFineTunes(); - response: | - { - "object": "list", - "data": [ - { - "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", - "object": "fine-tune", - "model": "curie", - "created_at": 1614807352, - "fine_tuned_model": null, - "hyperparams": { ... }, - "organization_id": "org-...", - "result_files": [], - "status": "pending", - "validation_files": [], - "training_files": [ { ... } ], - "updated_at": 1614807352, - }, - { ... }, - { ... } - ] - } - - /fine-tunes/{fine_tune_id}: - get: - operationId: retrieveFineTune - tags: - - OpenAI - summary: | - Gets info about the fine-tune job. - - [Learn more about Fine-tuning](/docs/guides/fine-tuning) - parameters: - - in: path - name: fine_tune_id - required: true - schema: - type: string - example: - ft-AF1WoRqd3aJAHsqc9NY7iL8F - description: | - The ID of the fine-tune job - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/FineTune' - x-oaiMeta: - name: Retrieve fine-tune - group: fine-tunes - path: retrieve - examples: - curl: | - curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F \ - -H "Authorization: Bearer YOUR_API_KEY" - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.FineTune.retrieve(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.retrieveFineTune("ft-AF1WoRqd3aJAHsqc9NY7iL8F"); - response: | - { - "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", - "object": "fine-tune", - "model": "curie", - "created_at": 1614807352, - "events": [ - { - "object": "fine-tune-event", - "created_at": 1614807352, - "level": "info", - "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." - }, - { - "object": "fine-tune-event", - "created_at": 1614807356, - "level": "info", - "message": "Job started." - }, - { - "object": "fine-tune-event", - "created_at": 1614807861, - "level": "info", - "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20." - }, - { - "object": "fine-tune-event", - "created_at": 1614807864, - "level": "info", - "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT." - }, - { - "object": "fine-tune-event", - "created_at": 1614807864, - "level": "info", - "message": "Job succeeded." - } - ], - "fine_tuned_model": "curie:ft-acmeco-2021-03-03-21-44-20", - "hyperparams": { - "batch_size": 4, - "learning_rate_multiplier": 0.1, - "n_epochs": 4, - "prompt_loss_weight": 0.1, - }, - "organization_id": "org-...", - "result_files": [ - { - "id": "file-QQm6ZpqdNwAaVC3aSz5sWwLT", - "object": "file", - "bytes": 81509, - "created_at": 1614807863, - "filename": "compiled_results.csv", - "purpose": "fine-tune-results" - } - ], - "status": "succeeded", - "validation_files": [], - "training_files": [ - { - "id": "file-XGinujblHPwGLSztz8cPS8XY", - "object": "file", - "bytes": 1547276, - "created_at": 1610062281, - "filename": "my-data-train.jsonl", - "purpose": "fine-tune-train" - } - ], - "updated_at": 1614807865, - } - - /fine-tunes/{fine_tune_id}/cancel: - post: - operationId: cancelFineTune - tags: - - OpenAI - summary: | - Immediately cancel a fine-tune job. - parameters: - - in: path - name: fine_tune_id - required: true - schema: - type: string - example: - ft-AF1WoRqd3aJAHsqc9NY7iL8F - description: | - The ID of the fine-tune job to cancel - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/FineTune' - x-oaiMeta: - name: Cancel fine-tune - group: fine-tunes - path: cancel - examples: - curl: | - curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/cancel \ - -X POST \ - -H "Authorization: Bearer YOUR_API_KEY" - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.FineTune.cancel(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.cancelFineTune("ft-AF1WoRqd3aJAHsqc9NY7iL8F"); - response: | - { - "id": "ft-xhrpBbvVUzYGo8oUO1FY4nI7", - "object": "fine-tune", - "model": "curie", - "created_at": 1614807770, - "events": [ { ... } ], - "fine_tuned_model": null, - "hyperparams": { ... }, - "organization_id": "org-...", - "result_files": [], - "status": "cancelled", - "validation_files": [], - "training_files": [ - { - "id": "file-XGinujblHPwGLSztz8cPS8XY", - "object": "file", - "bytes": 1547276, - "created_at": 1610062281, - "filename": "my-data-train.jsonl", - "purpose": "fine-tune-train" - } - ], - "updated_at": 1614807789, - } - - /fine-tunes/{fine_tune_id}/events: - get: - operationId: listFineTuneEvents - tags: - - OpenAI - summary: | - Get fine-grained status updates for a fine-tune job. - parameters: - - in: path - name: fine_tune_id - required: true - schema: - type: string - example: - ft-AF1WoRqd3aJAHsqc9NY7iL8F - description: | - The ID of the fine-tune job to get events for. - - in: query - name: stream - required: false - schema: - type: boolean - default: false - description: | - Whether to stream events for the fine-tune job. If set to true, - events will be sent as data-only - [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) - as they become available. The stream will terminate with a - `data: [DONE]` message when the job is finished (succeeded, cancelled, - or failed). - - If set to false, only events generated so far will be returned. - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ListFineTuneEventsResponse' - x-oaiMeta: - name: List fine-tune events - group: fine-tunes - path: events - examples: - curl: | - curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/events \ - -H "Authorization: Bearer YOUR_API_KEY" - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.FineTune.list_events(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.listFineTuneEvents("ft-AF1WoRqd3aJAHsqc9NY7iL8F"); - response: | - { - "object": "list", - "data": [ - { - "object": "fine-tune-event", - "created_at": 1614807352, - "level": "info", - "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." - }, - { - "object": "fine-tune-event", - "created_at": 1614807356, - "level": "info", - "message": "Job started." - }, - { - "object": "fine-tune-event", - "created_at": 1614807861, - "level": "info", - "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20." - }, - { - "object": "fine-tune-event", - "created_at": 1614807864, - "level": "info", - "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT." - }, - { - "object": "fine-tune-event", - "created_at": 1614807864, - "level": "info", - "message": "Job succeeded." - } - ] - } - - /models: - get: - operationId: listModels - tags: - - OpenAI - summary: Lists the currently available models, and provides basic information about each one such as the owner and availability. - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ListModelsResponse' - x-oaiMeta: - name: List models - group: models - path: list - examples: - curl: | - curl https://api.openai.com/v1/models \ - -H 'Authorization: Bearer YOUR_API_KEY' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Model.list() - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.listModels(); - response: | - { - "data": [ - { - "id": "model-id-0", - "object": "model", - "owned_by": "organization-owner", - "permission": [...] - }, - { - "id": "model-id-1", - "object": "model", - "owned_by": "organization-owner", - "permission": [...] - }, - { - "id": "model-id-2", - "object": "model", - "owned_by": "openai", - "permission": [...] - }, - ], - "object": "list" - } - - /models/{model}: - get: - operationId: retrieveModel - tags: - - OpenAI - summary: Retrieves a model instance, providing basic information about the model such as the owner and permissioning. - parameters: - - in: path - name: model - required: true - schema: - type: string - # ideally this will be an actual ID, so this will always work from browser - example: - text-davinci-001 - description: - The ID of the model to use for this request - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - x-oaiMeta: - name: Retrieve model - group: models - path: retrieve - examples: - curl: | - curl https://api.openai.com/v1/models/VAR_model_id \ - -H 'Authorization: Bearer YOUR_API_KEY' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Model.retrieve("VAR_model_id") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.retrieveModel("VAR_model_id"); - response: | - { - "id": "VAR_model_id", - "object": "model", - "owned_by": "openai", - "permission": [...] - } - delete: - operationId: deleteModel - tags: - - OpenAI - summary: Delete a fine-tuned model. You must have the Owner role in your organization. - parameters: - - in: path - name: model - required: true - schema: - type: string - example: curie:ft-acmeco-2021-03-03-21-44-20 - description: The model to delete - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteModelResponse' - x-oaiMeta: - name: Delete fine-tune model - group: fine-tunes - path: delete-model - examples: - curl: | - curl https://api.openai.com/v1/models/curie:ft-acmeco-2021-03-03-21-44-20 \ - -X DELETE \ - -H "Authorization: Bearer YOUR_API_KEY" - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Model.delete("curie:ft-acmeco-2021-03-03-21-44-20") - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.deleteModel('curie:ft-acmeco-2021-03-03-21-44-20'); - response: | - { - "id": "curie:ft-acmeco-2021-03-03-21-44-20", - "object": "model", - "deleted": true - } - - /moderations: - post: - operationId: createModeration - tags: - - OpenAI - summary: Classifies if text violates OpenAI's Content Policy - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateModerationRequest' - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateModerationResponse' - x-oaiMeta: - name: Create moderation - group: moderations - path: create - examples: - curl: | - curl https://api.openai.com/v1/moderations \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer YOUR_API_KEY' \ - -d '{ - "input": "I want to kill them." - }' - python: | - import os - import openai - openai.api_key = os.getenv("OPENAI_API_KEY") - openai.Moderation.create( - input="I want to kill them.", - ) - node.js: | - const { Configuration, OpenAIApi } = require("openai"); - const configuration = new Configuration({ - apiKey: process.env.OPENAI_API_KEY, - }); - const openai = new OpenAIApi(configuration); - const response = await openai.createModeration({ - input: "I want to kill them.", - }); - parameters: | - { - "input": "I want to kill them." - } - response: | - { - "id": "modr-5MWoLO", - "model": "text-moderation-001", - "results": [ - { - "categories": { - "hate": false, - "hate/threatening": true, - "self-harm": false, - "sexual": false, - "sexual/minors": false, - "violence": true, - "violence/graphic": false - }, - "category_scores": { - "hate": 0.22714105248451233, - "hate/threatening": 0.4132447838783264, - "self-harm": 0.005232391878962517, - "sexual": 0.01407341007143259, - "sexual/minors": 0.0038522258400917053, - "violence": 0.9223177433013916, - "violence/graphic": 0.036865197122097015 - }, - "flagged": true - } - ] - } - -components: - schemas: - ListEnginesResponse: - type: object - properties: - object: - type: string - data: - type: array - items: - $ref: '#/components/schemas/Engine' - required: - - object - - data - - ListModelsResponse: - type: object - properties: - object: - type: string - data: - type: array - items: - $ref: '#/components/schemas/Model' - required: - - object - - data - - DeleteModelResponse: - type: object - properties: - id: - type: string - object: - type: string - deleted: - type: boolean - required: - - id - - object - - deleted - - CreateCompletionRequest: - type: object - properties: - model: &model_configuration - description: ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them. - type: string - prompt: - description: &completions_prompt_description | - The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays. - - Note that <|endoftext|> is the document separator that the model sees during training, so if a prompt is not specified the model will generate as if from the beginning of a new document. - default: '<|endoftext|>' - nullable: true - oneOf: - - type: string - default: '' - example: "This is a test." - - type: array - items: - type: string - default: '' - example: "This is a test." - - type: array - minItems: 1 - items: - type: integer - example: "[1212, 318, 257, 1332, 13]" - - type: array - minItems: 1 - items: - type: array - minItems: 1 - items: - type: integer - example: "[[1212, 318, 257, 1332, 13]]" - suffix: - description: - The suffix that comes after a completion of inserted text. - default: null - nullable: true - type: string - example: "test." - max_tokens: - type: integer - minimum: 0 - default: 16 - example: 16 - nullable: true - description: &completions_max_tokens_description | - The maximum number of [tokens](/tokenizer) to generate in the completion. - - The token count of your prompt plus `max_tokens` cannot exceed the model's context length. Most models have a context length of 2048 tokens (except for the newest models, which support 4096). - temperature: - type: number - minimum: 0 - maximum: 2 - default: 1 - example: 1 - nullable: true - description: &completions_temperature_description | - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - - We generally recommend altering this or `top_p` but not both. - top_p: - type: number - minimum: 0 - maximum: 1 - default: 1 - example: 1 - nullable: true - description: &completions_top_p_description | - An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. - - We generally recommend altering this or `temperature` but not both. - n: - type: integer - minimum: 1 - maximum: 128 - default: 1 - example: 1 - nullable: true - description: &completions_completions_description | - How many completions to generate for each prompt. - - **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`. - stream: - description: > - Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) - as they become available, with the stream terminated by a `data: [DONE]` message. - type: boolean - nullable: true - default: false - logprobs: &completions_logprobs_configuration - type: integer - minimum: 0 - maximum: 5 - default: null - nullable: true - description: &completions_logprobs_description | - Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response. - - The maximum value for `logprobs` is 5. If you need more than this, please contact us through our [Help center](https://help.openai.com) and describe your use case. - echo: - type: boolean - default: false - nullable: true - description: &completions_echo_description > - Echo back the prompt in addition to the completion - stop: - description: &completions_stop_description > - Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence. - default: null - nullable: true - oneOf: - - type: string - default: <|endoftext|> - example: "\n" - nullable: true - - type: array - minItems: 1 - maxItems: 4 - items: - type: string - example: '["\n"]' - presence_penalty: - type: number - default: 0 - minimum: -2 - maximum: 2 - nullable: true - description: &completions_presence_penalty_description | - Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. - - [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details) - frequency_penalty: - type: number - default: 0 - minimum: -2 - maximum: 2 - nullable: true - description: &completions_frequency_penalty_description | - Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. - - [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details) - best_of: - type: integer - default: 1 - minimum: 0 - maximum: 20 - nullable: true - description: &completions_best_of_description | - Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed. - - When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`. - - **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`. - logit_bias: &completions_logit_bias - type: object - x-oaiTypeLabel: map - default: null - nullable: true - description: &completions_logit_bias_description | - Modify the likelihood of specified tokens appearing in the completion. - - Accepts a json object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. - - As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token from being generated. - user: &end_user_param_configuration - type: string - example: user-1234 - description: | - A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids). - required: - - model - - CreateCompletionResponse: - type: object - properties: - id: - type: string - object: - type: string - created: - type: integer - model: - type: string - choices: - type: array - items: - type: object - properties: - text: - type: string - index: - type: integer - logprobs: - type: object - nullable: true - properties: - tokens: - type: array - items: - type: string - token_logprobs: - type: array - items: - type: number - top_logprobs: - type: array - items: - type: object - text_offset: - type: array - items: - type: integer - finish_reason: - type: string - usage: - type: object - properties: - prompt_tokens: - type: integer - completion_tokens: - type: integer - total_tokens: - type: integer - required: - - prompt_tokens - - completion_tokens - - total_tokens - required: - - id - - object - - created - - model - - choices - - ChatCompletionRequestMessage: - type: object - properties: - role: - type: string - enum: ["system", "user", "assistant"] - description: The role of the author of this message. - content: - type: string - description: The contents of the message - name: - type: string - description: The name of the user in a multi-user chat - required: - - role - - content - - ChatCompletionResponseMessage: - type: object - properties: - role: - type: string - enum: ["system", "user", "assistant"] - description: The role of the author of this message. - content: - type: string - description: The contents of the message - required: - - role - - content - - CreateChatCompletionRequest: - type: object - properties: - model: - description: ID of the model to use. Currently, only `gpt-3.5-turbo` and `gpt-3.5-turbo-0301` are supported. - type: string - messages: - description: The messages to generate chat completions for, in the [chat format](/docs/guides/chat/introduction). - type: array - minItems: 1 - items: - $ref: '#/components/schemas/ChatCompletionRequestMessage' - temperature: - type: number - minimum: 0 - maximum: 2 - default: 1 - example: 1 - nullable: true - description: *completions_temperature_description - top_p: - type: number - minimum: 0 - maximum: 1 - default: 1 - example: 1 - nullable: true - description: *completions_top_p_description - n: - type: integer - minimum: 1 - maximum: 128 - default: 1 - example: 1 - nullable: true - description: How many chat completion choices to generate for each input message. - stream: - description: > - If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) - as they become available, with the stream terminated by a `data: [DONE]` message. - type: boolean - nullable: true - default: false - stop: - description: | - Up to 4 sequences where the API will stop generating further tokens. - default: null - oneOf: - - type: string - nullable: true - - type: array - minItems: 1 - maxItems: 4 - items: - type: string - max_tokens: - description: | - The maximum number of tokens allowed for the generated answer. By default, the number of tokens the model can return will be (4096 - prompt tokens). - default: inf - type: integer - presence_penalty: - type: number - default: 0 - minimum: -2 - maximum: 2 - nullable: true - description: *completions_presence_penalty_description - frequency_penalty: - type: number - default: 0 - minimum: -2 - maximum: 2 - nullable: true - description: *completions_frequency_penalty_description - logit_bias: - type: object - x-oaiTypeLabel: map - default: null - nullable: true - description: | - Modify the likelihood of specified tokens appearing in the completion. - - Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. - user: *end_user_param_configuration - required: - - model - - messages - - CreateChatCompletionResponse: - type: object - properties: - id: - type: string - object: - type: string - created: - type: integer - model: - type: string - choices: - type: array - items: - type: object - properties: - index: - type: integer - message: - $ref: '#/components/schemas/ChatCompletionResponseMessage' - finish_reason: - type: string - usage: - type: object - properties: - prompt_tokens: - type: integer - completion_tokens: - type: integer - total_tokens: - type: integer - required: - - prompt_tokens - - completion_tokens - - total_tokens - required: - - id - - object - - created - - model - - choices - - CreateEditRequest: - type: object - properties: - model: - description: ID of the model to use. You can use the `text-davinci-edit-001` or `code-davinci-edit-001` model with this endpoint. - type: string - input: - description: - The input text to use as a starting point for the edit. - type: string - default: '' - nullable: true - example: "What day of the wek is it?" - instruction: - description: - The instruction that tells the model how to edit the prompt. - type: string - example: "Fix the spelling mistakes." - n: - type: integer - minimum: 1 - maximum: 20 - default: 1 - example: 1 - nullable: true - description: - How many edits to generate for the input and instruction. - temperature: - type: number - minimum: 0 - maximum: 2 - default: 1 - example: 1 - nullable: true - description: *completions_temperature_description - top_p: - type: number - minimum: 0 - maximum: 1 - default: 1 - example: 1 - nullable: true - description: *completions_top_p_description - required: - - model - - instruction - - CreateEditResponse: - type: object - properties: - object: - type: string - created: - type: integer - choices: - type: array - items: - type: object - properties: - text: - type: string - index: - type: integer - logprobs: - type: object - nullable: true - properties: - tokens: - type: array - items: - type: string - token_logprobs: - type: array - items: - type: number - top_logprobs: - type: array - items: - type: object - text_offset: - type: array - items: - type: integer - finish_reason: - type: string - usage: - type: object - properties: - prompt_tokens: - type: integer - completion_tokens: - type: integer - total_tokens: - type: integer - required: - - prompt_tokens - - completion_tokens - - total_tokens - required: - - object - - created - - choices - - usage - - CreateImageRequest: - type: object - properties: - prompt: - description: A text description of the desired image(s). The maximum length is 1000 characters. - type: string - example: "A cute baby sea otter" - n: &images_n - type: integer - minimum: 1 - maximum: 10 - default: 1 - example: 1 - nullable: true - description: The number of images to generate. Must be between 1 and 10. - size: &images_size - type: string - enum: ["256x256", "512x512", "1024x1024"] - default: "1024x1024" - example: "1024x1024" - nullable: true - description: The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`. - response_format: &images_response_format - type: string - enum: ["url", "b64_json"] - default: "url" - example: "url" - nullable: true - description: The format in which the generated images are returned. Must be one of `url` or `b64_json`. - user: *end_user_param_configuration - required: - - prompt - - ImagesResponse: - properties: - created: - type: integer - data: - type: array - items: - type: object - properties: - url: - type: string - b64_json: - type: string - required: - - created - - data - - CreateImageEditRequest: - type: object - properties: - image: - description: The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask. - type: string - format: binary - mask: - description: An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`. - type: string - format: binary - prompt: - description: A text description of the desired image(s). The maximum length is 1000 characters. - type: string - example: "A cute baby sea otter wearing a beret" - n: *images_n - size: *images_size - response_format: *images_response_format - user: *end_user_param_configuration - required: - - prompt - - image - - CreateImageVariationRequest: - type: object - properties: - image: - description: The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square. - type: string - format: binary - n: *images_n - size: *images_size - response_format: *images_response_format - user: *end_user_param_configuration - required: - - image - - CreateModerationRequest: - type: object - properties: - input: - description: The input text to classify - oneOf: - - type: string - default: '' - example: "I want to kill them." - - type: array - items: - type: string - default: '' - example: "I want to kill them." - model: - description: | - Two content moderations models are available: `text-moderation-stable` and `text-moderation-latest`. - - The default is `text-moderation-latest` which will be automatically upgraded over time. This ensures you are always using our most accurate model. If you use `text-moderation-stable`, we will provide advanced notice before updating the model. Accuracy of `text-moderation-stable` may be slightly lower than for `text-moderation-latest`. - type: string - nullable: false - default: "text-moderation-latest" - example: "text-moderation-stable" - required: - - input - - CreateModerationResponse: - type: object - properties: - id: - type: string - model: - type: string - results: - type: array - items: - type: object - properties: - flagged: - type: boolean - categories: - type: object - properties: - hate: - type: boolean - hate/threatening: - type: boolean - self-harm: - type: boolean - sexual: - type: boolean - sexual/minors: - type: boolean - violence: - type: boolean - violence/graphic: - type: boolean - required: - - hate - - hate/threatening - - self-harm - - sexual - - sexual/minors - - violence - - violence/graphic - category_scores: - type: object - properties: - hate: - type: number - hate/threatening: - type: number - self-harm: - type: number - sexual: - type: number - sexual/minors: - type: number - violence: - type: number - violence/graphic: - type: number - required: - - hate - - hate/threatening - - self-harm - - sexual - - sexual/minors - - violence - - violence/graphic - required: - - flagged - - categories - - category_scores - required: - - id - - model - - results - - CreateSearchRequest: - type: object - properties: - query: - description: Query to search against the documents. - type: string - example: "the president" - minLength: 1 - documents: - description: | - Up to 200 documents to search over, provided as a list of strings. - - The maximum document length (in tokens) is 2034 minus the number of tokens in the query. - - You should specify either `documents` or a `file`, but not both. - type: array - minItems: 1 - maxItems: 200 - items: - type: string - nullable: true - example: "['White House', 'hospital', 'school']" - file: - description: | - The ID of an uploaded file that contains documents to search over. - - You should specify either `documents` or a `file`, but not both. - type: string - nullable: true - max_rerank: - description: | - The maximum number of documents to be re-ranked and returned by search. - - This flag only takes effect when `file` is set. - type: integer - minimum: 1 - default: 200 - nullable: true - return_metadata: &return_metadata_configuration - description: | - A special boolean flag for showing metadata. If set to `true`, each document entry in the returned JSON will contain a "metadata" field. - - This flag only takes effect when `file` is set. - type: boolean - default: false - nullable: true - user: *end_user_param_configuration - required: - - query - - CreateSearchResponse: - type: object - properties: - object: - type: string - model: - type: string - data: - type: array - items: - type: object - properties: - object: - type: string - document: - type: integer - score: - type: number - - ListFilesResponse: - type: object - properties: - object: - type: string - data: - type: array - items: - $ref: '#/components/schemas/OpenAIFile' - required: - - object - - data - - CreateFileRequest: - type: object - additionalProperties: false - properties: - file: - description: | - Name of the [JSON Lines](https://jsonlines.readthedocs.io/en/latest/) file to be uploaded. - - If the `purpose` is set to "fine-tune", each line is a JSON record with "prompt" and "completion" fields representing your [training examples](/docs/guides/fine-tuning/prepare-training-data). - type: string - format: binary - purpose: - description: | - The intended purpose of the uploaded documents. - - Use "fine-tune" for [Fine-tuning](/docs/api-reference/fine-tunes). This allows us to validate the format of the uploaded file. - - type: string - required: - - file - - purpose - - DeleteFileResponse: - type: object - properties: - id: - type: string - object: - type: string - deleted: - type: boolean - required: - - id - - object - - deleted - - CreateAnswerRequest: - type: object - additionalProperties: false - properties: - model: - description: ID of the model to use for completion. You can select one of `ada`, `babbage`, `curie`, or `davinci`. - type: string - question: - description: Question to get answered. - type: string - minLength: 1 - example: "What is the capital of Japan?" - examples: - description: List of (question, answer) pairs that will help steer the model towards the tone and answer format you'd like. We recommend adding 2 to 3 examples. - type: array - minItems: 1 - maxItems: 200 - items: - type: array - minItems: 2 - maxItems: 2 - items: - type: string - minLength: 1 - example: "[['What is the capital of Canada?', 'Ottawa'], ['Which province is Ottawa in?', 'Ontario']]" - examples_context: - description: A text snippet containing the contextual information used to generate the answers for the `examples` you provide. - type: string - example: "Ottawa, Canada's capital, is located in the east of southern Ontario, near the city of Montréal and the U.S. border." - documents: - description: | - List of documents from which the answer for the input `question` should be derived. If this is an empty list, the question will be answered based on the question-answer examples. - - You should specify either `documents` or a `file`, but not both. - type: array - maxItems: 200 - items: - type: string - example: "['Japan is an island country in East Asia, located in the northwest Pacific Ocean.', 'Tokyo is the capital and most populous prefecture of Japan.']" - nullable: true - file: - description: | - The ID of an uploaded file that contains documents to search over. See [upload file](/docs/api-reference/files/upload) for how to upload a file of the desired format and purpose. - - You should specify either `documents` or a `file`, but not both. - type: string - nullable: true - search_model: &search_model_configuration - description: ID of the model to use for [Search](/docs/api-reference/searches/create). You can select one of `ada`, `babbage`, `curie`, or `davinci`. - type: string - default: ada - nullable: true - max_rerank: - description: The maximum number of documents to be ranked by [Search](/docs/api-reference/searches/create) when using `file`. Setting it to a higher value leads to improved accuracy but with increased latency and cost. - type: integer - default: 200 - nullable: true - temperature: - description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - type: number - default: 0 - nullable: true - logprobs: &context_completions_logprobs_configuration - type: integer - minimum: 0 - maximum: 5 - default: null - nullable: true - description: | - Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response. - - The maximum value for `logprobs` is 5. If you need more than this, please contact us through our [Help center](https://help.openai.com) and describe your use case. - - When `logprobs` is set, `completion` will be automatically added into `expand` to get the logprobs. - max_tokens: - description: The maximum number of tokens allowed for the generated answer - type: integer - default: 16 - nullable: true - stop: - description: *completions_stop_description - default: null - oneOf: - - type: string - default: <|endoftext|> - example: "\n" - - type: array - minItems: 1 - maxItems: 4 - items: - type: string - example: '["\n"]' - nullable: true - n: - description: How many answers to generate for each question. - type: integer - minimum: 1 - maximum: 10 - default: 1 - nullable: true - logit_bias: *completions_logit_bias - return_metadata: *return_metadata_configuration - return_prompt: &return_prompt_configuration - description: If set to `true`, the returned JSON will include a "prompt" field containing the final prompt that was used to request a completion. This is mainly useful for debugging purposes. - type: boolean - default: false - nullable: true - expand: &expand_configuration - description: If an object name is in the list, we provide the full information of the object; otherwise, we only provide the object ID. Currently we support `completion` and `file` objects for expansion. - type: array - items: {} - nullable: true - default: [] - user: *end_user_param_configuration - required: - - model - - question - - examples - - examples_context - - CreateAnswerResponse: - type: object - properties: - object: - type: string - model: - type: string - search_model: - type: string - completion: - type: string - answers: - type: array - items: - type: string - selected_documents: - type: array - items: - type: object - properties: - document: - type: integer - text: - type: string - - CreateClassificationRequest: - type: object - additionalProperties: false - properties: - model: *model_configuration - query: - description: Query to be classified. - type: string - minLength: 1 - example: "The plot is not very attractive." - examples: - description: | - A list of examples with labels, in the following format: - - `[["The movie is so interesting.", "Positive"], ["It is quite boring.", "Negative"], ...]` - - All the label strings will be normalized to be capitalized. - - You should specify either `examples` or `file`, but not both. - type: array - minItems: 2 - maxItems: 200 - items: - type: array - minItems: 2 - maxItems: 2 - items: - type: string - minLength: 1 - example: "[['Do not see this film.', 'Negative'], ['Smart, provocative and blisteringly funny.', 'Positive']]" - nullable: true - file: - description: | - The ID of the uploaded file that contains training examples. See [upload file](/docs/api-reference/files/upload) for how to upload a file of the desired format and purpose. - - You should specify either `examples` or `file`, but not both. - type: string - nullable: true - labels: - description: The set of categories being classified. If not specified, candidate labels will be automatically collected from the examples you provide. All the label strings will be normalized to be capitalized. - type: array - minItems: 2 - maxItems: 200 - default: null - items: - type: string - example: ["Positive", "Negative"] - nullable: true - search_model: *search_model_configuration - temperature: - description: - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - type: number - minimum: 0 - maximum: 2 - default: 0 - nullable: true - example: 0 - logprobs: *context_completions_logprobs_configuration - max_examples: - description: The maximum number of examples to be ranked by [Search](/docs/api-reference/searches/create) when using `file`. Setting it to a higher value leads to improved accuracy but with increased latency and cost. - type: integer - default: 200 - nullable: true - logit_bias: *completions_logit_bias - return_prompt: *return_prompt_configuration - return_metadata: *return_metadata_configuration - expand: *expand_configuration - user: *end_user_param_configuration - required: - - model - - query - - CreateClassificationResponse: - type: object - properties: - object: - type: string - model: - type: string - search_model: - type: string - completion: - type: string - label: - type: string - selected_examples: - type: array - items: - type: object - properties: - document: - type: integer - text: - type: string - label: - type: string - - CreateFineTuneRequest: - type: object - properties: - training_file: - description: | - The ID of an uploaded file that contains training data. - - See [upload file](/docs/api-reference/files/upload) for how to upload a file. - - Your dataset must be formatted as a JSONL file, where each training - example is a JSON object with the keys "prompt" and "completion". - Additionally, you must upload your file with the purpose `fine-tune`. - - See the [fine-tuning guide](/docs/guides/fine-tuning/creating-training-data) for more details. - type: string - example: "file-ajSREls59WBbvgSzJSVWxMCB" - validation_file: - description: | - The ID of an uploaded file that contains validation data. - - If you provide this file, the data is used to generate validation - metrics periodically during fine-tuning. These metrics can be viewed in - the [fine-tuning results file](/docs/guides/fine-tuning/analyzing-your-fine-tuned-model). - Your train and validation data should be mutually exclusive. - - Your dataset must be formatted as a JSONL file, where each validation - example is a JSON object with the keys "prompt" and "completion". - Additionally, you must upload your file with the purpose `fine-tune`. - - See the [fine-tuning guide](/docs/guides/fine-tuning/creating-training-data) for more details. - type: string - nullable: true - example: "file-XjSREls59WBbvgSzJSVWxMCa" - model: - description: | - The name of the base model to fine-tune. You can select one of "ada", - "babbage", "curie", "davinci", or a fine-tuned model created after 2022-04-21. - To learn more about these models, see the - [Models](https://platform.openai.com/docs/models) documentation. - default: "curie" - type: string - nullable: true - n_epochs: - description: | - The number of epochs to train the model for. An epoch refers to one - full cycle through the training dataset. - default: 4 - type: integer - nullable: true - batch_size: - description: | - The batch size to use for training. The batch size is the number of - training examples used to train a single forward and backward pass. - - By default, the batch size will be dynamically configured to be - ~0.2% of the number of examples in the training set, capped at 256 - - in general, we've found that larger batch sizes tend to work better - for larger datasets. - default: null - type: integer - nullable: true - learning_rate_multiplier: - description: | - The learning rate multiplier to use for training. - The fine-tuning learning rate is the original learning rate used for - pretraining multiplied by this value. - - By default, the learning rate multiplier is the 0.05, 0.1, or 0.2 - depending on final `batch_size` (larger learning rates tend to - perform better with larger batch sizes). We recommend experimenting - with values in the range 0.02 to 0.2 to see what produces the best - results. - default: null - type: number - nullable: true - prompt_loss_weight: - description: | - The weight to use for loss on the prompt tokens. This controls how - much the model tries to learn to generate the prompt (as compared - to the completion which always has a weight of 1.0), and can add - a stabilizing effect to training when completions are short. - - If prompts are extremely long (relative to completions), it may make - sense to reduce this weight so as to avoid over-prioritizing - learning the prompt. - default: 0.01 - type: number - nullable: true - compute_classification_metrics: - description: | - If set, we calculate classification-specific metrics such as accuracy - and F-1 score using the validation set at the end of every epoch. - These metrics can be viewed in the [results file](/docs/guides/fine-tuning/analyzing-your-fine-tuned-model). - - In order to compute classification metrics, you must provide a - `validation_file`. Additionally, you must - specify `classification_n_classes` for multiclass classification or - `classification_positive_class` for binary classification. - type: boolean - default: false - nullable: true - classification_n_classes: - description: | - The number of classes in a classification task. - - This parameter is required for multiclass classification. - type: integer - default: null - nullable: true - classification_positive_class: - description: | - The positive class in binary classification. - - This parameter is needed to generate precision, recall, and F1 - metrics when doing binary classification. - type: string - default: null - nullable: true - classification_betas: - description: | - If this is provided, we calculate F-beta scores at the specified - beta values. The F-beta score is a generalization of F-1 score. - This is only used for binary classification. - - With a beta of 1 (i.e. the F-1 score), precision and recall are - given the same weight. A larger beta score puts more weight on - recall and less on precision. A smaller beta score puts more weight - on precision and less on recall. - type: array - items: - type: number - example: [0.6, 1, 1.5, 2] - default: null - nullable: true - suffix: - description: | - A string of up to 40 characters that will be added to your fine-tuned model name. - - For example, a `suffix` of "custom-model-name" would produce a model name like `ada:ft-your-org:custom-model-name-2022-02-15-04-21-04`. - type: string - minLength: 1 - maxLength: 40 - default: null - nullable: true - required: - - training_file - - ListFineTunesResponse: - type: object - properties: - object: - type: string - data: - type: array - items: - $ref: '#/components/schemas/FineTune' - required: - - object - - data - - ListFineTuneEventsResponse: - type: object - properties: - object: - type: string - data: - type: array - items: - $ref: '#/components/schemas/FineTuneEvent' - required: - - object - - data - - CreateEmbeddingRequest: - type: object - additionalProperties: false - properties: - model: *model_configuration - input: - description: | - Input text to get embeddings for, encoded as a string or array of tokens. To get embeddings for multiple inputs in a single request, pass an array of strings or array of token arrays. Each input must not exceed 8192 tokens in length. - example: "The quick brown fox jumped over the lazy dog" - oneOf: - - type: string - default: '' - example: "This is a test." - - type: array - items: - type: string - default: '' - example: "This is a test." - - type: array - minItems: 1 - items: - type: integer - example: "[1212, 318, 257, 1332, 13]" - - type: array - minItems: 1 - items: - type: array - minItems: 1 - items: - type: integer - example: "[[1212, 318, 257, 1332, 13]]" - user: *end_user_param_configuration - required: - - model - - input - - CreateEmbeddingResponse: - type: object - properties: - object: - type: string - model: - type: string - data: - type: array - items: - type: object - properties: - index: - type: integer - object: - type: string - embedding: - type: array - items: - type: number - required: - - index - - object - - embedding - usage: - type: object - properties: - prompt_tokens: - type: integer - total_tokens: - type: integer - required: - - prompt_tokens - - total_tokens - required: - - object - - model - - data - - usage - - CreateTranscriptionRequest: - type: object - additionalProperties: false - properties: - file: - description: | - The audio file to transcribe, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm. - type: string - format: binary - model: - description: | - ID of the model to use. Only `whisper-1` is currently available. - type: string - prompt: - description: | - An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language. - type: string - response_format: - description: | - The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt. - type: string - default: json - temperature: - description: | - The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit. - type: number - default: 0 - language: - description: | - The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format will improve accuracy and latency. - type: string - required: - - file - - model - - # Note: This does not currently support the non-default response format types. - CreateTranscriptionResponse: - type: object - properties: - text: - type: string - required: - - text - - CreateTranslationRequest: - type: object - additionalProperties: false - properties: - file: - description: | - The audio file to translate, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm. - type: string - format: binary - model: - description: | - ID of the model to use. Only `whisper-1` is currently available. - type: string - prompt: - description: | - An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English. - type: string - response_format: - description: | - The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt. - type: string - default: json - temperature: - description: | - The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit. - type: number - default: 0 - required: - - file - - model - - # Note: This does not currently support the non-default response format types. - CreateTranslationResponse: - type: object - properties: - text: - type: string - required: - - text - - Engine: - title: Engine - properties: - id: - type: string - object: - type: string - created: - type: integer - nullable: true - ready: - type: boolean - required: - - id - - object - - created - - ready - - Model: - title: Model - properties: - id: - type: string - object: - type: string - created: - type: integer - owned_by: - type: string - required: - - id - - object - - created - - owned_by - - OpenAIFile: - title: OpenAIFile - properties: - id: - type: string - object: - type: string - bytes: - type: integer - created_at: - type: integer - filename: - type: string - purpose: - type: string - status: - type: string - status_details: - type: object - nullable: true - required: - - id - - object - - bytes - - created_at - - filename - - purpose - - FineTune: - title: FineTune - properties: - id: - type: string - object: - type: string - created_at: - type: integer - updated_at: - type: integer - model: - type: string - fine_tuned_model: - type: string - nullable: true - organization_id: - type: string - status: - type: string - hyperparams: - type: object - training_files: - type: array - items: - $ref: '#/components/schemas/OpenAIFile' - validation_files: - type: array - items: - $ref: '#/components/schemas/OpenAIFile' - result_files: - type: array - items: - $ref: '#/components/schemas/OpenAIFile' - events: - type: array - items: - $ref: '#/components/schemas/FineTuneEvent' - required: - - id - - object - - created_at - - updated_at - - model - - fine_tuned_model - - organization_id - - status - - hyperparams - - training_files - - validation_files - - result_files - - FineTuneEvent: - title: FineTuneEvent - properties: - object: - type: string - created_at: - type: integer - level: - type: string - message: - type: string - required: - - object - - created_at - - level - - message - -x-oaiMeta: - groups: - - id: models - title: Models - description: | - List and describe the various models available in the API. You can refer to the [Models](/docs/models) documentation to understand what models are available and the differences between them. - - id: completions - title: Completions - description: | - Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position. - - id: chat - title: Chat - description: | - Given a chat conversation, the model will return a chat completion response. - - id: edits - title: Edits - description: | - Given a prompt and an instruction, the model will return an edited version of the prompt. - - id: images - title: Images - description: | - Given a prompt and/or an input image, the model will generate a new image. - - Related guide: [Image generation](/docs/guides/images) - - id: embeddings - title: Embeddings - description: | - Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms. - - Related guide: [Embeddings](/docs/guides/embeddings) - - id: audio - title: Audio - description: | - Learn how to turn audio into text. - - Related guide: [Speech to text](/docs/guides/speech-to-text) - - id: files - title: Files - description: | - Files are used to upload documents that can be used with features like [Fine-tuning](/docs/api-reference/fine-tunes). - - id: fine-tunes - title: Fine-tunes - description: | - Manage fine-tuning jobs to tailor a model to your specific training data. - - Related guide: [Fine-tune models](/docs/guides/fine-tuning) - - id: moderations - title: Moderations - description: | - Given a input text, outputs if the model classifies it as violating OpenAI's content policy. - - Related guide: [Moderations](/docs/guides/moderation) - - id: searches - title: Searches - warning: - title: This endpoint is deprecated and will be removed on December 3rd, 2022 - message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6272952-search-transition-guide). - description: | - Given a query and a set of documents or labels, the model ranks each document based on its semantic similarity to the provided query. - - Related guide: [Search](/docs/guides/search) - - id: classifications - title: Classifications - warning: - title: This endpoint is deprecated and will be removed on December 3rd, 2022 - message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6272941-classifications-transition-guide). - description: | - Given a query and a set of labeled examples, the model will predict the most likely label for the query. Useful as a drop-in replacement for any ML classification or text-to-label task. - - Related guide: [Classification](/docs/guides/classifications) - - id: answers - title: Answers - warning: - title: This endpoint is deprecated and will be removed on December 3rd, 2022 - message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6233728-answers-transition-guide). - description: | - Given a question, a set of documents, and some examples, the API generates an answer to the question based on the information in the set of documents. This is useful for question-answering applications on sources of truth, like company documentation or a knowledge base. - - Related guide: [Question answering](/docs/guides/answers) - - id: engines - title: Engines - description: These endpoints describe and provide access to the various engines available in the API. - warning: - title: The Engines endpoints are deprecated. - message: Please use their replacement, [Models](/docs/api-reference/models), instead. [Learn more](https://help.openai.com/TODO). diff --git a/docs/data/state_of_the_union.txt b/docs/data/state_of_the_union.txt deleted file mode 100644 index d50175de4..000000000 --- a/docs/data/state_of_the_union.txt +++ /dev/null @@ -1,723 +0,0 @@ -Madam Speaker, Madam Vice President, our First Lady and Second Gentleman. Members of Congress and the Cabinet. Justices of the Supreme Court. My fellow Americans. - -Last year COVID-19 kept us apart. This year we are finally together again. - -Tonight, we meet as Democrats Republicans and Independents. But most importantly as Americans. - -With a duty to one another to the American people to the Constitution. - -And with an unwavering resolve that freedom will always triumph over tyranny. - -Six days ago, Russia’s Vladimir Putin sought to shake the foundations of the free world thinking he could make it bend to his menacing ways. But he badly miscalculated. - -He thought he could roll into Ukraine and the world would roll over. Instead he met a wall of strength he never imagined. - -He met the Ukrainian people. - -From President Zelenskyy to every Ukrainian, their fearlessness, their courage, their determination, inspires the world. - -Groups of citizens blocking tanks with their bodies. Everyone from students to retirees teachers turned soldiers defending their homeland. - -In this struggle as President Zelenskyy said in his speech to the European Parliament “Light will win over darkness.” The Ukrainian Ambassador to the United States is here tonight. - -Let each of us here tonight in this Chamber send an unmistakable signal to Ukraine and to the world. - -Please rise if you are able and show that, Yes, we the United States of America stand with the Ukrainian people. - -Throughout our history we’ve learned this lesson when dictators do not pay a price for their aggression they cause more chaos. - -They keep moving. - -And the costs and the threats to America and the world keep rising. - -That’s why the NATO Alliance was created to secure peace and stability in Europe after World War 2. - -The United States is a member along with 29 other nations. - -It matters. American diplomacy matters. American resolve matters. - -Putin’s latest attack on Ukraine was premeditated and unprovoked. - -He rejected repeated efforts at diplomacy. - -He thought the West and NATO wouldn’t respond. And he thought he could divide us at home. Putin was wrong. We were ready. Here is what we did. - -We prepared extensively and carefully. - -We spent months building a coalition of other freedom-loving nations from Europe and the Americas to Asia and Africa to confront Putin. - -I spent countless hours unifying our European allies. We shared with the world in advance what we knew Putin was planning and precisely how he would try to falsely justify his aggression. - -We countered Russia’s lies with truth. - -And now that he has acted the free world is holding him accountable. - -Along with twenty-seven members of the European Union including France, Germany, Italy, as well as countries like the United Kingdom, Canada, Japan, Korea, Australia, New Zealand, and many others, even Switzerland. - -We are inflicting pain on Russia and supporting the people of Ukraine. Putin is now isolated from the world more than ever. - -Together with our allies –we are right now enforcing powerful economic sanctions. - -We are cutting off Russia’s largest banks from the international financial system. - -Preventing Russia’s central bank from defending the Russian Ruble making Putin’s $630 Billion “war fund” worthless. - -We are choking off Russia’s access to technology that will sap its economic strength and weaken its military for years to come. - -Tonight I say to the Russian oligarchs and corrupt leaders who have bilked billions of dollars off this violent regime no more. - -The U.S. Department of Justice is assembling a dedicated task force to go after the crimes of Russian oligarchs. - -We are joining with our European allies to find and seize your yachts your luxury apartments your private jets. We are coming for your ill-begotten gains. - -And tonight I am announcing that we will join our allies in closing off American air space to all Russian flights – further isolating Russia – and adding an additional squeeze –on their economy. The Ruble has lost 30% of its value. - -The Russian stock market has lost 40% of its value and trading remains suspended. Russia’s economy is reeling and Putin alone is to blame. - -Together with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. - -We are giving more than $1 Billion in direct assistance to Ukraine. - -And we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. - -Let me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. - -Our forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies – in the event that Putin decides to keep moving west. - -For that purpose we’ve mobilized American ground forces, air squadrons, and ship deployments to protect NATO countries including Poland, Romania, Latvia, Lithuania, and Estonia. - -As I have made crystal clear the United States and our Allies will defend every inch of territory of NATO countries with the full force of our collective power. - -And we remain clear-eyed. The Ukrainians are fighting back with pure courage. But the next few days weeks, months, will be hard on them. - -Putin has unleashed violence and chaos. But while he may make gains on the battlefield – he will pay a continuing high price over the long run. - -And a proud Ukrainian people, who have known 30 years of independence, have repeatedly shown that they will not tolerate anyone who tries to take their country backwards. - -To all Americans, I will be honest with you, as I’ve always promised. A Russian dictator, invading a foreign country, has costs around the world. - -And I’m taking robust action to make sure the pain of our sanctions is targeted at Russia’s economy. And I will use every tool at our disposal to protect American businesses and consumers. - -Tonight, I can announce that the United States has worked with 30 other countries to release 60 Million barrels of oil from reserves around the world. - -America will lead that effort, releasing 30 Million barrels from our own Strategic Petroleum Reserve. And we stand ready to do more if necessary, unified with our allies. - -These steps will help blunt gas prices here at home. And I know the news about what’s happening can seem alarming. - -But I want you to know that we are going to be okay. - -When the history of this era is written Putin’s war on Ukraine will have left Russia weaker and the rest of the world stronger. - -While it shouldn’t have taken something so terrible for people around the world to see what’s at stake now everyone sees it clearly. - -We see the unity among leaders of nations and a more unified Europe a more unified West. And we see unity among the people who are gathering in cities in large crowds around the world even in Russia to demonstrate their support for Ukraine. - -In the battle between democracy and autocracy, democracies are rising to the moment, and the world is clearly choosing the side of peace and security. - -This is a real test. It’s going to take time. So let us continue to draw inspiration from the iron will of the Ukrainian people. - -To our fellow Ukrainian Americans who forge a deep bond that connects our two nations we stand with you. - -Putin may circle Kyiv with tanks, but he will never gain the hearts and souls of the Ukrainian people. - -He will never extinguish their love of freedom. He will never weaken the resolve of the free world. - -We meet tonight in an America that has lived through two of the hardest years this nation has ever faced. - -The pandemic has been punishing. - -And so many families are living paycheck to paycheck, struggling to keep up with the rising cost of food, gas, housing, and so much more. - -I understand. - -I remember when my Dad had to leave our home in Scranton, Pennsylvania to find work. I grew up in a family where if the price of food went up, you felt it. - -That’s why one of the first things I did as President was fight to pass the American Rescue Plan. - -Because people were hurting. We needed to act, and we did. - -Few pieces of legislation have done more in a critical moment in our history to lift us out of crisis. - -It fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. - -Helped put food on their table, keep a roof over their heads, and cut the cost of health insurance. - -And as my Dad used to say, it gave people a little breathing room. - -And unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people—and left no one behind. - -And it worked. It created jobs. Lots of jobs. - -In fact—our economy created over 6.5 Million new jobs just last year, more jobs created in one year -than ever before in the history of America. - -Our economy grew at a rate of 5.7% last year, the strongest growth in nearly 40 years, the first step in bringing fundamental change to an economy that hasn’t worked for the working people of this nation for too long. - -For the past 40 years we were told that if we gave tax breaks to those at the very top, the benefits would trickle down to everyone else. - -But that trickle-down theory led to weaker economic growth, lower wages, bigger deficits, and the widest gap between those at the top and everyone else in nearly a century. - -Vice President Harris and I ran for office with a new economic vision for America. - -Invest in America. Educate Americans. Grow the workforce. Build the economy from the bottom up -and the middle out, not from the top down. - -Because we know that when the middle class grows, the poor have a ladder up and the wealthy do very well. - -America used to have the best roads, bridges, and airports on Earth. - -Now our infrastructure is ranked 13th in the world. - -We won’t be able to compete for the jobs of the 21st Century if we don’t fix that. - -That’s why it was so important to pass the Bipartisan Infrastructure Law—the most sweeping investment to rebuild America in history. - -This was a bipartisan effort, and I want to thank the members of both parties who worked to make it happen. - -We’re done talking about infrastructure weeks. - -We’re going to have an infrastructure decade. - -It is going to transform America and put us on a path to win the economic competition of the 21st Century that we face with the rest of the world—particularly with China. - -As I’ve told Xi Jinping, it is never a good bet to bet against the American people. - -We’ll create good jobs for millions of Americans, modernizing roads, airports, ports, and waterways all across America. - -And we’ll do it all to withstand the devastating effects of the climate crisis and promote environmental justice. - -We’ll build a national network of 500,000 electric vehicle charging stations, begin to replace poisonous lead pipes—so every child—and every American—has clean water to drink at home and at school, provide affordable high-speed internet for every American—urban, suburban, rural, and tribal communities. - -4,000 projects have already been announced. - -And tonight, I’m announcing that this year we will start fixing over 65,000 miles of highway and 1,500 bridges in disrepair. - -When we use taxpayer dollars to rebuild America – we are going to Buy American: buy American products to support American jobs. - -The federal government spends about $600 Billion a year to keep the country safe and secure. - -There’s been a law on the books for almost a century -to make sure taxpayers’ dollars support American jobs and businesses. - -Every Administration says they’ll do it, but we are actually doing it. - -We will buy American to make sure everything from the deck of an aircraft carrier to the steel on highway guardrails are made in America. - -But to compete for the best jobs of the future, we also need to level the playing field with China and other competitors. - -That’s why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. - -Let me give you one example of why it’s so important to pass it. - -If you travel 20 miles east of Columbus, Ohio, you’ll find 1,000 empty acres of land. - -It won’t look like much, but if you stop and look closely, you’ll see a “Field of dreams,” the ground on which America’s future will be built. - -This is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor “mega site”. - -Up to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. - -Some of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that power the world and our everyday lives. - -Smartphones. The Internet. Technology we have yet to invent. - -But that’s just the beginning. - -Intel’s CEO, Pat Gelsinger, who is here tonight, told me they are ready to increase their investment from -$20 billion to $100 billion. - -That would be one of the biggest investments in manufacturing in American history. - -And all they’re waiting for is for you to pass this bill. - -So let’s not wait any longer. Send it to my desk. I’ll sign it. - -And we will really take off. - -And Intel is not alone. - -There’s something happening in America. - -Just look around and you’ll see an amazing story. - -The rebirth of the pride that comes from stamping products “Made In America.” The revitalization of American manufacturing. - -Companies are choosing to build new factories here, when just a few years ago, they would have built them overseas. - -That’s what is happening. Ford is investing $11 billion to build electric vehicles, creating 11,000 jobs across the country. - -GM is making the largest investment in its history—$7 billion to build electric vehicles, creating 4,000 jobs in Michigan. - -All told, we created 369,000 new manufacturing jobs in America just last year. - -Powered by people I’ve met like JoJo Burgess, from generations of union steelworkers from Pittsburgh, who’s here with us tonight. - -As Ohio Senator Sherrod Brown says, “It’s time to bury the label “Rust Belt.” - -It’s time. - -But with all the bright spots in our economy, record job growth and higher wages, too many families are struggling to keep up with the bills. - -Inflation is robbing them of the gains they might otherwise feel. - -I get it. That’s why my top priority is getting prices under control. - -Look, our economy roared back faster than most predicted, but the pandemic meant that businesses had a hard time hiring enough workers to keep up production in their factories. - -The pandemic also disrupted global supply chains. - -When factories close, it takes longer to make goods and get them from the warehouse to the store, and prices go up. - -Look at cars. - -Last year, there weren’t enough semiconductors to make all the cars that people wanted to buy. - -And guess what, prices of automobiles went up. - -So—we have a choice. - -One way to fight inflation is to drive down wages and make Americans poorer. - -I have a better plan to fight inflation. - -Lower your costs, not your wages. - -Make more cars and semiconductors in America. - -More infrastructure and innovation in America. - -More goods moving faster and cheaper in America. - -More jobs where you can earn a good living in America. - -And instead of relying on foreign supply chains, let’s make it in America. - -Economists call it “increasing the productive capacity of our economy.” - -I call it building a better America. - -My plan to fight inflation will lower your costs and lower the deficit. - -17 Nobel laureates in economics say my plan will ease long-term inflationary pressures. Top business leaders and most Americans support my plan. And here’s the plan: - -First – cut the cost of prescription drugs. Just look at insulin. One in ten Americans has diabetes. In Virginia, I met a 13-year-old boy named Joshua Davis. - -He and his Dad both have Type 1 diabetes, which means they need insulin every day. Insulin costs about $10 a vial to make. - -But drug companies charge families like Joshua and his Dad up to 30 times more. I spoke with Joshua’s mom. - -Imagine what it’s like to look at your child who needs insulin and have no idea how you’re going to pay for it. - -What it does to your dignity, your ability to look your child in the eye, to be the parent you expect to be. - -Joshua is here with us tonight. Yesterday was his birthday. Happy birthday, buddy. - -For Joshua, and for the 200,000 other young people with Type 1 diabetes, let’s cap the cost of insulin at $35 a month so everyone can afford it. - -Drug companies will still do very well. And while we’re at it let Medicare negotiate lower prices for prescription drugs, like the VA already does. - -Look, the American Rescue Plan is helping millions of families on Affordable Care Act plans save $2,400 a year on their health care premiums. Let’s close the coverage gap and make those savings permanent. - -Second – cut energy costs for families an average of $500 a year by combatting climate change. - -Let’s provide investments and tax credits to weatherize your homes and businesses to be energy efficient and you get a tax credit; double America’s clean energy production in solar, wind, and so much more; lower the price of electric vehicles, saving you another $80 a month because you’ll never have to pay at the gas pump again. - -Third – cut the cost of child care. Many families pay up to $14,000 a year for child care per child. - -Middle-class and working families shouldn’t have to pay more than 7% of their income for care of young children. - -My plan will cut the cost in half for most families and help parents, including millions of women, who left the workforce during the pandemic because they couldn’t afford child care, to be able to get back to work. - -My plan doesn’t stop there. It also includes home and long-term care. More affordable housing. And Pre-K for every 3- and 4-year-old. - -All of these will lower costs. - -And under my plan, nobody earning less than $400,000 a year will pay an additional penny in new taxes. Nobody. - -The one thing all Americans agree on is that the tax system is not fair. We have to fix it. - -I’m not looking to punish anyone. But let’s make sure corporations and the wealthiest Americans start paying their fair share. - -Just last year, 55 Fortune 500 corporations earned $40 billion in profits and paid zero dollars in federal income tax. - -That’s simply not fair. That’s why I’ve proposed a 15% minimum tax rate for corporations. - -We got more than 130 countries to agree on a global minimum tax rate so companies can’t get out of paying their taxes at home by shipping jobs and factories overseas. - -That’s why I’ve proposed closing loopholes so the very wealthy don’t pay a lower tax rate than a teacher or a firefighter. - -So that’s my plan. It will grow the economy and lower costs for families. - -So what are we waiting for? Let’s get this done. And while you’re at it, confirm my nominees to the Federal Reserve, which plays a critical role in fighting inflation. - -My plan will not only lower costs to give families a fair shot, it will lower the deficit. - -The previous Administration not only ballooned the deficit with tax cuts for the very wealthy and corporations, it undermined the watchdogs whose job was to keep pandemic relief funds from being wasted. - -But in my administration, the watchdogs have been welcomed back. - -We’re going after the criminals who stole billions in relief money meant for small businesses and millions of Americans. - -And tonight, I’m announcing that the Justice Department will name a chief prosecutor for pandemic fraud. - -By the end of this year, the deficit will be down to less than half what it was before I took office. - -The only president ever to cut the deficit by more than one trillion dollars in a single year. - -Lowering your costs also means demanding more competition. - -I’m a capitalist, but capitalism without competition isn’t capitalism. - -It’s exploitation—and it drives up prices. - -When corporations don’t have to compete, their profits go up, your prices go up, and small businesses and family farmers and ranchers go under. - -We see it happening with ocean carriers moving goods in and out of America. - -During the pandemic, these foreign-owned companies raised prices by as much as 1,000% and made record profits. - -Tonight, I’m announcing a crackdown on these companies overcharging American businesses and consumers. - -And as Wall Street firms take over more nursing homes, quality in those homes has gone down and costs have gone up. - -That ends on my watch. - -Medicare is going to set higher standards for nursing homes and make sure your loved ones get the care they deserve and expect. - -We’ll also cut costs and keep the economy going strong by giving workers a fair shot, provide more training and apprenticeships, hire them based on their skills not degrees. - -Let’s pass the Paycheck Fairness Act and paid leave. - -Raise the minimum wage to $15 an hour and extend the Child Tax Credit, so no one has to raise a family in poverty. - -Let’s increase Pell Grants and increase our historic support of HBCUs, and invest in what Jill—our First Lady who teaches full-time—calls America’s best-kept secret: community colleges. - -And let’s pass the PRO Act when a majority of workers want to form a union—they shouldn’t be stopped. - -When we invest in our workers, when we build the economy from the bottom up and the middle out together, we can do something we haven’t done in a long time: build a better America. - -For more than two years, COVID-19 has impacted every decision in our lives and the life of the nation. - -And I know you’re tired, frustrated, and exhausted. - -But I also know this. - -Because of the progress we’ve made, because of your resilience and the tools we have, tonight I can say -we are moving forward safely, back to more normal routines. - -We’ve reached a new moment in the fight against COVID-19, with severe cases down to a level not seen since last July. - -Just a few days ago, the Centers for Disease Control and Prevention—the CDC—issued new mask guidelines. - -Under these new guidelines, most Americans in most of the country can now be mask free. - -And based on the projections, more of the country will reach that point across the next couple of weeks. - -Thanks to the progress we have made this past year, COVID-19 need no longer control our lives. - -I know some are talking about “living with COVID-19”. Tonight – I say that we will never just accept living with COVID-19. - -We will continue to combat the virus as we do other diseases. And because this is a virus that mutates and spreads, we will stay on guard. - -Here are four common sense steps as we move forward safely. - -First, stay protected with vaccines and treatments. We know how incredibly effective vaccines are. If you’re vaccinated and boosted you have the highest degree of protection. - -We will never give up on vaccinating more Americans. Now, I know parents with kids under 5 are eager to see a vaccine authorized for their children. - -The scientists are working hard to get that done and we’ll be ready with plenty of vaccines when they do. - -We’re also ready with anti-viral treatments. If you get COVID-19, the Pfizer pill reduces your chances of ending up in the hospital by 90%. - -We’ve ordered more of these pills than anyone in the world. And Pfizer is working overtime to get us 1 Million pills this month and more than double that next month. - -And we’re launching the “Test to Treat” initiative so people can get tested at a pharmacy, and if they’re positive, receive antiviral pills on the spot at no cost. - -If you’re immunocompromised or have some other vulnerability, we have treatments and free high-quality masks. - -We’re leaving no one behind or ignoring anyone’s needs as we move forward. - -And on testing, we have made hundreds of millions of tests available for you to order for free. - -Even if you already ordered free tests tonight, I am announcing that you can order more from covidtests.gov starting next week. - -Second – we must prepare for new variants. Over the past year, we’ve gotten much better at detecting new variants. - -If necessary, we’ll be able to deploy new vaccines within 100 days instead of many more months or years. - -And, if Congress provides the funds we need, we’ll have new stockpiles of tests, masks, and pills ready if needed. - -I cannot promise a new variant won’t come. But I can promise you we’ll do everything within our power to be ready if it does. - -Third – we can end the shutdown of schools and businesses. We have the tools we need. - -It’s time for Americans to get back to work and fill our great downtowns again. People working from home can feel safe to begin to return to the office. - -We’re doing that here in the federal government. The vast majority of federal workers will once again work in person. - -Our schools are open. Let’s keep it that way. Our kids need to be in school. - -And with 75% of adult Americans fully vaccinated and hospitalizations down by 77%, most Americans can remove their masks, return to work, stay in the classroom, and move forward safely. - -We achieved this because we provided free vaccines, treatments, tests, and masks. - -Of course, continuing this costs money. - -I will soon send Congress a request. - -The vast majority of Americans have used these tools and may want to again, so I expect Congress to pass it quickly. - -Fourth, we will continue vaccinating the world. - -We’ve sent 475 Million vaccine doses to 112 countries, more than any other nation. - -And we won’t stop. - -We have lost so much to COVID-19. Time with one another. And worst of all, so much loss of life. - -Let’s use this moment to reset. Let’s stop looking at COVID-19 as a partisan dividing line and see it for what it is: A God-awful disease. - -Let’s stop seeing each other as enemies, and start seeing each other for who we really are: Fellow Americans. - -We can’t change how divided we’ve been. But we can change how we move forward—on COVID-19 and other issues we must face together. - -I recently visited the New York City Police Department days after the funerals of Officer Wilbert Mora and his partner, Officer Jason Rivera. - -They were responding to a 9-1-1 call when a man shot and killed them with a stolen gun. - -Officer Mora was 27 years old. - -Officer Rivera was 22. - -Both Dominican Americans who’d grown up on the same streets they later chose to patrol as police officers. - -I spoke with their families and told them that we are forever in debt for their sacrifice, and we will carry on their mission to restore the trust and safety every community deserves. - -I’ve worked on these issues a long time. - -I know what works: Investing in crime preventionand community police officers who’ll walk the beat, who’ll know the neighborhood, and who can restore trust and safety. - -So let’s not abandon our streets. Or choose between safety and equal justice. - -Let’s come together to protect our communities, restore trust, and hold law enforcement accountable. - -That’s why the Justice Department required body cameras, banned chokeholds, and restricted no-knock warrants for its officers. - -That’s why the American Rescue Plan provided $350 Billion that cities, states, and counties can use to hire more police and invest in proven strategies like community violence interruption—trusted messengers breaking the cycle of violence and trauma and giving young people hope. - -We should all agree: The answer is not to Defund the police. The answer is to FUND the police with the resources and training they need to protect our communities. - -I ask Democrats and Republicans alike: Pass my budget and keep our neighborhoods safe. - -And I will keep doing everything in my power to crack down on gun trafficking and ghost guns you can buy online and make at home—they have no serial numbers and can’t be traced. - -And I ask Congress to pass proven measures to reduce gun violence. Pass universal background checks. Why should anyone on a terrorist list be able to purchase a weapon? - -Ban assault weapons and high-capacity magazines. - -Repeal the liability shield that makes gun manufacturers the only industry in America that can’t be sued. - -These laws don’t infringe on the Second Amendment. They save lives. - -The most fundamental right in America is the right to vote – and to have it counted. And it’s under assault. - -In state after state, new laws have been passed, not only to suppress the vote, but to subvert entire elections. - -We cannot let this happen. - -Tonight. I call on the Senate to: Pass the Freedom to Vote Act. Pass the John Lewis Voting Rights Act. And while you’re at it, pass the Disclose Act so Americans can know who is funding our elections. - -Tonight, I’d like to honor someone who has dedicated his life to serve this country: Justice Stephen Breyer—an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court. Justice Breyer, thank you for your service. - -One of the most serious constitutional responsibilities a President has is nominating someone to serve on the United States Supreme Court. - -And I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketanji Brown Jackson. One of our nation’s top legal minds, who will continue Justice Breyer’s legacy of excellence. - -A former top litigator in private practice. A former federal public defender. And from a family of public school educators and police officers. A consensus builder. Since she’s been nominated, she’s received a broad range of support—from the Fraternal Order of Police to former judges appointed by Democrats and Republicans. - -And if we are to advance liberty and justice, we need to secure the Border and fix the immigration system. - -We can do both. At our border, we’ve installed new technology like cutting-edge scanners to better detect drug smuggling. - -We’ve set up joint patrols with Mexico and Guatemala to catch more human traffickers. - -We’re putting in place dedicated immigration judges so families fleeing persecution and violence can have their cases heard faster. - -We’re securing commitments and supporting partners in South and Central America to host more refugees and secure their own borders. - -We can do all this while keeping lit the torch of liberty that has led generations of immigrants to this land—my forefathers and so many of yours. - -Provide a pathway to citizenship for Dreamers, those on temporary status, farm workers, and essential workers. - -Revise our laws so businesses have the workers they need and families don’t wait decades to reunite. - -It’s not only the right thing to do—it’s the economically smart thing to do. - -That’s why immigration reform is supported by everyone from labor unions to religious leaders to the U.S. Chamber of Commerce. - -Let’s get it done once and for all. - -Advancing liberty and justice also requires protecting the rights of women. - -The constitutional right affirmed in Roe v. Wade—standing precedent for half a century—is under attack as never before. - -If we want to go forward—not backward—we must protect access to health care. Preserve a woman’s right to choose. And let’s continue to advance maternal health care in America. - -And for our LGBTQ+ Americans, let’s finally get the bipartisan Equality Act to my desk. The onslaught of state laws targeting transgender Americans and their families is wrong. - -As I said last year, especially to our younger transgender Americans, I will always have your back as your President, so you can be yourself and reach your God-given potential. - -While it often appears that we never agree, that isn’t true. I signed 80 bipartisan bills into law last year. From preventing government shutdowns to protecting Asian-Americans from still-too-common hate crimes to reforming military justice. - -And soon, we’ll strengthen the Violence Against Women Act that I first wrote three decades ago. It is important for us to show the nation that we can come together and do big things. - -So tonight I’m offering a Unity Agenda for the Nation. Four big things we can do together. - -First, beat the opioid epidemic. - -There is so much we can do. Increase funding for prevention, treatment, harm reduction, and recovery. - -Get rid of outdated rules that stop doctors from prescribing treatments. And stop the flow of illicit drugs by working with state and local law enforcement to go after traffickers. - -If you’re suffering from addiction, know you are not alone. I believe in recovery, and I celebrate the 23 million Americans in recovery. - -Second, let’s take on mental health. Especially among our children, whose lives and education have been turned upside down. - -The American Rescue Plan gave schools money to hire teachers and help students make up for lost learning. - -I urge every parent to make sure your school does just that. And we can all play a part—sign up to be a tutor or a mentor. - -Children were also struggling before the pandemic. Bullying, violence, trauma, and the harms of social media. - -As Frances Haugen, who is here with us tonight, has shown, we must hold social media platforms accountable for the national experiment they’re conducting on our children for profit. - -It’s time to strengthen privacy protections, ban targeted advertising to children, demand tech companies stop collecting personal data on our children. - -And let’s get all Americans the mental health services they need. More people they can turn to for help, and full parity between physical and mental health care. - -Third, support our veterans. - -Veterans are the best of us. - -I’ve always believed that we have a sacred obligation to equip all those we send to war and care for them and their families when they come home. - -My administration is providing assistance with job training and housing, and now helping lower-income veterans get VA care debt-free. - -Our troops in Iraq and Afghanistan faced many dangers. - -One was stationed at bases and breathing in toxic smoke from “burn pits” that incinerated wastes of war—medical and hazard material, jet fuel, and more. - -When they came home, many of the world’s fittest and best trained warriors were never the same. - -Headaches. Numbness. Dizziness. - -A cancer that would put them in a flag-draped coffin. - -I know. - -One of those soldiers was my son Major Beau Biden. - -We don’t know for sure if a burn pit was the cause of his brain cancer, or the diseases of so many of our troops. - -But I’m committed to finding out everything we can. - -Committed to military families like Danielle Robinson from Ohio. - -The widow of Sergeant First Class Heath Robinson. - -He was born a soldier. Army National Guard. Combat medic in Kosovo and Iraq. - -Stationed near Baghdad, just yards from burn pits the size of football fields. - -Heath’s widow Danielle is here with us tonight. They loved going to Ohio State football games. He loved building Legos with their daughter. - -But cancer from prolonged exposure to burn pits ravaged Heath’s lungs and body. - -Danielle says Heath was a fighter to the very end. - -He didn’t know how to stop fighting, and neither did she. - -Through her pain she found purpose to demand we do better. - -Tonight, Danielle—we are. - -The VA is pioneering new ways of linking toxic exposures to diseases, already helping more veterans get benefits. - -And tonight, I’m announcing we’re expanding eligibility to veterans suffering from nine respiratory cancers. - -I’m also calling on Congress: pass a law to make sure veterans devastated by toxic exposures in Iraq and Afghanistan finally get the benefits and comprehensive health care they deserve. - -And fourth, let’s end cancer as we know it. - -This is personal to me and Jill, to Kamala, and to so many of you. - -Cancer is the #2 cause of death in America–second only to heart disease. - -Last month, I announced our plan to supercharge -the Cancer Moonshot that President Obama asked me to lead six years ago. - -Our goal is to cut the cancer death rate by at least 50% over the next 25 years, turn more cancers from death sentences into treatable diseases. - -More support for patients and families. - -To get there, I call on Congress to fund ARPA-H, the Advanced Research Projects Agency for Health. - -It’s based on DARPA—the Defense Department project that led to the Internet, GPS, and so much more. - -ARPA-H will have a singular purpose—to drive breakthroughs in cancer, Alzheimer’s, diabetes, and more. - -A unity agenda for the nation. - -We can do this. - -My fellow Americans—tonight , we have gathered in a sacred space—the citadel of our democracy. - -In this Capitol, generation after generation, Americans have debated great questions amid great strife, and have done great things. - -We have fought for freedom, expanded liberty, defeated totalitarianism and terror. - -And built the strongest, freest, and most prosperous nation the world has ever known. - -Now is the hour. - -Our moment of responsibility. - -Our test of resolve and conscience, of history itself. - -It is in this moment that our character is formed. Our purpose is found. Our future is forged. - -Well I know this nation. - -We will meet the test. - -To protect freedom and liberty, to expand fairness and opportunity. - -We will save democracy. - -As hard as these times have been, I am more optimistic about America today than I have been my whole life. - -Because I see the future that is within our grasp. - -Because I know there is simply nothing beyond our capacity. - -We are the only nation on Earth that has always turned every crisis we have faced into an opportunity. - -The only nation that can be defined by a single word: possibilities. - -So on this night, in our 245th year as a nation, I have come to report on the State of the Union. - -And my report is this: the State of the Union is strong—because you, the American people, are strong. - -We are stronger today than we were a year ago. - -And we will be stronger a year from now than we are today. - -Now is our moment to meet and overcome the challenges of our time. - -And we will, as one people. - -One America. - -The United States of America. - -May God bless you all. May God protect our troops. \ No newline at end of file diff --git a/docs/docs/components/agents.mdx b/docs/docs/components/agents.mdx new file mode 100644 index 000000000..47273bcc2 --- /dev/null +++ b/docs/docs/components/agents.mdx @@ -0,0 +1,82 @@ +# Agents + +Agents are components that use reasoning to make decisions and take actions, designed to autonomously perform tasks or provide services with some degree of “freedom” (or agency). They combine the power of LLM chaining processes with access to external tools such as APIs to interact with applications and accomplish tasks. + +--- + +### AgentInitializer + +The `AgentInitializer` component is a quick way to construct a zero-shot agent from a language model (LLM) and tools. + +**Params** + +- **LLM:** Language Model to use in the `AgentInitializer`. +- **Memory:** Used to add memory functionality to an agent. It allows the agent to store and retrieve information from previous conversations. +- **Tools:** Tools that the agent will have access to. +- **Agent:** The type of agent to be instantiated. Current supported: `zero-shot-react-description`, `react-docstore`, `self-ask-with-search,conversational-react-description` and `openai-functions`. + +--- + +### CSVAgent + +A `CSVAgent` is an agent that is designed to interact with CSV (Comma-Separated Values) files. CSV files are a common format for storing tabular data, where each row represents a record and each column represents a field. The CSV agent can perform various tasks, such as reading and writing CSV files, processing the data, and generating tables. It can extract information from the CSV file, manipulate the data, and perform operations like filtering, sorting, and aggregating. + +**Params** + +- **LLM:** Language Model to use in the `CSVAgent`. +- **path:** The file path to the CSV data. + +--- + +### JSONAgent + +The `JSONAgent` deals with JSON (JavaScript Object Notation) data. Similar to the CSVAgent, it works with a language model (LLM) and a toolkit designed for JSON manipulation. This agent can iteratively explore a JSON blob to find the information needed to answer the user's question. It can list keys, get values, and navigate through the structure of the JSON object. + +**Params** + +- **LLM:** Language Model to use in the `JSONAgent`. +- **Toolkit:** Toolkit that the agent will have access to. + +--- + +### SQLAgent + +A `SQLAgent` is an agent that is designed to interact with SQL databases. It is capable of performing various tasks, such as querying the database, retrieving data, and executing SQL statements. The agent can provide information about the structure of the database, including the tables and their schemas. It can also perform operations like inserting, updating, and deleting data in the database. The SQL agent is a helpful tool for managing and working with SQL databases efficiently. + +**Params** + +- **LLM:** Language Model to use in the `SQLAgent`. +- **database_uri:** A string representing the connection URI for the SQL database. + +--- + +### VectorStoreAgent + +The `VectorStoreAgent` is designed to work with a vector store – a data structure used for storing and querying vector-based representations of data. The `VectorStoreAgent` can query the vector store to find relevant information based on user inputs. + +**Params** + +- **LLM:** Language Model to use in the `VectorStoreAgent`. +- **Vector Store Info:** `VectorStoreInfo` to use in the `VectorStoreAgent`. + +--- + +### VectorStoreRouterAgent + +The `VectorStoreRouterAgent` is a custom agent that takes a vector store router as input. It is typically used when there’s a need to retrieve information from multiple vector stores. These can be connected through a `VectorStoreRouterToolkit` and sent over to the `VectorStoreRouterAgent`. An agent configured with multiple vector stores can route queries to the appropriate store based on the context. + +**Params** + +- **LLM:** Language Model to use in the `VectorStoreRouterAgent`. +- **Vector Store Router Toolkit:** `VectorStoreRouterToolkit` to use in the `VectorStoreRouterAgent`. + +--- + +### ZeroShotAgent + +The `ZeroShotAgent` is an agent that uses the ReAct framework to determine which tool to use based solely on the tool's description. It can be configured with any number of tools and requires a description for each tool. The agent is designed to be the most general-purpose action agent. It uses an `LLMChain` to determine which actions to take and in what order. + +**Params** + +- **Allowed Tools:** Tools that the agent will have access to. +- **LLM Chain:** LLM Chain to be used by the agent. \ No newline at end of file diff --git a/docs/docs/components/chains.mdx b/docs/docs/components/chains.mdx new file mode 100644 index 000000000..52de6c481 --- /dev/null +++ b/docs/docs/components/chains.mdx @@ -0,0 +1,137 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + +# Chains + +Chains, in the context of language models, refer to a series of calls made to a language model. It allows for the output of one call to be used as the input for another call. Different types of chains allow for different levels of complexity. Chains are useful for creating pipelines and executing specific scenarios. + +--- + +### CombineDocsChain + +The `CombineDocsChain` incorporates methods to combine or aggregate loaded documents for question-answering functionality. + +:::info + +Works as a proxy of LangChain’s [documents](https://python.langchain.com/docs/modules/chains/document/) chains generated by the `load_qa_chain` function. + +::: + +**Params** + +- **LLM:** Language Model to use in the chain. +- **chain_type:** The chain type to be used. Each one of them applies a different “combination strategy”. + - **stuff**: The stuff [documents](https://python.langchain.com/docs/modules/chains/document/stuff) chain (“stuff" as in "to stuff" or "to fill") is the most straightforward of *the* document chains. It takes a list of documents, inserts them all into a prompt, and passes that prompt to an LLM. This chain is well-suited for applications where documents are small and only a few are passed in for most calls. + - **map_reduce**: The map-reduce [documents](https://python.langchain.com/docs/modules/chains/document/map_reduce) chain first applies an LLM chain to each document individually (the Map step), treating the chain output as a new document. It then passes all the new documents to a separate combined documents chain to get a single output (the Reduce step). It can optionally first compress or collapse the mapped documents to make sure that they fit in the combined documents chain (which will often pass them to an LLM). This compression step is performed recursively if necessary. + - **map_rerank**: The map re-rank [documents](https://python.langchain.com/docs/modules/chains/document/map_rerank) chain runs an initial prompt on each document that not only tries to complete a task but also gives a score for how certain it is in its answer. The highest-scoring response is returned. + - **refine**: The refine [documents](https://python.langchain.com/docs/modules/chains/document/refine) chain constructs a response by looping over the input documents and iteratively updating its answer. For each document, it passes all non-document inputs, the current document, and the latest intermediate answer to an LLM chain to get a new answer. + + Since the Refine chain only passes a single document to the LLM at a time, it is well-suited for tasks that require analyzing more documents than can fit in the model's context. The obvious tradeoff is that this chain will make far more LLM calls than, for example, the Stuff documents chain. There are also certain tasks that are difficult to accomplish iteratively. For example, the Refine chain can perform poorly when documents frequently cross-reference one another or when a task requires detailed information from many documents. + +--- + +### ConversationChain + +The `ConversationChain` is a straightforward chain for interactive conversations with a language model, making it ideal for chatbots or virtual assistants. It allows for dynamic conversations, question-answering, and complex dialogues. + +**Params** + +- **LLM:** Language Model to use in the chain. +- **Memory:** Default memory store. +- **input_key:** Used to specify the key under which the user input will be stored in the conversation memory. It allows you to provide the user's input to the chain for processing and generating a response. +- **output_key:** Used to specify the key under which the generated response will be stored in the conversation memory. It allows you to retrieve the response using the specified key. +- **verbose:** This parameter is used to control the level of detail in the output of the chain. When set to True, it will print out some internal states of the chain while it is being run, which can be helpful for debugging and understanding the chain's behavior. If set to False, it will suppress the verbose output — defaults to `False`. + +--- + +### ConversationalRetrievalChain + +The `ConversationalRetrievalChain` extracts information and provides answers by combining document search and question-answering abilities. + +:::info + +A retriever is a component that finds documents based on a query. It doesn't store the documents themselves, but it returns the ones that match the query. + +::: + +**Params** + +- **LLM:** Language Model to use in the chain. +- **Memory:** Default memory store. +- **Retriever:** The retriever used to fetch relevant documents. +- **chain_type:** The chain type to be used. Each one of them applies a different “combination strategy”. + - **stuff**: The stuff [documents](https://python.langchain.com/docs/modules/chains/document/stuff) chain (“stuff" as in "to stuff" or "to fill") is the most straightforward of *the* document chains. It takes a list of documents, inserts them all into a prompt, and passes that prompt to an LLM. This chain is well-suited for applications where documents are small and only a few are passed in for most calls. + - **map_reduce**: The map-reduce [documents](https://python.langchain.com/docs/modules/chains/document/map_reduce) chain first applies an LLM chain to each document individually (the Map step), treating the chain output as a new document. It then passes all the new documents to a separate combined documents chain to get a single output (the Reduce step). It can optionally first compress or collapse the mapped documents to make sure that they fit in the combined documents chain (which will often pass them to an LLM). This compression step is performed recursively if necessary. + - **map_rerank**: The map re-rank [documents](https://python.langchain.com/docs/modules/chains/document/map_rerank) chain runs an initial prompt on each document that not only tries to complete a task but also gives a score for how certain it is in its answer. The highest-scoring response is returned. + - **refine**: The refine [documents](https://python.langchain.com/docs/modules/chains/document/refine) chain constructs a response by looping over the input documents and iteratively updating its answer. For each document, it passes all non-document inputs, the current document, and the latest intermediate answer to an LLM chain to get a new answer. + + Since the Refine chain only passes a single document to the LLM at a time, it is well-suited for tasks that require analyzing more documents than can fit in the model's context. The obvious tradeoff is that this chain will make far more LLM calls than, for example, the Stuff documents chain. There are also certain tasks that are difficult to accomplish iteratively. For example, the Refine chain can perform poorly when documents frequently cross-reference one another or when a task requires detailed information from many documents. + +- **return_source_documents:** Used to specify whether or not to include the source documents that were used to answer the question in the output. When set to `True`, source documents will be included in the output along with the generated answer. This can be useful for providing additional context or references to the user — defaults to `True`. +- **verbose:** Whether or not to run in verbose mode. In verbose mode, intermediate logs will be printed to the console — defaults to `False`. + +--- + +### LLMChain + +The `LLMChain` is a straightforward chain that adds functionality around language models. It combines a prompt template with a language model. To use it, create input variables to format the prompt template. The formatted prompt is then sent to the language model, and the generated output is returned as the result of the `LLMChain`. + +**Params** + +- **LLM:** Language Model to use in the chain. +- **Memory:** Default memory store. +- **Prompt**: Prompt template object to use in the chain. +- **output_key:** This parameter is used to specify which key in the LLM output dictionary should be returned as the final output. By default, the `LLMChain` returns both the input and output key values — defaults to `text`. +- **verbose:** Whether or not to run in verbose mode. In verbose mode, intermediate logs will be printed to the console — defaults to `False`. + +--- + +### LLMMathChain + +The `LLMMathChain` combines a language model (LLM) and a math calculation component. It allows the user to input math problems and get the corresponding solutions. + +The `LLMMathChain` works by using the language model with an `LLMChain` to understand the input math problem and generate a math expression. It then passes this expression to the math component, which evaluates it and returns the result. + +**Params** + +- **LLM:** Language Model to use in the chain. +- **LLMChain:** LLM Chain to use in the chain. +- **Memory:** Default memory store. +- **input_key:** Used to specify the input value for the mathematical calculation. It allows you to provide the specific values or variables that you want to use in the calculation — defaults to `question`. +- **output_key:** Used to specify the key under which the output of the mathematical calculation will be stored. It allows you to retrieve the result of the calculation using the specified key — defaults to `answer`. +- **verbose:** Whether or not to run in verbose mode. In verbose mode, intermediate logs will be printed to the console — defaults to `False`. + +--- + +### RetrievalQA + +`RetrievalQA` is a chain used to find relevant documents or information to answer a given query. The retriever is responsible for returning the relevant documents based on the query, and the QA component then extracts the answer from those documents. The retrieval QA system combines the capabilities of both the retriever and the QA component to provide accurate and relevant answers to user queries. + +:::info + +A retriever is a component that finds documents based on a query. It doesn't store the documents themselves, but it returns the ones that match the query. + +::: + +**Params** + +- **Combine Documents Chain:** Chain to use to combine the documents. +- **Memory:** Default memory store. +- **Retriever:** The retriever used to fetch relevant documents. +- **input_key:** This parameter is used to specify the key in the input data that contains the question. It is used to retrieve the question from the input data and pass it to the question-answering model for generating the answer — defaults to `query`. +- **output_key:** This parameter is used to specify the key in the output data where the generated answer will be stored. It is used to retrieve the answer from the output data after the question-answering model has generated it — defaults to `result`. +- **return_source_documents:** Used to specify whether or not to include the source documents that were used to answer the question in the output. When set to `True`, source documents will be included in the output along with the generated answer. This can be useful for providing additional context or references to the user — defaults to `True`. +- **verbose:** Whether or not to run in verbose mode. In verbose mode, intermediate logs will be printed to the console — defaults to `False`. + +--- + +### SQLDatabaseChain + +The `SQLDatabaseChain` finds answers to questions using a SQL database. It works by using the language model to understand the SQL query and generate the corresponding SQL code. It then passes the SQL code to the SQL database component, which executes the query on the database and returns the result. + +**Params** + +- **Db:** SQL Database to connect to. +- **LLM:** Language Model to use in the chain. +- **Prompt:** Prompt template to translate natural language to SQL. \ No newline at end of file diff --git a/docs/docs/components/embeddings.mdx b/docs/docs/components/embeddings.mdx new file mode 100644 index 000000000..0b7d3805d --- /dev/null +++ b/docs/docs/components/embeddings.mdx @@ -0,0 +1,67 @@ +# Embeddings + +Embeddings are vector representations of text that capture the semantic meaning of the text. They are created using text embedding models and allow us to think about the text in a vector space, enabling us to perform tasks like semantic search, where we look for pieces of text that are most similar in the vector space. + +--- + +### CohereEmbeddings + +Used to load [Cohere’s](https://cohere.com/) embedding models. + +**Params** + +- **cohere_api_key:** Holds the API key required to authenticate with the Cohere service. + +- **model:** The language model used for embedding text documents and performing queries —defaults to `embed-english-v2.0`. + +- **truncate:** Used to specify whether or not to truncate the input text. Truncation is useful when dealing with long texts that exceed the model's maximum input length. By truncating the text, the user can ensure that it fits within the model's constraints. + +--- + +### HuggingFaceEmbeddings + +Used to load [HuggingFace’s](https://huggingface.co) embedding models. + +**Params** + +- **cache_folder:** Used to specify the folder where the embeddings will be cached. When embeddings are computed for a text, they can be stored in the cache folder so that they can be reused later without the need to recompute them. This can improve the performance of the application by avoiding redundant computations. + +- **encode_kwargs:** Used to pass additional keyword arguments to the encoding method of the underlying HuggingFace model. These keyword arguments can be used to customize the encoding process, such as specifying the maximum length of the input sequence or enabling truncation or padding. + +- **model_kwargs:** Used to customize the behavior of the model, such as specifying the model architecture, the tokenizer, or any other model-specific configuration options. By using `model_kwargs`, the user can configure the HuggingFace model according to specific needs and preferences. + +- **model_name:** Used to specify the name or identifier of the HuggingFace model that will be used for generating embeddings. It allows users to choose a specific pre-trained model from the Hugging Face model hub — defaults to `sentence-transformers/all-mpnet-base-v2`. + +--- + +### OpenAIEmbeddings + +Used to load [OpenAI’s](https://openai.com/) embedding models. + +**Params** + +- **chunk_size:** Determines the maximum size of each chunk of text that is processed for embedding. If any of the incoming text chunks exceeds `chunk_size` characters, it will be split into multiple chunks of size `chunk_size` or less before being embedded — defaults to `1000`. + +- **deployment:** Used to specify the deployment name or identifier of the text embedding model. It allows the user to choose a specific deployment of the model to use for embedding. When the deployment is provided, this can be useful when the user has multiple deployments of the same model with different configurations or versions — defaults to `text-embedding-ada-002`. + +- **embedding_ctx_length:** This parameter determines the maximum context length for the text embedding model. It specifies the number of tokens that the model considers when generating embeddings for a piece of text — defaults to `8191` (this means that the model will consider up to 8191 tokens when generating embeddings). + +- **max_retries:** Determines the maximum number of times to retry a request if the model provider returns an error from their API — defaults to `6`. + +- **model:** Defines which pre-trained text embedding model to use — defaults to `text-embedding-ada-002`. + +- **openai_api_base:** Refers to the base URL for the Azure OpenAI resource. It is used to configure the API to connect to the Azure OpenAI service. The base URL can be found in the Azure portal under the user Azure OpenAI resource. + +- **openai_api_key:** Is used to authenticate and authorize access to the OpenAI service. + +- **openai_api_type:** Is used to specify the type of OpenAI API being used, either the regular OpenAI API or the Azure OpenAI API. This parameter allows the `OpenAIEmbeddings` class to connect to the appropriate API service. + +- **openai_api_version:** Is used to specify the version of the OpenAI API being used. This parameter allows the `OpenAIEmbeddings` class to connect to the appropriate version of the OpenAI API service. + +- **openai_organization:** Is used to specify the organization associated with the OpenAI API key. If not provided, the default organization associated with the API key will be used. + +- **openai_proxy:** Proxy enables better budgeting and cost management for making OpenAI API calls, including more transparency into pricing. + +- **request_timeout:** Used to specify the maximum amount of time, in milliseconds, to wait for a response from the OpenAI API when generating embeddings for a given text. + +- **tiktoken_model_name:** Used to count the number of tokens in documents to constrain them to be under a certain limit. By default, when set to None, this will be the same as the embedding model name. diff --git a/docs/docs/components/llms.mdx b/docs/docs/components/llms.mdx new file mode 100644 index 000000000..b6a16aa6c --- /dev/null +++ b/docs/docs/components/llms.mdx @@ -0,0 +1,2 @@ +# LLMs +(coming soon) \ No newline at end of file diff --git a/docs/docs/components/loaders.mdx b/docs/docs/components/loaders.mdx new file mode 100644 index 000000000..8e9289875 --- /dev/null +++ b/docs/docs/components/loaders.mdx @@ -0,0 +1,2 @@ +# Loaders +(coming soon) \ No newline at end of file diff --git a/docs/docs/components/memories.mdx b/docs/docs/components/memories.mdx new file mode 100644 index 000000000..6036ddf46 --- /dev/null +++ b/docs/docs/components/memories.mdx @@ -0,0 +1,2 @@ +# Memories +(coming soon) \ No newline at end of file diff --git a/docs/docs/components/prompts.mdx b/docs/docs/components/prompts.mdx new file mode 100644 index 000000000..f4f2c4cae --- /dev/null +++ b/docs/docs/components/prompts.mdx @@ -0,0 +1,15 @@ +# Prompts + +A prompt refers to the input given to a language model. It is constructed from multiple components and can be parametrized using prompt templates. A prompt template is a reproducible way to generate prompts and allow for easy customization through input variables. + +--- + +### PromptTemplate + +The `PromptTemplate` component allows users to create prompts and define variables that provide control over instructing the model. The template can take in a set of variables from the end user and generates the prompt once the conversation is initiated. + +:::info +Once a variable is defined in the prompt template, it becomes a component input of its own. Check out [Prompt Customization](../guidelines/prompt-customization.mdx) to learn more. +::: + +- **template:** Template used to format an individual request. \ No newline at end of file diff --git a/docs/docs/components/text-splitters.mdx b/docs/docs/components/text-splitters.mdx new file mode 100644 index 000000000..515271233 --- /dev/null +++ b/docs/docs/components/text-splitters.mdx @@ -0,0 +1,2 @@ +# Text Splitters +(coming soon) \ No newline at end of file diff --git a/docs/docs/components/toolkits.mdx b/docs/docs/components/toolkits.mdx new file mode 100644 index 000000000..b7c8bb7f9 --- /dev/null +++ b/docs/docs/components/toolkits.mdx @@ -0,0 +1,2 @@ +# Toolkits +(coming soon) \ No newline at end of file diff --git a/docs/docs/components/tools.mdx b/docs/docs/components/tools.mdx new file mode 100644 index 000000000..9c6538280 --- /dev/null +++ b/docs/docs/components/tools.mdx @@ -0,0 +1,2 @@ +# Tools +(coming soon) \ No newline at end of file diff --git a/docs/docs/components/utilities.mdx b/docs/docs/components/utilities.mdx new file mode 100644 index 000000000..a25048286 --- /dev/null +++ b/docs/docs/components/utilities.mdx @@ -0,0 +1,2 @@ +# Utilities +(coming soon) \ No newline at end of file diff --git a/docs/docs/components/vector-stores.mdx b/docs/docs/components/vector-stores.mdx new file mode 100644 index 000000000..221a89bcc --- /dev/null +++ b/docs/docs/components/vector-stores.mdx @@ -0,0 +1,2 @@ +# Vector Stores +(coming soon) \ No newline at end of file diff --git a/docs/docs/components/wrappers.mdx b/docs/docs/components/wrappers.mdx new file mode 100644 index 000000000..7abde7a69 --- /dev/null +++ b/docs/docs/components/wrappers.mdx @@ -0,0 +1,2 @@ +# Wrappers +(coming soon) \ No newline at end of file diff --git a/docs/docs/contributing/community.md b/docs/docs/contributing/community.md new file mode 100644 index 000000000..fb18b1172 --- /dev/null +++ b/docs/docs/contributing/community.md @@ -0,0 +1,38 @@ +# Community + +## 🤖 Join **Langflow** Discord server + + Join us to ask questions and showcase your projects. + + Let's bring together the building blocks of AI integration! + + Langflow [Discord](https://discord.gg/EqksyE2EX9) server. + +--- + +## 🐦 Stay tunned for **Langflow** on Twitter + +Follow [@logspace_ai](https://twitter.com/logspace_ai) on **Twitter** to get the latest news about **Langflow**. + +--- +## ⭐️ Star **Langflow** on GitHub + +You can "star" **Langflow** in [GitHub](https://github.com/logspace-ai/langflow). + +By adding a star, other users will be able to find it more easily and see that it has been already useful for others. + +--- + +## 👀 Watch the GitHub repository for releases + +You can "watch" **Langflow** in [GitHub](https://github.com/logspace-ai/langflow). + + +If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue or question. You can also specify that you only want to be notified about new issues, discussions, PRs, etc. + + +Then you can try and help them solve those questions. + +--- + +Thanks! 🚀 \ No newline at end of file diff --git a/docs/github-issues.md b/docs/docs/contributing/github-issues.md similarity index 68% rename from docs/github-issues.md rename to docs/docs/contributing/github-issues.md index 1cf20abfc..41cc674e1 100644 --- a/docs/github-issues.md +++ b/docs/docs/contributing/github-issues.md @@ -1,13 +1,11 @@ -# 🚩GitHub Issues +# GitHub Issues -Our [issues](https://github.com/logspace-ai/langflow/issues){.internal-link target=_blank} page is kept up to date +Our [issues](https://github.com/logspace-ai/langflow/issues) page is kept up to date with bugs, improvements, and feature requests. There is a taxonomy of labels to help with sorting and discovery of issues of interest. -
- If you're looking for help with your code, consider posting a question on the -[GitHub Discussions board](https://github.com/logspace-ai/langflow/discussions){.internal-link target=_blank}. Please +[GitHub Discussions board](https://github.com/logspace-ai/langflow/discussions). Please understand that we won't be able to provide individual support via email. We also believe that help is much more valuable if it's **shared publicly**, so that more people can benefit from it. @@ -21,10 +19,9 @@ so that more people can benefit from it. - **Sharing long blocks of code or logs:** If you need to include long code, logs or tracebacks, you can wrap them in `
` and `
`. This - [collapses the content](https://developer.mozilla.org/en/docs/Web/HTML/Element/details){.internal-link target=_blank} - so it only becomes visible on click, making the issue easier to read and follow. + [collapses the content](https://developer.mozilla.org/en/docs/Web/HTML/Element/details) so it only becomes visible on click, making the issue easier to read and follow. -### Issue labels -[See this page](https://github.com/logspace-ai/langflow/labels){.internal-link target=_blank} for an overview of -the system we use to tag our issues and pull requests. \ No newline at end of file +## Issue labels + +[See this page](https://github.com/logspace-ai/langflow/labels) for an overview of the system we use to tag our issues and pull requests. \ No newline at end of file diff --git a/docs/docs/contributing/how-contribute.md b/docs/docs/contributing/how-contribute.md new file mode 100644 index 000000000..cdccc271f --- /dev/null +++ b/docs/docs/contributing/how-contribute.md @@ -0,0 +1,62 @@ +# How to contribute? + +👋 Hello there! We welcome contributions from developers of all levels to our open-source project on [GitHub](https://github.com/logspace-ai/langflow). If you'd like to contribute, please check our contributing guidelines and help make Langflow more accessible. + +As an open-source project in a rapidly developing field, we are extremely open +to contributions, whether in the form of a new feature, improved infra, or better documentation. + +To contribute to this project, please follow a ["fork and pull request"](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) workflow. + +Please do not try to push directly to this repo unless you are a maintainer. + +--- +## Local development + +You can develop Langflow using docker compose, or locally. + +We provide a .vscode/launch.json file for debugging the backend in VSCode, which is a lot faster than using docker compose. + +Setting up hooks: +```bash +make init +``` + +This will install the pre-commit hooks, which will run `make format` on every commit. + +It is advised to run `make lint` before pushing to the repository. + +--- + +## Run locally + +Langflow can run locally by cloning the repository and installing the dependencies. We recommend using a virtual environment to isolate the dependencies from your system. + +Before you start, make sure you have the following installed: + +- Poetry (>=1.4) +- Node.js + +Then install the dependencies and start the development server for the backend: + +```bash +make install_backend +make backend +``` + +And the frontend: + +```bash +make frontend +``` + +--- + +## Docker compose + +The following snippet will run the backend and frontend in separate containers. The frontend will be available at `localhost:3000` and the backend at `localhost:7860`. + +```bash +docker compose up --build +# or +make dev build=1 +``` \ No newline at end of file diff --git a/docs/GCP_DEPLOYMENT.md b/docs/docs/deployment/gcp-deployment.md similarity index 50% rename from docs/GCP_DEPLOYMENT.md rename to docs/docs/deployment/gcp-deployment.md index dd58ee8f2..771550f24 100644 --- a/docs/GCP_DEPLOYMENT.md +++ b/docs/docs/deployment/gcp-deployment.md @@ -1,36 +1,32 @@ -# Deploy Langflow on Google Cloud Platform +# Deploy on Google Cloud Platform -Follow our step-by-step guide to deploy Langflow on Google Cloud Platform (GCP) using Google Cloud Shell. The guide is available in the [**Langflow in Google Cloud Platform**](GCP_DEPLOYMENT.md) document. - -
- -Alternatively, click the **"Open in Cloud Shell"** button below to launch Google Cloud Shell, clone the Langflow repository, and start an **interactive tutorial** that will guide you through the process of setting up the necessary resources and deploying Langflow on your GCP project. - -[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial_spot.md){.internal-link target=_blank} - ---- ## Run Langflow from a New Google Cloud Project This guide will help you set up a Langflow development VM in a Google Cloud Platform project using Google Cloud Shell. -> **Note**: When Cloud Shell opens, be sure to select **Trust repo**. Some `gcloud` commands might not run in an ephemeral Cloud Shell environment. +:::note +When Cloud Shell opens, be sure to select **Trust repo**. Some `gcloud` commands might not run in an ephemeral Cloud Shell environment. +::: ## Standard VM -[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial.md){.internal-link target=_blank} +[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/logspace-ai/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial.md) This script sets up a Debian-based VM with the Langflow package, Nginx, and the necessary configurations to run the Langflow Dev environment. -
+ +--- ## Spot/Preemptible Instance -[![Open in Cloud Shell - Spot Instance](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial.md){.internal-link target=_blank} +[![Open in Cloud Shell - Spot Instance](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial_spot.md) -When running as a [spot (preemptible) instance](https://cloud.google.com/compute/docs/instances/preemptible){.internal-link target=_blank}, the code and VM will behave the same way as in a regular instance, executing the startup script to configure the environment, install necessary dependencies, and run the Langflow application. However, **due to the nature of spot instances, the VM may be terminated at any time if Google Cloud needs to reclaim the resources**. This makes spot instances suitable for fault-tolerant, stateless, or interruptible workloads that can handle unexpected terminations and restarts. +When running as a [spot (preemptible) instance](https://cloud.google.com/compute/docs/instances/preemptible), the code and VM will behave the same way as in a regular instance, executing the startup script to configure the environment, install necessary dependencies, and run the Langflow application. However, **due to the nature of spot instances, the VM may be terminated at any time if Google Cloud needs to reclaim the resources**. This makes spot instances suitable for fault-tolerant, stateless, or interruptible workloads that can handle unexpected terminations and restarts. + +--- ## Pricing (approximate) -> For a more accurate breakdown of costs, please use the [**GCP Pricing Calculator**](https://cloud.google.com/products/calculator){.internal-link target=_blank} -
+> For a more accurate breakdown of costs, please use the [**GCP Pricing Calculator**](https://cloud.google.com/products/calculator) + | Component | Regular Cost (Hourly) | Regular Cost (Monthly) | Spot/Preemptible Cost (Hourly) | Spot/Preemptible Cost (Monthly) | Notes | | -------------- | --------------------- | ---------------------- | ------------------------------ | ------------------------------- | ----- | diff --git a/docs/docs/deployment/jina-deployment.md b/docs/docs/deployment/jina-deployment.md new file mode 100644 index 000000000..bf9df051d --- /dev/null +++ b/docs/docs/deployment/jina-deployment.md @@ -0,0 +1,101 @@ +# Deploy on Jina AI Cloud + +Langflow integrates with langchain-serve to provide a one-command deployment to [Jina AI Cloud](https://github.com/jina-ai/langchain-serve). + +Start by installing `langchain-serve` with + +```bash +pip install -U langchain-serve +``` + +Then, run: + +```bash +langflow --jcloud +``` + +```text +🎉 Langflow server successfully deployed on Jina AI Cloud 🎉 +🔗 Click on the link to open the server (please allow ~1-2 minutes for the server to startup): https://.wolf.jina.ai/ +📖 Read more about managing the server: https://github.com/jina-ai/langchain-serve +``` + +**Complete (example) output:** + +```text + 🚀 Deploying Langflow server on Jina AI Cloud + ╭───────────────────────── 🎉 Flow is available! ──────────────────────────╮ + │ │ + │ ID langflow-e3dd8820ec │ + │ Gateway (Websocket) wss://langflow-e3dd8820ec.wolf.jina.ai │ + │ Dashboard https://dashboard.wolf.jina.ai/flow/e3dd8820ec │ + │ │ + ╰──────────────────────────────────────────────────────────────────────────╯ + ╭──────────────┬──────────────────────────────────────────────────────────────────────────────╮ + │ App ID │ langflow-e3dd8820ec │ + ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤ + │ Phase │ Serving │ + ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤ + │ Endpoint │ wss://langflow-e3dd8820ec.wolf.jina.ai │ + ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤ + │ App logs │ dashboards.wolf.jina.ai │ + ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤ + │ Swagger UI │ https://langflow-e3dd8820ec.wolf.jina.ai/docs │ + ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤ + │ OpenAPI JSON │ https://langflow-e3dd8820ec.wolf.jina.ai/openapi.json │ + ╰──────────────┴──────────────────────────────────────────────────────────────────────────────╯ + + 🎉 Langflow server successfully deployed on Jina AI Cloud 🎉 + 🔗 Click on the link to open the server (please allow ~1-2 minutes for the server to startup): https://langflow-e3dd8820ec.wolf.jina.ai/ + 📖 Read more about managing the server: https://github.com/jina-ai/langchain-serve + ``` +## API Usage (with python) + +You can use Langflow directly on your browser or the API endpoints on Jina AI Cloud to interact with the server. + +```python +import requests + +BASE_API_URL = "https://langflow-e3dd8820ec.wolf.jina.ai/api/v1/predict" +FLOW_ID = "864c4f98-2e59-468b-8e13-79cd8da07468" +# You can tweak the flow by adding a tweaks dictionary +# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}} +TWEAKS = { +"ChatOpenAI-g4jEr": {}, +"ConversationChain-UidfJ": {} +} + +def run_flow(message: str, flow_id: str, tweaks: dict = None) -> dict: + """ + Run a flow with a given message and optional tweaks. + + :param message: The message to send to the flow + :param flow_id: The ID of the flow to run + :param tweaks: Optional tweaks to customize the flow + :return: The JSON response from the flow + """ + api_url = f"{BASE_API_URL}/{flow_id}" + + payload = {"message": message} + + if tweaks: + payload["tweaks"] = tweaks + + response = requests.post(api_url, json=payload) + return response.json() + +# Setup any tweaks you want to apply to the flow +print(run_flow("Your message", flow_id=FLOW_ID, tweaks=TWEAKS)) + ``` + + ```json +{ + "result": "Great choice! Bangalore in the 1920s was a vibrant city with a rich cultural and political scene. Here are some suggestions for things to see and do:\n\n1. Visit the Bangalore Palace - built in 1887, this stunning palace is a perfect example of Tudor-style architecture. It was home to the Maharaja of Mysore and is now open to the public.\n\n2. Attend a performance at the Ravindra Kalakshetra - this cultural center was built in the 1920s and is still a popular venue for music and dance performances.\n\n3. Explore the neighborhoods of Basavanagudi and Malleswaram - both of these areas have retained much of their old-world charm and are great places to walk around and soak up the atmosphere.\n\n4. Check out the Bangalore Club - founded in 1868, this exclusive social club was a favorite haunt of the British expat community in the 1920s.\n\n5. Attend a meeting of the Indian National Congress - founded in 1885, the INC was a major force in the Indian independence movement and held many meetings and rallies in Bangalore in the 1920s.\n\nHope you enjoy your trip to 1920s Bangalore!" +} + ``` + +:::info + +Read more about resource customization, cost, and management of Langflow apps on Jina AI Cloud in the **[langchain-serve](https://github.com/jina-ai/langchain-serve)** repository. + +::: \ No newline at end of file diff --git a/docs/docs/examples/buffer-memory.mdx b/docs/docs/examples/buffer-memory.mdx new file mode 100644 index 000000000..c3e886cf9 --- /dev/null +++ b/docs/docs/examples/buffer-memory.mdx @@ -0,0 +1,25 @@ +# Buffer Memory + +For certain applications, retaining past interactions is crucial. For that, chains and agents may accept a memory component as one of their input parameters. The `ConversationBufferMemory` component is one of them. It stores messages and extracts them into variables. + +## ⛓️ Langflow Example + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + + + +#### Download Flow + +:::note LangChain Components 🦜🔗 + +- [`ConversationBufferMemory`](https://python.langchain.com/docs/modules/memory/how_to/buffer) +- [`ConversationChain`](https://python.langchain.com/docs/modules/chains/) +- [`ChatOpenAI`](https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai) + ::: diff --git a/docs/docs/examples/conversation-chain.mdx b/docs/docs/examples/conversation-chain.mdx new file mode 100644 index 000000000..b8cbb11bb --- /dev/null +++ b/docs/docs/examples/conversation-chain.mdx @@ -0,0 +1,28 @@ +# Conversation Chain + +This example shows how to instantiate a simple `ConversationChain` component using a Language Model (LLM). Once the Node Status turns green 🟢, the chat will be ready to take in user messages. Here, we used `ChatOpenAI` to act as the required LLM input, but you can use any LLM for this purpose. + +:::info +Make sure to always get the API key from the provider. +::: + +## ⛓️ Langflow Example + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + + + +#### Download Flow + +:::note LangChain Components 🦜🔗 + +- [`ConversationChain`](https://python.langchain.com/docs/modules/chains/) +- [`ChatOpenAI`](https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai) + ::: diff --git a/docs/docs/examples/csv-loader.mdx b/docs/docs/examples/csv-loader.mdx new file mode 100644 index 000000000..de808ec3d --- /dev/null +++ b/docs/docs/examples/csv-loader.mdx @@ -0,0 +1,42 @@ +# CSV Loader + +The `VectoStoreAgent` component retrieves information from one or more vector stores. This example shows a `VectoStoreAgent` connected to a CSV file through the `Chroma` vector store. Process description: + +- The `CSVLoader` loads a CSV file into a list of documents. +- The extracted data is then processed by the `CharacterTextSplitter`, which splits the text into small, meaningful chunks (usually sentences). +- These chunks feed the `Chroma` vector store, which converts them into vectors and stores them for fast indexing. +- Finally, the agent accesses the information of the vector store through the `VectorStoreInfo` tool. + +:::info +The vector store is used for efficient semantic search, while `VectorStoreInfo` carries information about it, such as its name and description. Embeddings are a way to represent words, phrases, or any entities in a vector space. Learn more about them [here](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings). +::: + +:::tip +Once you build this flow, ask questions about the data in the chat interface (e.g., number of rows or columns). +::: + +## ⛓️ Langflow Example + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + + + +#### Download Flow + +:::note LangChain Components 🦜🔗 + +- [`CSVLoader`](https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/csv) +- [`CharacterTextSplitter`](https://python.langchain.com/docs/modules/data_connection/document_transformers/text_splitters/character_text_splitter) +- [`OpenAIEmbedding`](https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/openai) +- [`Chroma`](https://python.langchain.com/docs/modules/data_connection/vectorstores/integrations/chroma) +- [`VectorStoreInfo`](https://python.langchain.com/docs/modules/data_connection/vectorstores/) +- [`OpenAI`](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/openai) +- [`VectorStoreAgent`](https://python.langchain.com/docs/modules/agents/toolkits/vectorstore) + ::: diff --git a/docs/docs/examples/how-upload-examples.mdx b/docs/docs/examples/how-upload-examples.mdx new file mode 100644 index 000000000..8a4306212 --- /dev/null +++ b/docs/docs/examples/how-upload-examples.mdx @@ -0,0 +1,29 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + +# 📚 How to Upload Examples? + +We welcome all examples that can help our community learn and explore Langflow's capabilities. +Langflow Examples is a repository on [GitHub](https://github.com/logspace-ai/langflow_examples) that contains examples of flows that people can use for inspiration and learning. + +
+ +
+ +To upload examples, please follow these steps: + +1. **Create a Flow:** First, create a flow using Langflow. You can use any of the available templates or create a new flow from scratch. + +2. **Export the Flow:** Once you have created a flow, export it as a JSON file. Make sure to give your file a descriptive name and include a brief description of what it does. + +3. **Submit a Pull Request:** Finally, submit a pull request (PR) to the examples repo. Make sure to include your JSON file in the PR. + +If your example uses any third-party libraries or packages, please include them in your PR and make sure that your example follows the [**⛓️ Langflow Code Of Conduct**](https://github.com/logspace-ai/langflow/blob/dev/CODE_OF_CONDUCT.md). diff --git a/docs/docs/examples/midjourney-prompt-chain.mdx b/docs/docs/examples/midjourney-prompt-chain.mdx new file mode 100644 index 000000000..d3ca57c91 --- /dev/null +++ b/docs/docs/examples/midjourney-prompt-chain.mdx @@ -0,0 +1,40 @@ +# MidJourney Prompt Chain + +The `MidJourneyPromptChain` can be used to generate imaginative and detailed MidJourney prompts. + +For example, type something like: + +```bash +Dragon +``` + +And get a response such as: + +```text +Imagine a mysterious forest, the trees are tall and ancient, their branches reaching up to the sky. Through the darkness, a dragon emerges from the shadows, its scales shimmering in the moonlight. Its wingspan is immense, and its eyes glow with a fierce intensity. It is a majestic and powerful creature, one that commands both respect and fear. +``` + +:::tip +Notice that the `ConversationSummaryMemory` stores a summary of the conversation over time. Try using it to create better prompts as the conversation goes on. +::: + +## ⛓️ Langflow Example + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + + + +#### Download Flow + +:::note LangChain Components 🦜🔗 + +- [`OpenAI`](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/openai) +- [`ConversationSummaryMemory`](https://python.langchain.com/docs/modules/memory/how_to/summary) + ::: diff --git a/docs/docs/examples/multiple-vectorstores.mdx b/docs/docs/examples/multiple-vectorstores.mdx new file mode 100644 index 000000000..36890c866 --- /dev/null +++ b/docs/docs/examples/multiple-vectorstores.mdx @@ -0,0 +1,52 @@ +# Multiple Vector Stores + +The example below shows an agent operating with two vector stores built upon different data sources. + +The `TextLoader` loads a TXT file, while the `WebBaseLoader` pulls text from webpages into a document format to accessed downstream. The `Chroma` vector stores are created analogous to what we have demonstrated in our [CSV Loader](/examples/csv-loader.mdx) example. Finally, the `VectorStoreRouterAgent` constructs an agent that routes between the vector stores. + +:::info +Get the TXT file used [here](https://github.com/hwchase17/chat-your-data/blob/master/state_of_the_union.txt). +::: + +URL used by the `WebBaseLoader`: + +```txt +https://pt.wikipedia.org/wiki/Harry_Potter +``` + +:::tip +When you build the flow, request information about one of the sources. The agent should be able to use the correct source to generate a response. +::: + +:::info +Learn more about Multiple Vector Stores [here](https://python.langchain.com/docs/modules/agents/toolkits/vectorstore?highlight=Multiple%20Vector%20Stores#multiple-vectorstores). +::: + +## ⛓️ Langflow Example + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + + + +#### Download Flow + +:::note LangChain Components 🦜🔗 + +- [`WebBaseLoader`](https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/web_base) +- [`TextLoader`](https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/unstructured_file) +- [`CharacterTextSplitter`](https://python.langchain.com/docs/modules/data_connection/document_transformers/text_splitters/character_text_splitter) +- [`OpenAIEmbedding`](https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/openai) +- [`Chroma`](https://python.langchain.com/docs/modules/data_connection/vectorstores/integrations/chroma) +- [`VectorStoreInfo`](https://python.langchain.com/docs/modules/data_connection/vectorstores/) +- [`OpenAI`](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/openai) +- [`VectorStoreRouterToolkit`](https://python.langchain.com/docs/modules/agents/toolkits/vectorstore) +- [`VectorStoreRouterAgent`](https://python.langchain.com/docs/modules/agents/toolkits/vectorstore) + +::: diff --git a/docs/docs/examples/python-function.mdx b/docs/docs/examples/python-function.mdx new file mode 100644 index 000000000..12a262a3f --- /dev/null +++ b/docs/docs/examples/python-function.mdx @@ -0,0 +1,48 @@ +# Python Function + +Langflow allows you to create a customized tool using the `PythonFunction` connected to a `Tool` component. In this example, Regex is used in Python to validate a pattern. + +```python +import re + +def is_brazilian_zipcode(zipcode: str) -> bool: + pattern = r"\d{5}-?\d{3}" + + # Check if the zip code matches the pattern + if re.match(pattern, zipcode): + return True + + return False +``` + +:::tip +When a tool is called, it is often desirable to have its output returned directly to the user. You can do this by setting the **return_direct** flag for a tool to be True. +::: + +The `AgentInitializer` component is a quick way to construct an agent from the model and tools. + +:::info +The `PythonFunction` is a custom component that uses the LangChain 🦜🔗 tool decorator. Learn more about it [here](https://python.langchain.com/docs/modules/agents/tools/how_to/custom_tools). +::: + +## ⛓️ Langflow Example + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + + + +#### Download Flow + +:::note LangChain Components 🦜🔗 + +- [`PythonFunctionTool`](https://python.langchain.com/docs/modules/agents/tools/how_to/custom_tools) +- [`ChatOpenAI`](https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai) +- [`AgentInitializer`](https://python.langchain.com/docs/modules/agents/) + ::: diff --git a/docs/docs/examples/serp-api-tool.mdx b/docs/docs/examples/serp-api-tool.mdx new file mode 100644 index 000000000..a7e1d3d8e --- /dev/null +++ b/docs/docs/examples/serp-api-tool.mdx @@ -0,0 +1,45 @@ +# Serp API Tool + +The [Serp API](https://serpapi.com/) (Search Engine Results Page) allows developers to scrape results from search engines such as Google, Bing and Yahoo, and can be used as in Langflow through the `Search` component. + +:::info +To use the Serp API, you first need to sign up [Serp API](https://serpapi.com/) for an API key on the provider's website. +::: + +Here, the `ZeroShotPrompt` component specifies a prompt template for the `ZeroShotAgent`. Set a _Prefix_ and _Suffix_ with rules for the agent to obey. In the example, we used default templates. + +The `LLMChain` is a simple chain that takes in a prompt template, formats it with the user input, and returns the response from an LLM. + +:::tip +In this example, we used [`ChatOpenAI`](https://platform.openai.com/) as the LLM, but feel free to experiment with other Language Models! +::: + +The `ZeroShotAgent` takes the `LLMChain` and the `Search` tool as inputs, using the tool to find information when necessary. + +:::info +Learn more about the Serp API [here](https://python.langchain.com/docs/modules/agents/tools/integrations/serpapi). +::: + +## ⛓️ Langflow Example + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + + + +#### Download Flow + +:::note LangChain Components 🦜🔗 + +- [`ZeroShotPrompt`](https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/) +- [`OpenAI`](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/openai) +- [`LLMChain`](https://python.langchain.com/docs/modules/chains/foundational/llm_chain) +- [`Search`](https://python.langchain.com/docs/modules/agents/tools/integrations/serpapi) +- [`ZeroShotAgent`](https://python.langchain.com/docs/modules/agents/how_to/custom_mrkl_agent) + ::: diff --git a/docs/docs/getting-started/creating-flows.mdx b/docs/docs/getting-started/creating-flows.mdx new file mode 100644 index 000000000..b09951f42 --- /dev/null +++ b/docs/docs/getting-started/creating-flows.mdx @@ -0,0 +1,37 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; + +# 🎨 Creating Flows + +## Compose + +Creating flows with Langflow is easy. Drag sidebar components onto the canvas and connect them together to create your pipeline. Langflow provides a range of [LangChain components](https://python.langchain.com/docs/modules/) to choose from, including LLMs, prompt serializers, agents, and chains. + + + +## Fork + +The easiest way to start with Langflow is by forking a **community example**. Forking an example stores a copy in your project collection, allowing you to edit and save the modified version as a new flow. + +
+ +
+ +## Build + +Building a flow means validating if the components have prerequisites fulfilled and are properly instantiated. When a chat message is sent, the flow will run for the first time, executing the pipeline. + +
+ +
diff --git a/docs/docs/getting-started/hugging-face-spaces.mdx b/docs/docs/getting-started/hugging-face-spaces.mdx new file mode 100644 index 000000000..e8b3852a9 --- /dev/null +++ b/docs/docs/getting-started/hugging-face-spaces.mdx @@ -0,0 +1,20 @@ +# 🤗 HuggingFace Spaces + +A fully featured version of Langflow can be accessed via HuggingFace spaces with no installation required. + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + +
+ +
+ +Check out Langflow on [HuggingFace Spaces](https://huggingface.co/spaces/Logspace/Langflow). diff --git a/docs/docs/getting-started/installation.md b/docs/docs/getting-started/installation.md new file mode 100644 index 000000000..c3ad54239 --- /dev/null +++ b/docs/docs/getting-started/installation.md @@ -0,0 +1,15 @@ +# 📦 How to install? + +## Installation + +You can install Langflow from pip: + +```bash +pip install langflow +``` + +Next, run: + +```bash +langflow +``` \ No newline at end of file diff --git a/docs/docs/guidelines/chat-interface.mdx b/docs/docs/guidelines/chat-interface.mdx new file mode 100644 index 000000000..c09f00076 --- /dev/null +++ b/docs/docs/guidelines/chat-interface.mdx @@ -0,0 +1,64 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; + +# Chat Interface + +Langflow’s chat interface provides a user-friendly experience and functionality to interact with the model and customize the prompt. The sidebar brings options that allow users to view and edit pre-defined prompt variables. This feature facilitates quick experimentation by enabling the modification of variable values right in the chat. + +
+ +
+ + +Notice that editing variables in the chat interface take place temporarily and won’t change their original value in the components once the chat is closed. + +
+ +
+ +To view the complete prompt in its original, structured format, click the "Display Prompt" option. This feature lets you see the prompt exactly as it entered the model. + +
+ +
+ + +In the chat interface, you can redefine which variable should be interpreted as the chat input. This gives you control over these inputs and allows dynamic and creative interactions. + +
+ +
diff --git a/docs/docs/guidelines/collection.mdx b/docs/docs/guidelines/collection.mdx new file mode 100644 index 000000000..c0616b2e2 --- /dev/null +++ b/docs/docs/guidelines/collection.mdx @@ -0,0 +1,13 @@ +import ThemedImage from '@theme/ThemedImage'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import ZoomableImage from '/src/theme/ZoomableImage.js'; +import ReactPlayer from 'react-player'; + +# Collection + +A collection is a snapshot of the flows available in the database. You can download your entire collection for local storage and upload it anytime for future use. + +
+ +
diff --git a/docs/docs/guidelines/components.mdx b/docs/docs/guidelines/components.mdx new file mode 100644 index 000000000..ba2f5ff33 --- /dev/null +++ b/docs/docs/guidelines/components.mdx @@ -0,0 +1,59 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; + +# Component + +Components are the building blocks of the flows. They are made of inputs, outputs, and parameters that define their functionality, providing a convenient and straightforward way to compose LLM-based applications. Learn more about components and how they work in the LangChain [documentation](https://docs.langchain.com/docs/category/components) section. + +### Component's Features + +
+ During the flow creation process, you will notice handles (colored circles) + attached to one or both sides of a component. These handles represent the + availability to connect to other components, while their colors are type hints + (hover over a handle to see connection details). +
+ +
+ For example, if you select a ConversationChain component, you + will see orange o and purple{" "} + o input handles. They indicate that + this component accepts an LLM and a Memory component as inputs. The red + asterisk * means that at least one input + of that type is required. +
+ +
+ +
+ +
+ On the top right corner, you will find the component status icon 🔴. Make the + necessary connections, build the flow (⚡ zap icon on the bottom right of the + canvas) and once the validation is completed, the status of each validated + component should light green 🟢. Hover over the component status to reveal the + outputs going through it in case of success, or the detected error in case of + failure. +
+ +--- + +### Component's Parameters + +Langflow components can be edited in the component settings button. Hide parameters to reduce complexity and keep the canvas clean and intuitive for experimentation. + +
+ +
diff --git a/docs/docs/guidelines/features.mdx b/docs/docs/guidelines/features.mdx new file mode 100644 index 000000000..cf8b09c6e --- /dev/null +++ b/docs/docs/guidelines/features.mdx @@ -0,0 +1,69 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; + +# Features + +
+ When you click for New Project, you will see on the top left corner of the + screen, some options such as Import, Export,{" "} + Code and Save, as displayed in the image + below: +
+ +
+ +
+ +
+ Further down, we will explain each of these options. +
+ +--- + +### Import and Export + +Flows can be exported and imported as JSON files. + +:::caution +Watch out for API keys being stored in local files. +::: + +--- + +### Code + +The Code button shows snippets to use your flow as a Python object or an API. + +**Python Code** + +Through the Langflow package, you can load a flow from a JSON file and use it as a LangChain object. + +```py +from langflow import load_flow_from_json + +flow = load_flow_from_json("path/to/flow.json") +# Now you can use it like any chain +flow("Hey, have you heard of Langflow?") +``` + +**API** + +Once you save a flow, the API endpoint is created with your latest changes. Click the "code" button to use that flow as an API. You can post-adjust component parameters using the global variable TWEAKS. + +The example below shows a Python script making a POST request to a local API endpoint, which gets a prediction based on the message input. + +
+ +
diff --git a/docs/docs/guidelines/prompt-customization.mdx b/docs/docs/guidelines/prompt-customization.mdx new file mode 100644 index 000000000..8e2f409f9 --- /dev/null +++ b/docs/docs/guidelines/prompt-customization.mdx @@ -0,0 +1,86 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; + +# Prompt Customization + +The prompt template allows users to create prompts and define variables that provide control over instructing the model. + +
+ +
+ + +Variables can be used to define instructions, questions, context, inputs, or examples for the model and can be created with any chosen name in curly brackets, e.g., `{variable_name}`. They act as placeholders for parts of the text that can be easily modified. + +
+ +
+ + +Once inserted, these variables are immediately recognized as new fields in the prompt component. Here, you can define their values within the component itself or leave a field empty to be adjusted over the chat interface. + +
+ +
+ +You can also use documents or output parsers as prompt variables. By plugging them into prompt handles, they’ll disable and feed that input field. + +
+ +
+ + + +With this, users can interact with documents, webpages, or any other type of content directly from the prompt, which allows for seamless integration of external resources with the language model. + + + +If working with an interactive (chat-like) flow, remember to keep one of the input variables empty to behave as the chat input. + +
+ +
+ + diff --git a/docs/docs/guides/chatprompttemplate_guide.mdx b/docs/docs/guides/chatprompttemplate_guide.mdx new file mode 100644 index 000000000..422bb6420 --- /dev/null +++ b/docs/docs/guides/chatprompttemplate_guide.mdx @@ -0,0 +1,78 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; + +# Building chatbots with System Message + +## Overview + +In this guide, we will modify the "Basic Chat with Prompt and History" example, integrating the ChatPromptTemplate with the SystemMessagePromptTemplate and HumanMessagePromptTemplate components. By following these steps, you'll be able to build a personalized chatbot that can interpret and respond based on user-defined System messages. + +## Interactive Guide + + + +## Step-by-Step Instructions + +1. Navigate to the "Community Examples" section. + +2. Locate the "Basic Chat with Prompt and History" example, and click on "Fork Example". + +3. Once in the editor, find the "PromptTemplate" component and remove it. + +4. Now, add these three components: ChatPromptTemplate, SystemMessagePromptTemplate, and HumanMessagePromptTemplate. + +> **Note:** Remember to set the model to gpt-3.5-turbo-0613 or the most up-to-date version. The latest models have improved capabilities to comprehend System messages. + +5. Open the "Prompt" field on the SystemMessagePromptTemplate component. + +6. Enter the text: `You are a {role} that {behavior}.` + +7. Save your changes by clicking on "Check & Save". + +8. Define the 'role' variable by typing "obedient assistant". + +9. Next, navigate to the HumanMessagePromptTemplate and open the "Prompt" field. + +10. Here, simply enter `{input}`. + +11. Save these changes by clicking on "Check & Save". + +12. Now, you should see your flow populated with the variables you defined. + +13. In the Memory component, set the 'Input Key' to "input". + +> **Tip:** When using a Memory component with multiple variables, it's crucial to specify which variable should be used to generate the conversation history. + +14. Click on the "Build" button to implement your changes. + +15. Open the chat interface to test your modifications. + +16. You should now be able to see and use the defined variables in the chat interface. + +17. Click on 'role' to examine the variable you established in the canvas. + +18. Now, let's define the 'behavior' variable. + +19. Enter the text: "writes the word 'Langflow' at the end of every sentence." + +20. Test your chatbot by typing "How can you help me?" + +21. If everything was set up correctly, your chatbot should respond appropriately, following the defined behavior. + +22. Congratulations! You have successfully customized and built your chatbot. + +By following these instructions, you have created a dynamic chatbot capable of understanding and responding based on custom system messages, enhancing the user experience and interaction. Enjoy your personalized assistant! diff --git a/docs/docs/guides/loading_document.mdx b/docs/docs/guides/loading_document.mdx new file mode 100644 index 000000000..d760e9124 --- /dev/null +++ b/docs/docs/guides/loading_document.mdx @@ -0,0 +1,64 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; + +# Integrating documents with prompt variables + +## Overview + +This guide takes you through the process of augmenting the "Basic Chat with Prompt and History" example. You'll learn how to embed documents as context into the PromptTemplate component utilizing a WebBaseLoader. + +## Interactive Guide + + + +## Step-by-Step Instructions + +1. Start by navigating to the "Community Examples" section. + +2. Find the "Basic Chat with Prompt and History" example and click on "Fork Example". + +3. In the editor, open the "Template" field. + +4. Here, introduce the `{context}` variable, placing it somewhere before the "Current conversation:" text. + +5. Once done, save your changes by clicking on "Check & Save". + +6. Next, open the search bar and type "web". + +7. Drag and drop a WebBaseLoader (or any other loader of your choice) onto the canvas. + +8. Connect this loader to the `{context}` variable that we just added. + +9. In the "Web Page" field, enter "https://langflow.org/how-upload-examples". + +10. Now, click on "ConversationBufferMemory". + +11. In the "Input Key" field, enter "text" to define the Chat variable. + +> **Tip:** When defining more than one variable and using a Memory component, it's crucial to specify which variable should be used to create the conversation history. + +12. Click on the "Build" button to implement your changes. + +13. Open the chat interface to test your modifications. + +14. Try asking something like, "How do I upload examples?" + +15. Click on "Display Prompt" to view your template. + +16. Now, you can see what the model used as a basis to generate its response. + +By following these instructions, you have successfully loaded a document into a PromptTemplate variable, allowing for more enriched and context-aware chat responses. This customization enhances user interaction by integrating relevant document content into the chat flow. diff --git a/docs/docs/index.mdx b/docs/docs/index.mdx new file mode 100644 index 000000000..4ec4a300d --- /dev/null +++ b/docs/docs/index.mdx @@ -0,0 +1,18 @@ +# 👋 Welcome to Langflow + +Langflow is an easy way to prototype [LangChain](https://github.com/hwchase17/langchain) flows. The drag-and-drop feature allows quick and effortless experimentation, while the built-in chat interface facilitates real-time interaction. It provides options to edit prompt parameters, create chains and agents, track thought processes, and export flows. + +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; + +
+ +
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js new file mode 100644 index 000000000..3ac152b5b --- /dev/null +++ b/docs/docusaurus.config.js @@ -0,0 +1,127 @@ +const lightCodeTheme = require("prism-react-renderer/themes/github"); + +// With JSDoc @type annotations, IDEs can provide config autocompletion +/** @type {import('@docusaurus/types').DocusaurusConfig} */ +( + module.exports = { + title: "Langflow Documentation", + tagline: "Langflow is a GUI for LangChain, designed with react-flow", + favicon: "img/favicon.ico", + url: "https://logspace-ai.github.io", + baseUrl: "/", + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + organizationName: "logspace-ai", + projectName: "langflow", + trailingSlash: false, + customFields: { + mendableAnonKey: process.env.MENDABLE_ANON_KEY, + }, + i18n: { + defaultLocale: "en", + locales: ["en"], + }, + presets: [ + [ + "@docusaurus/preset-classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + ({ + docs: { + routeBasePath: "/", + sidebarPath: require.resolve("./sidebars.js"), + path: "docs", + // sidebarPath: 'sidebars.js', + }, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + }), + ], + ], + plugins: [ + ["docusaurus-node-polyfills", { excludeAliases: ["console"] }], + "docusaurus-plugin-image-zoom", + // .... + async function myPlugin(context, options) { + return { + name: "docusaurus-tailwindcss", + configurePostCss(postcssOptions) { + // Appends TailwindCSS and AutoPrefixer. + postcssOptions.plugins.push(require("tailwindcss")); + postcssOptions.plugins.push(require("autoprefixer")); + return postcssOptions; + }, + }; + }, + ], + themeConfig: + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + ({ + navbar: { + hideOnScroll: true, + title: "Langflow", + logo: { + alt: "Langflow", + src: "img/chain.png", + }, + items: [ + // right + { + position: "right", + href: "https://github.com/logspace-ai/langflow", + position: "right", + className: "header-github-link", + target: "_blank", + rel: null, + }, + { + position: "right", + href: "https://twitter.com/logspace_ai", + position: "right", + className: "header-twitter-link", + target: "_blank", + rel: null, + }, + { + position: "right", + href: "https://discord.gg/EqksyE2EX9", + position: "right", + className: "header-discord-link", + target: "_blank", + rel: null, + }, + ], + }, + tableOfContents: { + minHeadingLevel: 2, + maxHeadingLevel: 5, + }, + colorMode: { + defaultMode: "light", + disableSwitch: true, + respectPrefersColorScheme: false, + }, + announcementBar: { + content: + '⭐️ If you like ⛓️Langflow, star it on GitHub! ⭐️', + backgroundColor: "#B53D38", //Mustard Yellow #D19900 #D4B20B - Salmon #E9967A + textColor: "#fff", + isCloseable: false, + }, + footer: { + links: [], + copyright: `Copyright © ${new Date().getFullYear()} Logspace.`, + }, + zoom: { + selector: ".markdown :not(a) > img:not(.no-zoom)", + background: { + light: "rgba(240, 240, 240, 0.9)", + }, + config: {}, + }, + prism: { + theme: lightCodeTheme, + }, + }), + } +); diff --git a/docs/guidelines.md b/docs/guidelines.md deleted file mode 100644 index 59c70da28..000000000 --- a/docs/guidelines.md +++ /dev/null @@ -1,115 +0,0 @@ -# Guidelines - -## Component - -A component is a self-contained and reusable building block in software development. It is a modular unit that performs a specific function or task within a larger system. They are created to provide a convenient and straightforward way to work with language models. - -
-Component **agents** can refer to an entity that is capable of performing actions or making decisions autonomously or on behalf of someone or something else. In the case of a language model like ChatGPT, the model itself can be considered an agent as it can generate responses and interact with users based on the input it receives. - -
-If want to learn more about the components and how they work, make sure to check out the LangChain [documentation](https://docs.langchain.com/docs/category/components){.internal-link target=\_blank} section. - ---- - -## Component's Features - -During the flow creation process, you will notice a colored circle o. Components marked with a red asterisk \* must be connected. If you don't connect it, a red line will appear around it. Make the necessary connections to make your flow work. Hovering over the small circle will reveal the component that needs to be connected. - -
- -In some components, at the top of it, you will see a small gear icon ⚙️, which you can click to edit the parameters. You also have the option to delete it by clicking the trash can icon 🗑️. - -
- -![Flow](img/single_node/guideline2.png#only-dark){width=50%} -![Flow](img/single_node/guideline.png#only-light){width=50%} - ---- - -## Features - -Located in the right top corner of the screen there are some features that you can use, such as **Code**, **Import**, **Export**, **Dark Mode** and **Notification**, as you can see in the image below: - -
- -![Description](img/single_node/features.png#only-light){width=60%} -![Description](img/single_node/features2.png#only-dark){width=60%} - -
- -Further down, we will explain each of these features. - ---- - -### Code - -![Description](img/single_node/code.png#only-light){width=60%} -![Description](img/single_node/code2.png#only-dark){width=60%} - -
- -API Access: Export Your Flow for Code Usage. The API Access feature allows you to export your flow from the platform and utilize it with your own code. This feature provides two different tabs within the platform, the first being the "Python API" tab and the second being the "Python Code" tab. Each tab offers a unique set of functionalities to integrate the exported flow into your codebase seamlessly. - -
- -**Python API Tab:** - -To access the Python API tab, you can utilize the code snippet in the first tab. You can import the required libraries and define a predict function. This function takes a message as input and performs the following steps: - -- Opens the "`Conversation_buffer_memory.json`" file, which contains the exported flow information. -- Constructs a payload consisting of the exported flow data and the input message. -- Sends a POST request to the specified API URL with the payload as JSON. -- Returns the response as a JSON object, which includes the predicted result. - -
- -**Python Code Tab:** - -To access the Python Code tab, you can utilize the code snippet in the secon tab. You can import the `load_flow_from_json` function from the "`langflow`" library. This function loads the exported flow from the "`Conversation_buffer_memory.json`" file and assigns it to the variable `flow`. Once the flow is loaded, you can use it as a chain to process input messages. In the provided example, the flow variable is used to process the message "`Hey, have you heard of LangFlow?`". - -
- -By utilizing the Python Code tab, you can seamlessly integrate the exported flow into your code and leverage its capabilities for natural language processing tasks. - -
- -The API Access feature empowers you to leverage the full potential of your exported flow by seamlessly integrating it into your codebase. Whether you want to incorporate advanced conversational capabilities or automate specific tasks, this feature provides a flexible and efficient solution to enhance your conversational applications. - ---- - -### Import and Export - -Flows can be exported and imported as JSON files. We already have some examples on **Import** option, check them out. - -
- -![Examples](img/examples2.png#only-dark){width=50%} -![Examples](img/examples.png#only-light){width=50%} - -
- -The **Export** option allows you to export your flow setting a name and description. You have the option to save the file with your API keys. - -
- -| Import | Export | -| :------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------: | -| ![Chat](img/import.png#only-light){width=100%}![Chat](img/import2.png#only-dark){width=100%} | ![Chat](img/export.png#only-light){width=100%}![Chat](img/export2.png#only-dark){width=100%} | - ---- - -### Dark Mode and Notifications - -The background color can be set to dark 🌙 or light ☀️ mode. The bell icon 🔔 indicates that the component has a notification. - ---- - -## Chat - -A chat icon 💬 located in the bottom right corner of the screen allows you to chat. When you click over 💬 a new screen will pop up. You can start a conversation by typing in the text box and pressing enter. The chat will respond to your message. In the top right corner of the screen, you will see an eraser icon ![Eraser](img/eraser.png#only-light){width=2.5%} ![Eraser](img/eraser2.png#only-dark){width=2.5%}. Clicking on it will clear the chat history. - -
- -![Chat](img/chat.png#only-light){width=50%} -![Chat](img/chat2.png#only-dark){width=50%} diff --git a/docs/hugging-face-spaces.md b/docs/hugging-face-spaces.md deleted file mode 100644 index 665f5ec3f..000000000 --- a/docs/hugging-face-spaces.md +++ /dev/null @@ -1,10 +0,0 @@ -# Hugging Face Spaces - -LangFlow can be used on Hugging Face Spaces. A fully featured version of LangFlow can be accessed in your browser with just one click. - -
-![HFS](img/single_node/hugging_face_spaces2.png#only-dark){width=100%} -![HFS](img/single_node/hugging_face_spaces.png#only-light){width=100%} - -
-Check out LangFlow on [Hugging Face Spaces](https://huggingface.co/spaces/Logspace/LangFlow){.internal-link target=\_blank}. diff --git a/docs/img/MidJourney-prompt-chain.png b/docs/img/MidJourney-prompt-chain.png deleted file mode 100644 index 1cd960b95..000000000 Binary files a/docs/img/MidJourney-prompt-chain.png and /dev/null differ diff --git a/docs/img/MidJourney-prompt-chain2.png b/docs/img/MidJourney-prompt-chain2.png deleted file mode 100644 index 49ea8d7ac..000000000 Binary files a/docs/img/MidJourney-prompt-chain2.png and /dev/null differ diff --git a/docs/img/chat.png b/docs/img/chat.png deleted file mode 100644 index 9e3c44d7b..000000000 Binary files a/docs/img/chat.png and /dev/null differ diff --git a/docs/img/chat2.png b/docs/img/chat2.png deleted file mode 100644 index 69f679ffc..000000000 Binary files a/docs/img/chat2.png and /dev/null differ diff --git a/docs/img/conversation-buffer-memory.png b/docs/img/conversation-buffer-memory.png deleted file mode 100644 index 74fda4c42..000000000 Binary files a/docs/img/conversation-buffer-memory.png and /dev/null differ diff --git a/docs/img/conversation-buffer-memory2.png b/docs/img/conversation-buffer-memory2.png deleted file mode 100644 index 645ef2db6..000000000 Binary files a/docs/img/conversation-buffer-memory2.png and /dev/null differ diff --git a/docs/img/conversation-summary-memory.png b/docs/img/conversation-summary-memory.png deleted file mode 100644 index 7edc18084..000000000 Binary files a/docs/img/conversation-summary-memory.png and /dev/null differ diff --git a/docs/img/conversation-summary-memory2.png b/docs/img/conversation-summary-memory2.png deleted file mode 100644 index 91449902a..000000000 Binary files a/docs/img/conversation-summary-memory2.png and /dev/null differ diff --git a/docs/img/csv-loader.png b/docs/img/csv-loader.png deleted file mode 100644 index 986f3ee08..000000000 Binary files a/docs/img/csv-loader.png and /dev/null differ diff --git a/docs/img/csv-loader2.png b/docs/img/csv-loader2.png deleted file mode 100644 index e4256d122..000000000 Binary files a/docs/img/csv-loader2.png and /dev/null differ diff --git a/docs/img/eraser.png b/docs/img/eraser.png deleted file mode 100644 index cc89d447c..000000000 Binary files a/docs/img/eraser.png and /dev/null differ diff --git a/docs/img/eraser2.png b/docs/img/eraser2.png deleted file mode 100644 index 8c640b823..000000000 Binary files a/docs/img/eraser2.png and /dev/null differ diff --git a/docs/img/examples.png b/docs/img/examples.png deleted file mode 100644 index 35d43a1a9..000000000 Binary files a/docs/img/examples.png and /dev/null differ diff --git a/docs/img/examples2.png b/docs/img/examples2.png deleted file mode 100644 index 449ff9c0f..000000000 Binary files a/docs/img/examples2.png and /dev/null differ diff --git a/docs/img/export.png b/docs/img/export.png deleted file mode 100644 index 61b6f737e..000000000 Binary files a/docs/img/export.png and /dev/null differ diff --git a/docs/img/export2.png b/docs/img/export2.png deleted file mode 100644 index 8ae51c681..000000000 Binary files a/docs/img/export2.png and /dev/null differ diff --git a/docs/img/import.png b/docs/img/import.png deleted file mode 100644 index 41825bbb9..000000000 Binary files a/docs/img/import.png and /dev/null differ diff --git a/docs/img/import2.png b/docs/img/import2.png deleted file mode 100644 index 94051d171..000000000 Binary files a/docs/img/import2.png and /dev/null differ diff --git a/docs/img/json-agent.png b/docs/img/json-agent.png deleted file mode 100644 index c11c16019..000000000 Binary files a/docs/img/json-agent.png and /dev/null differ diff --git a/docs/img/json-agent2.png b/docs/img/json-agent2.png deleted file mode 100644 index fea36d570..000000000 Binary files a/docs/img/json-agent2.png and /dev/null differ diff --git a/docs/img/llm-chain.png b/docs/img/llm-chain.png deleted file mode 100644 index f3085ae39..000000000 Binary files a/docs/img/llm-chain.png and /dev/null differ diff --git a/docs/img/llm-chain2.png b/docs/img/llm-chain2.png deleted file mode 100644 index cfb59625e..000000000 Binary files a/docs/img/llm-chain2.png and /dev/null differ diff --git a/docs/img/multiple-vectorstores.png b/docs/img/multiple-vectorstores.png deleted file mode 100644 index 132b45b32..000000000 Binary files a/docs/img/multiple-vectorstores.png and /dev/null differ diff --git a/docs/img/multiple-vectorstores2.png b/docs/img/multiple-vectorstores2.png deleted file mode 100644 index 1462c9422..000000000 Binary files a/docs/img/multiple-vectorstores2.png and /dev/null differ diff --git a/docs/img/news-api-output.png b/docs/img/news-api-output.png deleted file mode 100644 index 942ea3424..000000000 Binary files a/docs/img/news-api-output.png and /dev/null differ diff --git a/docs/img/news-api.png b/docs/img/news-api.png deleted file mode 100644 index 3198fcd23..000000000 Binary files a/docs/img/news-api.png and /dev/null differ diff --git a/docs/img/news-api2.png b/docs/img/news-api2.png deleted file mode 100644 index 4ed9e8ca5..000000000 Binary files a/docs/img/news-api2.png and /dev/null differ diff --git a/docs/img/prompt-template.png b/docs/img/prompt-template.png deleted file mode 100644 index 4c93f0d67..000000000 Binary files a/docs/img/prompt-template.png and /dev/null differ diff --git a/docs/img/py-pdf-loader.png b/docs/img/py-pdf-loader.png deleted file mode 100644 index c483dc71d..000000000 Binary files a/docs/img/py-pdf-loader.png and /dev/null differ diff --git a/docs/img/py-pdf-loader2.png b/docs/img/py-pdf-loader2.png deleted file mode 100644 index 5f61086cf..000000000 Binary files a/docs/img/py-pdf-loader2.png and /dev/null differ diff --git a/docs/img/series-character-chain.png b/docs/img/series-character-chain.png deleted file mode 100644 index cde9f064f..000000000 Binary files a/docs/img/series-character-chain.png and /dev/null differ diff --git a/docs/img/series-character-chain2.png b/docs/img/series-character-chain2.png deleted file mode 100644 index 14d88b27c..000000000 Binary files a/docs/img/series-character-chain2.png and /dev/null differ diff --git a/docs/img/serp-api.png b/docs/img/serp-api.png deleted file mode 100644 index 5f1a1c2a5..000000000 Binary files a/docs/img/serp-api.png and /dev/null differ diff --git a/docs/img/serp-api2.png b/docs/img/serp-api2.png deleted file mode 100644 index dfed054be..000000000 Binary files a/docs/img/serp-api2.png and /dev/null differ diff --git a/docs/img/single_node/code.png b/docs/img/single_node/code.png deleted file mode 100644 index d7d581be7..000000000 Binary files a/docs/img/single_node/code.png and /dev/null differ diff --git a/docs/img/single_node/code2.png b/docs/img/single_node/code2.png deleted file mode 100644 index 4f0ab2de7..000000000 Binary files a/docs/img/single_node/code2.png and /dev/null differ diff --git a/docs/img/single_node/con_sum_mem.png b/docs/img/single_node/con_sum_mem.png deleted file mode 100644 index 03228bf9c..000000000 Binary files a/docs/img/single_node/con_sum_mem.png and /dev/null differ diff --git a/docs/img/single_node/conv_buf_mem.png b/docs/img/single_node/conv_buf_mem.png deleted file mode 100644 index d9b1e7b60..000000000 Binary files a/docs/img/single_node/conv_buf_mem.png and /dev/null differ diff --git a/docs/img/single_node/conv_buf_mem2.png b/docs/img/single_node/conv_buf_mem2.png deleted file mode 100644 index 65a175562..000000000 Binary files a/docs/img/single_node/conv_buf_mem2.png and /dev/null differ diff --git a/docs/img/single_node/conv_sum_me2.png b/docs/img/single_node/conv_sum_me2.png deleted file mode 100644 index 2caec051a..000000000 Binary files a/docs/img/single_node/conv_sum_me2.png and /dev/null differ diff --git a/docs/img/single_node/csv_loader.png b/docs/img/single_node/csv_loader.png deleted file mode 100644 index bedf3664f..000000000 Binary files a/docs/img/single_node/csv_loader.png and /dev/null differ diff --git a/docs/img/single_node/csv_loader2.png b/docs/img/single_node/csv_loader2.png deleted file mode 100644 index 380ccb09c..000000000 Binary files a/docs/img/single_node/csv_loader2.png and /dev/null differ diff --git a/docs/img/single_node/features.png b/docs/img/single_node/features.png deleted file mode 100644 index 85b6364bf..000000000 Binary files a/docs/img/single_node/features.png and /dev/null differ diff --git a/docs/img/single_node/features2.png b/docs/img/single_node/features2.png deleted file mode 100644 index 0942ae96f..000000000 Binary files a/docs/img/single_node/features2.png and /dev/null differ diff --git a/docs/img/single_node/guideline.png b/docs/img/single_node/guideline.png deleted file mode 100644 index 0c822e29e..000000000 Binary files a/docs/img/single_node/guideline.png and /dev/null differ diff --git a/docs/img/single_node/guideline2.png b/docs/img/single_node/guideline2.png deleted file mode 100644 index 8f7fd9663..000000000 Binary files a/docs/img/single_node/guideline2.png and /dev/null differ diff --git a/docs/img/single_node/hugging_face_spaces.png b/docs/img/single_node/hugging_face_spaces.png deleted file mode 100644 index 49226d03f..000000000 Binary files a/docs/img/single_node/hugging_face_spaces.png and /dev/null differ diff --git a/docs/img/single_node/hugging_face_spaces2.png b/docs/img/single_node/hugging_face_spaces2.png deleted file mode 100644 index 9a5f3c01c..000000000 Binary files a/docs/img/single_node/hugging_face_spaces2.png and /dev/null differ diff --git a/docs/img/single_node/json_ag.png b/docs/img/single_node/json_ag.png deleted file mode 100644 index 36aa25ded..000000000 Binary files a/docs/img/single_node/json_ag.png and /dev/null differ diff --git a/docs/img/single_node/json_ag2.png b/docs/img/single_node/json_ag2.png deleted file mode 100644 index 90c3d7871..000000000 Binary files a/docs/img/single_node/json_ag2.png and /dev/null differ diff --git a/docs/img/single_node/mid_jour_chain.png b/docs/img/single_node/mid_jour_chain.png deleted file mode 100644 index fdc8b8fd8..000000000 Binary files a/docs/img/single_node/mid_jour_chain.png and /dev/null differ diff --git a/docs/img/single_node/mid_jour_chain2.png b/docs/img/single_node/mid_jour_chain2.png deleted file mode 100644 index eb452ccb4..000000000 Binary files a/docs/img/single_node/mid_jour_chain2.png and /dev/null differ diff --git a/docs/img/single_node/mult_vect.png b/docs/img/single_node/mult_vect.png deleted file mode 100644 index 69a2a2d82..000000000 Binary files a/docs/img/single_node/mult_vect.png and /dev/null differ diff --git a/docs/img/single_node/mult_vect2.png b/docs/img/single_node/mult_vect2.png deleted file mode 100644 index 53a2dc1f3..000000000 Binary files a/docs/img/single_node/mult_vect2.png and /dev/null differ diff --git a/docs/img/single_node/news_api.png b/docs/img/single_node/news_api.png deleted file mode 100644 index b76514987..000000000 Binary files a/docs/img/single_node/news_api.png and /dev/null differ diff --git a/docs/img/single_node/news_api2.png b/docs/img/single_node/news_api2.png deleted file mode 100644 index 48d185192..000000000 Binary files a/docs/img/single_node/news_api2.png and /dev/null differ diff --git a/docs/img/single_node/pal_math.png b/docs/img/single_node/pal_math.png deleted file mode 100644 index 0dcb05732..000000000 Binary files a/docs/img/single_node/pal_math.png and /dev/null differ diff --git a/docs/img/single_node/pal_math2.png b/docs/img/single_node/pal_math2.png deleted file mode 100644 index 4472b986b..000000000 Binary files a/docs/img/single_node/pal_math2.png and /dev/null differ diff --git a/docs/img/single_node/pypdf.png b/docs/img/single_node/pypdf.png deleted file mode 100644 index a880c800e..000000000 Binary files a/docs/img/single_node/pypdf.png and /dev/null differ diff --git a/docs/img/single_node/pypdf2.png b/docs/img/single_node/pypdf2.png deleted file mode 100644 index e326f507a..000000000 Binary files a/docs/img/single_node/pypdf2.png and /dev/null differ diff --git a/docs/img/single_node/series_cha_chain.png b/docs/img/single_node/series_cha_chain.png deleted file mode 100644 index 0e0c8a4a3..000000000 Binary files a/docs/img/single_node/series_cha_chain.png and /dev/null differ diff --git a/docs/img/single_node/series_cha_chain2.png b/docs/img/single_node/series_cha_chain2.png deleted file mode 100644 index 15f7fa485..000000000 Binary files a/docs/img/single_node/series_cha_chain2.png and /dev/null differ diff --git a/docs/img/single_node/serp.png b/docs/img/single_node/serp.png deleted file mode 100644 index bd9567412..000000000 Binary files a/docs/img/single_node/serp.png and /dev/null differ diff --git a/docs/img/single_node/serp2.png b/docs/img/single_node/serp2.png deleted file mode 100644 index 6331f3c00..000000000 Binary files a/docs/img/single_node/serp2.png and /dev/null differ diff --git a/docs/img/single_node/time_travel.png b/docs/img/single_node/time_travel.png deleted file mode 100644 index 1732e8c72..000000000 Binary files a/docs/img/single_node/time_travel.png and /dev/null differ diff --git a/docs/img/single_node/time_travel2.png b/docs/img/single_node/time_travel2.png deleted file mode 100644 index 673a905d1..000000000 Binary files a/docs/img/single_node/time_travel2.png and /dev/null differ diff --git a/docs/img/single_node/vec_sto_agt.png b/docs/img/single_node/vec_sto_agt.png deleted file mode 100644 index 65c2ffbba..000000000 Binary files a/docs/img/single_node/vec_sto_agt.png and /dev/null differ diff --git a/docs/img/single_node/vec_sto_agt2.png b/docs/img/single_node/vec_sto_agt2.png deleted file mode 100644 index 881f7adf6..000000000 Binary files a/docs/img/single_node/vec_sto_agt2.png and /dev/null differ diff --git a/docs/img/time-travel-guide-chain.png b/docs/img/time-travel-guide-chain.png deleted file mode 100644 index 1b3b33b98..000000000 Binary files a/docs/img/time-travel-guide-chain.png and /dev/null differ diff --git a/docs/img/time-travel-guide-chain2.png b/docs/img/time-travel-guide-chain2.png deleted file mode 100644 index 228cc4a2c..000000000 Binary files a/docs/img/time-travel-guide-chain2.png and /dev/null differ diff --git a/docs/img/tool-pal-math.png b/docs/img/tool-pal-math.png deleted file mode 100644 index 8caf60025..000000000 Binary files a/docs/img/tool-pal-math.png and /dev/null differ diff --git a/docs/img/tool-pal-math2.png b/docs/img/tool-pal-math2.png deleted file mode 100644 index ff2a08506..000000000 Binary files a/docs/img/tool-pal-math2.png and /dev/null differ diff --git a/docs/img/vectorstore-agent.png b/docs/img/vectorstore-agent.png deleted file mode 100644 index afaa7e5b6..000000000 Binary files a/docs/img/vectorstore-agent.png and /dev/null differ diff --git a/docs/img/vectorstore-agent2.png b/docs/img/vectorstore-agent2.png deleted file mode 100644 index 115be7146..000000000 Binary files a/docs/img/vectorstore-agent2.png and /dev/null differ diff --git a/docs/index.d.ts b/docs/index.d.ts new file mode 100644 index 000000000..68fbc7ed5 --- /dev/null +++ b/docs/index.d.ts @@ -0,0 +1,10 @@ +declare module '*.module.scss' { + const classes: { readonly [key: string]: string }; + export default classes; + } + + declare module '@theme/*'; + + declare module '@components/*'; + + declare module '@docusaurus/*'; \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 88ef00406..000000000 --- a/docs/index.md +++ /dev/null @@ -1,25 +0,0 @@ -# ⛓️ LangFlow -

- ~ A User Interface For - LangChain 🦜🔗 ~ -

- -
- -

-HuggingFace Spaces -GitHub Contributors -GitHub Last Commit - -GitHub Issues -GitHub Pull Requests -Github License -

- -![Description](img/langflow-demo2.gif#only-light) -![Description](img/langflow-demo2.gif#only-dark) - -
- -LangFlow is a GUI for [LangChain](https://github.com/hwchase17/langchain){.internal-link target=_blank}, designed with [react-flow](https://github.com/wbkd/react-flow){.internal-link target=_blank}. -The drag-and-drop feature provides a quick and effortless way to experiment and prototype, and the built-in chat interface enables real-time interaction. With LangFlow, you can edit prompt parameters, create chains and agents, track the agent’s thought process, and export your flow. \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md deleted file mode 100644 index bfb0e0d8b..000000000 --- a/docs/installation.md +++ /dev/null @@ -1,60 +0,0 @@ -# How to install? -## Installation - -You can install LangFlow from pip: - -```py -pip install langflow -``` - -Next, run: - -```py -python -m langflow -``` - -or - -```py -langflow -``` - ---- - -## Run Locally - -Run locally by cloning the repository and installing the dependencies. We recommend using a virtual environment to isolate the dependencies from your system. - -
- -Before you start, make sure you have the following installed: - -- Poetry -- Node.js - -For the backend, you will need to install the dependencies and start the development server. - -```bash -poetry install -make run_backend -``` - -For the frontend, you will need to install the dependencies and start the development server. - -```bash -cd src/frontend -npm install -npm start -``` - ---- - -## Docker compose - -This will run the backend and frontend in separate containers. The frontend will be available at `localhost:3000` and the backend at `localhost:7860`. - -```bash -docker compose up --build -# or -make dev build=1 -``` diff --git a/docs/javascripts/mendablesearch.js b/docs/javascripts/mendablesearch.js deleted file mode 100644 index 9f3ddbdcb..000000000 --- a/docs/javascripts/mendablesearch.js +++ /dev/null @@ -1,90 +0,0 @@ -document.addEventListener('DOMContentLoaded', () => { - // Load the external dependencies - function loadScript(src, onLoadCallback) { - const script = document.createElement('script'); - script.src = src; - script.onload = onLoadCallback; - document.head.appendChild(script); - } - - function createRootElement() { - const rootElement = document.createElement('div'); - rootElement.id = 'my-component-root'; - document.body.appendChild(rootElement); - return rootElement; - } - - - - function initializeMendable() { - const rootElement = createRootElement(); - const { MendableFloatingButton } = Mendable; - - const textObserver = new MutationObserver(() => { - const textArea = document.querySelector('#headlessui-portal-root textarea'); - if(textArea) { - let sibling = textArea.nextSibling; - if(sibling){ - if(textArea.scrollHeight == 37) { - sibling.style.display = "none"; - } else { - sibling.style.display = "block"; - } - } - - } - }); - - const observer = new MutationObserver(() => { - const textArea = document.querySelector('#headlessui-portal-root textarea'); - if(textArea){ - let sibling = textArea.nextSibling; - if(sibling){ - sibling.style.display = "none"; - } - textObserver.observe(textArea, {attributes: true, childList: true, subtree: true}) - } - }); - - observer.observe(rootElement, {attributes: true, childList: true, subtree: true}) - - - const iconSpan1 = React.createElement('img', { - src: 'img/chain.png', - style: {width: '40px'} - }, null); - - const icon = React.createElement('p', { - style: { color: '#ffffff', fontSize: '22px',width: '48px', height: '48px', margin: '0px', padding: '0px', display: 'flex', alignItems: 'center', justifyContent: 'center', textAlign: 'center' }, - }, [iconSpan1]); - - - - - const mendableFloatingButton = React.createElement( - MendableFloatingButton, - { - style: { darkMode: true, accentColor: '#4051b5' }, - floatingButtonStyle: { color: '#ffffff', backgroundColor: '#010810' }, - anon_key: 'b7f52734-297c-41dc-8737-edbd13196394', // Mendable Search Public ANON key, ok to be public - messageSettings: { - openSourcesInNewTab: false, - }, - showSimpleSearch: false, - icon: icon, - } - ); - - ReactDOM.render(mendableFloatingButton, rootElement); - } - - loadScript('https://unpkg.com/react@17/umd/react.production.min.js', () => { - loadScript('https://unpkg.com/react-dom@17/umd/react-dom.production.min.js', () => { - loadScript('https://unpkg.com/@mendable/search@0.0.93/dist/umd/mendable.min.js', initializeMendable); - }); - }); -}); - - - - diff --git a/docs/json-agent.md b/docs/json-agent.md deleted file mode 100644 index b854a53cc..000000000 --- a/docs/json-agent.md +++ /dev/null @@ -1,43 +0,0 @@ -The `JsonAgent` is an agent designed to interact with large JSON/dict objects. - -
- -![Description](img/single_node/json_ag.png#only-light){width=50%} -![Description](img/single_node/json_ag2.png#only-dark){width=50%} - -
- -To understand more, check out the LangChain [JsonAgent](https://python.langchain.com/en/latest/modules/agents/toolkits/examples/json.html){.internal-link target=\_blank} documentation. - ---- - -### ⛓️LangFlow example - -![Description](img/json-agent2.png#only-dark){width=100%} -![Description](img/json-agent.png#only-light){width=100%} - -
- -[Download Flow](data/Json_agent.json){: .md-button download="Json_agent"} - -
- -`JsonSpec` will define the **Max value length** of the input and output of the agent. You can get the **Path** file [here](https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml){.internal-link target=\_blank}. - -
- -**Max value length**: - -```txt -400 -``` - -For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. - -
- -`JsonToolkit` for interacting with the JSON spec. diff --git a/docs/langflow-examples.md b/docs/langflow-examples.md deleted file mode 100644 index f91be96df..000000000 --- a/docs/langflow-examples.md +++ /dev/null @@ -1,18 +0,0 @@ -# How to Upload Examples - -We welcome all examples that can help our community learn and explore the features of our open-source software. -Langflow Examples is a repository on [GitHub](https://github.com/logspace-ai/langflow_examples){.internal-link target=_blank} that contains examples of flows that you can upload to Langflow. - -To upload examples to Langflow, please follow these steps: - -1. **Create a Flow:** First, create a flow using Langflow. You can use any of the available templates or create a new flow from scratch. - -2. **Export the Flow:**: Once you have created a flow, export it as a .json file. Make sure to give your file a descriptive name and include a brief description of what your flow does. - -3. **Submit a Pull Request**: Finally, submit a pull request (PR) to the examples folder. Make sure to include your .json file in the PR. - -Here are some additional guidelines to follow when submitting examples: - -Please make sure that your example follows the [**⛓️ Langflow code of conduct**](https://github.com/logspace-ai/langflow/blob/dev/CODE_OF_CONDUCT.md){.internal-link target=_blank}. - -If your example uses any third-party libraries or packages, please include them in your PR. diff --git a/docs/langflow.md b/docs/langflow.md deleted file mode 100644 index b7f8c0a40..000000000 --- a/docs/langflow.md +++ /dev/null @@ -1,24 +0,0 @@ -# ⛓️ LangFlow -

- ~ A User Interface For - LangChain 🦜🔗 ~ -

- -
- -

-HuggingFace Spaces -GitHub Contributors -GitHub Last Commit - -GitHub Issues -GitHub Pull Requests -Github License -

- -![Description](img/langflow-demo2.gif#only-light) -![Description](img/langflow-demo2.gif#only-dark) - -
- -LangFlow is a GUI for [LangChain](https://github.com/hwchase17/langchain){.internal-link target=_blank}, designed with [react-flow](https://github.com/wbkd/react-flow){.internal-link target=_blank}. The drag-and-drop feature provides a quick and effortless way to experiment and prototype, and the built-in chat interface enables real-time interaction. With LangFlow, you can edit prompt parameters, create chains and agents, track the agent’s thought process, and export your flow. \ No newline at end of file diff --git a/docs/llmchain.md b/docs/llmchain.md deleted file mode 100644 index 2f6cd41da..000000000 --- a/docs/llmchain.md +++ /dev/null @@ -1,50 +0,0 @@ -The `LLMChain` is a simple chain that takes in a prompt template, formats it with the user input, and returns the response from an LLM. - -
- -![Description](img/single_node/guideline2.png#only-dark){width=50%} -![Description](img/single_node/guideline.png#only-light){width=50%} - -
- -More information about the [LLMChain](https://python.langchain.com/en/latest/modules/chains/generic/llm_chain.html){.internal-link target=\_blank} can be found in the LangChain documentation. - ---- -### ⛓️LangFlow example - -![Description](img/llm-chain2.png#only-dark){width=100%} -![Description](img/llm-chain.png#only-light){width=100%} - -
- -[Download Flow](data/llm_chain.json){: .md-button download="llm_chain"} - -
- -The `PromptTemplate` is a simple template that takes in a product name and returns a prompt. The prompt is used to generate the response from the LLM. - -
- -**Template**: - -```txt -I want you to act as a naming consultant for new companies. - -Here are some examples of good company names: - -- search engine, Google -- social media, Facebook -- video sharing, YouTube - -The name should be short, catchy, and easy to remember. - -What is a good name for a company that makes {product}? -``` - -
- -For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. diff --git a/docs/llms.md b/docs/llms.md deleted file mode 100644 index 8b328d665..000000000 --- a/docs/llms.md +++ /dev/null @@ -1,47 +0,0 @@ -## OpenAI - -##### Options available: - -- **Model name** - typically refers to the name given to a specific pre-trained model or architecture used to perform a particular task. These models are usually developed by training neural networks on large datasets to learn patterns in the data, and then fine-tuning them for specific applications. - - **text-davinci-003** - is a transformer-based neural network. Most capable GPT-3 model. Can do any task the other models can do, often with higher quality. - - **text-davinvi-002** - is a transformer-based neural network. The 002 suffix distinguishes it from other versions of the "davinci" model. - - **text-curie-001** - very capable, faster, and lower cost than Davinci. - - **text-babbage-001** - capable of straightforward tasks, very fast, and lower cost. - - **text-ada-001** - capable of very simple tasks, usually the fastest model in the GPT-3 series, and lowest cost. - -- **Temperature** - the temperature parameter controls the "softness" of the probability distribution produced by the softmax function. A high-temperature value produces a softer probability distribution, which means that the model will be more uncertain and assign more similar probabilities to multiple classes. A low-temperature value produces a sharper probability distribution, which means that the model will be more confident and assign higher probabilities to the most likely classes. - -- **Max tokens** - refers to the maximum number of tokens (i.e., words and symbols) that can be input to the model at once for text generation or other language tasks. The exact value of the max tokens parameter may vary depending on the specific LLM variant being used and the resources available for processing the input text. - -- **Model kwargs** - by adjusting the values of the kwargs, it is possible to modify the way the model is trained, how it handles inputs, or how it generates outputs. However, it is important to be careful when modifying model kwargs, as the wrong configuration can lead to poor performance or even failure of the model. - -## ChatOpenAI -Wrapper around OpenAI Chat large language model. - -##### Options available: - -- **Model name**: - - **gpt-3.5-turbo** - the GPT-3.5-Turbo model has the capability unlocks some interesting features, such as the ability to store prior responses or query with a predefined set of instructions with context. - - **gpt-4** - the latest milestone in OpenAI’s effort in scaling up deep learning. - - **gpt-4-32k** - it can process as many as 32,768 tokens, which is about 50 pages of text. - -- **Max tokens** - refers to the maximum number of tokens (i.e., words and symbols) that can be input to the model at once for text generation or other language tasks. The exact value of the max tokens parameter may vary depending on the specific LLM variant being used and the resources available for processing the input text. - -- **Model kwargs** - by adjusting the values of the kwargs, it is possible to modify the way the model is trained, how it handles inputs, or how it generates outputs. However, it is important to be careful when modifying model kwargs, as the wrong configuration can lead to poor performance or even failure of the model. - -- **Max tokens** - refers to the maximum number of tokens (i.e., words and symbols) that can be input to the model at once for text generation or other language tasks. - -## Llama Cpp -A wrapper around the [llama.cpp](https://github.com/ggerganov/llama.cpp){.internal-link target=_blank} model. - -Make sure you are following all instructions to [install all necessary model files](https://github.com/ggerganov/llama.cpp){.internal-link target=_blank} model. - -There is no need for *API_TOKENS*! - -##### Options available: - -- **Model path**: insert your model path after you have downloaded the model files. - -- **Max tokens** - refers to the maximum number of tokens (i.e., words and symbols) that can be input to the model at once for text generation or other language tasks. The exact value of the max tokens parameter may vary depending on the specific LLM variant being used and the resources available for processing the input text. - -- **Temperature** - the temperature parameter controls the "softness" of the probability distribution produced by the softmax function. A high-temperature value produces a softer probability distribution, which means that the model will be more uncertain and assign more similar probabilities to multiple classes. A low-temperature value produces a sharper probability distribution, which means that the model will be more confident and assign higher probabilities to the most likely classes. \ No newline at end of file diff --git a/docs/local-development.md b/docs/local-development.md deleted file mode 100644 index da020bd23..000000000 --- a/docs/local-development.md +++ /dev/null @@ -1,7 +0,0 @@ -# :whale: Docker compose -This will run the backend and frontend in separate containers. The frontend will be available at `localhost:3000` and the backend at `localhost:7860`. -```bash -docker compose up --build -# or -make dev build=1 -``` \ No newline at end of file diff --git a/docs/locally.md b/docs/locally.md deleted file mode 100644 index b1486d6f1..000000000 --- a/docs/locally.md +++ /dev/null @@ -1,20 +0,0 @@ -# 💻 Run Locally -Run locally by cloning the repository and installing the dependencies. We recommend using a virtual environment to isolate the dependencies from your system. - -
- -Before you start, make sure you have the following installed: - - Poetry - - Node.js - -For the backend, you will need to install the dependencies and start the development server. -```bash -poetry install -make run_backend -``` -For the frontend, you will need to install the dependencies and start the development server. -```bash -cd src/frontend -npm install -npm start -``` \ No newline at end of file diff --git a/docs/midjourney-prompt-chain.md b/docs/midjourney-prompt-chain.md deleted file mode 100644 index 6bd4fb022..000000000 --- a/docs/midjourney-prompt-chain.md +++ /dev/null @@ -1,37 +0,0 @@ -With `MidJourneyPromptChain`, you can use it to generate new MidJourney prompts. You can just type anything you like to build an image script. - -
- -![Description](img/single_node/mid_jour_chain2.png#only-dark){width=50%} -![Description](img/single_node/mid_jour_chain.png#only-light){width=50%} - ---- - -### ⛓️LangFlow example - -![Description](img/MidJourney-prompt-chain2.png#only-dark){width=100%} -![Description](img/MidJourney-prompt-chain.png#only-light){width=100%} - -
- -[Download Flow](data/Midjourney_prompt_chain.json){: .md-button download="Midjourney_prompt_chain"} - -
- -`ConversationSummaryMemory` creates a summary of the conversation over time, which can be useful for condensing information. The **memory key** input is typically generated by encoding the input text using an encoder network, which maps the input text into a fixed-dimensional vector representation. - -
- -In the example, we typed the word `Dragon` and the chatbot generated a prompt for the image. - -
- -Check out the image created by the prompt [here](https://www.bing.com/images/create/imagine-a-mysterious-forest2c-the-trees-are-tall-an/6440616907a941798a21294c224f089c?id=qCNeV4ysTxKW8xKfqsx4zg%3d%3d&view=detailv2&idpp=genimg&FORM=GCRIDP&mode=overlay){.internal-link target=\_blank}. - -
- -For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. diff --git a/docs/multiple-vectorstores.md b/docs/multiple-vectorstores.md deleted file mode 100644 index 42980c0f3..000000000 --- a/docs/multiple-vectorstores.md +++ /dev/null @@ -1,122 +0,0 @@ -`VectorStoreRouterAgent` construct an agent that routes between multiple vectorstores. - -
- -![Description](img/single_node/mult_vect.png#only-light){width=50%} -![Description](img/single_node/mult_vect2.png#only-dark){width=50%} - -
- -For more information about [VectorStoreRouterAgent](https://python.langchain.com/en/latest/modules/agents/agent_executors/examples/agent_vectorstore.html?highlight=Router){.internal-link target=\_blank}, check out the LangChain documentation. - ---- -### ⛓️LangFlow example - -![Description](img/multiple-vectorstores2.png#only-dark){width=100%} -![Description](img/multiple-vectorstores.png#only-light){width=100%} - -
- -[Download Flow](data/Multiple_vectorstores.json){: .md-button download="Multiple_vectorstores"} - -
- -`TextLoader` loads text from a file. - -
- -[Download txt](data/state_of_the_union.txt){: .md-button download="state-of-the-union"} - -
- -By using `WebBaseLoader`, you can load all text from webpages into a document format that we can use downstream. Web path used: - -```txt -https://beta.ruff.rs/docs/faq/ -``` - -`CharacterTextSplitter` implements splitting text based on characters. - -Text splitters operate as follows: - -- Split the text into small, meaningful chunks (usually sentences). - -- Combine these small chunks into larger ones until they reach a certain size (measured by a function). - -- Once a chunk reaches the desired size, make it its piece of text and create a new chunk with some overlap to maintain context. - -**Separator used**: - -```txt -. -``` - -**Chunk size used**: - -```txt -2000 -``` - -**Chunk overlap used**: - -```txt -200 -``` - -
- -The `OpenAIEmbeddings`, wrapper around [OpenAI Embeddings](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings){.internal-link target=\_blank} models. Make sure to get the API key from the LLM provider, in this case [OpenAI](https://platform.openai.com/){.internal-link target=\_blank}. - -
- -`Chroma` vector databases can be used as vectorstores to conduct a semantic search or to select examples, thanks to a wrapper around them. - -
- -`VectorStoreInfo` set information about the vectorstore, such as the name and description. - -
- -**First VectorStoreInfo** - -
- -Name: - -```txt -state_of_union_address -``` - -Description: - -```txt -the most recent state of the Union address -``` - -**Second VectorStoreInfo** - -
- -Name: - -```txt -ruff -``` - -Description: - -```txt -Information about the Ruff python linting library -``` - -
- -The `VectorStoreRouterToolkit` is a toolkit that allows you to create a `VectorStoreRouter` agent. This allows it to route between vector stores. - -
- -For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. diff --git a/docs/news-api.md b/docs/news-api.md deleted file mode 100644 index 1b52fae17..000000000 --- a/docs/news-api.md +++ /dev/null @@ -1,24 +0,0 @@ -`News API` is a tool that allows you to get information about the top headlines of current new stories. To use the News API, you first need to sign up [News API](https://newsapi.org/){.internal-link target=\_blank} for an API key on the provider's website. - -
- -![Description](img/single_node/news_api.png#only-light){width=50%} -![Description](img/single_node/news_api2.png#only-dark){width=50%} - ---- -### ⛓️LangFlow example - -![Description](img/news-api2.png#only-dark){width=100%} -![Description](img/news-api.png#only-light){width=100%} - -
- -[Download Flow](data/News_api.json){: .md-button download="News_api"} - -
- -For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. diff --git a/docs/package-lock.json b/docs/package-lock.json new file mode 100644 index 000000000..7db7f9376 --- /dev/null +++ b/docs/package-lock.json @@ -0,0 +1,17954 @@ +{ + "name": "docusaurus", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docusaurus", + "version": "0.0.0", + "dependencies": { + "@babel/preset-react": "^7.22.3", + "@docusaurus/core": "2.4.1", + "@docusaurus/plugin-ideal-image": "^2.4.1", + "@docusaurus/preset-classic": "2.4.1", + "@docusaurus/theme-classic": "^2.4.1", + "@docusaurus/theme-search-algolia": "^2.4.1", + "@mdx-js/react": "^1.6.22", + "@mendable/search": "^0.0.114", + "@pbe/react-yandex-maps": "^1.2.4", + "@prismicio/client": "^7.0.1", + "@uiball/loaders": "^1.2.6", + "autoprefixer": "^10.4.14", + "clsx": "^1.2.1", + "docusaurus-plugin-image-zoom": "^0.1.4", + "jquery": "^3.7.0", + "medium-zoom": "^1.0.8", + "node-fetch": "^3.3.1", + "path-browserify": "^1.0.1", + "postcss": "^8.4.24", + "prism-react-renderer": "^1.3.5", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-images": "^0.6.7", + "react-medium-image-zoom": "^5.1.6", + "react-player": "^2.12.0", + "react-transition-group": "^4.4.5", + "remark-parse": "^10.0.2", + "swizzle": "^1.1.0", + "tailwindcss": "^3.3.2" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "2.4.1", + "css-loader": "^6.8.1", + "docusaurus-node-polyfills": "^1.0.0", + "node-sass": "^9.0.0", + "sass": "^1.62.1", + "ts-loader": "^9.4.3" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.18.0.tgz", + "integrity": "sha512-rUAs49NLlO8LVLgGzM4cLkw8NJLKguQLgvFmBEe3DyzlinoqxzQMHfKZs6TSq4LZfw/z8qHvRo8NcTAAUJQLcw==", + "dependencies": { + "@algolia/cache-common": "4.18.0" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.18.0.tgz", + "integrity": "sha512-BmxsicMR4doGbeEXQu8yqiGmiyvpNvejYJtQ7rvzttEAMxOPoWEHrWyzBQw4x7LrBY9pMrgv4ZlUaF8PGzewHg==" + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.18.0.tgz", + "integrity": "sha512-evD4dA1nd5HbFdufBxLqlJoob7E2ozlqJZuV3YlirNx5Na4q1LckIuzjNYZs2ddLzuTc/Xd5O3Ibf7OwPskHxw==", + "dependencies": { + "@algolia/cache-common": "4.18.0" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.18.0.tgz", + "integrity": "sha512-XsDnlROr3+Z1yjxBJjUMfMazi1V155kVdte6496atvBgOEtwCzTs3A+qdhfsAnGUvaYfBrBkL0ThnhMIBCGcew==", + "dependencies": { + "@algolia/client-common": "4.18.0", + "@algolia/client-search": "4.18.0", + "@algolia/transporter": "4.18.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.18.0.tgz", + "integrity": "sha512-chEUSN4ReqU7uRQ1C8kDm0EiPE+eJeAXiWcBwLhEynfNuTfawN9P93rSZktj7gmExz0C8XmkbBU19IQ05wCNrQ==", + "dependencies": { + "@algolia/client-common": "4.18.0", + "@algolia/client-search": "4.18.0", + "@algolia/requester-common": "4.18.0", + "@algolia/transporter": "4.18.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.18.0.tgz", + "integrity": "sha512-7N+soJFP4wn8tjTr3MSUT/U+4xVXbz4jmeRfWfVAzdAbxLAQbHa0o/POSdTvQ8/02DjCLelloZ1bb4ZFVKg7Wg==", + "dependencies": { + "@algolia/requester-common": "4.18.0", + "@algolia/transporter": "4.18.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.18.0.tgz", + "integrity": "sha512-+PeCjODbxtamHcPl+couXMeHEefpUpr7IHftj4Y4Nia1hj8gGq4VlIcqhToAw8YjLeCTfOR7r7xtj3pJcYdP8A==", + "dependencies": { + "@algolia/client-common": "4.18.0", + "@algolia/requester-common": "4.18.0", + "@algolia/transporter": "4.18.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.18.0.tgz", + "integrity": "sha512-F9xzQXTjm6UuZtnsLIew6KSraXQ0AzS/Ee+OD+mQbtcA/K1sg89tqb8TkwjtiYZ0oij13u3EapB3gPZwm+1Y6g==", + "dependencies": { + "@algolia/client-common": "4.18.0", + "@algolia/requester-common": "4.18.0", + "@algolia/transporter": "4.18.0" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + }, + "node_modules/@algolia/logger-common": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.18.0.tgz", + "integrity": "sha512-46etYgSlkoKepkMSyaoriSn2JDgcrpc/nkOgou/lm0y17GuMl9oYZxwKKTSviLKI5Irk9nSKGwnBTQYwXOYdRg==" + }, + "node_modules/@algolia/logger-console": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.18.0.tgz", + "integrity": "sha512-3P3VUYMl9CyJbi/UU1uUNlf6Z8N2ltW3Oqhq/nR7vH0CjWv32YROq3iGWGxB2xt3aXobdUPXs6P0tHSKRmNA6g==", + "dependencies": { + "@algolia/logger-common": "4.18.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.18.0.tgz", + "integrity": "sha512-/AcWHOBub2U4TE/bPi4Gz1XfuLK6/7dj4HJG+Z2SfQoS1RjNLshZclU3OoKIkFp8D2NC7+BNsPvr9cPLyW8nyQ==", + "dependencies": { + "@algolia/requester-common": "4.18.0" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.18.0.tgz", + "integrity": "sha512-xlT8R1qYNRBCi1IYLsx7uhftzdfsLPDGudeQs+xvYB4sQ3ya7+ppolB/8m/a4F2gCkEO6oxpp5AGemM7kD27jA==" + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.18.0.tgz", + "integrity": "sha512-TGfwj9aeTVgOUhn5XrqBhwUhUUDnGIKlI0kCBMdR58XfXcfdwomka+CPIgThRbfYw04oQr31A6/95ZH2QVJ9UQ==", + "dependencies": { + "@algolia/requester-common": "4.18.0" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.18.0.tgz", + "integrity": "sha512-xbw3YRUGtXQNG1geYFEDDuFLZt4Z8YNKbamHPkzr3rWc6qp4/BqEeXcI2u/P/oMq2yxtXgMxrCxOPA8lyIe5jw==", + "dependencies": { + "@algolia/cache-common": "4.18.0", + "@algolia/logger-common": "4.18.0", + "@algolia/requester-common": "4.18.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", + "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz", + "integrity": "sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", + "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", + "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", + "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", + "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", + "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz", + "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", + "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", + "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", + "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", + "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz", + "integrity": "sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz", + "integrity": "sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", + "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", + "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", + "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", + "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-typescript": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz", + "integrity": "sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw==", + "dependencies": { + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.1.tgz", + "integrity": "sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==" + }, + "node_modules/@docsearch/react": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.1.tgz", + "integrity": "sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==", + "dependencies": { + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.5.1", + "algoliasearch": "^4.0.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.1.tgz", + "integrity": "sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==", + "dependencies": { + "@babel/core": "^7.18.6", + "@babel/generator": "^7.18.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.18.6", + "@babel/preset-env": "^7.18.6", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@babel/runtime": "^7.18.6", + "@babel/runtime-corejs3": "^7.18.6", + "@babel/traverse": "^7.18.8", + "@docusaurus/cssnano-preset": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "@slorber/static-site-generator-webpack-plugin": "^4.0.7", + "@svgr/webpack": "^6.2.1", + "autoprefixer": "^10.4.7", + "babel-loader": "^8.2.5", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.0", + "cli-table3": "^0.6.2", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.23.3", + "css-loader": "^6.7.1", + "css-minimizer-webpack-plugin": "^4.0.0", + "cssnano": "^5.1.12", + "del": "^6.1.1", + "detect-port": "^1.3.0", + "escape-html": "^1.0.3", + "eta": "^2.0.0", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "html-minifier-terser": "^6.1.0", + "html-tags": "^3.2.0", + "html-webpack-plugin": "^5.5.0", + "import-fresh": "^3.3.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.6.1", + "postcss": "^8.4.14", + "postcss-loader": "^7.0.0", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.3", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.3", + "rtl-detect": "^1.0.4", + "semver": "^7.3.7", + "serve-handler": "^6.1.3", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.3", + "tslib": "^2.4.0", + "update-notifier": "^5.1.0", + "url-loader": "^4.1.1", + "wait-on": "^6.0.1", + "webpack": "^5.73.0", + "webpack-bundle-analyzer": "^4.5.0", + "webpack-dev-server": "^4.9.3", + "webpack-merge": "^5.8.0", + "webpackbar": "^5.0.2" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@docusaurus/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@docusaurus/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@docusaurus/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@docusaurus/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@docusaurus/core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@docusaurus/core/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@docusaurus/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@docusaurus/core/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.1.tgz", + "integrity": "sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ==", + "dependencies": { + "cssnano-preset-advanced": "^5.3.8", + "postcss": "^8.4.14", + "postcss-sort-media-queries": "^4.2.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/logger": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.1.tgz", + "integrity": "sha512-5h5ysIIWYIDHyTVd8BjheZmQZmEgWDR54aQ1BX9pjFfpyzFo5puKXKYrYJXbjEHGyVhEzmB9UXwbxGfaZhOjcg==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@docusaurus/logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@docusaurus/logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@docusaurus/logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@docusaurus/logger/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@docusaurus/logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@docusaurus/lqip-loader": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-2.4.1.tgz", + "integrity": "sha512-XJ0z/xSx5HtAQ+/xBoAiRZ7DY9zEP6IImAKlAk6RxuFzyB4HT8eINWN+LwLnOsTh5boIj37JCX+T76bH0ieULA==", + "dependencies": { + "@docusaurus/logger": "2.4.1", + "file-loader": "^6.2.0", + "lodash": "^4.17.21", + "sharp": "^0.30.7", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.1.tgz", + "integrity": "sha512-4KhUhEavteIAmbBj7LVFnrVYDiU51H5YWW1zY6SmBSte/YLhDutztLTBE0PQl1Grux1jzUJeaSvAzHpTn6JJDQ==", + "dependencies": { + "@babel/parser": "^7.18.8", + "@babel/traverse": "^7.18.8", + "@docusaurus/logger": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@mdx-js/mdx": "^1.6.22", + "escape-html": "^1.0.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "image-size": "^1.0.1", + "mdast-util-to-string": "^2.0.0", + "remark-emoji": "^2.2.0", + "stringify-object": "^3.3.0", + "tslib": "^2.4.0", + "unified": "^9.2.2", + "unist-util-visit": "^2.0.3", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz", + "integrity": "sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A==", + "dependencies": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "2.4.1", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.1.tgz", + "integrity": "sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "tslib": "^2.4.0", + "unist-util-visit": "^2.0.3", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.1.tgz", + "integrity": "sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "@types/react-router-config": "^5.0.6", + "combine-promises": "^1.1.0", + "fs-extra": "^10.1.0", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.1.tgz", + "integrity": "sha512-/UjuH/76KLaUlL+o1OvyORynv6FURzjurSjvn2lbWTFc4tpYY2qLYTlKpTCBVPhlLUQsfyFnshEJDLmPneq2oA==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "fs-extra": "^10.1.0", + "tslib": "^2.4.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.1.tgz", + "integrity": "sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "fs-extra": "^10.1.0", + "react-json-view": "^1.21.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.1.tgz", + "integrity": "sha512-dyZJdJiCoL+rcfnm0RPkLt/o732HvLiEwmtoNzOoz9MSZz117UH2J6U2vUDtzUzwtFLIf32KkeyzisbwUCgcaQ==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.1.tgz", + "integrity": "sha512-mKIefK+2kGTQBYvloNEKtDmnRD7bxHLsBcxgnbt4oZwzi2nxCGjPX6+9SQO2KCN5HZbNrYmGo5GJfMgoRvy6uA==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.1.tgz", + "integrity": "sha512-Zg4Ii9CMOLfpeV2nG74lVTWNtisFaH9QNtEw48R5QE1KIwDBdTVaiSA18G1EujZjrzJJzXN79VhINSbOJO/r3g==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-ideal-image": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-2.4.1.tgz", + "integrity": "sha512-jxvgCGPmHxdae2Y2uskzxIbMCA4WLTfzkufsLbD4mEAjCRIkt6yzux6q5kqKTrO+AxzpANVcJNGmaBtKZGv5aw==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/lqip-loader": "2.4.1", + "@docusaurus/responsive-loader": "^1.7.0", + "@docusaurus/theme-translations": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "@endiliey/react-ideal-image": "^0.0.11", + "react-waypoint": "^10.3.0", + "sharp": "^0.30.7", + "tslib": "^2.4.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "jimp": "*", + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + }, + "peerDependenciesMeta": { + "jimp": { + "optional": true + } + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.1.tgz", + "integrity": "sha512-lZx+ijt/+atQ3FVE8FOHV/+X3kuok688OydDXrqKRJyXBJZKgGjA2Qa8RjQ4f27V2woaXhtnyrdPop/+OjVMRg==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "fs-extra": "^10.1.0", + "sitemap": "^7.1.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.1.tgz", + "integrity": "sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/plugin-debug": "2.4.1", + "@docusaurus/plugin-google-analytics": "2.4.1", + "@docusaurus/plugin-google-gtag": "2.4.1", + "@docusaurus/plugin-google-tag-manager": "2.4.1", + "@docusaurus/plugin-sitemap": "2.4.1", + "@docusaurus/theme-classic": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-search-algolia": "2.4.1", + "@docusaurus/types": "2.4.1" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/react-loadable": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@docusaurus/responsive-loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/responsive-loader/-/responsive-loader-1.7.0.tgz", + "integrity": "sha512-N0cWuVqTRXRvkBxeMQcy/OF2l7GN8rmni5EzR3HpwR+iU2ckYPnziceojcxvvxQ5NqZg1QfEW0tycQgHp+e+Nw==", + "dependencies": { + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "jimp": "*", + "sharp": "*" + }, + "peerDependenciesMeta": { + "jimp": { + "optional": true + }, + "sharp": { + "optional": true + } + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.1.tgz", + "integrity": "sha512-Rz0wKUa+LTW1PLXmwnf8mn85EBzaGSt6qamqtmnh9Hflkc+EqiYMhtUJeLdV+wsgYq4aG0ANc+bpUDpsUhdnwg==", + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-translations": "2.4.1", + "@docusaurus/types": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.2.1", + "copy-text-to-clipboard": "^3.0.1", + "infima": "0.2.0-alpha.43", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.4.14", + "prism-react-renderer": "^1.3.5", + "prismjs": "^1.28.0", + "react-router-dom": "^5.3.3", + "rtlcss": "^3.5.0", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.1.tgz", + "integrity": "sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA==", + "dependencies": { + "@docusaurus/mdx-loader": "2.4.1", + "@docusaurus/module-type-aliases": "2.4.1", + "@docusaurus/plugin-content-blog": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/plugin-content-pages": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-common": "2.4.1", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^1.2.1", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^1.3.5", + "tslib": "^2.4.0", + "use-sync-external-store": "^1.2.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.1.tgz", + "integrity": "sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ==", + "dependencies": { + "@docsearch/react": "^3.1.1", + "@docusaurus/core": "2.4.1", + "@docusaurus/logger": "2.4.1", + "@docusaurus/plugin-content-docs": "2.4.1", + "@docusaurus/theme-common": "2.4.1", + "@docusaurus/theme-translations": "2.4.1", + "@docusaurus/utils": "2.4.1", + "@docusaurus/utils-validation": "2.4.1", + "algoliasearch": "^4.13.1", + "algoliasearch-helper": "^3.10.0", + "clsx": "^1.2.1", + "eta": "^2.0.0", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.1.tgz", + "integrity": "sha512-T1RAGP+f86CA1kfE8ejZ3T3pUU3XcyvrGMfC/zxCtc2BsnoexuNI9Vk2CmuKCb+Tacvhxjv5unhxXce0+NKyvA==", + "dependencies": { + "fs-extra": "^10.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/types": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.1.tgz", + "integrity": "sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.6.0", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0", + "webpack-merge": "^5.8.0" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.1.tgz", + "integrity": "sha512-1lvEZdAQhKNht9aPXPoh69eeKnV0/62ROhQeFKKxmzd0zkcuE/Oc5Gpnt00y/f5bIsmOsYMY7Pqfm/5rteT5GA==", + "dependencies": { + "@docusaurus/logger": "2.4.1", + "@svgr/webpack": "^6.2.1", + "escape-string-regexp": "^4.0.0", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "github-slugger": "^1.4.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.4.0", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.1.tgz", + "integrity": "sha512-bCVGdZU+z/qVcIiEQdyx0K13OC5mYwxhSuDUR95oFbKVuXYRrTVrwZIqQljuo1fyJvFTKHiL9L9skQOPokuFNQ==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.1.tgz", + "integrity": "sha512-unII3hlJlDwZ3w8U+pMO3Lx3RhI4YEbY3YNsQj4yzrkZzlpqZOLuAiZK2JyULnD+TKbceKU0WyWkQXtYbLNDFA==", + "dependencies": { + "@docusaurus/logger": "2.4.1", + "@docusaurus/utils": "2.4.1", + "joi": "^17.6.0", + "js-yaml": "^4.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@endiliey/react-ideal-image": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@endiliey/react-ideal-image/-/react-ideal-image-0.0.11.tgz", + "integrity": "sha512-QxMjt/Gvur/gLxSoCy7VIyGGGrGmDN+VHcXkN3R2ApoWX0EYUE+hMgPHSW/PV6VVebZ1Nd4t2UnGRBDihu16JQ==", + "engines": { + "node": ">= 8.9.0", + "npm": "> 3" + }, + "peerDependencies": { + "prop-types": ">=15", + "react": ">=0.14.x", + "react-waypoint": ">=9.0.2" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", + "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "dependencies": { + "@jest/schemas": "^29.6.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@mdx-js/mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", + "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@mdx-js/mdx/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@mdx-js/mdx/node_modules/remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "dependencies": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@mdx-js/mdx/node_modules/unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", + "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + } + }, + "node_modules/@mdx-js/util": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", + "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mendable/search": { + "version": "0.0.114", + "resolved": "https://registry.npmjs.org/@mendable/search/-/search-0.0.114.tgz", + "integrity": "sha512-0uR+zxONuu/16bpLli49Jocr5fee1WIjs06KzU1AnHsR+fdFBmfrlpgTDWctgGuXPzS5Dorlw4VMlR5dPW5qVQ==", + "dependencies": { + "posthog-js": "^1.45.1" + }, + "peerDependencies": { + "react": "^17.x || ^18.x", + "react-dom": "^17.x || ^18.x" + } + }, + "node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", + "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@pbe/react-yandex-maps": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@pbe/react-yandex-maps/-/react-yandex-maps-1.2.4.tgz", + "integrity": "sha512-3VL5wd92cinLUnkOqbsk27lAEqKrJBP+XmmbZK3L9trwUYbO2U5n/dlJiqHplYQQb6MnZlnWwZA6h8ZBQ/FsWg==", + "dependencies": { + "@types/yandex-maps": "2.1.29" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" + }, + "node_modules/@prismicio/client": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@prismicio/client/-/client-7.1.0.tgz", + "integrity": "sha512-9UvPjPae+7KfdZpUvdDCQG+9GCrR/A0BVFrixj1O7lv7SCJuyp50ZIVm9cc6G49E0HMSHFH592isRKj/xKjP+w==", + "dependencies": { + "@prismicio/richtext": "^2.1.5", + "imgix-url-builder": "^0.0.3" + }, + "engines": { + "node": ">=14.15.0" + } + }, + "node_modules/@prismicio/richtext": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@prismicio/richtext/-/richtext-2.1.5.tgz", + "integrity": "sha512-Sf6iCsciPmfK3uQeFmeY9RTRSuhrCVzyU39OkiJ1VJn8O0531pKapGoWS+5WGxouJtE5+jGqV8L+L2mKP7NkXQ==", + "dependencies": { + "@prismicio/types": "^0.2.7" + }, + "engines": { + "node": ">=12.7.0" + } + }, + "node_modules/@prismicio/types": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@prismicio/types/-/types-0.2.8.tgz", + "integrity": "sha512-EmuYYil56U+UtEifMD/9TmLzpWliV+X6kypwPq47GNXmIXyFK1JsP3z872fUziXwoBjd2YILj28DNdYXlLOpXg==", + "engines": { + "node": ">=12.7.0" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", + "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", + "dependencies": { + "eval": "^0.1.8", + "p-map": "^4.0.0", + "webpack-sources": "^3.2.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", + "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/hast": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.5.tgz", + "integrity": "sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==" + }, + "node_modules/@types/mdast": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.12.tgz", + "integrity": "sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, + "node_modules/@types/node": { + "version": "20.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", + "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/react": { + "version": "18.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz", + "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.7.tgz", + "integrity": "sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", + "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz", + "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==" + }, + "node_modules/@types/ws": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yandex-maps": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/@types/yandex-maps/-/yandex-maps-2.1.29.tgz", + "integrity": "sha512-nuibRWj3RU/9KXlCzTrRtDE+n6V9l7NbT9JakicqZ5OXIdwyb6blvV2Uwn6lB58WYm3DSUDP2I2AWlnWMc8z2w==" + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "node_modules/@uiball/loaders": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@uiball/loaders/-/loaders-1.3.0.tgz", + "integrity": "sha512-w372e7PMt/s6LZ321HoghgDDU8fomamAzJfrVAdBUhsWERJEpxJMqG37NFztUq/T4J7nzzjkvZI4UX7Z2F/O6A==", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/algoliasearch": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.18.0.tgz", + "integrity": "sha512-pCuVxC1SVcpc08ENH32T4sLKSyzoU7TkRIDBMwSLfIiW+fq4znOmWDkAygHZ6pRcO9I1UJdqlfgnV7TRj+MXrA==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.18.0", + "@algolia/cache-common": "4.18.0", + "@algolia/cache-in-memory": "4.18.0", + "@algolia/client-account": "4.18.0", + "@algolia/client-analytics": "4.18.0", + "@algolia/client-common": "4.18.0", + "@algolia/client-personalization": "4.18.0", + "@algolia/client-search": "4.18.0", + "@algolia/logger-common": "4.18.0", + "@algolia/logger-console": "4.18.0", + "@algolia/requester-browser-xhr": "4.18.0", + "@algolia/requester-common": "4.18.0", + "@algolia/requester-node-http": "4.18.0", + "@algolia/transporter": "4.18.0" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.13.3.tgz", + "integrity": "sha512-jhbbuYZ+fheXpaJlqdJdFa1jOsrTWKmRRTYDM3oVTto5VodZzM7tT+BHzslAotaJf/81CKrm6yLRQn8WIr/K4A==", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dev": true, + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-apply-mdx-type-prop": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", + "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "dependencies": { + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.22" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@babel/core": "^7.11.6" + } + }, + "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-extract-import-names": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", + "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "dependencies": { + "@babel/helper-plugin-utils": "7.10.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", + "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.1", + "@nicolo-ribaudo/semver-v6": "^6.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", + "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.1", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", + "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base16": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", + "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/blacklist": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/blacklist/-/blacklist-1.1.4.tgz", + "integrity": "sha512-DWdfwimA1WQxVC69Vs1Fy525NbYwisMSCdYQmW9zyzOByz9OB/tQwrKZ3T3pbTkuFjnkJFlJuyiDjPiXL5kzew==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combine-promises": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.1.0.tgz", + "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compressible/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/consolidated-events": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz", + "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==" + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz", + "integrity": "sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", + "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", + "dependencies": { + "browserslist": "^4.21.9" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz", + "integrity": "sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "dependencies": { + "cssnano": "^5.1.8", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz", + "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==", + "dependencies": { + "autoprefixer": "^10.4.12", + "cssnano-preset-default": "^5.2.14", + "postcss-discard-unused": "^5.1.0", + "postcss-merge-idents": "^5.1.1", + "postcss-reduce-idents": "^5.2.0", + "postcss-zindex": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", + "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "dependencies": { + "repeat-string": "^1.5.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "node_modules/dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/docusaurus-node-polyfills": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/docusaurus-node-polyfills/-/docusaurus-node-polyfills-1.0.0.tgz", + "integrity": "sha512-TUX/smcS0NcoiBKThM3hNlAx7Z8jJr/F5UKR+FiMlsJJbt1KYWgbj3blgUTk/ad0+hfe2vaytJZX4r0GeK6oRQ==", + "dev": true, + "dependencies": { + "node-polyfill-webpack-plugin": "^1.1.2", + "os-browserify": "^0.3.0", + "process": "^0.11.10" + }, + "peerDependencies": { + "webpack": ">=5" + } + }, + "node_modules/docusaurus-plugin-image-zoom": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-image-zoom/-/docusaurus-plugin-image-zoom-0.1.4.tgz", + "integrity": "sha512-Fc16FUUVKgvF0OuMapsau0GFopSAH99t+FCRtTpF8n2Wt8toi5Et3xHKPNvuCb85PTtDuNfFUp5m9eCij0dXlw==", + "dependencies": { + "medium-zoom": "^1.0.6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domain-browser": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz", + "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.457", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.457.tgz", + "integrity": "sha512-/g3UyNDmDd6ebeWapmAoiyy+Sy2HyJ+/X8KyvNeHfKRFfHaA2W8oF5fxD5F3tjBDcjpwo0iek6YNgxNXDBoEtA==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", + "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==" + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", + "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fbemitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "dependencies": { + "fbjs": "^3.0.0" + } + }, + "node_modules/fbjs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^1.0.35" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/fflate": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", + "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.2.tgz", + "integrity": "sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flux": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz", + "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==", + "dependencies": { + "fbemitter": "^3.0.0", + "fbjs": "^3.0.1" + }, + "peerDependencies": { + "react": "^15.0.2 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", + "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/gauge/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "dependencies": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/globule/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globule/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/got/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "dependencies": { + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "dependencies": { + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "dependencies": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", + "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", + "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/imgix-url-builder": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/imgix-url-builder/-/imgix-url-builder-0.0.3.tgz", + "integrity": "sha512-8Oc2Cn4+jF06sEfJcVPlWYfD2F6RjrwIMbk1xEzux8unoB5LsvFc/GL1BQ47HPaeE12ReX2nMUcjUslGYWLxHA==", + "engines": { + "node": ">=12.7.0" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", + "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/infima": { + "version": "0.2.0-alpha.43", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.43.tgz", + "integrity": "sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.1.tgz", + "integrity": "sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==", + "dependencies": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", + "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", + "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/jquery": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz", + "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==" + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/load-script": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", + "integrity": "sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash._basefor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz", + "integrity": "sha512-6bc3b8grkpMgDcVJv9JYZAk/mHgcqMljzm7OsbmcE2FGUMmmLQTPHlh/dFqR8LA0GQ7z4K67JSotVKu5058v1A==" + }, + "node_modules/lodash.curry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", + "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.flow": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", + "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==" + }, + "node_modules/lodash.isplainobject": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", + "integrity": "sha512-P4wZnho5curNqeEq/x292Pb57e1v+woR7DJ84DURelKB46lby8aDEGVobSaYtzHdQBWQrJSdxcCwjlGOvvdIyg==", + "dependencies": { + "lodash._basefor": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.keysin": "^3.0.0" + } + }, + "node_modules/lodash.keysin": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", + "integrity": "sha512-YDB/5xkL3fBKFMDaC+cfGV00pbiJ6XoJIfRmBhv7aR6wWtbCW6IzkiWnTfkiHTF6ALD7ff83dAtB3OEaSoyQPg==", + "dependencies": { + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "dependencies": { + "unist-util-remove": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", + "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/medium-zoom": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.0.8.tgz", + "integrity": "sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA==" + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-abi": { + "version": "3.45.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.45.0.tgz", + "integrity": "sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp/node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/node-gyp/node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/node-gyp/node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/node-gyp/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/node-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/node-gyp/node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/node-gyp/node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-gyp/node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/node-gyp/node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/node-polyfill-webpack-plugin": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-1.1.4.tgz", + "integrity": "sha512-Z0XTKj1wRWO8o/Vjobsw5iOJCN+Sua3EZEUc2Ziy9CyVvmHKu6o+t4gUH9GOE0czyPR94LI6ZCV/PpcM8b5yow==", + "dev": true, + "dependencies": { + "assert": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^6.0.3", + "console-browserify": "^1.2.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", + "domain-browser": "^4.19.0", + "events": "^3.3.0", + "filter-obj": "^2.0.2", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "process": "^0.11.10", + "punycode": "^2.1.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.3.0", + "timers-browserify": "^2.0.12", + "tty-browserify": "^0.0.1", + "url": "^0.11.0", + "util": "^0.12.4", + "vm-browserify": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "webpack": ">=5" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "node_modules/node-sass": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-9.0.0.tgz", + "integrity": "sha512-yltEuuLrfH6M7Pq2gAj5B6Zm7m+gdZoG66wTqG6mIZV/zijq3M2OO2HswtT6oBspPyFhHDcaxWpsBm0fRNDHPg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "async-foreach": "^0.1.3", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "lodash": "^4.17.15", + "make-fetch-happen": "^10.0.4", + "meow": "^9.0.0", + "nan": "^2.17.0", + "node-gyp": "^8.4.1", + "sass-graph": "^4.0.1", + "stdout-stream": "^1.4.0", + "true-case-path": "^2.2.1" + }, + "bin": { + "node-sass": "bin/node-sass" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-sass/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/node-sass/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/node-sass/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/node-sass/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/node-sass/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-sass/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha512-YHk5ez1hmMR5LOkb9iJkLKqoBlL7WD5M8ljC75ZfzXriuBIVNuecaXuU7e+hOwyqf24Wxhh7Vxgt7Hnw9288Tg==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", + "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-unused": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", + "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", + "dependencies": { + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/postcss-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/postcss-merge-idents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", + "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", + "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", + "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", + "dependencies": { + "sort-css-media-queries": "2.1.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.16" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/postcss-zindex": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", + "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/posthog-js": { + "version": "1.70.2", + "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.70.2.tgz", + "integrity": "sha512-tp3FpdndxjH4g8gGubwepDy2HdNPog4+R04N7+I/xZNRnhWhshmqsufLKE2UT0ocHI686XXDMIDzJrtWRTUXPw==", + "dependencies": { + "fflate": "^0.4.1" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", + "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==", + "peerDependencies": { + "react": ">=0.14.9" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pure-color": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", + "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/raf/node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-base16-styling": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", + "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", + "dependencies": { + "base16": "^1.0.0", + "lodash.curry": "^4.0.1", + "lodash.flow": "^3.3.0", + "pure-color": "^1.2.0" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-images": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/react-images/-/react-images-0.6.7.tgz", + "integrity": "sha512-O/n25SBS1sq6SyFwANArcU+dSSRUvVyetJI3j/XgDiPzmVG6tov6gn2v+FjmrvdQVdMxXuOasXNthtJB2SiR8g==", + "deprecated": "This beta version is no longer supported. Please update to 1.1.0-beta.4", + "dependencies": { + "blacklist": "^1.1.2", + "react-motion": "^0.2.7" + }, + "peerDependencies": { + "react": ">=0.13.3 || ^0.14.0-beta3" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-json-view": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", + "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", + "dependencies": { + "flux": "^4.0.1", + "react-base16-styling": "^0.6.0", + "react-lifecycles-compat": "^3.0.4", + "react-textarea-autosize": "^8.3.2" + }, + "peerDependencies": { + "react": "^17.0.0 || ^16.3.0 || ^15.5.4", + "react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4" + } + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-medium-image-zoom": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.1.6.tgz", + "integrity": "sha512-0QolPce1vNJsF5HKrGkU1UT6kLNvY9EOnLBqz++LlVnBQduaHLkJlY73ayj3SxY09XWRrnxKDMTHPDkrQYdREw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/rpearce" + } + ], + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-motion": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.2.7.tgz", + "integrity": "sha512-py47qihK+EyBLyt5HJOWd8ODkWImcJDe3ZYP1HHgzTVaEY3BbdLReFq2uRW0roGOrhiyGZEUbZFcLkBjlorObg==", + "dependencies": { + "lodash.isplainobject": "^3.2.0", + "performance-now": "^0.2.0", + "raf": "^3.1.0" + }, + "peerDependencies": { + "react": ">=0.13.2 || ^0.14.0-beta1" + } + }, + "node_modules/react-player": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/react-player/-/react-player-2.12.0.tgz", + "integrity": "sha512-rymLRz/2GJJD+Wc01S7S+i9pGMFYnNmQibR2gVE3KmHJCBNN8BhPAlOPTGZtn1uKpJ6p4RPLlzPQ1OLreXd8gw==", + "dependencies": { + "deepmerge": "^4.0.0", + "load-script": "^1.0.0", + "memoize-one": "^5.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.0.1" + }, + "peerDependencies": { + "react": ">=16.6.0" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.2.tgz", + "integrity": "sha512-uOkyjkEl0ByEK21eCJMHDGBAAd/BoFQBawYK5XItjAmCTeSbjxghd8qnt7nzsLYzidjnoObu6M26xts0YGKsGg==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/react-waypoint": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/react-waypoint/-/react-waypoint-10.3.0.tgz", + "integrity": "sha512-iF1y2c1BsoXuEGz08NoahaLFIGI9gTUAAOKip96HUmylRT6DUtpgoBPjk/Y8dfcFVmfVDvUzWjNXpZyKTOV0SQ==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "consolidated-events": "^1.1.0 || ^2.0.0", + "prop-types": "^15.0.0", + "react-is": "^17.0.1 || ^18.0.0" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-waypoint/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", + "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", + "dependencies": { + "emoticon": "^3.2.0", + "node-emoji": "^1.10.0", + "unist-util-visit": "^2.0.3" + } + }, + "node_modules/remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", + "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/remark-mdx/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/remark-mdx/node_modules/remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "dependencies": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/remark-mdx/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remark-mdx/node_modules/unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", + "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-parse/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-parse/node_modules/trough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-parse/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "dependencies": { + "mdast-squeeze-paragraphs": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rtl-detect": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz", + "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==" + }, + "node_modules/rtlcss": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", + "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "dependencies": { + "find-up": "^5.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + } + }, + "node_modules/rtlcss/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.63.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", + "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-graph": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz", + "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "lodash": "^4.17.11", + "scss-tokenizer": "^0.4.3", + "yargs": "^17.2.1" + }, + "bin": { + "sassgraph": "bin/sassgraph" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/scss-tokenizer": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz", + "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==", + "dev": true, + "dependencies": { + "js-base64": "^2.4.9", + "source-map": "^0.7.3" + } + }, + "node_modules/scss-tokenizer/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/search-insights": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.7.0.tgz", + "integrity": "sha512-GLbVaGgzYEKMvuJbHRhLi1qoBFnjXZGZ6l4LxOYPCp4lI2jDRB3jPU9/XNhMwv6kvnA9slTreq6pvK+b3o3aqg==", + "peer": true, + "engines": { + "node": ">=8.16.0" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "node_modules/sharp": { + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.7.tgz", + "integrity": "sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==", + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.1", + "node-addon-api": "^5.0.0", + "prebuild-install": "^7.1.1", + "semver": "^7.3.7", + "simple-get": "^4.0.1", + "tar-fs": "^2.1.1", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=12.13.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sort-css-media-queries": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", + "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", + "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==" + }, + "node_modules/stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/stdout-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/stdout-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stdout-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/stdout-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/sucrase": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", + "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/svgo/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/svgo/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/swizzle": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/swizzle/-/swizzle-1.1.0.tgz", + "integrity": "sha512-L5wVfkVqNbYsz6xAPgPLo/ra7TyA+7nYvNm4i+LH6naTm8p7VKlVu/WmQWJ5yU03Gcabb34KfVppHcrGNdzi5Q==" + }, + "node_modules/tailwindcss": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", + "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.0.tgz", + "integrity": "sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==", + "deprecated": "Use String.prototype.trim() instead" + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/true-case-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", + "dev": true + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/ts-loader": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", + "integrity": "sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ts-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dependencies": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/update-notifier/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/update-notifier/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/update-notifier/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/update-notifier/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uvu/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "dependencies": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.88.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz", + "integrity": "sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz", + "integrity": "sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpackbar": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", + "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.3", + "pretty-time": "^1.1.0", + "std-env": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/webpackbar/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpackbar/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpackbar/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpackbar/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/webpackbar/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpackbar/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.10.tgz", + "integrity": "sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 000000000..c7732b3dc --- /dev/null +++ b/docs/package.json @@ -0,0 +1,70 @@ +{ + "name": "docusaurus", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids" + }, + "dependencies": { + "@babel/preset-react": "^7.22.3", + "@docusaurus/core": "2.4.1", + "@docusaurus/plugin-ideal-image": "^2.4.1", + "@docusaurus/preset-classic": "2.4.1", + "@docusaurus/theme-classic": "^2.4.1", + "@docusaurus/theme-search-algolia": "^2.4.1", + "@mdx-js/react": "^1.6.22", + "@mendable/search": "^0.0.114", + "@pbe/react-yandex-maps": "^1.2.4", + "@prismicio/client": "^7.0.1", + "@uiball/loaders": "^1.2.6", + "autoprefixer": "^10.4.14", + "clsx": "^1.2.1", + "docusaurus-plugin-image-zoom": "^0.1.4", + "jquery": "^3.7.0", + "medium-zoom": "^1.0.8", + "node-fetch": "^3.3.1", + "path-browserify": "^1.0.1", + "postcss": "^8.4.24", + "prism-react-renderer": "^1.3.5", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-images": "^0.6.7", + "react-medium-image-zoom": "^5.1.6", + "react-player": "^2.12.0", + "react-transition-group": "^4.4.5", + "remark-parse": "^10.0.2", + "swizzle": "^1.1.0", + "tailwindcss": "^3.3.2" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "2.4.1", + "css-loader": "^6.8.1", + "docusaurus-node-polyfills": "^1.0.0", + "node-sass": "^9.0.0", + "sass": "^1.62.1", + "ts-loader": "^9.4.3" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "engines": { + "node": ">=16.14" + } +} \ No newline at end of file diff --git a/docs/plugins/index.js b/docs/plugins/index.js new file mode 100644 index 000000000..844f2be07 --- /dev/null +++ b/docs/plugins/index.js @@ -0,0 +1,18 @@ +module.exports = function(context, options) { + return { + name: 'loaders', + configureWebpack(config, isServer) { + return { + module: { + rules: [ + { + test: /\.(gif|png|jpe?g|svg)$/i, + exclude: /\.(mdx?)$/i, + use: ['file-loader', { loader: 'image-webpack-loader' }], + }, + ], + }, + }; + }, + }; + }; \ No newline at end of file diff --git a/docs/py-pdf-loader.md b/docs/py-pdf-loader.md deleted file mode 100644 index 5acefb8b4..000000000 --- a/docs/py-pdf-loader.md +++ /dev/null @@ -1,98 +0,0 @@ -With `PyPDFLoader`, you can load a PDF file with pypdf and chunks at a character level. - -
- -![Description](img/single_node/pypdf.png#only-light){width=50%} -![Description](img/single_node/pypdf2.png#only-dark){width=50%} - -
- -You can check more about the [PyPDFLoader](https://python.langchain.com/en/latest/modules/indexes/document_loaders/examples/pdf.html?highlight=PDF){.internal-link target=\_blank} in the LangChain documentation. - ---- - -### ⛓️LangFlow example - -![Description](img/py-pdf-loader2.png#only-dark){width=100%} -![Description](img/py-pdf-loader.png#only-light){width=100%} - -
- -[Download Flow](data/Py_pdf_loader.json){: .md-button download="Py_pdf_loader"} - -
- -`File path:` - -
- -[Download PDF](data/example.pdf){: .md-button download="example.pdf"} - -
- -`CharacterTextSplitter` implements splitting text based on characters. - -Text splitters operate as follows: - -- Split the text into small, meaningful chunks (usually sentences). - -- Combine these small chunks into larger ones until they reach a certain size (measured by a function). - -- Once a chunk reaches the desired size, make it its piece of text and create a new chunk with some overlap to maintain context. - - -**Separator used**: - -```txt -. -``` - -**Chunk size used**: - -```txt -2000 -``` - -**Chunk overlap used**: - -```txt -200 -``` - -
- -The `OpenAIEmbeddings`, wrapper around [OpenAI Embeddings](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings){.internal-link target=\_blank} models. Make sure to get the API key from the LLM provider, in this case [OpenAI](https://platform.openai.com/){.internal-link target=\_blank}. - -
- -`Chroma` vector databases can be used as vector stores to conduct a semantic search or to select examples, thanks to a wrapper around them. - -
- -A `VectorStoreInfo` set information about the vector store, such as the name and description. - -
- -**Name used**: - -```txt -example -``` - -**Description used**: - -```txt -USENIX Example Paper. -``` - -
- -For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. - -
- -The `VectoStoreAgent`is an agent designed to retrieve information from one or more vector stores, either with or without sources. diff --git a/docs/releases.md b/docs/releases.md deleted file mode 100644 index e5d00b89f..000000000 --- a/docs/releases.md +++ /dev/null @@ -1,499 +0,0 @@ -# Latest Changes - -🎉 We're thrilled to announce our latest release, packed with exciting updates and improvements to enhance your experience. Here's what you can look forward to: - -
-🪄 Interface Updates - -
-💫 New Components & Enhancements - -
-⌨️ Code Refactoring & Optimization - -
-🐛 A range of updates and bug fixes! - -
-We're constantly striving to improve our platform and provide you with the best tools and features. Stay tuned for more updates as we continue to evolve and meet your needs. Thank you for being a part of our journey! ✨🚀 - -## v0.0.79 - -### What's Changed -* hot fix for dinamic size of font for buttonBox component by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/337 -* add useEffect to prevent chat lock on fail of onClose method by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/342 -* Hotfix for Import Flows modal by @lucaseduoli in https://github.com/logspace-ai/langflow/pull/357 -* fix crash when upload large file, not saving files on browser storage by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/362 -* Refactor Vector stores creator to help implementing others by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/365 -* 🔨 refactor(base.py): refactor FrontendNode.format_field() method to improve readability and maintainability by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/363 -* Changes to accomodate new vector stores by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/366 -* fix: SQLAgent by @gabfr in https://github.com/logspace-ai/langflow/pull/370 -* Add First Version of Generic Modal Input Model by @Cristhianzl in https://github.com/logspace-ai/langflow/pull/369 -* Activating HuggingFaceEmbeddings, adding Jina deps by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/378 -* Hotfix: fix bug on refresh and and for sending files to backend by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/384 -* feat: notion directory loader by @gabfr in https://github.com/logspace-ai/langflow/pull/382 -* Error Handling for Modal Calls in Different Flows Prompt/Text by @Cristhianzl in https://github.com/logspace-ai/langflow/pull/390 -* Add Cohere LLM by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/388 -* Pull Request: UI Feature Enhancements by @Cristhianzl in https://github.com/logspace-ai/langflow/pull/393 -* Revert "Add Cohere LLM" by @gustavoschaedler in https://github.com/logspace-ai/langflow/pull/394 -* Adding support for Ctransformers by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/387 -* 🚀 feat(langflow): add support for extra fields in VectorStoreFrontendNode by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/396 -* Add Cohere LLM by @gustavoschaedler in https://github.com/logspace-ai/langflow/pull/397 -* Adding scrollbar on overflow itens modal by @Cristhianzl in https://github.com/logspace-ai/langflow/pull/400 -* feat: SlackDirectoryLoader by @gabfr in https://github.com/logspace-ai/langflow/pull/383 -* Add Icons module by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/368 -* Added format_instructions to ZeroShotPrompt by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/402 -* added custom icon pack for special cases by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/405 -* UI Improvements: tooltip, classes icons e icons by @Cristhianzl in https://github.com/logspace-ai/langflow/pull/404 -* New LLMs, Embeddings and UI improvements by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/407 - -#### New Contributors -* @gabfr made their first contribution in https://github.com/logspace-ai/langflow/pull/370 -* @Cristhianzl made their first contribution in https://github.com/logspace-ai/langflow/pull/369 -* @gustavoschaedler made their first contribution in https://github.com/logspace-ai/langflow/pull/394 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.78...v0.0.79 - -## v0.0.78 - -### What's Changed - -- Hotfix: remove deepcopy, fixes llm rebuilding by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/349 -- Hotfix: Deepcopy removal and bump to 0.0.77 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/350 -- 🔖 chore(pyproject.toml): bump version to 0.0.78 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/351 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.76...v0.0.78 - -## v0.0.77 - -### What's Changed - -- ci: test lcserve push job by @deepankarm in https://github.com/logspace-ai/langflow/pull/333 -- Hotfix: Chroma does not raise NotEnoughElementsException anymore by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/334 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.75...v0.0.77 - -## v0.0.76 - -### What's Changed - -- ci: test lcserve push job by @deepankarm in https://github.com/logspace-ai/langflow/pull/333 -- Hotfix: Chroma does not raise NotEnoughElementsException anymore by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/334 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.75...v0.0.76 - -## v0.0.75 - -### What's Changed - -- migrating to Vite by @gsaivinay in https://github.com/logspace-ai/langflow/pull/287 -- fix: duplicated lodash by @Dogtiti in https://github.com/logspace-ai/langflow/pull/293 -- Hotfix: Save Flow Bug in Browser by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/304 -- Update llama-cpp-python version in pyproject.toml by @phyyou in https://github.com/logspace-ai/langflow/pull/299 -- Address issue #300 - GCP Shell Script - Websocket Connection Failure by @genome21 in https://github.com/logspace-ai/langflow/pull/301 -- Add health check endpoint by @filipecaixeta in https://github.com/logspace-ai/langflow/pull/311 -- Hotfixes: Dark Mode classes and Text Wrapper by @lucaseduoli in https://github.com/logspace-ai/langflow/pull/309 -- Validation_fix by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/317 -- feat: deploy langflow using langchain-serve by @deepankarm in https://github.com/logspace-ai/langflow/pull/307 -- chore: lint fix by @deepankarm in https://github.com/logspace-ai/langflow/pull/320 -- Retry_get_all by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/324 -- node updating template, base classes and description by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/326 -- Add New Features and Improvements by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/329 - -#### New Contributors - -- @gsaivinay made their first contribution in https://github.com/logspace-ai/langflow/pull/287 -- @Dogtiti made their first contribution in https://github.com/logspace-ai/langflow/pull/293 -- @phyyou made their first contribution in https://github.com/logspace-ai/langflow/pull/299 -- @filipecaixeta made their first contribution in https://github.com/logspace-ai/langflow/pull/311 -- @deepankarm made their first contribution in https://github.com/logspace-ai/langflow/pull/307 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.74...v0.0.75 - -## v0.0.74 - -### What's Changed - -- Hotfix: saving flow in the browser local storage by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/315 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.73...v0.0.74 - -## v0.0.73 - -### What's Changed - -- Hotfix: Save Flow Bug in Browser by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/305 -- updated pyproject version by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/306 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.72...v0.0.73 - -## v0.0.72 - -### What's Changed - -- Hotfix: api code in api button was missing an import by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/303 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.71...v0.0.72 - -## v0.0.71 - -### What's Changed - -- refactor(loading.py): change instantiate_prompt function signature to include class_object parameter and use it to instantiate the prompt object by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/302 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.70...v0.0.71 - -## v0.0.70 - -### What's Changed - -- Hotfix: Temporary fix for intermediate steps by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/295 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.69...v0.0.70 - -## v0.0.69 - -### What's Changed - -- disable password copy by @CodeAunt in https://github.com/logspace-ai/langflow/pull/224 -- Fix auto update by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/238 -- UI improvements by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/240 -- Hot fixes by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/244 -- Tool_fixes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/258 -- Better_predict by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/267 -- change line endings to linux. by @bobsburgers in https://github.com/logspace-ai/langflow/pull/254 -- Copy Paste, Undo and Redo implemented by @lucaseduoli in https://github.com/logspace-ai/langflow/pull/253 -- Streaming, Chat Markdown, and CacheManager by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/282 -- Dark Mode and API Modal by @lucaseduoli in https://github.com/logspace-ai/langflow/pull/284 -- fixed copy and paste bug by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/286 -- Websocket, cache_manager, API access, Dark mode fixes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/285 - -#### New Contributors - -- @CodeAunt made their first contribution in https://github.com/logspace-ai/langflow/pull/224 -- @bobsburgers made their first contribution in https://github.com/logspace-ai/langflow/pull/254 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.68...v0.0.69 - ---- - -## v0.0.68 - -### Highlights - -:sparkles: Release: Chat and Cache Improvements, Websocket Integration, and Dark Mode Enhancements :crescent_moon: -This release brings a series of new features and improvements, including: - -- :speech_balloon: Chat and Cache Improvements: - - Refactored cache-related functions and moved them to a new base.py module - - Simplified the Chat component and added chat history support - - Implemented the ability to send file responses in chat - - Real-time Node validation for improved user experience - - CacheManager was added to share data between tools and display them in the chat. -- :globe_with_meridians: Websocket Integration: - - Implemented websocket connection for the chat (WIP) -- :crescent_moon: Dark Mode Enhancements: - - Fixed dark mode for dropdown components - - Improved dark mode styling for the chat interface - - Updated thought icon for dark mode -- :rocket: Other Improvements: - - Migrated chat logic to chat modal - - Implemented unique IDs for flow management - - Sorted sidebar items for better organization - - Removed unused imports and optimized codebase - -### What's Changed - -- refactor(loading.py): use get method to set allowed_tools to an empty list if it is not present in params dictionary by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/237 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.67...v0.0.68 - -## v0.0.67 - -### What's Changed - -- Fix to allowed_tools by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/235 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.66...v0.0.67 - -## v0.0.66 - -### What's Changed - -- Hotfix to websocket url by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/234 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.65...v0.0.66 - -## v0.0.65 - -### What's Changed - -- Hotfix by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/231 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.64...v0.0.65 - -## v0.0.64 - -### What's Changed - -- Fix LangChain imports by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/229 -- fix tests to comply with updates and hotfixes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/230 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.63...v0.0.64 - -## v0.0.63 - -### What's Changed - -- Layout hotfixes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/223 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.62...v0.0.63 - -## v0.0.62 - -### What's Changed - -- Hotfix bug on import from local by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/222 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.61...v0.0.62 - -## v0.0.61 - -### What's Changed - -- refactor(validate.py): extract build_graph function to langflow.inter… by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/204 -- Update LangChain version by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/211 -- Update the Semver Specifier for `langchain` to allow for all <0.1.0 versions. by @darthtrevino in https://github.com/logspace-ai/langflow/pull/86 -- feat: add demo devcontainer by @aaronsteers in https://github.com/logspace-ai/langflow/pull/201 -- Node modal by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/174 -- Auto update nodes by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/218 -- Chat_and_cache by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/219 -- :sparkles: Release: Chat and Cache Improvements, Websocket Integration, and Dark Mode Enhancements :crescent_moon: by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/220 - -#### New Contributors - -- @darthtrevino made their first contribution in https://github.com/logspace-ai/langflow/pull/86 -- @aaronsteers made their first contribution in https://github.com/logspace-ai/langflow/pull/201 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.58...v0.0.61 - -## v0.0.58 - -### What's Changed - -- Fix bug when running LLM alone by @ibiscp in https://github.com/logspace-ai/langflow/pull/160 -- Refactor tools by @ibiscp in https://github.com/logspace-ai/langflow/pull/176 -- load_flow_from_json("path/to/flow.json") returns UnicodeDecodeError by @bigKeter in https://github.com/logspace-ai/langflow/pull/165 -- Create a VM in a GCP project that serves the Langflow app by @genome21 in https://github.com/logspace-ai/langflow/pull/169 -- Correct run instructions in Readme by @PaulLockett in https://github.com/logspace-ai/langflow/pull/87 -- Add Import Examples Feature to Flow Editor by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/175 -- Change button placement by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/193 -- API keys for LLMs and Embeddings are now loaded from env if available by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/195 -- style(langflow): fix formatting and add type hinting to custom.py and run.py files by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/194 -- Example loader and bugfixes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/199 - -#### New Contributors - -- @bigKeter made their first contribution in https://github.com/logspace-ai/langflow/pull/165 -- @genome21 made their first contribution in https://github.com/logspace-ai/langflow/pull/169 -- @PaulLockett made their first contribution in https://github.com/logspace-ai/langflow/pull/87 - -## v0.0.57 - -### What's Changed - -- Hotfix: psygopg2 might break installation by @ogabrielluiz in #168 - -## v0.0.56 - -### What's Changed - -- Add contrib link to readme by @jacobhrussell in https://github.com/logspace-ai/langflow/pull/136 -- Llama Support by @yoazmenda in https://github.com/logspace-ai/langflow/pull/134 -- feat: added LLMFrontendNode by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/140 -- Firefox password by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/147 -- removable edges implemented by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/149 -- Vector stores, embeddings, document loaders, and text splitters by @ibiscp in https://github.com/logspace-ai/langflow/pull/145 -- Adding new fields to Chain nodes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/148 -- Add new docloaders and change the way files are loaded by @ibiscp in https://github.com/logspace-ai/langflow/pull/154 -- Change docstring parser by @ibiscp in https://github.com/logspace-ai/langflow/pull/158 -- Add SQL Agent by @ibiscp in https://github.com/logspace-ai/langflow/pull/159 -- VectorStores, DocumentLoaders, TextSplitters, Embeddings and other additions by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/157 - -#### New Contributors - -- @jacobhrussell made their first contribution in https://github.com/logspace-ai/langflow/pull/136 -- @yoazmenda made their first contribution in https://github.com/logspace-ai/langflow/pull/134 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.55...v0.0.56 - -## v0.0.55 - -### What's Changed - -- feat: chain template tests by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/125 -- feat: adding prompt template tests by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/128 -- feat: added agents tests by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/127 -- refact: more maintable build_nodes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/123 -- Modifies frontend chatComponent to itemize validation errors by @cayal in https://github.com/logspace-ai/langflow/pull/126 -- add minor fix for required fields that are not displayed by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/129 -- feat: added first tests for llms by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/130 -- Update CONTRIBUTING.md by @jordi-adame in https://github.com/logspace-ai/langflow/pull/133 -- Fixes to ChainCreator and PromptTemplate processing by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/135 -- Fix tool bug by @ibiscp in https://github.com/logspace-ai/langflow/pull/137 -- Fix bugs, add tests, and refactor code by @ibiscp in https://github.com/logspace-ai/langflow/pull/138 - -#### New Contributors - -- @cayal made their first contribution in https://github.com/logspace-ai/langflow/pull/126 -- @jordi-adame made their first contribution in https://github.com/logspace-ai/langflow/pull/133 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.54...v0.0.55 - -## v0.0.54 - -### What's Changed - -- Remove tools until fixed by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/124 -- Fix prompt validation exception condition by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/122 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.53...v0.0.54 - -## v0.0.53 - -### What's Changed - -- Implementation of Agents as Tools and Custom Tools by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/79 -- removed handle from code component by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/83 -- refac: Factory implementation of LangChainTypes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/84 -- Toolkits by @ibiscp in https://github.com/logspace-ai/langflow/pull/92 -- Added initialize_agent and Memory by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/93 -- fix: deactivate intermediate steps for now by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/97 -- Chain loader by @ibiscp in https://github.com/logspace-ai/langflow/pull/98 -- UI fixes by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/99 -- colorized think with ANSI to HTML by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/101 -- bug fixed when not implemented nodes are imported to the flow by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/102 -- delete the message that was sent when the backend returned an error by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/105 -- fixed validation error by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/106 -- Implement Memories, validation and other fixes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/107 -- fix: adding memory node and better exceptions by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/110 -- UI improvements by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/112 -- Bug fixes by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/115 -- Ui improvement by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/114 -- Prompt component by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/116 -- added colors to toolkits and wrappers by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/118 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.46...v0.0.53 - -## v0.0.52 - -### What's Changed - -- fix: adding maintainers and other configs by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/59 -- feat: added constants file to support model types and others by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/60 -- UI updates by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/63 -- full dropdown clickable by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/69 -- Add config file with option to enable all features by @ibiscp in https://github.com/logspace-ai/langflow/pull/70 -- UI updates by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/71 -- Release 0.0.46 by @ibiscp in https://github.com/logspace-ai/langflow/pull/77 -- Release 0.0.46 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/78 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.45...v0.0.52 - -## v0.0.46 - -### What's Changed - -- fix: adding maintainers and other configs by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/59 -- feat: added constants file to support model types and others by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/60 -- UI updates by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/63 -- full dropdown clickable by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/69 -- Add config file with option to enable all features by @ibiscp in https://github.com/logspace-ai/langflow/pull/70 -- UI updates by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/71 -- Release 0.0.46 by @ibiscp in https://github.com/logspace-ai/langflow/pull/77 -- Release 0.0.46 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/78 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.45...v0.0.46 - -## v0.0.45 - -### What's Changed - -- fix: deactivate replace_port by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/56 -- Release 0.0.45 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/57 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.44...v0.0.45 - -## v0.0.44 - -### What's Changed - -- feat: added star history to README by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/44 -- fix: new frontend dev.dockerfile by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/48 -- fix: new frontend dev.dockerfile by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/52 -- Fix: Dynamic tooltipTitle, id mapping bugfix for last ParameterCompon… by @ScripterSugar in https://github.com/logspace-ai/langflow/pull/51 -- Add gpt4 by @ibiscp in https://github.com/logspace-ai/langflow/pull/55 -- Release by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/49 - -#### New Contributors - -- @ScripterSugar made their first contribution in https://github.com/logspace-ai/langflow/pull/51 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.40...v0.0.44 - -## v0.0.40 - -### What's Changed - -- Replace langchain by @ibiscp in https://github.com/logspace-ai/langflow/pull/31 -- Windows now uses Uvicorn by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/33 -- Fix docker examples by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/34 -- refac: langflow_backend -> langflow by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/35 -- refac: remove frontend folder from backend by @ibiscp in https://github.com/logspace-ai/langflow/pull/36 -- version with dinamic port by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/37 -- Release 0.0.40 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/43 - -#### New Contributors - -- @ibiscp made their first contribution in https://github.com/logspace-ai/langflow/pull/31 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.33...v0.0.40 - -## v0.0.33 - -### What's Changed - -- Release 0.0.33 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/24 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.32...v0.0.33 - -## v0.0.32 - -### What's Changed - -- Release 0.0.32 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/22 - -**Full Changelog**: https://github.com/logspace-ai/langflow/compare/v0.0.31...v0.0.32 - -## v0.0.31 - -### What's Changed - -- MemoryCustom node added by @anovazzi1 in https://github.com/logspace-ai/langflow/pull/1 -- Create CODE_OF_CONDUCT.md by @CarlosRodrigoCoelho in https://github.com/logspace-ai/langflow/pull/7 -- feat: adding release and lint github actions by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/9 -- Use uvicorn on macOS to avoid making the user set env variable by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/10 -- Release 0.0.28 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/11 -- Update release.yml by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/12 -- Release 0.0.29 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/13 -- Release 0.0.30 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/14 -- Release 0.0.30 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/15 -- Release 0.0.31 by @ogabrielluiz in https://github.com/logspace-ai/langflow/pull/16 - -#### New Contributors - -- @anovazzi1 made their first contribution in https://github.com/logspace-ai/langflow/pull/1 -- @CarlosRodrigoCoelho made their first contribution in https://github.com/logspace-ai/langflow/pull/7 -- @ogabrielluiz made their first contribution in https://github.com/logspace-ai/langflow/pull/9 - -**Full Changelog**: https://github.com/logspace-ai/langflow/commits/v0.0.31 diff --git a/docs/series-character-chain.md b/docs/series-character-chain.md deleted file mode 100644 index 6a5c44660..000000000 --- a/docs/series-character-chain.md +++ /dev/null @@ -1,43 +0,0 @@ -With `SeriesCharacterChain`, you can chat with the characters in the series you like most. You can just type the name of the character and the series, and the bot will start chatting with the character. - -
- -Character: - -```txt -Gandalf -``` - -Series: - -```txt -The Lord of the Rings -``` - -
- -![Description](img/single_node/series_cha_chain2.png#only-dark){width=50%} -![Description](img/single_node/series_cha_chain.png#only-light){width=50%} - -
- -Play around with it and see how it works! - ---- - -### ⛓️LangFlow example - -![Description](img/series-character-chain2.png#only-dark){width=100%} -![Description](img/series-character-chain.png#only-light){width=100%} - -
- -[Download Flow](data/Series_character_chain.json){: .md-button download="Series_character_chain"} - -
- -For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. diff --git a/docs/serp-api.md b/docs/serp-api.md deleted file mode 100644 index 4faf60604..000000000 --- a/docs/serp-api.md +++ /dev/null @@ -1,45 +0,0 @@ -`Search` is a search engine useful to answer questions about current events. To use the Serp API, you first need to sign up [Serp API](https://serpapi.com/){.internal-link target=\_blank} for an API key on the provider's website. - -
- -The Serp API (Search Engine Results Page API) is an API (Application Programming Interface) that allows developers to scrape search engine results from various search engines such as Google, Bing, Yahoo, and more. - -
- -![Description](img/single_node/serp.png#only-light){width=50%} -![Description](img/single_node/serp2.png#only-dark){width=50%} - -
- -To understand more, check out the LangChain [Search](https://python.langchain.com/en/latest/modules/agents/tools/examples/google_serper.html){.internal-link target=\_blank} documentation. - ---- - -### ⛓️LangFlow example - -![Description](img/serp-api2.png#only-dark){width=100%} -![Description](img/serp-api.png#only-light){width=100%} - -
- -[Download Flow](data/Serp_api.json){: .md-button download="Serp_api"} - -
- -`ZeroShotPrompt` creates a prompt template for Zero-Shot Agent. You can set the _Prefix_ and _Suffix_. The _Prefix_ is the text that will be added before the input text. The _Suffix_ is the text that will be added after the input text. In the example, we used the _default_ that is automatically set. - -
- -For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key. - -
- -Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node. - -
- -The `LLMChain` is a simple chain that takes in a prompt template, formats it with the user input, and returns the response from an LLM. - -
- -`ZeroShotAgent` is an agent Agent for the MRKL chain. It uses a Zero Shot LLM to generate a response. diff --git a/docs/sidebars.js b/docs/sidebars.js new file mode 100644 index 000000000..01a84cf33 --- /dev/null +++ b/docs/sidebars.js @@ -0,0 +1,93 @@ +module.exports = { + docs: [ + { + type: "category", + label: "Getting Started", + collapsed: false, + items: [ + "index", + "getting-started/installation", + "getting-started/hugging-face-spaces", + "getting-started/creating-flows", + ], + }, + { + type: "category", + label: "Guidelines", + collapsed: false, + items: [ + "guidelines/components", + "guidelines/features", + "guidelines/collection", + "guidelines/prompt-customization", + "guidelines/chat-interface", + ], + }, + { + type: "category", + label: "Component Reference", + collapsed: false, + items: [ + "components/agents", + "components/chains", + "components/embeddings", + "components/llms", + "components/loaders", + "components/memories", + "components/prompts", + "components/text-splitters", + "components/toolkits", + "components/tools", + "components/vector-stores", + "components/wrappers", + ], + }, + { + type: "category", + label: "Step-by-Step Guides", + collapsed: false, + items: ["guides/loading_document", "guides/chatprompttemplate_guide"], + }, + // { + // type: 'category', + // label: 'Components', + // collapsed: false, + // items: [ + // 'components/agents', 'components/chains', 'components/loaders', 'components/embeddings', 'components/llms', + // 'components/memories', 'components/prompts','components/text-splitters', 'components/toolkits', 'components/tools', + // 'components/utilities', 'components/vector-stores', 'components/wrappers', + // ], + // }, + { + type: "category", + label: "Examples", + collapsed: false, + items: [ + "examples/conversation-chain", + "examples/buffer-memory", + "examples/midjourney-prompt-chain", + "examples/csv-loader", + "examples/serp-api-tool", + "examples/multiple-vectorstores", + "examples/python-function", + "examples/how-upload-examples", + ], + }, + { + type: "category", + label: "Deployment", + collapsed: false, + items: ["deployment/gcp-deployment", "deployment/jina-deployment"], + }, + { + type: "category", + label: "Contributing", + collapsed: false, + items: [ + "contributing/how-contribute", + "contributing/github-issues", + "contributing/community", + ], + }, + ], +}; diff --git a/docs/spell_add.sh b/docs/spell_add.sh new file mode 100644 index 000000000..69b86322c --- /dev/null +++ b/docs/spell_add.sh @@ -0,0 +1,4 @@ +for line in $(cat spell_check_results.txt); do + echo "Adding $line to cspell.config.yaml" + echo " - $line" >> cspell.config.yaml +done \ No newline at end of file diff --git a/docs/spell_check.sh b/docs/spell_check.sh new file mode 100644 index 000000000..bec28ca11 --- /dev/null +++ b/docs/spell_check.sh @@ -0,0 +1,26 @@ +# Using cspell, we'll loop over each subdirectory inside ./docs and check every mdx file for spelling errors. +# If there is an error, we'll write the word to an output file + +# prep +if [ -f spell_check_results.txt ]; then + rm spell_check_results.txt +fi +cd docs + +# first check, over the mdx files in the root directory +find . -maxdepth 1 -type f -name "*.mdx" -exec cspell --words-only {} \; >> ../output.txt + +# loop over each subdirectory and any directories inside +for dir in */; do + find $dir -type d -exec cspell --words-only {}/*.mdx \; >> ../output.txt +done + +# loop over each line in the output file and prune duplications +cd ../ +awk '!a[$0]++' output.txt > spell_check_results.txt +rm output.txt + +# check the number of lines in spell_check_results.txt +lines=$(wc -l < spell_check_results.txt) + +echo "There are $lines spelling errors or unknown words." \ No newline at end of file diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css new file mode 100644 index 000000000..2f6f992f3 --- /dev/null +++ b/docs/src/css/custom.css @@ -0,0 +1,191 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + :root { + --ifm-background-color: var(--token-primary-bg-c); + --ifm-navbar-link-hover-color: initial; + --ifm-navbar-padding-vertical: 0; + --ifm-navbar-item-padding-vertical: 0; + --ifm-font-family-base: -apple-system, BlinkMacSystemFont, Inter, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI emoji'; + --ifm-font-family-monospace: 'SFMono-Regular', 'Roboto Mono', Consolas, 'Liberation Mono', Menlo, Courier, monospace; +} + +.theme-doc-sidebar-item-category.menu__list-item:not(:first-child) { + margin-top: 1.5rem!important; +} + +.docusaurus-highlight-code-line { + background-color: rgba(0, 0, 0, 0.1); + display: block; + margin: 0 calc(-1 * var(--ifm-pre-padding)); + padding: 0 var(--ifm-pre-padding); +} + +.diagonal-box { + transform: skewY(-6deg); +} + +.diagonal-content { + transform: skewY(6deg); +} + +[class^='announcementBar'] { + z-index: 10; +} + +.showcase { + background-color: #fff; +} + +.showcase-border { + border-color: rgba(243, 244, 246, 1); +} + +.text-description { + color: rgba(107, 114, 128, 1); +} + +p { + text-align: justify; +} + +/* apply */ +#hero-apply { + z-index: -1; + background-image: linear-gradient( + var(--ifm-footer-background-color), + var(--ifm-navbar-background-color) + ); +} + +.apply-form { + background-image: linear-gradient(#fff, #f5f5fa); + max-width: 600px; +} + +.apply-text { + color: #36395a; +} + +/* index */ +#hero { + background-image: linear-gradient( + var(--ifm-footer-background-color), + var(--ifm-navbar-background-color) + ); +} + +/** + * Hero component title overrides to match other heading styles + */ +.hero-title { + color: rgb(28, 30, 33); + font-family: var(--ifm-heading-font-family); +} +h1 { + font-size: 26px; +} +h2 { + font-size: 22px; +} +h3 { + font-size: 18px; +} + +body { + font-size: 16px; +} + +.docsearch-logo { + color: #21243d; +} + +.apply-button:hover { + color: #fff; +} + +/* GitHub */ +.header-github-link:hover { + opacity: 0.6; +} + +.header-github-link:before { + content: ''; + width: 24px; + height: 24px; + display: flex; + background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") + no-repeat; +} + +/* Twitter */ +.header-twitter-link:hover { + opacity: 0.6; +} + +.header-twitter-link::before { + content: ''; + width: 24px; + height: 24px; + display: flex; + background: url("/logos/twitter.svg"); + background-size: contain; +} + +/* Discord */ +.header-discord-link:hover { + opacity: 0.6; +} + +.header-discord-link::before { + content: ''; + width: 24px; + height: 24px; + display: flex; + background: url("/logos/discord.svg"); + background-size: contain; +} + + +/* Images */ +.image-rendering-crisp { + image-rendering: crisp-edges; + + /* alias for google chrome */ + image-rendering: -webkit-optimize-contrast; +} + +.image-rendering-pixel { + image-rendering: pixelated; +} + +.img-center { + display: flex; + justify-content: center; + width: 100%, +} + +.resized-image { + width: 400px; +} + +/* Reduce width on mobile for Mendable Search */ +@media (max-width: 767px) { + .mendable-search { + width: 200px; + } +} + +@media (max-width: 500px) { + .mendable-search { + width: 150px; + } +} + +@media (max-width: 380px) { + .mendable-search { + width: 140px; + } +} \ No newline at end of file diff --git a/docs/src/pages/index.module.css b/docs/src/pages/index.module.css new file mode 100644 index 000000000..9f71a5da7 --- /dev/null +++ b/docs/src/pages/index.module.css @@ -0,0 +1,23 @@ +/** + * CSS files with the .module.css suffix will be treated as CSS modules + * and scoped locally. + */ + +.heroBanner { + padding: 4rem 0; + text-align: center; + position: relative; + overflow: hidden; +} + +@media screen and (max-width: 996px) { + .heroBanner { + padding: 2rem; + } +} + +.buttons { + display: flex; + align-items: center; + justify-content: center; +} diff --git a/docs/src/pages/markdown-page.md b/docs/src/pages/markdown-page.md new file mode 100644 index 000000000..9756c5b66 --- /dev/null +++ b/docs/src/pages/markdown-page.md @@ -0,0 +1,7 @@ +--- +title: Markdown page example +--- + +# Markdown page example + +You don't need React to write simple standalone pages. diff --git a/docs/src/theme/Footer.js b/docs/src/theme/Footer.js new file mode 100644 index 000000000..403eb4382 --- /dev/null +++ b/docs/src/theme/Footer.js @@ -0,0 +1,51 @@ +import React from "react"; +import Footer from "@theme-original/Footer"; +import { MendableFloatingButton } from "@mendable/search"; +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; + +export default function FooterWrapper(props) { + const iconSpan1 = React.createElement( + "img", + { + src: "/img/chain.png", + style: { width: "40px" }, + }, + null + ); + + const icon = React.createElement( + "div", + { + style: { + color: "#000000", + fontSize: "22px", + width: "48px", + height: "48px", + margin: "0px", + padding: "0px", + display: "flex", + alignItems: "center", + justifyContent: "center", + textAlign: "center", + }, + }, + [iconSpan1] + ); + const { + siteConfig: { customFields }, + } = useDocusaurusContext(); + + const mendableFloatingButton = React.createElement(MendableFloatingButton, { + floatingButtonStyle: { color: "#000000", backgroundColor: "#f6f6f6" }, + anon_key: customFields.mendableAnonKey, // Mendable Search Public ANON key, ok to be public + showSimpleSearch: true, + icon: icon, + }); + + return ( + <> +