[
  {
    "path": ".gitignore",
    "content": "# Miscellaneous\n*.class\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.svn/\nmigrate_working_dir/\n\n# IntelliJ related\n*.iml\n*.ipr\n*.iws\n.idea/\n\n*.env\n\n# The .vscode folder contains launch configuration and tasks you configure in\n# VS Code which you may wish to be included in version control, so this line\n# is commented out by default.\n#.vscode/\n\n# Flutter/Dart/Pub related\n# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.\n/pubspec.lock\n**/doc/api/\n.dart_tool/\n.packages\nbuild/\n"
  },
  {
    "path": ".metadata",
    "content": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrades etc.\n#\n# This file should be version controlled and should not be manually edited.\n\nversion:\n  revision: \"2f708eb8396e362e280fac22cf171c2cb467343c\"\n  channel: \"stable\"\n\nproject_type: package\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# 3.0.0\n* ## new Feature\n1. Now you can use this package as a **dart** pkg.\n2. prompt\n3. promptStream\n\n## 2.0.5\n* ## Fixed\n* `gemini-pro-vision` is depreciated, changed to `gemini-1.5-flash`\n\n## 2.0.4-dev.1\n* ## new feature\n* reInitialize\n* add mime type from Uint8List\n\n## 2.0.3\n* ## new feature\n* GeminiException( message , statusCode)\n\n## 2.0.1\n* ## new feature\n* Decode utf-8\n* streamChat\n\n## 2.0.0\n* work for lower Dart SDK version\n\n## 2.0.0-dev-1\n\n* ## Add new crucial features\n* ##### streamGenerateContent\n* The model usually gives a response once it finishes generating the entire output. To speed up interactions, you can opt not to wait for the complete result and instead use streaming to manage partial results.\n* ##### batchEmbedContents\n* ##### embedContent\n* Embedding is a method that transforms information, like text, into a list of floating-point numbers in an array. Gemini enables the representation of text, such as words or sentences, in a vectorized form. This facilitates the comparison of embeddings, allowing for the identification of similarities between texts through mathematical techniques like cosine similarity. For instance, texts with similar subject matter or sentiment should exhibit similar embeddings.\n* ## Updates\n* #### textAndImage\n* Convert the image property to the `images`\n```diff\n- image: file.readAsBytesSync(), /// image\n+ images: [file.readAsBytesSync()] /// list of images\n```\n\n## 1.0.1\n\n* update pubspec\n\n## 1.0.0\n\n* first publish\n"
  },
  {
    "path": "LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2023, Babak Gahremanzadeh (BabakCode)\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n   list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n   contributors may be used to endorse or promote products derived from\n   this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": "README.md",
    "content": "# Flutter Gemini\n\nGoogle Gemini is a set of cutting-edge large language models (LLMs) designed to be the driving force behind Google's future AI initiatives.\n\n![gemini_github_cover](https://github.com/babakcode/flutter_gemini/assets/31356659/104a436c-cc1e-4523-aeeb-edfb50f87346)\n\nThis package provides a powerful bridge between your Flutter application and Google's revolutionary Gemini AI. It empowers you to seamlessly integrate Gemini's capabilities into your app, unlocking possibilities for building innovative, intelligent, and engaging experiences that redefine user interaction.\n\n## Features\n\n- Set up your API key [scroll](#getting-started)\n- Initialize Gemini [scroll](#initialize-gemini)\n- Content-based APIs [scroll](#content-based-apis)\n  - promptStream [scroll](#prompt-stream)\n  - prompt [scroll](#prompt)\n  - Multi-turn conversations (chat) [scroll](#multi-turn-conversations-chat)\n  - Count tokens [scroll](#count-tokens)\n  - Model info [scroll](#model-info)\n  - List models [scroll](#list-models)\n  - EmbedContents and batchEmbedContents [scroll](#embedcontents-and-batchembedcontents)\n- Advanced Usage [scroll](#advanced-usage)\n  - Safety settings [scroll](#safety-settings)\n  - Generation configuration [scroll](#generation-configuration)\n- Legacy APIs [scroll](#legacy-apis)\n  - Stream Generate Content [scroll](#stream-generate-content)\n  - Text-only input [scroll](#text-only-input)\n  - Text-and-image input [scroll](#text-and-image-input)\n    \n\n## Getting started\n\nTo use the Gemini API, you'll need an API key. If you don't already have one, create a key in Google AI Studio. [Get an API key](https://ai.google.dev/).\n\n[//]: # (### online demo)\n\n[//]: # ()\n[//]: # ([https://babakcode.github.io/flutter_gemini]&#40;https://babakcode.github.io/flutter_gemini&#41;)\n\n## Initialize Gemini\n\nFor initialization, you must call the init constructor for Flutter Gemini in the main function.\n\n```dart\nconst apiKey = '--- Your Gemini Api Key ---';\n\nvoid main() {\n\n  /// Add this line\n  Gemini.init(apiKey: apiKey);\n\n  runApp(const MyApp());\n}\n```\n\nNow you can create an instance\n\n## Content-based APIs\n\n### Prompt Stream\n\nOffers a powerful method `promptStream` that allows developers to interact with\na stream of data in a flexible and efficient way. One of the key features of this package is\nthe ability to use different types of `Part` classes,\nenabling the transmission of various forms of data.\n\n**Usage Example**\nTo use the promptStream method, you can pass an array of Part objects, where each Part can represent different types of data. For instance, a simple request to ask a question could look like this:\n\n```dart\nGemini.instance.promptStream(parts: [\n  Part.text('Write a story about a magic backpack'),\n]).listen((value) {\n  print(value?.output);\n});\n```\n\n#### Available Part Types\n\n1. `Part.text` | `TextPart`: For sending text data.\n2. `Part.inline` | `InlinePart`: For sending raw byte data.\n3. `Part.file` | `FilePart`: For sending uploaded file to Gemini cloud ( will be updated )\n4. ...\n5. ( Others will be added ASAP )\n\nThese `Part` types are abstracted into a base class, providing flexibility to add more data types in the future. This modular design ensures that users can easily extend the package to accommodate their specific needs, whether it's for text, files, or binary data.\n\nBy using these different `Part` classes, you can tailor the behavior of the `promptStream` method to meet your application's specific requirements.\n\n### Prompt\n\nYou can send a question or request and get an immediate response using the `prompt` method. This method works with various `Part` types to allow flexible input, such as text, videos, or audios.\n\n**Usage Example**\n\nThe following example shows how to use the `Flutter_Gemini` package with the `Future` approach to send a text request and handle the response:\n\n```dart\nGemini.instance.prompt(parts: [\n  Part.text('Write a story about a magic backpack'),\n]).then((value) {\n  print(value?.output);\n}).catchError((e) {\n  print('error ${e}');\n});\n```\n\n*Explanation*:\n\n* The `prompt` method takes a list of `Part` objects, such as `Part.text` ( `TextPart` ), to define the request.\n* The response is processed once it is available, and you can access the result via value?.output.\n* Errors can be handled using catchError.\n\n\nThis method provides a straightforward way to handle asynchronous tasks without dealing with streams.\n\n#### Multi-turn conversations (chat)\n\nUsing Gemini, you can build freeform conversations across multiple turns.\n\n```dart\n  final gemini = Gemini.instance;\n\n  gemini.chat([\n    Content(parts: [\n      Part.text('Write the first line of a story about a magic backpack.')],\n        role: 'user'),\n    Content(parts: [ \n      Part.text('In the bustling city of Meadow brook, lived a young girl named Sophie. She was a bright and curious soul with an imaginative mind.')],\n        role: 'model'),\n    Content(parts: [ \n      Part.text('Can you set it in a quiet village in 1600s France?')], \n        role: 'user'),\n    ])\n        .then((value) => log(value?.output ?? 'without output'))\n        .catchError((e) => log('chat', error: e));\n```\n\n\n![Flutter gemini Text and Image example gif](https://miro.medium.com/v2/resize:fit:828/format:webp/1*MoVz4Z5KpxVUocEHLmzDew.gif \"Flutter_Gemini example\")\n\n\n#### Count tokens\n\nWhen using long prompts, it might be useful to count tokens before sending any content to the model.\n\n```dart\nfinal gemini = Gemini.instance;\n\ngemini.countTokens(\"Write a story about a magic backpack.\")\n    .then((value) => print(value)) /// output like: `6` or `null`\n    .catchError((e) => log('countTokens', error: e));\n```\n\n#### Model info\n\nIf you `GET` a model's URL, the API uses the `get` method to return information about that model such as version, display name, input token limit, etc.\n\n```dart\nfinal gemini = Gemini.instance;\n\ngemini.info(model: 'gemini-pro')\n    .then((info) => print(info))\n    .catchError((e) => log('info', error: e));\n```\n\n#### List models\n\nIf you `GET` the `models` directory, it uses the `list` method to list all of the models available through the API, including both the Gemini and PaLM family models.\n\n```dart\nfinal gemini = Gemini.instance;\n\ngemini.listModels()\n    .then((models) => print(models)) /// list\n    .catchError((e) => log('listModels', error: e));\n```\n\n#### embedContents and batchEmbedContents\n\nEmbedding is a method that transforms information, like text, into a list of floating-point numbers in an array. Gemini enables the representation of text, such as words or sentences, in a vectorized form. This facilitates the comparison of embeddings, allowing for the identification of similarities between texts through mathematical techniques like cosine similarity. For instance, texts with similar subject matter or sentiment should exhibit similar embeddings.\n\n```dart\n/// `embedContents`\ngemini.embedContent('text').then((value) {\n  print(value); /// output like: [ 1.3231, 1.33421, -0.123123 ]\n});\n\n/// `batchEmbedContents`\ngemini.batchEmbedContents(['text 1', 'text 2']).then((value) {\n  print(value); /// output like: [ [ 1.3231, 1.33421, -0.123123 ] ]\n});\n```\n\n## Advanced Usage\n\nThe following sections discuss advanced use cases and lower-level details of the Flutter SDK for the Gemini API.\n\n#### Safety settings\n\nThe `safety_settings` argument lets you configure what the model blocks and allows in both prompts and responses.\n\n```dart\ngemini.streamGenerateContent('Utilizing Google Ads in Flutter',\n          safetySettings: [\n            SafetySetting(\n              category: SafetyCategory.harassment,\n              threshold: SafetyThreshold.blockLowAndAbove,\n            ),\n            SafetySetting(\n              category: SafetyCategory.hateSpeech,\n              threshold: SafetyThreshold.blockOnlyHigh,\n            )\n          ])\n        .listen((value) {})\n        .onError((e) {});\n```\n\n#### Generation configuration\n\nThe `generation_config` argument allows you to modify the generation parameters.\n\n```dart\ngemini.streamGenerateContent('Utilizing Google Ads in Flutter',\n          generationConfig: GenerationConfig(\n            temperature: 0.75,\n            maxOutputTokens: 512,\n          ))\n      .listen((value) {})\n      .onError((e) {});\n```\n\n## Legacy APIs\n\n\n#### Stream Generate Content\n\nThe model usually gives a response once it finishes generating the entire output. To speed up interactions, you can opt not to wait for the complete result and instead use streaming to manage partial results.\n\n```dart\nfinal gemini = Gemini.instance;\n\ngemini.streamGenerateContent('Utilizing Google Ads in Flutter')\n  .listen((value) {\n    print(value.output);\n  }).onError((e) {\n    log('streamGenerateContent exception', error: e);\n  });\n```\n![Flutter gemini stream generates content](https://github.com/babakcode/flutter_gemini/assets/31356659/0a6f6eaa-684c-4708-b395-16176c7b0180)\n![Flutter Gemini stream](https://github.com/babakcode/flutter_gemini/assets/31356659/cabe2392-d584-4bbb-b5a9-a86db6b2d7f1)\n\n#### Text-only input\n\nThis feature lets you perform natural language processing (NLP) tasks such as text completion and summarization.\n\n```dart\nfinal gemini = Gemini.instance;\n\ngemini.text(\"Write a story about a magic backpack.\")\n  .then((value) => print( value?.output )) /// or value?.content?.parts?.last.text\n  .catchError((e) => print(e));\n```\n\n![Flutter gemini Text only example gif](https://miro.medium.com/v2/resize:fit:828/format:webp/1*41dnttHItU2v4hobJ_DGSA.gif \"Flutter_Gemini example\")\n\n#### Text-and-image input\n\nIf the input contains both text and image, You can send a text prompt with an image to the gemini-1.5-flash model to perform a vision-related task. For example, captioning an image or identifying what's in an image.\n\n```dart\n  final gemini = Gemini.instance;\n\n  final file = File('assets/img.png');\n  gemini.textAndImage(\n        text: \"What is this picture?\", /// text\n        images: [file.readAsBytesSync()] /// list of images\n      )\n      .then((value) => log(value?.content?.parts?.last.text ?? ''))\n      .catchError((e) => log('textAndImageInput', error: e));\n```\n\n###### Note that, there are changes on properties\n\n```diff\n- image: file.readAsBytesSync(), /// image\n+ images: [file.readAsBytesSync()] /// list of images\n```\n\n![Flutter gemini Text and Image example gif](https://miro.medium.com/v2/resize:fit:828/format:webp/1*3JEeJaBRSpif6hOl2pt3RA.gif \"Flutter_Gemini example\")\n"
  },
  {
    "path": "analysis_options.yaml",
    "content": "include: package:flutter_lints/flutter.yaml\n\n# Additional information about this file can be found at\n# https://dart.dev/guides/language/analysis-options\nanalyzer:\n  errors:\n    invalid_annotation_target: ignore"
  },
  {
    "path": "assets/json_models/embeding_response.json",
    "content": "{\n  \"embedding\": {\n    \"values\": [\n      0.008624583,\n      -0.030451821,\n      -0.042496547,\n      -0.029230341,\n      0.05486475,\n      0.006694871,\n      0.004025645,\n      -0.007294857,\n      0.0057651913,\n      0.037203953,\n      0.08070716,\n      0.032692064,\n      0.0015699493,\n      -0.038671605,\n      -0.021397846,\n      0.040436137,\n      0.040364444,\n      0.023915485,\n      0.03318194,\n      -0.052099578,\n      0.007753789,\n      -0.0028750803,\n      -0.0038559572,\n      -0.03839587,\n      0.031610277,\n      -0.0024588231,\n      0.05350601,\n      -0.035613116,\n      -0.035775036,\n      0.045701347,\n      -0.030365199,\n      -0.014816799,\n      -0.040846597,\n      -0.014294212,\n      0.008432598,\n      -0.07015665,\n      -0.005973285,\n      0.020774437,\n      -0.019995548,\n      0.027437009,\n      -0.0143762855,\n      0.0071297227,\n      -0.048812605,\n      0.0017134936,\n      0.016833002,\n      -0.04341425,\n      -0.01071614,\n      0.029540878,\n      0.00026989548,\n      -0.07512045,\n      -0.0063251033,\n      0.017243758,\n      0.0030855879,\n      -0.03900979,\n      0.0062045115,\n      -0.03762957,\n      -0.0002221458,\n      0.0033970037,\n      -0.018224807,\n      0.020233013,\n      -0.009443185,\n      0.016834496,\n      -0.039400727,\n      0.025765473,\n      0.0064459303,\n      -0.0010064961,\n      -0.023396038,\n      0.04714727,\n      0.04311917,\n      0.011308989,\n      -0.013833369,\n      -0.06827331,\n      0.023071568,\n      -0.03515085,\n      -0.06426478,\n      -0.07674637,\n      0.011010596,\n      0.014995057,\n      -0.009893141,\n      0.0226066,\n      -0.023858562,\n      -0.04174958,\n      0.00030446844,\n      -0.029835863,\n      -0.049982175,\n      0.030680457,\n      -0.0037228062,\n      0.007982671,\n      0.015907364,\n      0.059540056,\n      -0.0698364,\n      0.01905883,\n      0.026681246,\n      -0.029017935,\n      0.009239862,\n      0.07437943,\n      -0.018931432,\n      -0.014418681,\n      -0.015227716,\n      -0.016991543,\n      -0.020227646,\n      -0.030113006,\n      -0.036909197,\n      0.0491838,\n      0.03691079,\n      0.020114211,\n      0.020616315,\n      0.035417195,\n      0.017378854,\n      0.0017591371,\n      -0.052360915,\n      -0.007504276,\n      -0.02162204,\n      -0.04277857,\n      -0.030450603,\n      -0.008929546,\n      0.022382222,\n      0.028581386,\n      0.031293616,\n      -0.017000198,\n      0.04805261,\n      -0.030170312,\n      0.016913159,\n      -0.0008443405,\n      0.017210385,\n      0.01790196,\n      0.025434153,\n      0.014020954,\n      0.0463916,\n      0.055676837,\n      -0.014117397,\n      -0.06040255,\n      0.033837322,\n      -0.0008005907,\n      -0.00060394837,\n      0.035327226,\n      0.036272198,\n      -0.03526632,\n      0.008720279,\n      -0.01767251,\n      0.030635742,\n      0.03079541,\n      -0.011152445,\n      0.008129438,\n      -0.004437317,\n      0.06261552,\n      -0.011166501,\n      -0.00792765,\n      0.0626778,\n      -0.03808373,\n      0.0010393296,\n      0.0012560948,\n      -0.05420512,\n      -0.001696204,\n      0.0057959175,\n      0.021863215,\n      -0.0057427636,\n      -0.005779428,\n      0.009948935,\n      -0.024309319,\n      0.03490945,\n      0.05541324,\n      0.010009066,\n      -0.00690594,\n      -0.017368019,\n      -0.0020743837,\n      0.016718129,\n      -0.021815343,\n      0.016868921,\n      -0.016602708,\n      -0.012883013,\n      -0.049588937,\n      -0.034187913,\n      -0.034272812,\n      -0.005009027,\n      -0.06445695,\n      0.0061878716,\n      -0.025500957,\n      -0.0136196995,\n      0.009936822,\n      -0.07557129,\n      0.0019269945,\n      0.007851136,\n      -0.0005730017,\n      0.015097395,\n      -0.02793086,\n      0.07649703,\n      -0.011246095,\n      -0.00988598,\n      -0.0095420005,\n      -0.010617724,\n      -0.02795932,\n      -0.0074260943,\n      -0.0011066246,\n      0.030510733,\n      0.04752876,\n      0.0040175403,\n      0.029044962,\n      0.047818206,\n      -0.018723032,\n      -0.0415435,\n      0.0996901,\n      0.006733833,\n      0.026475549,\n      0.028504595,\n      0.039723564,\n      0.10685063,\n      -0.09093502,\n      -0.040105067,\n      -0.010830562,\n      -0.016954549,\n      0.040276904,\n      -0.06309,\n      0.0122314235,\n      0.04197765,\n      0.021913808,\n      0.024538448,\n      0.03143963,\n      0.035233174,\n      -0.049595617,\n      0.031046454,\n      0.012546503,\n      -0.063403584,\n      0.029301276,\n      0.009593253,\n      0.08471234,\n      -0.052641954,\n      0.06801721,\n      -0.010078849,\n      -0.03664156,\n      -1.225098e-05,\n      0.014980443,\n      -0.015443251,\n      -0.063587464,\n      0.0649348,\n      0.03656039,\n      0.00012944145,\n      0.04090392,\n      -0.067475125,\n      0.042220943,\n      -0.049328692,\n      0.00013846974,\n      0.030628476,\n      -0.0044686855,\n      -0.06414449,\n      -0.0035188058,\n      -0.021508386,\n      0.014263058,\n      0.0023899209,\n      0.0044664415,\n      0.011860193,\n      -0.05595765,\n      0.03968002,\n      0.026143683,\n      -0.04310548,\n      0.019457595,\n      -0.036821175,\n      -0.004706372,\n      -0.008448093,\n      0.0095680095,\n      0.02663876,\n      -0.017718185,\n      0.0521761,\n      -0.05751985,\n      -0.03382739,\n      -5.254058e-05,\n      -0.007237099,\n      -0.03678753,\n      0.0004373296,\n      0.068935804,\n      0.024607658,\n      -0.07383697,\n      0.0745026,\n      -0.020278804,\n      -0.02233648,\n      -0.043527547,\n      -0.0005897141,\n      -0.008819973,\n      0.05522694,\n      -0.041430607,\n      0.01485464,\n      0.03093516,\n      0.027958557,\n      -0.041524798,\n      -0.04165515,\n      -0.032893553,\n      -0.03968652,\n      -0.053652477,\n      0.017770097,\n      0.009334136,\n      -0.05586768,\n      -0.028391907,\n      -0.032775786,\n      -0.048513874,\n      -0.053598277,\n      0.026337227,\n      -0.016223265,\n      0.051107723,\n      0.043397397,\n      -0.011614245,\n      -0.051782615,\n      -0.0044690934,\n      0.036513854,\n      -0.059794012,\n      0.021193227,\n      0.022977995,\n      -0.037308924,\n      -0.04654618,\n      0.039977968,\n      0.0070000333,\n      0.010082792,\n      -0.041809354,\n      -0.06859667,\n      0.03696839,\n      0.08448864,\n      0.036238268,\n      -0.040010847,\n      0.014791712,\n      -0.071675524,\n      0.038495533,\n      -0.025405306,\n      0.119683675,\n      0.053742535,\n      -0.05001289,\n      0.013715115,\n      0.020359106,\n      -0.011968625,\n      0.080088414,\n      -0.036633175,\n      0.0514321,\n      -0.092830576,\n      -0.011293311,\n      -0.011462946,\n      -0.005365982,\n      0.0068834354,\n      0.0033007269,\n      -0.061453447,\n      -0.0018337568,\n      -0.03999207,\n      -0.0020025445,\n      0.030325854,\n      -0.028261486,\n      -0.0024511546,\n      -0.04857929,\n      -0.005050297,\n      -0.013459029,\n      -0.014253672,\n      0.03093196,\n      0.02680012,\n      -0.023344921,\n      0.029151637,\n      0.06343295,\n      -0.020851089,\n      -0.013067708,\n      -0.047613945,\n      -0.019634524,\n      0.04799423,\n      -0.0030165066,\n      0.023077987,\n      -0.018307852,\n      -0.02367432,\n      0.04621804,\n      -0.00904888,\n      -0.004921491,\n      -0.011499991,\n      -0.03138275,\n      0.00737706,\n      -0.030905176,\n      0.0045861388,\n      0.022925997,\n      -0.016103206,\n      -0.037664305,\n      -0.009711344,\n      -0.041544404,\n      -0.019569533,\n      -0.039040513,\n      -0.023987805,\n      -0.020657333,\n      -0.019713132,\n      0.012216924,\n      -0.028459836,\n      -0.007854262,\n      0.03432555,\n      0.018948609,\n      0.032789946,\n      -0.002173598,\n      0.072268486,\n      0.044727862,\n      -0.0047442573,\n      0.026857385,\n      -0.004011348,\n      -0.035373602,\n      0.064441904,\n      0.06910071,\n      -0.011144723,\n      -0.02612964,\n      -0.00051150133,\n      -0.058811516,\n      0.016943831,\n      -0.013993827,\n      -0.011681567,\n      -0.0486106,\n      -0.010806049,\n      -0.009677699,\n      -0.0075841006,\n      -0.013452097,\n      0.050830264,\n      0.0069918637,\n      -0.028301245,\n      -0.0226844,\n      0.020452417,\n      0.038501225,\n      0.027227988,\n      -0.09067933,\n      -0.03149255,\n      -0.02733588,\n      0.062468164,\n      -0.011298025,\n      0.00020811577,\n      0.02480444,\n      0.030436065,\n      -0.01722424,\n      0.015863098,\n      0.021556586,\n      -0.035869934,\n      -0.0105872825,\n      -0.012277281,\n      -0.050149817,\n      7.532577e-05,\n      0.014090748,\n      0.0022058648,\n      -0.0077205827,\n      0.01042793,\n      -0.036767684,\n      -0.019879367,\n      -0.015746206,\n      0.017803842,\n      0.012614761,\n      -0.00880104,\n      -0.02583725,\n      0.021856116,\n      -0.035151184,\n      0.0795235,\n      0.003733422,\n      -0.042395752,\n      -0.030227657,\n      0.017081745,\n      -0.064787105,\n      0.047976263,\n      -0.06614391,\n      0.046755534,\n      -0.09351948,\n      -0.017798718,\n      -0.06981937,\n      -0.048591003,\n      -0.036941074,\n      -0.0063392953,\n      0.0723561,\n      -0.050979175,\n      0.024858551,\n      0.022146545,\n      -0.04561866,\n      -0.05629803,\n      -0.03543026,\n      0.01992356,\n      -0.02645938,\n      0.015476739,\n      0.006532406,\n      0.016006118,\n      0.021703305,\n      -0.008074443,\n      -0.013993359,\n      0.025270082,\n      0.054084614,\n      -0.03723426,\n      0.00922647,\n      -0.060977213,\n      0.022743328,\n      0.0005817427,\n      -0.043921262,\n      0.0162521,\n      -0.046245884,\n      0.02920244,\n      0.0137127,\n      -0.0004419291,\n      0.0062954514,\n      0.0075316126,\n      -0.018215746,\n      -0.047283698,\n      0.06998149,\n      -0.033327773,\n      -0.0004236732,\n      -0.0031994286,\n      -0.007056563,\n      -0.043460306,\n      0.0015354953,\n      -0.01488144,\n      -0.032937713,\n      0.009287482,\n      0.014544634,\n      0.034704477,\n      -0.038788475,\n      0.0057188864,\n      -0.041650325,\n      0.058672834,\n      -0.037773453,\n      0.042793583,\n      0.068971485,\n      -0.060984336,\n      -0.003988655,\n      -0.0028867219,\n      0.0067583215,\n      -0.018067246,\n      -0.0239257,\n      0.021824041,\n      -0.002594604,\n      0.019783823,\n      0.010555229,\n      0.03585786,\n      -0.054828122,\n      0.056835514,\n      0.0039436664,\n      -0.029769812,\n      0.01487401,\n      0.018713957,\n      -0.04180365,\n      0.065259494,\n      -0.006946442,\n      -0.008461352,\n      -0.041328337,\n      0.016176524,\n      0.06900452,\n      -0.08757591,\n      -0.026511896,\n      -0.021864926,\n      -0.045825586,\n      -0.0029127926,\n      -0.036086105,\n      0.049907155,\n      -0.03262437,\n      0.008395844,\n      0.014912004,\n      0.016121961,\n      0.038142838,\n      -0.019255152,\n      -0.032568473,\n      0.029633947,\n      -0.05650531,\n      0.01703388,\n      -0.0049108807,\n      -0.033846553,\n      -0.032649934,\n      0.034349475,\n      -0.052442193,\n      0.035418052,\n      -0.025731172,\n      -0.028500304,\n      -0.022009343,\n      0.0073188776,\n      -0.02605774,\n      -0.011230884,\n      -0.016760005,\n      -0.026268288,\n      -0.030098971,\n      0.009599001,\n      -0.012166129,\n      -0.047288176,\n      -0.0026035684,\n      0.046940323,\n      0.017147271,\n      -0.03532738,\n      -0.004257927,\n      0.023836099,\n      -0.013437756,\n      0.038638394,\n      -0.04540704,\n      -0.0070548924,\n      -0.000996806,\n      -0.007153008,\n      0.03372742,\n      0.00090462615,\n      0.022542186,\n      0.056735456,\n      0.042577762,\n      -0.034696132,\n      0.042536404,\n      0.021590313,\n      0.0077237147,\n      0.024994696,\n      0.029911542,\n      -0.021255728,\n      0.030441552,\n      -0.0483429,\n      0.04303822,\n      0.0286698,\n      -0.0068607414,\n      0.036662962,\n      -0.0063703014,\n      -0.044340007,\n      -0.031890824,\n      0.00036194356,\n      -0.034090873,\n      -0.00549679,\n      0.009660412,\n      0.042241063,\n      0.011368424,\n      -0.004538653,\n      -0.009493857,\n      0.0030975502,\n      -0.0010478802,\n      -0.020607537,\n      0.018744059,\n      0.015208846,\n      -0.021333545,\n      0.03751383,\n      0.024116268,\n      0.07453785,\n      -0.041588385,\n      -0.03892425,\n      -0.05235617,\n      -0.040644005,\n      0.005042716,\n      -0.020569988,\n      -0.0129598,\n      0.13083012,\n      -0.009011917,\n      -0.00217832,\n      0.0077060633,\n      0.058262043,\n      0.015077671,\n      0.063272804,\n      0.1078087,\n      0.004448191,\n      -0.053923953,\n      -0.04362896,\n      0.09360521,\n      0.0066842767,\n      -0.011016014,\n      0.044551995,\n      0.0015021093,\n      -0.052759856,\n      -0.009717925,\n      0.0034341498,\n      0.020852385,\n      -0.0078668,\n      0.10094906,\n      0.07162882,\n      -0.0748456,\n      -0.027106045,\n      0.009101185,\n      -0.029127726,\n      -0.0017386917,\n      -0.023493223,\n      -0.027168266,\n      -0.020215228,\n      0.00041417315,\n      -0.033961166,\n      -0.011669535,\n      -0.0004906546,\n      -0.012759002,\n      -0.044284903,\n      0.04930086,\n      0.013013342,\n      -0.020515632,\n      0.0126403915,\n      0.016976478,\n      -0.08650424,\n      -0.07489142,\n      -0.04380144,\n      0.052320037,\n      -0.06340725,\n      0.067897715,\n      0.031920537,\n      -0.038168993,\n      0.036792386,\n      0.029663036,\n      0.022649394,\n      0.05061561,\n      0.00934687,\n      0.04729442,\n      -0.018025605,\n      0.019651046,\n      -0.0050999606,\n      -0.0020830606,\n      -0.007575653,\n      0.0045946045,\n      0.04751231,\n      0.007070753,\n      -0.035760302,\n      0.018472316,\n      0.004339673,\n      -0.06597283,\n      -0.05489254,\n      -0.011515522,\n      0.090681635,\n      0.007154289,\n      0.015031737,\n      0.008287731,\n      0.026016485,\n      0.0616728,\n      -0.016931107,\n      0.018779512,\n      -0.032710046,\n      -0.010483889,\n      0.026504684,\n      -0.020419342,\n      -0.022554679,\n      0.025899567,\n      0.045513034,\n      0.00026808516,\n      0.03389962,\n      -0.039920982,\n      -0.0038337265,\n      0.0014569712,\n      -0.009203633,\n      -0.011793006,\n      0.014427106,\n      0.0086658755,\n      -0.01721355,\n      0.08369377,\n      0.05515183,\n      0.03119344,\n      0.038981467,\n      -0.034288254,\n      -0.013515418,\n      0.06075744,\n      -0.0258169,\n      0.034621883,\n      0.0012731912,\n      -0.043584045,\n      0.04525766,\n      -0.032612998,\n      -0.020666298,\n      0.07351347,\n      -0.050300013,\n      0.026697695,\n      -0.0022883194,\n      0.0155193815,\n      -0.017274313,\n      -0.0020913866,\n      -0.064670034,\n      0.018535795,\n      -0.010191767,\n      0.08379303,\n      0.051132496,\n      -0.057075754,\n      0.049261495,\n      -0.011337851,\n      -0.054149605,\n      0.03255013,\n      -0.09124333,\n      0.03779213,\n      0.06664394,\n      0.00040837182,\n      0.028164629,\n      -0.044449247,\n      -0.012616811,\n      0.01718758,\n      -0.013388284,\n      0.036616728,\n      -0.009780496,\n      0.023196792,\n      0.0024103,\n      0.0152416425,\n      -0.019779433,\n      -0.014335527,\n      0.031857576,\n      0.012219593\n    ]\n  }\n}"
  },
  {
    "path": "assets/json_models/embedings_response.json",
    "content": "{\n  \"embeddings\": [\n    {\n      \"values\": [\n        0.015434564,\n        -0.01298924,\n        -0.03278457,\n        -0.028112393,\n        0.059482034,\n        0.0066549815,\n        0.00705964,\n        -0.018260185,\n        -0.007033401,\n        0.035155747,\n        0.08696386,\n        0.03573911,\n        -0.005422867,\n        -0.042579066,\n        -0.026789082,\n        0.044408686,\n        0.037405815,\n        0.024766346,\n        0.02860482,\n        -0.054175135,\n        0.0020146118,\n        -0.0009333989,\n        -0.006904162,\n        -0.029163862,\n        0.021856539,\n        0.008234055,\n        0.051697668,\n        -0.027510434,\n        -0.033265475,\n        0.04367599,\n        -0.02746475,\n        -0.006686542,\n        -0.052241612,\n        -0.017983247,\n        0.015568448,\n        -0.06716233,\n        -0.0045682783,\n        0.009744952,\n        -0.031453557,\n        0.03206871,\n        -0.011631581,\n        0.007513488,\n        -0.04575989,\n        -0.0048876926,\n        0.007850901,\n        -0.040422756,\n        -0.011942582,\n        0.02596849,\n        -0.0023374555,\n        -0.064529315,\n        -0.0049498533,\n        0.020897886,\n        0.013030305,\n        -0.033771504,\n        0.010636675,\n        -0.03492845,\n        -0.0036980575,\n        -0.0027421117,\n        -0.022764493,\n        0.016520545,\n        -0.0038496067,\n        0.009353446,\n        -0.027946725,\n        0.016360503,\n        -0.00028978643,\n        -0.0003598713,\n        -0.021505449,\n        0.04010767,\n        0.044623654,\n        0.0040911683,\n        -0.0012595936,\n        -0.06768728,\n        0.022939442,\n        -0.03522621,\n        -0.07493804,\n        -0.072267026,\n        0.01903335,\n        0.0142016085,\n        -0.0014970279,\n        0.02977439,\n        -0.03163831,\n        -0.04231695,\n        -0.0053182985,\n        -0.031077743,\n        -0.050385587,\n        0.03709317,\n        -0.00728087,\n        -0.0060717687,\n        0.010334748,\n        0.059571065,\n        -0.06091379,\n        0.0040900186,\n        0.023054197,\n        -0.023547497,\n        0.01351191,\n        0.06853871,\n        -0.014102313,\n        -0.017443523,\n        -0.020564517,\n        -0.013529423,\n        -0.009060168,\n        -0.024950726,\n        -0.03778613,\n        0.052346535,\n        0.04078861,\n        0.033672366,\n        0.019805942,\n        0.046406377,\n        0.02381622,\n        0.0041466807,\n        -0.04908229,\n        -0.016899314,\n        -0.008666749,\n        -0.035963874,\n        -0.039731916,\n        -0.0010175853,\n        0.019682892,\n        0.039609637,\n        0.035238363,\n        -0.014650347,\n        0.0427963,\n        -0.019887595,\n        0.023397034,\n        0.0027263404,\n        0.010051155,\n        0.024662556,\n        0.026217585,\n        0.01810648,\n        0.045216892,\n        0.055995,\n        -0.008993309,\n        -0.0591558,\n        0.04437932,\n        0.00013925001,\n        0.011384058,\n        0.027704006,\n        0.025953474,\n        -0.026603224,\n        0.013596232,\n        -0.030213686,\n        0.016922906,\n        0.035301685,\n        0.002827045,\n        0.023405148,\n        -0.0015210717,\n        0.063860156,\n        -0.016276177,\n        -0.010651622,\n        0.050887305,\n        -0.03839675,\n        0.011220306,\n        0.0041064774,\n        -0.056086265,\n        0.00084033125,\n        0.011776371,\n        0.02200351,\n        -0.012756443,\n        -0.00681502,\n        0.01882853,\n        -0.024096914,\n        0.03276953,\n        0.048802204,\n        0.006560446,\n        -0.0029943213,\n        -0.02073496,\n        -0.004337539,\n        0.012337608,\n        -0.022165503,\n        0.033460006,\n        -0.017985495,\n        -0.008597459,\n        -0.04362415,\n        -0.036465667,\n        -0.027657775,\n        -0.00710959,\n        -0.06939969,\n        0.0012120054,\n        -0.020809842,\n        -0.024050102,\n        0.016206726,\n        -0.073826425,\n        -0.0013746152,\n        -0.0024275798,\n        0.001351526,\n        0.030216707,\n        -0.021406554,\n        0.086559765,\n        -0.0056550875,\n        -0.0182909,\n        -0.0074581634,\n        -0.020410284,\n        -0.029720388,\n        -0.0003081285,\n        0.00071834464,\n        0.029664377,\n        0.042905703,\n        0.002196209,\n        0.030331254,\n        0.047638908,\n        -0.012593589,\n        -0.03822794,\n        0.09378852,\n        0.0054195896,\n        0.029715326,\n        0.025153734,\n        0.031789187,\n        0.10947316,\n        -0.08935895,\n        -0.03792664,\n        -0.0116212135,\n        -0.020322042,\n        0.040967822,\n        -0.07355915,\n        0.0169395,\n        0.0398898,\n        0.021025907,\n        0.030252483,\n        0.032528367,\n        0.029642563,\n        -0.04737147,\n        0.027770473,\n        0.009124789,\n        -0.053362213,\n        0.03725457,\n        0.00037645013,\n        0.0930869,\n        -0.038112756,\n        0.06810535,\n        -0.0057841074,\n        -0.03706526,\n        -0.0021398626,\n        0.02112997,\n        -0.022573467,\n        -0.06849294,\n        0.06004841,\n        0.03138389,\n        0.0028580478,\n        0.034423392,\n        -0.07563793,\n        0.03596298,\n        -0.043970056,\n        -0.0065886388,\n        0.028702892,\n        -0.0116006285,\n        -0.06151251,\n        -0.013886372,\n        -0.0273985,\n        0.012993118,\n        -0.002919346,\n        0.006990721,\n        0.011447861,\n        -0.05797139,\n        0.042079885,\n        0.026239084,\n        -0.045260265,\n        0.01764967,\n        -0.040064972,\n        -0.00908093,\n        0.0023206118,\n        -0.001027772,\n        0.029112205,\n        -0.021938426,\n        0.04604589,\n        -0.05257795,\n        -0.029146133,\n        -0.009205022,\n        -0.004605142,\n        -0.0391676,\n        0.012384472,\n        0.056723922,\n        0.015407171,\n        -0.06663508,\n        0.06987251,\n        -0.028572813,\n        -0.027711805,\n        -0.053085327,\n        0.0031240152,\n        -0.0067495494,\n        0.05780741,\n        -0.041734383,\n        0.014227393,\n        0.034962215,\n        0.023997705,\n        -0.047664586,\n        -0.03319448,\n        -0.04571977,\n        -0.038751386,\n        -0.047650762,\n        0.015231969,\n        0.014707201,\n        -0.05145878,\n        -0.027558379,\n        -0.034420036,\n        -0.04735379,\n        -0.06061379,\n        0.02926993,\n        -0.031242808,\n        0.05068711,\n        0.041653894,\n        -0.011260044,\n        -0.046160232,\n        -0.01575809,\n        0.042596053,\n        -0.067019396,\n        0.021227034,\n        0.02264995,\n        -0.04479321,\n        -0.055649765,\n        0.035150662,\n        0.014363713,\n        0.018040828,\n        -0.037481364,\n        -0.06936639,\n        0.03853942,\n        0.080863826,\n        0.041077014,\n        -0.031959374,\n        0.0123597,\n        -0.06889688,\n        0.03801152,\n        -0.017062489,\n        0.12375897,\n        0.05415808,\n        -0.046763197,\n        0.0068947705,\n        0.02993137,\n        -0.00081947306,\n        0.07275469,\n        -0.028778728,\n        0.058432154,\n        -0.10775239,\n        -0.012029789,\n        -0.0173616,\n        -0.0073038395,\n        0.018833078,\n        0.0070315013,\n        -0.06334908,\n        -0.002197907,\n        -0.051006787,\n        -0.0014970289,\n        0.031644855,\n        -0.026159585,\n        -0.012268066,\n        -0.05239107,\n        -0.004444351,\n        -0.018770235,\n        -0.008498022,\n        0.036130067,\n        0.021302532,\n        -0.021627277,\n        0.033854786,\n        0.06542918,\n        -0.024555854,\n        -0.018355347,\n        -0.04724724,\n        -0.022322481,\n        0.051986925,\n        -0.0049326974,\n        0.027872436,\n        -0.022922205,\n        -0.023782928,\n        0.040236335,\n        -0.016250545,\n        -0.0015399866,\n        -0.0034115806,\n        -0.033653833,\n        0.0022180737,\n        -0.03858561,\n        0.0062937397,\n        0.029356556,\n        -0.007653773,\n        -0.03697332,\n        -0.011865267,\n        -0.0389502,\n        -0.02051948,\n        -0.04700568,\n        -0.01988669,\n        -0.022907414,\n        -0.020265345,\n        0.0217955,\n        -0.020815138,\n        -0.008075967,\n        0.042080384,\n        0.024871295,\n        0.02288075,\n        -0.0062845564,\n        0.070156254,\n        0.04420677,\n        -0.007218798,\n        0.024845367,\n        -0.0084106745,\n        -0.034232143,\n        0.06340526,\n        0.06934149,\n        -0.008653454,\n        -0.031547517,\n        -0.0021811998,\n        -0.056660965,\n        0.01289087,\n        -0.017565293,\n        -0.012472565,\n        -0.062865704,\n        -0.016882941,\n        -0.00886067,\n        -0.007546806,\n        -0.016651986,\n        0.049060285,\n        0.00983019,\n        -0.021024782,\n        -0.029961886,\n        0.021969963,\n        0.034383174,\n        0.029779661,\n        -0.08503801,\n        -0.035914786,\n        -0.023043424,\n        0.06259569,\n        -0.015958257,\n        -0.0023649666,\n        0.01726185,\n        0.027959429,\n        -0.01857089,\n        0.018801887,\n        0.02139348,\n        -0.03584269,\n        -0.018912096,\n        -0.008950262,\n        -0.03968531,\n        0.007892896,\n        0.027344838,\n        0.0016915328,\n        -0.02069493,\n        0.0134641025,\n        -0.0373059,\n        -0.018269014,\n        -0.020820636,\n        0.022916492,\n        0.010670274,\n        -0.012009122,\n        -0.031435724,\n        0.016901357,\n        -0.033515945,\n        0.087834135,\n        0.0063107405,\n        -0.046204098,\n        -0.025559545,\n        0.02293791,\n        -0.05808372,\n        0.053670824,\n        -0.06421356,\n        0.042490974,\n        -0.085585155,\n        -0.0198173,\n        -0.06684904,\n        -0.048170276,\n        -0.029904734,\n        -0.008417311,\n        0.07174241,\n        -0.047845766,\n        0.021944534,\n        0.0077130054,\n        -0.046163175,\n        -0.055012673,\n        -0.041142575,\n        0.027070649,\n        -0.023477424,\n        0.013213996,\n        0.0046703713,\n        0.030718237,\n        0.023010148,\n        -0.009387566,\n        -0.01857867,\n        0.024339002,\n        0.061191738,\n        -0.03438845,\n        0.0051931185,\n        -0.05372695,\n        0.030411297,\n        -0.0070508323,\n        -0.032841265,\n        0.016757507,\n        -0.034371115,\n        0.019011062,\n        0.023129944,\n        0.014389258,\n        0.01567308,\n        0.00020695015,\n        -0.011592477,\n        -0.040904265,\n        0.06431633,\n        -0.032233458,\n        0.0056469003,\n        0.00038041154,\n        -0.001082695,\n        -0.040244363,\n        0.0014604656,\n        -0.01620342,\n        -0.029038994,\n        0.008450276,\n        0.014739196,\n        0.03149293,\n        -0.043924604,\n        0.0023412916,\n        -0.048412733,\n        0.052497998,\n        -0.036233284,\n        0.041030962,\n        0.065008,\n        -0.054590926,\n        -0.011887156,\n        0.0068416568,\n        0.0029963045,\n        -0.004484368,\n        -0.021062057,\n        0.023270817,\n        -0.004501138,\n        0.022077331,\n        0.004033622,\n        0.02868228,\n        -0.04973768,\n        0.06252522,\n        0.0065110987,\n        -0.025488699,\n        0.011081035,\n        0.0244184,\n        -0.046629567,\n        0.06458706,\n        -0.00031803272,\n        -0.0004243537,\n        -0.03205965,\n        0.0071170204,\n        0.06946705,\n        -0.09862297,\n        -0.027214553,\n        -0.017033806,\n        -0.041122854,\n        -0.0012122589,\n        -0.03455534,\n        0.051282685,\n        -0.03422633,\n        0.008695823,\n        0.015176157,\n        0.016894938,\n        0.03162039,\n        -0.025730167,\n        -0.037140712,\n        0.031545468,\n        -0.065957755,\n        0.00861595,\n        -0.001762296,\n        -0.030673394,\n        -0.031860042,\n        0.027686678,\n        -0.049888633,\n        0.03841649,\n        -0.03171268,\n        -0.02880851,\n        -0.020134248,\n        1.7016679e-05,\n        -0.023856943,\n        -0.019115094,\n        -0.015578116,\n        -0.02229345,\n        -0.031415414,\n        0.017830754,\n        -0.00899299,\n        -0.047211867,\n        -0.0042254888,\n        0.050247733,\n        0.011978156,\n        -0.03280089,\n        -0.0019943626,\n        0.020434622,\n        -0.01406078,\n        0.040740646,\n        -0.04842172,\n        -0.0070891883,\n        0.0057456666,\n        -0.0035319694,\n        0.032241233,\n        -0.0049090614,\n        0.019266265,\n        0.051747773,\n        0.050398067,\n        -0.041308858,\n        0.047446568,\n        0.034806274,\n        0.01847136,\n        0.022865176,\n        0.03023712,\n        -0.023290439,\n        0.035830528,\n        -0.04913017,\n        0.04964651,\n        0.030478269,\n        -0.009313284,\n        0.036699146,\n        0.0014451745,\n        -0.03983365,\n        -0.03369194,\n        -0.00085205655,\n        -0.031339888,\n        0.0029001401,\n        0.004496864,\n        0.046755027,\n        0.011396131,\n        -0.0053634043,\n        -0.0129202185,\n        0.0032138631,\n        -0.005189336,\n        -0.031327825,\n        0.017196026,\n        0.019808073,\n        -0.013843882,\n        0.036849488,\n        0.019533407,\n        0.065735646,\n        -0.038069274,\n        -0.04339442,\n        -0.047135584,\n        -0.028438373,\n        0.006881676,\n        -0.017681453,\n        -0.015110602,\n        0.13880084,\n        -0.0068666013,\n        3.9237726e-05,\n        0.0055779493,\n        0.063306384,\n        0.0050390773,\n        0.06743495,\n        0.10649334,\n        -0.0019453482,\n        -0.0489806,\n        -0.041399788,\n        0.08586307,\n        0.0054414584,\n        -0.01258482,\n        0.05112526,\n        -0.00071916316,\n        -0.056181315,\n        0.0022912265,\n        0.011115143,\n        0.018141078,\n        0.00033985794,\n        0.098164506,\n        0.060502175,\n        -0.07149124,\n        -0.03204869,\n        0.006111822,\n        -0.02286666,\n        -0.008709467,\n        -0.013722155,\n        -0.03476923,\n        -0.018972937,\n        0.0086054625,\n        -0.041269857,\n        -0.020074759,\n        -0.0035619093,\n        -0.0013392023,\n        -0.043434292,\n        0.049947318,\n        0.018060664,\n        -0.018262088,\n        0.016828077,\n        0.02705727,\n        -0.08643556,\n        -0.07813209,\n        -0.041774075,\n        0.05141974,\n        -0.06427214,\n        0.07198149,\n        0.037141692,\n        -0.04617939,\n        0.03814317,\n        0.02491322,\n        0.030813579,\n        0.042570785,\n        0.022012087,\n        0.05465109,\n        -0.01629217,\n        0.022867497,\n        -0.0020482477,\n        0.00034332648,\n        0.008874342,\n        0.008132518,\n        0.04321023,\n        0.00810242,\n        -0.03295793,\n        0.014587113,\n        -0.0066820835,\n        -0.066815935,\n        -0.058186833,\n        -0.0133864675,\n        0.08364501,\n        0.00810787,\n        0.013005243,\n        0.012761795,\n        0.024867216,\n        0.05649599,\n        -0.019535208,\n        0.012473741,\n        -0.026360977,\n        -0.010710675,\n        0.022782803,\n        -0.016623449,\n        -0.019948183,\n        0.021855352,\n        0.042283673,\n        0.0009800687,\n        0.034794033,\n        -0.03932047,\n        0.00057145196,\n        -0.001981968,\n        -0.011611234,\n        -0.017059539,\n        0.014347867,\n        0.009619962,\n        -0.019044273,\n        0.08592929,\n        0.05807836,\n        0.043363832,\n        0.03973212,\n        -0.03548395,\n        -0.011271219,\n        0.05798954,\n        -0.018937308,\n        0.03652546,\n        0.005414547,\n        -0.038912386,\n        0.03980492,\n        -0.027904814,\n        -0.018506937,\n        0.07676259,\n        -0.05120513,\n        0.021827826,\n        -0.0066376906,\n        0.019047206,\n        -0.018292844,\n        -0.0031831455,\n        -0.07327645,\n        0.005534416,\n        -0.011769756,\n        0.07630418,\n        0.049130905,\n        -0.05947003,\n        0.039399136,\n        -0.022844097,\n        -0.050723698,\n        0.025920898,\n        -0.08740344,\n        0.035034865,\n        0.063338265,\n        -0.003078494,\n        0.029872345,\n        -0.036190104,\n        -0.014713493,\n        0.024035813,\n        -0.0045866803,\n        0.037426855,\n        -0.0034326292,\n        0.02236696,\n        0.005200196,\n        0.015344163,\n        -0.010986347,\n        -0.030591838,\n        0.026438223,\n        0.019473173\n      ]\n    },\n    {\n      \"values\": [\n        0.01356372,\n        -0.015404424,\n        -0.024385026,\n        -0.02521474,\n        0.056020778,\n        0.0027621386,\n        0.009466706,\n        -0.016455662,\n        -0.0026642364,\n        0.045416977,\n        0.07737776,\n        0.023474108,\n        -0.013265463,\n        -0.033379838,\n        -0.023250667,\n        0.0404241,\n        0.044108745,\n        0.030466532,\n        0.0346058,\n        -0.04831539,\n        0.0060302857,\n        -0.011384284,\n        -0.0069641043,\n        -0.033187676,\n        0.014762825,\n        0.015915839,\n        0.04271592,\n        -0.033557266,\n        -0.036628533,\n        0.05265253,\n        -0.02858904,\n        -0.010423476,\n        -0.059224404,\n        -0.017850118,\n        0.0147795845,\n        -0.060867663,\n        -0.012638338,\n        0.0226087,\n        -0.025348067,\n        0.024184836,\n        -0.0031668593,\n        -0.00032854432,\n        -0.04270257,\n        -0.008000146,\n        0.0084081255,\n        -0.039849024,\n        -0.010142988,\n        0.029516181,\n        -0.007788936,\n        -0.054162074,\n        -0.0064261775,\n        0.021151388,\n        0.017749984,\n        -0.03681754,\n        0.00058421254,\n        -0.029851453,\n        -0.010995861,\n        6.128468e-05,\n        -0.019695455,\n        0.011803026,\n        -0.0064983,\n        0.0061393236,\n        -0.037795562,\n        0.014119848,\n        -0.017901411,\n        -0.0017190825,\n        -0.009557438,\n        0.041075736,\n        0.04706685,\n        -0.0012074799,\n        -0.00441001,\n        -0.0623016,\n        0.020695373,\n        -0.038272448,\n        -0.06963989,\n        -0.06956885,\n        0.010699845,\n        0.0136828665,\n        0.004747582,\n        0.03355303,\n        -0.036120158,\n        -0.042254962,\n        -0.011597675,\n        -0.02915027,\n        -0.057572965,\n        0.03752201,\n        -0.0035625338,\n        -0.00643609,\n        0.0038807034,\n        0.07021188,\n        -0.06063613,\n        0.0058249924,\n        0.025465388,\n        -0.030649967,\n        0.0056611924,\n        0.061124038,\n        -0.016451944,\n        -0.017874911,\n        -0.019759964,\n        -0.02715586,\n        -0.0032868288,\n        -0.026126347,\n        -0.038634352,\n        0.048051205,\n        0.05145528,\n        0.025497243,\n        0.012517605,\n        0.039014466,\n        0.02194583,\n        0.010096146,\n        -0.05226388,\n        -0.021200478,\n        -0.013189387,\n        -0.03138918,\n        -0.038288396,\n        -0.0074681137,\n        0.024280315,\n        0.049106345,\n        0.026179677,\n        0.001262872,\n        0.04991265,\n        -0.025043597,\n        0.031398047,\n        0.009972107,\n        0.011729019,\n        0.02925488,\n        0.01835483,\n        0.02001332,\n        0.0338778,\n        0.05546092,\n        -0.014961561,\n        -0.060106006,\n        0.03798253,\n        0.012184653,\n        0.0041337386,\n        0.027944017,\n        0.024864355,\n        -0.019653607,\n        0.019782828,\n        -0.025586521,\n        0.02248693,\n        0.05073971,\n        0.0072206627,\n        0.016619014,\n        0.012443707,\n        0.06494928,\n        -0.024852972,\n        0.0023667377,\n        0.05175233,\n        -0.04017905,\n        -0.0031364446,\n        0.010388244,\n        -0.06084323,\n        0.008852871,\n        0.0046590664,\n        0.022251474,\n        -0.008022103,\n        -0.012050181,\n        0.019489845,\n        -0.009677376,\n        0.036306664,\n        0.04437892,\n        0.014288429,\n        0.008810291,\n        -0.022556063,\n        -0.017091554,\n        0.011731708,\n        -0.012127267,\n        0.027785007,\n        -0.016332893,\n        0.0021587973,\n        -0.044240408,\n        -0.05060435,\n        -0.026971154,\n        -0.0014136834,\n        -0.07273658,\n        -0.0006898712,\n        -0.02614714,\n        -0.022037672,\n        0.021202961,\n        -0.066731475,\n        -0.009113093,\n        -0.015087279,\n        0.004571251,\n        0.02913901,\n        -0.01759423,\n        0.09389163,\n        0.0014496895,\n        -0.026340768,\n        -0.009546374,\n        -0.008953322,\n        -0.0299461,\n        -0.0021733476,\n        0.009237003,\n        0.027435604,\n        0.040056195,\n        -0.0007877447,\n        0.022749603,\n        0.049359854,\n        0.0006516923,\n        -0.04235662,\n        0.08982526,\n        0.004458284,\n        0.03435815,\n        0.021263944,\n        0.016096625,\n        0.110941805,\n        -0.0919414,\n        -0.040695265,\n        -0.013052057,\n        -0.01909736,\n        0.041470613,\n        -0.08069395,\n        0.010049185,\n        0.042096797,\n        0.013407985,\n        0.03245518,\n        0.027443169,\n        0.03171851,\n        -0.05779703,\n        0.039670397,\n        0.009719457,\n        -0.05904497,\n        0.03655552,\n        -0.010600863,\n        0.09949096,\n        -0.04221709,\n        0.062240668,\n        0.0018234035,\n        -0.03386712,\n        0.0033469824,\n        0.020604594,\n        -0.012946305,\n        -0.064378165,\n        0.0685243,\n        0.034470167,\n        0.011540208,\n        0.027480396,\n        -0.06145429,\n        0.04302185,\n        -0.046975505,\n        -0.0060371137,\n        0.032695666,\n        -0.0039927727,\n        -0.05686104,\n        -0.020116458,\n        -0.028641123,\n        0.01443805,\n        -0.0017878783,\n        0.011825635,\n        0.020087935,\n        -0.056023844,\n        0.043248348,\n        0.026655579,\n        -0.044492234,\n        0.027739784,\n        -0.030246891,\n        -0.017539186,\n        -0.0037369288,\n        -0.001122251,\n        0.03227649,\n        -0.025506767,\n        0.030797727,\n        -0.044448316,\n        -0.031033086,\n        -0.0065762056,\n        -0.0001002368,\n        -0.038420197,\n        0.011661495,\n        0.049904194,\n        0.01508108,\n        -0.06630061,\n        0.0720011,\n        -0.019743258,\n        -0.03085517,\n        -0.053071205,\n        -0.0048887883,\n        0.006163513,\n        0.05284148,\n        -0.036668327,\n        0.012440962,\n        0.0310234,\n        0.023006696,\n        -0.053817812,\n        -0.030303776,\n        -0.049847156,\n        -0.04065002,\n        -0.044586767,\n        0.021336397,\n        0.00656369,\n        -0.05017026,\n        -0.028608944,\n        -0.03773836,\n        -0.047717758,\n        -0.066378176,\n        0.02402577,\n        -0.03466922,\n        0.05509412,\n        0.036861926,\n        -0.0043672323,\n        -0.031516273,\n        -0.014311909,\n        0.03396534,\n        -0.07394714,\n        0.028331613,\n        0.022759823,\n        -0.038586594,\n        -0.058586422,\n        0.038826045,\n        0.0031400376,\n        0.023019718,\n        -0.032497875,\n        -0.062899314,\n        0.02632834,\n        0.08524401,\n        0.043736473,\n        -0.033082936,\n        0.019106772,\n        -0.0722496,\n        0.042763494,\n        -0.017649885,\n        0.1153493,\n        0.057201233,\n        -0.03978485,\n        0.001057355,\n        0.022506345,\n        -0.0029862407,\n        0.059620123,\n        -0.030500274,\n        0.060925294,\n        -0.10239315,\n        -0.003542815,\n        -0.013749568,\n        -0.006346272,\n        0.009422031,\n        0.0078093065,\n        -0.06997163,\n        -0.004796844,\n        -0.04747843,\n        -0.0048929034,\n        0.028995141,\n        -0.025196563,\n        -0.022965265,\n        -0.051262125,\n        -0.0019852633,\n        -0.016936408,\n        -0.010199464,\n        0.030324858,\n        0.025550786,\n        -0.023933737,\n        0.04702822,\n        0.06558909,\n        -0.028368248,\n        -0.015577082,\n        -0.045044463,\n        -0.01769085,\n        0.064004615,\n        0.00022795201,\n        0.025862262,\n        -0.023398988,\n        -0.014926344,\n        0.03227265,\n        -0.024534425,\n        0.0033752997,\n        0.0069177323,\n        -0.024588037,\n        -0.005460702,\n        -0.037742637,\n        -0.009900487,\n        0.031445473,\n        -0.008672958,\n        -0.042368412,\n        -0.0072578816,\n        -0.027424691,\n        -0.012582449,\n        -0.043364238,\n        -0.007925043,\n        -0.020546816,\n        -0.021816181,\n        0.025413103,\n        -0.021867784,\n        -0.0053979284,\n        0.044294596,\n        0.025255842,\n        0.02116835,\n        -0.010366739,\n        0.08045021,\n        0.030191425,\n        -0.0044411574,\n        0.023970768,\n        -0.012986862,\n        -0.029552683,\n        0.060271047,\n        0.066457435,\n        -0.0044147796,\n        -0.030289507,\n        0.004856033,\n        -0.055259652,\n        0.017764702,\n        -0.026290603,\n        -0.012591546,\n        -0.066561304,\n        -0.015879424,\n        -0.0078580985,\n        -0.005703886,\n        -0.010511072,\n        0.04606666,\n        0.0037386399,\n        -0.02730791,\n        -0.035201445,\n        0.019405777,\n        0.032351755,\n        0.026315838,\n        -0.08748783,\n        -0.036918804,\n        -0.024774604,\n        0.066779695,\n        -0.0131363375,\n        -0.006833172,\n        0.017548248,\n        0.03014901,\n        -0.02093669,\n        0.01878978,\n        0.021724444,\n        -0.03306892,\n        -0.019861756,\n        -0.0070829033,\n        -0.041069735,\n        0.011550792,\n        0.031730793,\n        0.0028917727,\n        -0.022419961,\n        0.012697921,\n        -0.041135494,\n        -0.022249205,\n        -0.016629208,\n        0.024063317,\n        0.0073686587,\n        -0.008933923,\n        -0.03529035,\n        0.018242205,\n        -0.031073414,\n        0.08057978,\n        0.0040577333,\n        -0.056112513,\n        -0.016936433,\n        0.025750984,\n        -0.05475209,\n        0.053791735,\n        -0.053721294,\n        0.035882384,\n        -0.08126279,\n        -0.011758383,\n        -0.06346582,\n        -0.050078034,\n        -0.030639961,\n        -0.004633353,\n        0.080669396,\n        -0.043005913,\n        0.02103406,\n        -0.0015595207,\n        -0.03500447,\n        -0.045123942,\n        -0.04953359,\n        0.030497903,\n        -0.031456508,\n        0.014106866,\n        0.005134548,\n        0.037753444,\n        0.028651964,\n        -0.006746253,\n        -0.019177487,\n        0.028623445,\n        0.06745052,\n        -0.03281817,\n        -0.0012672333,\n        -0.055997625,\n        0.048638437,\n        -0.0016127657,\n        -0.03976466,\n        0.008378926,\n        -0.028456045,\n        0.014410168,\n        0.024373844,\n        0.011910943,\n        0.021143874,\n        -0.00034081505,\n        -0.014534269,\n        -0.0444327,\n        0.058333926,\n        -0.033249475,\n        -0.00057977246,\n        0.0026710927,\n        -0.007492691,\n        -0.036173522,\n        0.007248027,\n        -0.015779529,\n        -0.03560384,\n        0.011918583,\n        0.0183401,\n        0.030234274,\n        -0.053946353,\n        -0.006542068,\n        -0.047652304,\n        0.047707286,\n        -0.038783114,\n        0.042693816,\n        0.05343127,\n        -0.050019767,\n        -0.012727848,\n        -0.0023097321,\n        -0.00086191663,\n        -0.0062400047,\n        -0.024591254,\n        0.017905703,\n        -0.008616819,\n        0.018215548,\n        0.0131902695,\n        0.020589437,\n        -0.054924298,\n        0.066172525,\n        -0.0040485417,\n        -0.026892958,\n        0.017631505,\n        0.016223812,\n        -0.049125392,\n        0.061396062,\n        0.0032437919,\n        0.0015837993,\n        -0.039943047,\n        -0.002361447,\n        0.079728015,\n        -0.110722296,\n        -0.033113956,\n        -0.01288965,\n        -0.044349425,\n        0.004499129,\n        -0.032621466,\n        0.044723663,\n        -0.047870632,\n        -0.0007317092,\n        0.01538546,\n        0.021986065,\n        0.030877993,\n        -0.031387947,\n        -0.029872945,\n        0.030582039,\n        -0.07291621,\n        0.005214626,\n        -0.013360601,\n        -0.043853156,\n        -0.039767165,\n        0.034152303,\n        -0.046673838,\n        0.029574968,\n        -0.026512172,\n        -0.0317489,\n        -0.024238389,\n        0.0044461484,\n        -0.026358137,\n        -0.023567649,\n        -0.01666851,\n        -0.026981127,\n        -0.04789262,\n        0.015106207,\n        -0.016723782,\n        -0.04609404,\n        -0.0009690891,\n        0.047860138,\n        0.01965124,\n        -0.028853793,\n        -0.002161453,\n        0.015862888,\n        -0.009604859,\n        0.032861143,\n        -0.049893685,\n        -0.009056942,\n        0.016058477,\n        -0.0047637946,\n        0.013499327,\n        0.00033124414,\n        0.021639997,\n        0.036490552,\n        0.049734447,\n        -0.036388244,\n        0.035966754,\n        0.036384758,\n        0.01848129,\n        0.01936548,\n        0.041110706,\n        -0.020579007,\n        0.03972572,\n        -0.059500527,\n        0.058483753,\n        0.02949643,\n        -0.0026552908,\n        0.015136857,\n        0.013967699,\n        -0.047753524,\n        -0.02643546,\n        0.00045268517,\n        -0.024045393,\n        0.010572156,\n        0.0115284445,\n        0.045276333,\n        0.01477278,\n        -0.012260114,\n        0.0049116653,\n        0.0002624052,\n        0.0057428367,\n        -0.0357892,\n        0.014131505,\n        0.017865967,\n        0.0018355078,\n        0.017066674,\n        0.019991226,\n        0.059018876,\n        -0.04316734,\n        -0.040495962,\n        -0.04645116,\n        -0.032155212,\n        0.006855629,\n        -0.01709631,\n        -0.023068072,\n        0.13071896,\n        -0.0117750345,\n        0.006735388,\n        -0.00428147,\n        0.05835659,\n        0.00323061,\n        0.064452596,\n        0.107658714,\n        0.0011278684,\n        -0.047806296,\n        -0.039015945,\n        0.08841898,\n        0.009109056,\n        -0.021585098,\n        0.04587783,\n        0.0028700305,\n        -0.061642382,\n        -0.008301286,\n        0.0021765844,\n        0.025058622,\n        0.000866256,\n        0.09441375,\n        0.05135114,\n        -0.08111412,\n        -0.039409634,\n        -0.008433235,\n        -0.017753145,\n        -0.007967181,\n        -0.014075007,\n        -0.035151333,\n        -0.022514263,\n        0.013024374,\n        -0.042462803,\n        -0.021026863,\n        0.0010954188,\n        -0.012990658,\n        -0.038894013,\n        0.041165825,\n        0.021401018,\n        -0.013273863,\n        0.023978205,\n        0.0076727653,\n        -0.08208279,\n        -0.07164294,\n        -0.03766139,\n        0.05169556,\n        -0.06807564,\n        0.06667905,\n        0.02647171,\n        -0.050943747,\n        0.050514407,\n        0.022056088,\n        0.026697334,\n        0.030589454,\n        0.0309619,\n        0.055627897,\n        -0.011226073,\n        0.018821767,\n        0.00032708142,\n        0.013927108,\n        0.013664332,\n        0.023148077,\n        0.050223388,\n        0.002209411,\n        -0.024183843,\n        0.005419744,\n        -0.009037187,\n        -0.07152283,\n        -0.067591585,\n        0.0018649322,\n        0.07864899,\n        0.007836,\n        0.015458517,\n        0.018746221,\n        0.031856768,\n        0.05003332,\n        -0.015312568,\n        0.015148811,\n        -0.023977624,\n        -0.007860894,\n        0.03265328,\n        -0.010761551,\n        -0.0114624165,\n        0.022569085,\n        0.04449342,\n        0.0047867065,\n        0.03813074,\n        -0.047339167,\n        -0.010128946,\n        0.008987856,\n        -0.011981707,\n        -0.025890147,\n        0.014876134,\n        0.01246338,\n        -0.030317992,\n        0.08323439,\n        0.050378542,\n        0.04279509,\n        0.047543395,\n        -0.03934679,\n        -0.009702485,\n        0.051246934,\n        -0.0115570575,\n        0.025082037,\n        0.004921027,\n        -0.037485305,\n        0.0345109,\n        -0.017609224,\n        -0.017225614,\n        0.07838392,\n        -0.05333895,\n        0.035091214,\n        -0.007425883,\n        0.028943896,\n        -0.012226034,\n        -0.0077764336,\n        -0.07593833,\n        0.01470122,\n        -0.0043923827,\n        0.07346178,\n        0.053343177,\n        -0.064307295,\n        0.029436173,\n        -0.033383552,\n        -0.04565939,\n        0.0098429825,\n        -0.08035119,\n        0.03681359,\n        0.062023964,\n        -0.006151363,\n        0.048899304,\n        -0.030419897,\n        -0.01569126,\n        0.019181883,\n        0.0032262106,\n        0.042655054,\n        -0.00029345634,\n        0.017023923,\n        0.011658963,\n        0.0047185197,\n        -0.005198279,\n        -0.024262719,\n        0.030491523,\n        0.027719762\n      ]\n    }\n  ]\n}"
  },
  {
    "path": "assets/json_models/gemini_model.json",
    "content": "[\n  {\n    \"name\": \"models/chat-bison-001\",\n    \"version\": \"001\",\n    \"displayName\": \"Chat Bison\",\n    \"description\": \"Chat-optimized generative language model.\",\n    \"inputTokenLimit\": 4096,\n    \"outputTokenLimit\": 1024,\n    \"supportedGenerationMethods\": [\"generateMessage\", \"countMessageTokens\"],\n    \"temperature\": 0.25,\n    \"topP\": 0.95,\n    \"topK\": 40\n  },\n  {\n    \"name\": \"models/text-bison-001\",\n    \"version\": \"001\",\n    \"displayName\": \"Text Bison\",\n    \"description\": \"Model targeted for text generation.\",\n    \"inputTokenLimit\": 8196,\n    \"outputTokenLimit\": 1024,\n    \"supportedGenerationMethods\": [\n      \"generateText\",\n      \"countTextTokens\",\n      \"createTunedTextModel\"\n    ],\n    \"temperature\": 0.7,\n    \"topP\": 0.95,\n    \"topK\": 40\n  },\n  {\n    \"name\": \"models/embedding-gecko-001\",\n    \"version\": \"001\",\n    \"displayName\": \"Embedding Gecko\",\n    \"description\": \"Obtain a distributed representation of a text.\",\n    \"inputTokenLimit\": 1024,\n    \"outputTokenLimit\": 1,\n    \"supportedGenerationMethods\": [\"embedText\", \"countTextTokens\"]\n  },\n  {\n    \"name\": \"models/embedding-gecko-002\",\n    \"version\": \"002\",\n    \"displayName\": \"Embedding Gecko 002\",\n    \"description\": \"Obtain a distributed representation of a text.\",\n    \"inputTokenLimit\": 2048,\n    \"outputTokenLimit\": 1,\n    \"supportedGenerationMethods\": [\"embedText\", \"countTextTokens\"]\n  },\n  {\n    \"name\": \"models/gemini-pro\",\n    \"version\": \"001\",\n    \"displayName\": \"Gemini Pro\",\n    \"description\": \"The best model for scaling across a wide range of tasks\",\n    \"inputTokenLimit\": 30720,\n    \"outputTokenLimit\": 2048,\n    \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n    \"temperature\": 0.9,\n    \"topP\": 1,\n    \"topK\": 1\n  },\n  {\n    \"name\": \"models/gemini-1.5-flash\",\n    \"version\": \"001\",\n    \"displayName\": \"Gemini Pro Vision\",\n    \"description\":\n    \"The best image understanding model to handle a broad range of applications\",\n    \"inputTokenLimit\": 12288,\n    \"outputTokenLimit\": 4096,\n    \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n    \"temperature\": 0.4,\n    \"topP\": 1,\n    \"topK\": 32\n  },\n  {\n    \"name\": \"models/gemini-ultra\",\n    \"version\": \"001\",\n    \"displayName\": \"Gemini Ultra\",\n    \"description\": \"The most capable model for highly complex tasks\",\n    \"inputTokenLimit\": 30720,\n    \"outputTokenLimit\": 2048,\n    \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n    \"temperature\": 0.9,\n    \"topP\": 1,\n    \"topK\": 32\n  },\n  {\n    \"name\": \"models/embedding-001\",\n    \"version\": \"001\",\n    \"displayName\": \"Embedding 001\",\n    \"description\": \"Obtain a distributed representation of a text.\",\n    \"inputTokenLimit\": 2048,\n    \"outputTokenLimit\": 1,\n    \"supportedGenerationMethods\": [\"embedContent\", \"countTextTokens\"]\n  },\n  {\n    \"name\": \"models/aqa\",\n    \"version\": \"001\",\n    \"displayName\": \"Model that performs Attributed Question Answering.\",\n    \"description\":\n    \"Model trained to return answers to questions that are grounded in provided sources, along with estimating answerable probability.\",\n    \"inputTokenLimit\": 7168,\n    \"outputTokenLimit\": 1024,\n    \"supportedGenerationMethods\": [\"generateAnswer\"],\n    \"temperature\": 0.2,\n    \"topP\": 1,\n    \"topK\": 40\n  }\n]"
  },
  {
    "path": "assets/json_models/gemini_response.json",
    "content": "{\n  \"candidates\": [\n    {\n      \"content\": {\n        \"parts\": [\n          {\n            \"text\": \"Once upon a time, in a small town nestled at the foot of towering mountains, there lived a young girl named Lily. Lily was an adventurous and imaginative child, always dreaming of exploring the world beyond her home. One day, while wandering through the attic of her grandmother's house, she stumbled upon a dusty old backpack tucked away in a forgotten corner. Intrigued, Lily opened the backpack and discovered that it was an enchanted one. Little did she know that this magical backpack would change her life forever.\\n\\nAs Lily touched the backpack, it shimmered with an otherworldly light. She reached inside and pulled out a map that seemed to shift and change before her eyes, revealing hidden paths and distant lands. Curiosity tugged at her heart, and without hesitation, Lily shouldered the backpack and embarked on her first adventure.\\n\\nWith each step she took, the backpack adjusted to her needs. When the path grew treacherous, the backpack transformed into sturdy hiking boots, providing her with the confidence to navigate rocky terrains. When a sudden rainstorm poured down, the backpack transformed into a cozy shelter, shielding her from the elements.\\n\\nAs days turned into weeks, Lily's journey took her through lush forests, across treacherous rivers, and to the summits of towering mountains. The backpack became her loyal companion, guiding her along the way, offering comfort, protection, and inspiration.\\n\\nAmong her many adventures, Lily encountered a lost fawn that she gently carried in the backpack's transformed cradle. She helped a friendly giant navigate a dense fog by using the backpack's built-in compass. And when faced with a raging river, the backpack magically transformed into a sturdy raft, transporting her safely to the other side.\\n\\nThrough her travels, Lily discovered the true power of the magic backpack. It wasn't just a magical object but a reflection of her own boundless imagination and tenacity. She realized that the world was hers to explore, and the backpack was a tool to help her reach her full potential.\\n\\nAs Lily returned home, enriched by her adventures and brimming with stories, she decided to share the magic of the backpack with others. She organized a special adventure club, where children could embark on their own extraordinary journeys using the backpack's transformative powers. Together, they explored hidden worlds, learned valuable lessons, and formed lifelong friendships.\\n\\nAnd so, the legend of the magic backpack lived on, passed down from generation to generation. It became a reminder that even the simplest objects can hold extraordinary power when combined with imagination, courage, and a sprinkle of magic.\"\n          }\n        ],\n        \"role\": \"model\"\n      },\n      \"finishReason\": \"STOP\",\n      \"index\": 0,\n      \"safetyRatings\": [\n        {\n          \"category\": \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n          \"probability\": \"NEGLIGIBLE\"\n        },\n        {\n          \"category\": \"HARM_CATEGORY_HATE_SPEECH\",\n          \"probability\": \"NEGLIGIBLE\"\n        },\n        {\n          \"category\": \"HARM_CATEGORY_HARASSMENT\",\n          \"probability\": \"NEGLIGIBLE\"\n        },\n        {\n          \"category\": \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n          \"probability\": \"NEGLIGIBLE\"\n        }\n      ]\n    }\n  ],\n  \"promptFeedback\": {\n    \"safetyRatings\": [\n      {\n        \"category\": \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n        \"probability\": \"NEGLIGIBLE\"\n      },\n      {\n        \"category\": \"HARM_CATEGORY_HATE_SPEECH\",\n        \"probability\": \"NEGLIGIBLE\"\n      },\n      {\n        \"category\": \"HARM_CATEGORY_HARASSMENT\",\n        \"probability\": \"NEGLIGIBLE\"\n      },\n      {\n        \"category\": \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n        \"probability\": \"NEGLIGIBLE\"\n      }\n    ]\n  }\n}"
  },
  {
    "path": "assets/json_models/generation_config.json",
    "content": "{\n  \"stopSequences\": [\n    \"Title\"\n  ],\n  \"temperature\": 1.0,\n  \"maxOutputTokens\": 800,\n  \"topP\": 0.8,\n  \"topK\": 10\n}"
  },
  {
    "path": "example/.gitignore",
    "content": "# Miscellaneous\n*.class\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.svn/\nmigrate_working_dir/\n\n# IntelliJ related\n*.iml\n*.ipr\n*.iws\n.idea/\n\n# The .vscode folder contains launch configuration and tasks you configure in\n# VS Code which you may wish to be included in version control, so this line\n# is commented out by default.\n#.vscode/\n\n# Flutter/Dart/Pub related\n**/doc/api/\n**/ios/Flutter/.last_build_id\n.dart_tool/\n.flutter-plugins\n.flutter-plugins-dependencies\n.pub-cache/\n.pub/\n/build/\n\n# Symbolication related\napp.*.symbols\n\n# Obfuscation related\napp.*.map.json\n\n# Android Studio will place build artifacts here\n/android/app/debug\n/android/app/profile\n/android/app/release\n"
  },
  {
    "path": "example/.metadata",
    "content": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrades etc.\n#\n# This file should be version controlled and should not be manually edited.\n\nversion:\n  revision: \"2663184aa79047d0a33a14a3b607954f8fdd8730\"\n  channel: \"stable\"\n\nproject_type: app\n\n# Tracks metadata for the flutter migrate command\nmigration:\n  platforms:\n    - platform: root\n      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n    - platform: android\n      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n    - platform: ios\n      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n    - platform: linux\n      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n    - platform: macos\n      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n    - platform: web\n      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n    - platform: windows\n      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730\n\n  # User provided section\n\n  # List of Local paths (relative to this file) that should be\n  # ignored by the migrate tool.\n  #\n  # Files that are not part of the templates will be ignored by default.\n  unmanaged_files:\n    - 'lib/main.dart'\n    - 'ios/Runner.xcodeproj/project.pbxproj'\n"
  },
  {
    "path": "example/README.md",
    "content": "# example\n\nA new Flutter project.\n\n## Getting Started\n\nThis project is a starting point for a Flutter application.\n\nA few resources to get you started if this is your first Flutter project:\n\n- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)\n- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)\n\nFor help getting started with Flutter development, view the\n[online documentation](https://docs.flutter.dev/), which offers tutorials,\nsamples, guidance on mobile development, and a full API reference.\n"
  },
  {
    "path": "example/analysis_options.yaml",
    "content": "# This file configures the analyzer, which statically analyzes Dart code to\n# check for errors, warnings, and lints.\n#\n# The issues identified by the analyzer are surfaced in the UI of Dart-enabled\n# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be\n# invoked from the command line by running `flutter analyze`.\n\n# The following line activates a set of recommended lints for Flutter apps,\n# packages, and plugins designed to encourage good coding practices.\ninclude: package:flutter_lints/flutter.yaml\n\nlinter:\n  # The lint rules applied to this project can be customized in the\n  # section below to disable rules from the `package:flutter_lints/flutter.yaml`\n  # included above or to enable additional rules. A list of all available lints\n  # and their documentation is published at https://dart.dev/lints.\n  #\n  # Instead of disabling a lint rule for the entire project in the\n  # section below, it can also be suppressed for a single line of code\n  # or a specific dart file by using the `// ignore: name_of_lint` and\n  # `// ignore_for_file: name_of_lint` syntax on the line or in the file\n  # producing the lint.\n  rules:\n    # avoid_print: false  # Uncomment to disable the `avoid_print` rule\n    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule\n\n# Additional information about this file can be found at\n# https://dart.dev/guides/language/analysis-options\n"
  },
  {
    "path": "example/android/.gitignore",
    "content": "gradle-wrapper.jar\n/.gradle\n/captures/\n/gradlew\n/gradlew.bat\n/local.properties\nGeneratedPluginRegistrant.java\n\n# Remember to never publicly share your keystore.\n# See https://flutter.dev/to/reference-keystore\nkey.properties\n**/*.keystore\n**/*.jks\n"
  },
  {
    "path": "example/android/app/build.gradle",
    "content": "plugins {\n    id \"com.android.application\"\n    id \"kotlin-android\"\n    // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.\n    id \"dev.flutter.flutter-gradle-plugin\"\n}\n\nandroid {\n    namespace = \"com.example.example\"\n    compileSdk = flutter.compileSdkVersion\n    ndkVersion = flutter.ndkVersion\n\n    compileOptions {\n        sourceCompatibility = JavaVersion.VERSION_1_8\n        targetCompatibility = JavaVersion.VERSION_1_8\n    }\n\n    kotlinOptions {\n        jvmTarget = JavaVersion.VERSION_1_8\n    }\n\n    defaultConfig {\n        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).\n        applicationId = \"com.example.example\"\n        // You can update the following values to match your application needs.\n        // For more information, see: https://flutter.dev/to/review-gradle-config.\n        minSdk = flutter.minSdkVersion\n        targetSdk = flutter.targetSdkVersion\n        versionCode = flutter.versionCode\n        versionName = flutter.versionName\n    }\n\n    buildTypes {\n        release {\n            // TODO: Add your own signing config for the release build.\n            // Signing with the debug keys for now, so `flutter run --release` works.\n            signingConfig = signingConfigs.debug\n        }\n    }\n}\n\nflutter {\n    source = \"../..\"\n}\n"
  },
  {
    "path": "example/android/app/src/debug/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <!-- The INTERNET permission is required for development. Specifically,\n         the Flutter tool needs it to communicate with the running application\n         to allow setting breakpoints, to provide hot reload, etc.\n    -->\n    <uses-permission android:name=\"android.permission.INTERNET\"/>\n</manifest>\n"
  },
  {
    "path": "example/android/app/src/main/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <application\n        android:label=\"example\"\n        android:name=\"${applicationName}\"\n        android:icon=\"@mipmap/ic_launcher\">\n        <activity\n            android:name=\".MainActivity\"\n            android:exported=\"true\"\n            android:launchMode=\"singleTop\"\n            android:taskAffinity=\"\"\n            android:theme=\"@style/LaunchTheme\"\n            android:configChanges=\"orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode\"\n            android:hardwareAccelerated=\"true\"\n            android:windowSoftInputMode=\"adjustResize\">\n            <!-- Specifies an Android theme to apply to this Activity as soon as\n                 the Android process has started. This theme is visible to the user\n                 while the Flutter UI initializes. After that, this theme continues\n                 to determine the Window background behind the Flutter UI. -->\n            <meta-data\n              android:name=\"io.flutter.embedding.android.NormalTheme\"\n              android:resource=\"@style/NormalTheme\"\n              />\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\"/>\n                <category android:name=\"android.intent.category.LAUNCHER\"/>\n            </intent-filter>\n        </activity>\n        <!-- Don't delete the meta-data below.\n             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->\n        <meta-data\n            android:name=\"flutterEmbedding\"\n            android:value=\"2\" />\n    </application>\n    <!-- Required to query activities that can process text, see:\n         https://developer.android.com/training/package-visibility and\n         https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.\n\n         In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->\n    <queries>\n        <intent>\n            <action android:name=\"android.intent.action.PROCESS_TEXT\"/>\n            <data android:mimeType=\"text/plain\"/>\n        </intent>\n    </queries>\n</manifest>\n"
  },
  {
    "path": "example/android/app/src/main/kotlin/com/example/example/MainActivity.kt",
    "content": "package com.example.example\n\nimport io.flutter.embedding.android.FlutterActivity\n\nclass MainActivity: FlutterActivity()\n"
  },
  {
    "path": "example/android/app/src/main/res/drawable/launch_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item android:drawable=\"@android:color/white\" />\n\n    <!-- You can insert your own image assets here -->\n    <!-- <item>\n        <bitmap\n            android:gravity=\"center\"\n            android:src=\"@mipmap/launch_image\" />\n    </item> -->\n</layer-list>\n"
  },
  {
    "path": "example/android/app/src/main/res/drawable-v21/launch_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item android:drawable=\"?android:colorBackground\" />\n\n    <!-- You can insert your own image assets here -->\n    <!-- <item>\n        <bitmap\n            android:gravity=\"center\"\n            android:src=\"@mipmap/launch_image\" />\n    </item> -->\n</layer-list>\n"
  },
  {
    "path": "example/android/app/src/main/res/values/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->\n    <style name=\"LaunchTheme\" parent=\"@android:style/Theme.Light.NoTitleBar\">\n        <!-- Show a splash screen on the activity. Automatically removed when\n             the Flutter engine draws its first frame -->\n        <item name=\"android:windowBackground\">@drawable/launch_background</item>\n    </style>\n    <!-- Theme applied to the Android Window as soon as the process has started.\n         This theme determines the color of the Android Window while your\n         Flutter UI initializes, as well as behind your Flutter UI while its\n         running.\n\n         This Theme is only used starting with V2 of Flutter's Android embedding. -->\n    <style name=\"NormalTheme\" parent=\"@android:style/Theme.Light.NoTitleBar\">\n        <item name=\"android:windowBackground\">?android:colorBackground</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "example/android/app/src/main/res/values-night/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->\n    <style name=\"LaunchTheme\" parent=\"@android:style/Theme.Black.NoTitleBar\">\n        <!-- Show a splash screen on the activity. Automatically removed when\n             the Flutter engine draws its first frame -->\n        <item name=\"android:windowBackground\">@drawable/launch_background</item>\n    </style>\n    <!-- Theme applied to the Android Window as soon as the process has started.\n         This theme determines the color of the Android Window while your\n         Flutter UI initializes, as well as behind your Flutter UI while its\n         running.\n\n         This Theme is only used starting with V2 of Flutter's Android embedding. -->\n    <style name=\"NormalTheme\" parent=\"@android:style/Theme.Black.NoTitleBar\">\n        <item name=\"android:windowBackground\">?android:colorBackground</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "example/android/app/src/profile/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <!-- The INTERNET permission is required for development. Specifically,\n         the Flutter tool needs it to communicate with the running application\n         to allow setting breakpoints, to provide hot reload, etc.\n    -->\n    <uses-permission android:name=\"android.permission.INTERNET\"/>\n</manifest>\n"
  },
  {
    "path": "example/android/build.gradle",
    "content": "allprojects {\n    repositories {\n        google()\n        mavenCentral()\n    }\n}\n\nrootProject.buildDir = \"../build\"\nsubprojects {\n    project.buildDir = \"${rootProject.buildDir}/${project.name}\"\n}\nsubprojects {\n    project.evaluationDependsOn(\":app\")\n}\n\ntasks.register(\"clean\", Delete) {\n    delete rootProject.buildDir\n}\n"
  },
  {
    "path": "example/android/gradle/wrapper/gradle-wrapper.properties",
    "content": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-8.3-all.zip\n"
  },
  {
    "path": "example/android/gradle.properties",
    "content": "org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError\nandroid.useAndroidX=true\nandroid.enableJetifier=true\n"
  },
  {
    "path": "example/android/settings.gradle",
    "content": "pluginManagement {\n    def flutterSdkPath = {\n        def properties = new Properties()\n        file(\"local.properties\").withInputStream { properties.load(it) }\n        def flutterSdkPath = properties.getProperty(\"flutter.sdk\")\n        assert flutterSdkPath != null, \"flutter.sdk not set in local.properties\"\n        return flutterSdkPath\n    }()\n\n    includeBuild(\"$flutterSdkPath/packages/flutter_tools/gradle\")\n\n    repositories {\n        google()\n        mavenCentral()\n        gradlePluginPortal()\n    }\n}\n\nplugins {\n    id \"dev.flutter.flutter-plugin-loader\" version \"1.0.0\"\n    id \"com.android.application\" version \"8.1.0\" apply false\n    id \"org.jetbrains.kotlin.android\" version \"1.8.22\" apply false\n}\n\ninclude \":app\"\n"
  },
  {
    "path": "example/ios/.gitignore",
    "content": "**/dgph\n*.mode1v3\n*.mode2v3\n*.moved-aside\n*.pbxuser\n*.perspectivev3\n**/*sync/\n.sconsign.dblite\n.tags*\n**/.vagrant/\n**/DerivedData/\nIcon?\n**/Pods/\n**/.symlinks/\nprofile\nxcuserdata\n**/.generated/\nFlutter/App.framework\nFlutter/Flutter.framework\nFlutter/Flutter.podspec\nFlutter/Generated.xcconfig\nFlutter/ephemeral/\nFlutter/app.flx\nFlutter/app.zip\nFlutter/flutter_assets/\nFlutter/flutter_export_environment.sh\nServiceDefinitions.json\nRunner/GeneratedPluginRegistrant.*\n\n# Exceptions to above rules.\n!default.mode1v3\n!default.mode2v3\n!default.pbxuser\n!default.perspectivev3\n"
  },
  {
    "path": "example/ios/Flutter/AppFrameworkInfo.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>CFBundleDevelopmentRegion</key>\n  <string>en</string>\n  <key>CFBundleExecutable</key>\n  <string>App</string>\n  <key>CFBundleIdentifier</key>\n  <string>io.flutter.flutter.app</string>\n  <key>CFBundleInfoDictionaryVersion</key>\n  <string>6.0</string>\n  <key>CFBundleName</key>\n  <string>App</string>\n  <key>CFBundlePackageType</key>\n  <string>FMWK</string>\n  <key>CFBundleShortVersionString</key>\n  <string>1.0</string>\n  <key>CFBundleSignature</key>\n  <string>????</string>\n  <key>CFBundleVersion</key>\n  <string>1.0</string>\n  <key>MinimumOSVersion</key>\n  <string>12.0</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Flutter/Debug.xcconfig",
    "content": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example/ios/Flutter/Release.xcconfig",
    "content": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example/ios/Runner/AppDelegate.swift",
    "content": "import Flutter\nimport UIKit\n\n@main\n@objc class AppDelegate: FlutterAppDelegate {\n  override func application(\n    _ application: UIApplication,\n    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?\n  ) -> Bool {\n    GeneratedPluginRegistrant.register(with: self)\n    return super.application(application, didFinishLaunchingWithOptions: launchOptions)\n  }\n}\n"
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-40x40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-40x40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-60x60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-60x60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-20x20@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-29x29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-29x29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-40x40@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-40x40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-76x76@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-76x76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-83.5x83.5@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"Icon-App-1024x1024@1x.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md",
    "content": "# Launch Screen Assets\n\nYou can customize the launch screen with your own desired assets by replacing the image files in this directory.\n\nYou can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images."
  },
  {
    "path": "example/ios/Runner/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"12121\" systemVersion=\"16G29\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"12089\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Ydg-fD-yQy\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"xbc-2k-c8Z\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" image=\"LaunchImage\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"YRO-k0-Ey4\">\n                            </imageView>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"YRO-k0-Ey4\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"1a2-6s-vTC\"/>\n                            <constraint firstItem=\"YRO-k0-Ey4\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"4X2-HB-R7a\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"53\" y=\"375\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"LaunchImage\" width=\"168\" height=\"185\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "example/ios/Runner/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"10117\" systemVersion=\"15F34\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"10085\"/>\n    </dependencies>\n    <scenes>\n        <!--Flutter View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController id=\"BYZ-38-t0r\" customClass=\"FlutterViewController\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"y3c-jy-aDJ\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"wfy-db-euE\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"600\" height=\"600\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"calibratedWhite\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "example/ios/Runner/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>Example</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>example</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(FLUTTER_BUILD_NAME)</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(FLUTTER_BUILD_NUMBER)</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>CADisableMinimumFrameDurationOnPhone</key>\n\t<true/>\n\t<key>UIApplicationSupportsIndirectInputEvents</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Runner/Runner-Bridging-Header.h",
    "content": "#import \"GeneratedPluginRegistrant.h\"\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };\n\t\t331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };\n\t\t3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };\n\t\t74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };\n\t\t97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };\n\t\t97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };\n\t\t97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 97C146E61CF9000F007C117D /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 97C146ED1CF9000F007C117D;\n\t\t\tremoteInfo = Runner;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t9705A1C41CF9048500538489 /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = \"<group>\"; };\n\t\t1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = \"<group>\"; };\n\t\t331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = \"<group>\"; };\n\t\t331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = \"<group>\"; };\n\t\t74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"Runner-Bridging-Header.h\"; sourceTree = \"<group>\"; };\n\t\t74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = \"<group>\"; };\n\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = \"<group>\"; };\n\t\t9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = \"<group>\"; };\n\t\t97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t97C146EB1CF9000F007C117D /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t331C8082294A63A400263BE5 /* RunnerTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t331C807B294A618700263BE5 /* RunnerTests.swift */,\n\t\t\t);\n\t\t\tpath = RunnerTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9740EEB11CF90186004384FC /* Flutter */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,\n\t\t\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */,\n\t\t\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */,\n\t\t\t\t9740EEB31CF90195004384FC /* Generated.xcconfig */,\n\t\t\t);\n\t\t\tname = Flutter;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146E51CF9000F007C117D = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9740EEB11CF90186004384FC /* Flutter */,\n\t\t\t\t97C146F01CF9000F007C117D /* Runner */,\n\t\t\t\t97C146EF1CF9000F007C117D /* Products */,\n\t\t\t\t331C8082294A63A400263BE5 /* RunnerTests */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146EF1CF9000F007C117D /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146EE1CF9000F007C117D /* Runner.app */,\n\t\t\t\t331C8081294A63A400263BE5 /* RunnerTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146F01CF9000F007C117D /* Runner */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146FA1CF9000F007C117D /* Main.storyboard */,\n\t\t\t\t97C146FD1CF9000F007C117D /* Assets.xcassets */,\n\t\t\t\t97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,\n\t\t\t\t97C147021CF9000F007C117D /* Info.plist */,\n\t\t\t\t1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,\n\t\t\t\t1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,\n\t\t\t\t74858FAE1ED2DC5600515810 /* AppDelegate.swift */,\n\t\t\t\t74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,\n\t\t\t);\n\t\t\tpath = Runner;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t331C8080294A63A400263BE5 /* RunnerTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget \"RunnerTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t331C807D294A63A400263BE5 /* Sources */,\n\t\t\t\t331C807F294A63A400263BE5 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t331C8086294A63A400263BE5 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = RunnerTests;\n\t\t\tproductName = RunnerTests;\n\t\t\tproductReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\t97C146ED1CF9000F007C117D /* Runner */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget \"Runner\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t9740EEB61CF901F6004384FC /* Run Script */,\n\t\t\t\t97C146EA1CF9000F007C117D /* Sources */,\n\t\t\t\t97C146EB1CF9000F007C117D /* Frameworks */,\n\t\t\t\t97C146EC1CF9000F007C117D /* Resources */,\n\t\t\t\t9705A1C41CF9048500538489 /* Embed Frameworks */,\n\t\t\t\t3B06AD1E1E4923F5004D2608 /* Thin Binary */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = Runner;\n\t\t\tproductName = Runner;\n\t\t\tproductReference = 97C146EE1CF9000F007C117D /* Runner.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t97C146E61CF9000F007C117D /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tBuildIndependentTargetsInParallel = YES;\n\t\t\t\tLastUpgradeCheck = 1510;\n\t\t\t\tORGANIZATIONNAME = \"\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t331C8080294A63A400263BE5 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 14.0;\n\t\t\t\t\t\tTestTargetID = 97C146ED1CF9000F007C117D;\n\t\t\t\t\t};\n\t\t\t\t\t97C146ED1CF9000F007C117D = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.3.1;\n\t\t\t\t\t\tLastSwiftMigration = 1100;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject \"Runner\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 97C146E51CF9000F007C117D;\n\t\t\tproductRefGroup = 97C146EF1CF9000F007C117D /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t97C146ED1CF9000F007C117D /* Runner */,\n\t\t\t\t331C8080294A63A400263BE5 /* RunnerTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t331C807F294A63A400263BE5 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t97C146EC1CF9000F007C117D /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,\n\t\t\t\t3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,\n\t\t\t\t97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,\n\t\t\t\t97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\t\"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\",\n\t\t\t);\n\t\t\tname = \"Thin Binary\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"/bin/sh \\\"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\\\" embed_and_thin\";\n\t\t};\n\t\t9740EEB61CF901F6004384FC /* Run Script */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"Run Script\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"/bin/sh \\\"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\\\" build\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t331C807D294A63A400263BE5 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t97C146EA1CF9000F007C117D /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,\n\t\t\t\t1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t331C8086294A63A400263BE5 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 97C146ED1CF9000F007C117D /* Runner */;\n\t\t\ttargetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t97C146FA1CF9000F007C117D /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146FB1CF9000F007C117D /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t97C147001CF9000F007C117D /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t249021D3217E4FDB00AE95B9 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSUPPORTED_PLATFORMS = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t249021D4217E4FDB00AE95B9 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"Runner/Runner-Bridging-Header.h\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t331C8088294A63A400263BE5 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t331C8089294A63A400263BE5 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t331C808A294A63A400263BE5 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t97C147031CF9000F007C117D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t97C147041CF9000F007C117D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSUPPORTED_PLATFORMS = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t97C147061CF9000F007C117D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"Runner/Runner-Bridging-Header.h\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t97C147071CF9000F007C117D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"Runner/Runner-Bridging-Header.h\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget \"RunnerTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t331C8088294A63A400263BE5 /* Debug */,\n\t\t\t\t331C8089294A63A400263BE5 /* Release */,\n\t\t\t\t331C808A294A63A400263BE5 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t97C146E91CF9000F007C117D /* Build configuration list for PBXProject \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t97C147031CF9000F007C117D /* Debug */,\n\t\t\t\t97C147041CF9000F007C117D /* Release */,\n\t\t\t\t249021D3217E4FDB00AE95B9 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t97C147061CF9000F007C117D /* Debug */,\n\t\t\t\t97C147071CF9000F007C117D /* Release */,\n\t\t\t\t249021D4217E4FDB00AE95B9 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 97C146E61CF9000F007C117D /* Project object */;\n}\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreviewsEnabled</key>\n\t<false/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1510\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n               BuildableName = \"Runner.app\"\n               BlueprintName = \"Runner\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\"\n            parallelizable = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"331C8080294A63A400263BE5\"\n               BuildableName = \"RunnerTests.xctest\"\n               BlueprintName = \"RunnerTests\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Profile\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "example/ios/Runner.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreviewsEnabled</key>\n\t<false/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/RunnerTests/RunnerTests.swift",
    "content": "import Flutter\nimport UIKit\nimport XCTest\n\nclass RunnerTests: XCTestCase {\n\n  func testExample() {\n    // If you add code to the Runner application, consider adding tests here.\n    // See https://developer.apple.com/documentation/xctest for more information about using XCTest.\n  }\n\n}\n"
  },
  {
    "path": "example/lib/main.dart",
    "content": "import 'package:flutter_gemini/flutter_gemini.dart';\n\nconst apiKey = 'AIza------tMww4--------------';\nvoid main() {\n  Gemini.init(apiKey: apiKey, enableDebugging: true);\n\n  Gemini.instance.prompt(parts: [\n    Part.text('Write a story about a magic backpack'),\n  ]).then((value) {\n    print(value?.output);\n  });\n}\n"
  },
  {
    "path": "example/lib/widgets/chat_input_box.dart",
    "content": "import 'package:flutter/material.dart';\n\nclass ChatInputBox extends StatelessWidget {\n  final TextEditingController? controller;\n  final VoidCallback? onSend, onClickCamera;\n\n  const ChatInputBox({\n    super.key,\n    this.controller,\n    this.onSend,\n    this.onClickCamera,\n  });\n\n  @override\n  Widget build(BuildContext context) {\n    return Card(\n      margin: const EdgeInsets.all(8),\n      child: Row(\n        crossAxisAlignment: CrossAxisAlignment.end,\n        children: [\n          if (onClickCamera != null)\n            Padding(\n              padding: const EdgeInsets.all(4.0),\n              child: IconButton(\n                  onPressed: onClickCamera,\n                  color: Theme.of(context).colorScheme.onSecondary,\n                  icon: const Icon(Icons.file_copy_rounded)),\n            ),\n          Expanded(\n              child: TextField(\n            controller: controller,\n            minLines: 1,\n            maxLines: 6,\n            cursorColor: Theme.of(context).colorScheme.inversePrimary,\n            textInputAction: TextInputAction.newline,\n            keyboardType: TextInputType.multiline,\n            decoration: const InputDecoration(\n              contentPadding: EdgeInsets.symmetric(vertical: 10, horizontal: 4),\n              hintText: 'Message',\n              border: InputBorder.none,\n            ),\n            onTapOutside: (event) =>\n                FocusManager.instance.primaryFocus?.unfocus(),\n          )),\n          Padding(\n            padding: const EdgeInsets.all(4),\n            child: FloatingActionButton.small(\n              onPressed: onSend,\n              child: const Icon(Icons.send_rounded),\n            ),\n          )\n        ],\n      ),\n    );\n  }\n}\n"
  },
  {
    "path": "example/lib/widgets/item_image_view.dart",
    "content": "import 'dart:typed_data';\n\nimport 'package:flutter/material.dart';\n\nclass ItemImageView extends StatelessWidget {\n  final Uint8List bytes;\n  const ItemImageView({super.key, required this.bytes});\n\n  @override\n  Widget build(BuildContext context) {\n    return Padding(\n      padding: const EdgeInsets.all(4),\n      child: ClipRRect(\n        borderRadius: BorderRadius.circular(12),\n        child: Image.memory(\n          bytes,\n          width: 110,\n          height: 110,\n          fit: BoxFit.cover,\n        ),\n      ),\n    );\n  }\n}\n"
  },
  {
    "path": "example/linux/.gitignore",
    "content": "flutter/ephemeral\n"
  },
  {
    "path": "example/linux/CMakeLists.txt",
    "content": "# Project-level configuration.\ncmake_minimum_required(VERSION 3.10)\nproject(runner LANGUAGES CXX)\n\n# The name of the executable created for the application. Change this to change\n# the on-disk name of your application.\nset(BINARY_NAME \"example\")\n# The unique GTK application identifier for this application. See:\n# https://wiki.gnome.org/HowDoI/ChooseApplicationID\nset(APPLICATION_ID \"com.example.example\")\n\n# Explicitly opt in to modern CMake behaviors to avoid warnings with recent\n# versions of CMake.\ncmake_policy(SET CMP0063 NEW)\n\n# Load bundled libraries from the lib/ directory relative to the binary.\nset(CMAKE_INSTALL_RPATH \"$ORIGIN/lib\")\n\n# Root filesystem for cross-building.\nif(FLUTTER_TARGET_PLATFORM_SYSROOT)\n  set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})\n  set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})\n  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)\n  set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)\n  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)\n  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)\nendif()\n\n# Define build configuration options.\nif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)\n  set(CMAKE_BUILD_TYPE \"Debug\" CACHE\n    STRING \"Flutter build mode\" FORCE)\n  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS\n    \"Debug\" \"Profile\" \"Release\")\nendif()\n\n# Compilation settings that should be applied to most targets.\n#\n# Be cautious about adding new options here, as plugins use this function by\n# default. In most cases, you should add new options to specific targets instead\n# of modifying this function.\nfunction(APPLY_STANDARD_SETTINGS TARGET)\n  target_compile_features(${TARGET} PUBLIC cxx_std_14)\n  target_compile_options(${TARGET} PRIVATE -Wall -Werror)\n  target_compile_options(${TARGET} PRIVATE \"$<$<NOT:$<CONFIG:Debug>>:-O3>\")\n  target_compile_definitions(${TARGET} PRIVATE \"$<$<NOT:$<CONFIG:Debug>>:NDEBUG>\")\nendfunction()\n\n# Flutter library and tool build rules.\nset(FLUTTER_MANAGED_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/flutter\")\nadd_subdirectory(${FLUTTER_MANAGED_DIR})\n\n# System-level dependencies.\nfind_package(PkgConfig REQUIRED)\npkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)\n\nadd_definitions(-DAPPLICATION_ID=\"${APPLICATION_ID}\")\n\n# Define the application target. To change its name, change BINARY_NAME above,\n# not the value here, or `flutter run` will no longer work.\n#\n# Any new source files that you add to the application should be added here.\nadd_executable(${BINARY_NAME}\n  \"main.cc\"\n  \"my_application.cc\"\n  \"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc\"\n)\n\n# Apply the standard set of build settings. This can be removed for applications\n# that need different build settings.\napply_standard_settings(${BINARY_NAME})\n\n# Add dependency libraries. Add any application-specific dependencies here.\ntarget_link_libraries(${BINARY_NAME} PRIVATE flutter)\ntarget_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)\n\n# Run the Flutter tool portions of the build. This must not be removed.\nadd_dependencies(${BINARY_NAME} flutter_assemble)\n\n# Only the install-generated bundle's copy of the executable will launch\n# correctly, since the resources must in the right relative locations. To avoid\n# people trying to run the unbundled copy, put it in a subdirectory instead of\n# the default top-level location.\nset_target_properties(${BINARY_NAME}\n  PROPERTIES\n  RUNTIME_OUTPUT_DIRECTORY \"${CMAKE_BINARY_DIR}/intermediates_do_not_run\"\n)\n\n\n# Generated plugin build rules, which manage building the plugins and adding\n# them to the application.\ninclude(flutter/generated_plugins.cmake)\n\n\n# === Installation ===\n# By default, \"installing\" just makes a relocatable bundle in the build\n# directory.\nset(BUILD_BUNDLE_DIR \"${PROJECT_BINARY_DIR}/bundle\")\nif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)\n  set(CMAKE_INSTALL_PREFIX \"${BUILD_BUNDLE_DIR}\" CACHE PATH \"...\" FORCE)\nendif()\n\n# Start with a clean build bundle directory every time.\ninstall(CODE \"\n  file(REMOVE_RECURSE \\\"${BUILD_BUNDLE_DIR}/\\\")\n  \" COMPONENT Runtime)\n\nset(INSTALL_BUNDLE_DATA_DIR \"${CMAKE_INSTALL_PREFIX}/data\")\nset(INSTALL_BUNDLE_LIB_DIR \"${CMAKE_INSTALL_PREFIX}/lib\")\n\ninstall(TARGETS ${BINARY_NAME} RUNTIME DESTINATION \"${CMAKE_INSTALL_PREFIX}\"\n  COMPONENT Runtime)\n\ninstall(FILES \"${FLUTTER_ICU_DATA_FILE}\" DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\"\n  COMPONENT Runtime)\n\ninstall(FILES \"${FLUTTER_LIBRARY}\" DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n  COMPONENT Runtime)\n\nforeach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})\n  install(FILES \"${bundled_library}\"\n    DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n    COMPONENT Runtime)\nendforeach(bundled_library)\n\n# Copy the native assets provided by the build.dart from all packages.\nset(NATIVE_ASSETS_DIR \"${PROJECT_BUILD_DIR}native_assets/linux/\")\ninstall(DIRECTORY \"${NATIVE_ASSETS_DIR}\"\n   DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n   COMPONENT Runtime)\n\n# Fully re-copy the assets directory on each build to avoid having stale files\n# from a previous install.\nset(FLUTTER_ASSET_DIR_NAME \"flutter_assets\")\ninstall(CODE \"\n  file(REMOVE_RECURSE \\\"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\\\")\n  \" COMPONENT Runtime)\ninstall(DIRECTORY \"${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}\"\n  DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\" COMPONENT Runtime)\n\n# Install the AOT library on non-Debug builds only.\nif(NOT CMAKE_BUILD_TYPE MATCHES \"Debug\")\n  install(FILES \"${AOT_LIBRARY}\" DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n    COMPONENT Runtime)\nendif()\n"
  },
  {
    "path": "example/linux/flutter/CMakeLists.txt",
    "content": "# This file controls Flutter-level build steps. It should not be edited.\ncmake_minimum_required(VERSION 3.10)\n\nset(EPHEMERAL_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/ephemeral\")\n\n# Configuration provided via flutter tool.\ninclude(${EPHEMERAL_DIR}/generated_config.cmake)\n\n# TODO: Move the rest of this into files in ephemeral. See\n# https://github.com/flutter/flutter/issues/57146.\n\n# Serves the same purpose as list(TRANSFORM ... PREPEND ...),\n# which isn't available in 3.10.\nfunction(list_prepend LIST_NAME PREFIX)\n    set(NEW_LIST \"\")\n    foreach(element ${${LIST_NAME}})\n        list(APPEND NEW_LIST \"${PREFIX}${element}\")\n    endforeach(element)\n    set(${LIST_NAME} \"${NEW_LIST}\" PARENT_SCOPE)\nendfunction()\n\n# === Flutter Library ===\n# System-level dependencies.\nfind_package(PkgConfig REQUIRED)\npkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)\npkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)\npkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)\n\nset(FLUTTER_LIBRARY \"${EPHEMERAL_DIR}/libflutter_linux_gtk.so\")\n\n# Published to parent scope for install step.\nset(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)\nset(FLUTTER_ICU_DATA_FILE \"${EPHEMERAL_DIR}/icudtl.dat\" PARENT_SCOPE)\nset(PROJECT_BUILD_DIR \"${PROJECT_DIR}/build/\" PARENT_SCOPE)\nset(AOT_LIBRARY \"${PROJECT_DIR}/build/lib/libapp.so\" PARENT_SCOPE)\n\nlist(APPEND FLUTTER_LIBRARY_HEADERS\n  \"fl_basic_message_channel.h\"\n  \"fl_binary_codec.h\"\n  \"fl_binary_messenger.h\"\n  \"fl_dart_project.h\"\n  \"fl_engine.h\"\n  \"fl_json_message_codec.h\"\n  \"fl_json_method_codec.h\"\n  \"fl_message_codec.h\"\n  \"fl_method_call.h\"\n  \"fl_method_channel.h\"\n  \"fl_method_codec.h\"\n  \"fl_method_response.h\"\n  \"fl_plugin_registrar.h\"\n  \"fl_plugin_registry.h\"\n  \"fl_standard_message_codec.h\"\n  \"fl_standard_method_codec.h\"\n  \"fl_string_codec.h\"\n  \"fl_value.h\"\n  \"fl_view.h\"\n  \"flutter_linux.h\"\n)\nlist_prepend(FLUTTER_LIBRARY_HEADERS \"${EPHEMERAL_DIR}/flutter_linux/\")\nadd_library(flutter INTERFACE)\ntarget_include_directories(flutter INTERFACE\n  \"${EPHEMERAL_DIR}\"\n)\ntarget_link_libraries(flutter INTERFACE \"${FLUTTER_LIBRARY}\")\ntarget_link_libraries(flutter INTERFACE\n  PkgConfig::GTK\n  PkgConfig::GLIB\n  PkgConfig::GIO\n)\nadd_dependencies(flutter flutter_assemble)\n\n# === Flutter tool backend ===\n# _phony_ is a non-existent file to force this command to run every time,\n# since currently there's no way to get a full input/output list from the\n# flutter tool.\nadd_custom_command(\n  OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}\n    ${CMAKE_CURRENT_BINARY_DIR}/_phony_\n  COMMAND ${CMAKE_COMMAND} -E env\n    ${FLUTTER_TOOL_ENVIRONMENT}\n    \"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh\"\n      ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE}\n  VERBATIM\n)\nadd_custom_target(flutter_assemble DEPENDS\n  \"${FLUTTER_LIBRARY}\"\n  ${FLUTTER_LIBRARY_HEADERS}\n)\n"
  },
  {
    "path": "example/linux/flutter/generated_plugin_registrant.cc",
    "content": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#include \"generated_plugin_registrant.h\"\n\n\nvoid fl_register_plugins(FlPluginRegistry* registry) {\n}\n"
  },
  {
    "path": "example/linux/flutter/generated_plugin_registrant.h",
    "content": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#ifndef GENERATED_PLUGIN_REGISTRANT_\n#define GENERATED_PLUGIN_REGISTRANT_\n\n#include <flutter_linux/flutter_linux.h>\n\n// Registers Flutter plugins.\nvoid fl_register_plugins(FlPluginRegistry* registry);\n\n#endif  // GENERATED_PLUGIN_REGISTRANT_\n"
  },
  {
    "path": "example/linux/flutter/generated_plugins.cmake",
    "content": "#\n# Generated file, do not edit.\n#\n\nlist(APPEND FLUTTER_PLUGIN_LIST\n)\n\nlist(APPEND FLUTTER_FFI_PLUGIN_LIST\n)\n\nset(PLUGIN_BUNDLED_LIBRARIES)\n\nforeach(plugin ${FLUTTER_PLUGIN_LIST})\n  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})\n  target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})\nendforeach(plugin)\n\nforeach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})\n  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})\nendforeach(ffi_plugin)\n"
  },
  {
    "path": "example/linux/main.cc",
    "content": "#include \"my_application.h\"\n\nint main(int argc, char** argv) {\n  g_autoptr(MyApplication) app = my_application_new();\n  return g_application_run(G_APPLICATION(app), argc, argv);\n}\n"
  },
  {
    "path": "example/linux/my_application.cc",
    "content": "#include \"my_application.h\"\n\n#include <flutter_linux/flutter_linux.h>\n#ifdef GDK_WINDOWING_X11\n#include <gdk/gdkx.h>\n#endif\n\n#include \"flutter/generated_plugin_registrant.h\"\n\nstruct _MyApplication {\n  GtkApplication parent_instance;\n  char** dart_entrypoint_arguments;\n};\n\nG_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)\n\n// Implements GApplication::activate.\nstatic void my_application_activate(GApplication* application) {\n  MyApplication* self = MY_APPLICATION(application);\n  GtkWindow* window =\n      GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));\n\n  // Use a header bar when running in GNOME as this is the common style used\n  // by applications and is the setup most users will be using (e.g. Ubuntu\n  // desktop).\n  // If running on X and not using GNOME then just use a traditional title bar\n  // in case the window manager does more exotic layout, e.g. tiling.\n  // If running on Wayland assume the header bar will work (may need changing\n  // if future cases occur).\n  gboolean use_header_bar = TRUE;\n#ifdef GDK_WINDOWING_X11\n  GdkScreen* screen = gtk_window_get_screen(window);\n  if (GDK_IS_X11_SCREEN(screen)) {\n    const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);\n    if (g_strcmp0(wm_name, \"GNOME Shell\") != 0) {\n      use_header_bar = FALSE;\n    }\n  }\n#endif\n  if (use_header_bar) {\n    GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());\n    gtk_widget_show(GTK_WIDGET(header_bar));\n    gtk_header_bar_set_title(header_bar, \"example\");\n    gtk_header_bar_set_show_close_button(header_bar, TRUE);\n    gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));\n  } else {\n    gtk_window_set_title(window, \"example\");\n  }\n\n  gtk_window_set_default_size(window, 1280, 720);\n  gtk_widget_show(GTK_WIDGET(window));\n\n  g_autoptr(FlDartProject) project = fl_dart_project_new();\n  fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);\n\n  FlView* view = fl_view_new(project);\n  gtk_widget_show(GTK_WIDGET(view));\n  gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));\n\n  fl_register_plugins(FL_PLUGIN_REGISTRY(view));\n\n  gtk_widget_grab_focus(GTK_WIDGET(view));\n}\n\n// Implements GApplication::local_command_line.\nstatic gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {\n  MyApplication* self = MY_APPLICATION(application);\n  // Strip out the first argument as it is the binary name.\n  self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);\n\n  g_autoptr(GError) error = nullptr;\n  if (!g_application_register(application, nullptr, &error)) {\n     g_warning(\"Failed to register: %s\", error->message);\n     *exit_status = 1;\n     return TRUE;\n  }\n\n  g_application_activate(application);\n  *exit_status = 0;\n\n  return TRUE;\n}\n\n// Implements GApplication::startup.\nstatic void my_application_startup(GApplication* application) {\n  //MyApplication* self = MY_APPLICATION(object);\n\n  // Perform any actions required at application startup.\n\n  G_APPLICATION_CLASS(my_application_parent_class)->startup(application);\n}\n\n// Implements GApplication::shutdown.\nstatic void my_application_shutdown(GApplication* application) {\n  //MyApplication* self = MY_APPLICATION(object);\n\n  // Perform any actions required at application shutdown.\n\n  G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application);\n}\n\n// Implements GObject::dispose.\nstatic void my_application_dispose(GObject* object) {\n  MyApplication* self = MY_APPLICATION(object);\n  g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);\n  G_OBJECT_CLASS(my_application_parent_class)->dispose(object);\n}\n\nstatic void my_application_class_init(MyApplicationClass* klass) {\n  G_APPLICATION_CLASS(klass)->activate = my_application_activate;\n  G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;\n  G_APPLICATION_CLASS(klass)->startup = my_application_startup;\n  G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;\n  G_OBJECT_CLASS(klass)->dispose = my_application_dispose;\n}\n\nstatic void my_application_init(MyApplication* self) {}\n\nMyApplication* my_application_new() {\n  return MY_APPLICATION(g_object_new(my_application_get_type(),\n                                     \"application-id\", APPLICATION_ID,\n                                     \"flags\", G_APPLICATION_NON_UNIQUE,\n                                     nullptr));\n}\n"
  },
  {
    "path": "example/linux/my_application.h",
    "content": "#ifndef FLUTTER_MY_APPLICATION_H_\n#define FLUTTER_MY_APPLICATION_H_\n\n#include <gtk/gtk.h>\n\nG_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,\n                     GtkApplication)\n\n/**\n * my_application_new:\n *\n * Creates a new Flutter-based application.\n *\n * Returns: a new #MyApplication.\n */\nMyApplication* my_application_new();\n\n#endif  // FLUTTER_MY_APPLICATION_H_\n"
  },
  {
    "path": "example/macos/.gitignore",
    "content": "# Flutter-related\n**/Flutter/ephemeral/\n**/Pods/\n\n# Xcode-related\n**/dgph\n**/xcuserdata/\n"
  },
  {
    "path": "example/macos/Flutter/Flutter-Debug.xcconfig",
    "content": "#include \"ephemeral/Flutter-Generated.xcconfig\"\n"
  },
  {
    "path": "example/macos/Flutter/Flutter-Release.xcconfig",
    "content": "#include \"ephemeral/Flutter-Generated.xcconfig\"\n"
  },
  {
    "path": "example/macos/Flutter/GeneratedPluginRegistrant.swift",
    "content": "//\n//  Generated file. Do not edit.\n//\n\nimport FlutterMacOS\nimport Foundation\n\n\nfunc RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {\n}\n"
  },
  {
    "path": "example/macos/Runner/AppDelegate.swift",
    "content": "import Cocoa\nimport FlutterMacOS\n\n@main\nclass AppDelegate: FlutterAppDelegate {\n  override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {\n    return true\n  }\n}\n"
  },
  {
    "path": "example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"16x16\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_16.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"16x16\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_32.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"32x32\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_32.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"32x32\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_64.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"128x128\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_128.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"128x128\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_256.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"256x256\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_256.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"256x256\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_512.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"512x512\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_512.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"512x512\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_1024.png\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "example/macos/Runner/Base.lproj/MainMenu.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\" useAutolayout=\"YES\" customObjectInstantitationMethod=\"direct\">\n    <dependencies>\n        <deployment identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"14490.70\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <customObject id=\"-2\" userLabel=\"File's Owner\" customClass=\"NSApplication\">\n            <connections>\n                <outlet property=\"delegate\" destination=\"Voe-Tx-rLC\" id=\"GzC-gU-4Uq\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"-1\" userLabel=\"First Responder\" customClass=\"FirstResponder\"/>\n        <customObject id=\"-3\" userLabel=\"Application\" customClass=\"NSObject\"/>\n        <customObject id=\"Voe-Tx-rLC\" customClass=\"AppDelegate\" customModule=\"Runner\" customModuleProvider=\"target\">\n            <connections>\n                <outlet property=\"applicationMenu\" destination=\"uQy-DD-JDr\" id=\"XBo-yE-nKs\"/>\n                <outlet property=\"mainFlutterWindow\" destination=\"QvC-M9-y7g\" id=\"gIp-Ho-8D9\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"YLy-65-1bz\" customClass=\"NSFontManager\"/>\n        <menu title=\"Main Menu\" systemMenu=\"main\" id=\"AYu-sK-qS6\">\n            <items>\n                <menuItem title=\"APP_NAME\" id=\"1Xt-HY-uBw\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"APP_NAME\" systemMenu=\"apple\" id=\"uQy-DD-JDr\">\n                        <items>\n                            <menuItem title=\"About APP_NAME\" id=\"5kV-Vb-QxS\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"orderFrontStandardAboutPanel:\" target=\"-1\" id=\"Exp-CZ-Vem\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"VOq-y0-SEH\"/>\n                            <menuItem title=\"Preferences…\" keyEquivalent=\",\" id=\"BOF-NM-1cW\"/>\n                            <menuItem isSeparatorItem=\"YES\" id=\"wFC-TO-SCJ\"/>\n                            <menuItem title=\"Services\" id=\"NMo-om-nkz\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Services\" systemMenu=\"services\" id=\"hz9-B4-Xy5\"/>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"4je-JR-u6R\"/>\n                            <menuItem title=\"Hide APP_NAME\" keyEquivalent=\"h\" id=\"Olw-nP-bQN\">\n                                <connections>\n                                    <action selector=\"hide:\" target=\"-1\" id=\"PnN-Uc-m68\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Hide Others\" keyEquivalent=\"h\" id=\"Vdr-fp-XzO\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"hideOtherApplications:\" target=\"-1\" id=\"VT4-aY-XCT\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Show All\" id=\"Kd2-mp-pUS\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"unhideAllApplications:\" target=\"-1\" id=\"Dhg-Le-xox\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"kCx-OE-vgT\"/>\n                            <menuItem title=\"Quit APP_NAME\" keyEquivalent=\"q\" id=\"4sb-4s-VLi\">\n                                <connections>\n                                    <action selector=\"terminate:\" target=\"-1\" id=\"Te7-pn-YzF\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Edit\" id=\"5QF-Oa-p0T\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Edit\" id=\"W48-6f-4Dl\">\n                        <items>\n                            <menuItem title=\"Undo\" keyEquivalent=\"z\" id=\"dRJ-4n-Yzg\">\n                                <connections>\n                                    <action selector=\"undo:\" target=\"-1\" id=\"M6e-cu-g7V\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Redo\" keyEquivalent=\"Z\" id=\"6dh-zS-Vam\">\n                                <connections>\n                                    <action selector=\"redo:\" target=\"-1\" id=\"oIA-Rs-6OD\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"WRV-NI-Exz\"/>\n                            <menuItem title=\"Cut\" keyEquivalent=\"x\" id=\"uRl-iY-unG\">\n                                <connections>\n                                    <action selector=\"cut:\" target=\"-1\" id=\"YJe-68-I9s\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Copy\" keyEquivalent=\"c\" id=\"x3v-GG-iWU\">\n                                <connections>\n                                    <action selector=\"copy:\" target=\"-1\" id=\"G1f-GL-Joy\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Paste\" keyEquivalent=\"v\" id=\"gVA-U4-sdL\">\n                                <connections>\n                                    <action selector=\"paste:\" target=\"-1\" id=\"UvS-8e-Qdg\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Paste and Match Style\" keyEquivalent=\"V\" id=\"WeT-3V-zwk\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"pasteAsPlainText:\" target=\"-1\" id=\"cEh-KX-wJQ\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Delete\" id=\"pa3-QI-u2k\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"delete:\" target=\"-1\" id=\"0Mk-Ml-PaM\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Select All\" keyEquivalent=\"a\" id=\"Ruw-6m-B2m\">\n                                <connections>\n                                    <action selector=\"selectAll:\" target=\"-1\" id=\"VNm-Mi-diN\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"uyl-h8-XO2\"/>\n                            <menuItem title=\"Find\" id=\"4EN-yA-p0u\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Find\" id=\"1b7-l0-nxx\">\n                                    <items>\n                                        <menuItem title=\"Find…\" tag=\"1\" keyEquivalent=\"f\" id=\"Xz5-n4-O0W\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"cD7-Qs-BN4\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Find and Replace…\" tag=\"12\" keyEquivalent=\"f\" id=\"YEy-JH-Tfz\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"WD3-Gg-5AJ\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Find Next\" tag=\"2\" keyEquivalent=\"g\" id=\"q09-fT-Sye\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"NDo-RZ-v9R\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Find Previous\" tag=\"3\" keyEquivalent=\"G\" id=\"OwM-mh-QMV\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"HOh-sY-3ay\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Use Selection for Find\" tag=\"7\" keyEquivalent=\"e\" id=\"buJ-ug-pKt\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"U76-nv-p5D\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Jump to Selection\" keyEquivalent=\"j\" id=\"S0p-oC-mLd\">\n                                            <connections>\n                                                <action selector=\"centerSelectionInVisibleArea:\" target=\"-1\" id=\"IOG-6D-g5B\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Spelling and Grammar\" id=\"Dv1-io-Yv7\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Spelling\" id=\"3IN-sU-3Bg\">\n                                    <items>\n                                        <menuItem title=\"Show Spelling and Grammar\" keyEquivalent=\":\" id=\"HFo-cy-zxI\">\n                                            <connections>\n                                                <action selector=\"showGuessPanel:\" target=\"-1\" id=\"vFj-Ks-hy3\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Check Document Now\" keyEquivalent=\";\" id=\"hz2-CU-CR7\">\n                                            <connections>\n                                                <action selector=\"checkSpelling:\" target=\"-1\" id=\"fz7-VC-reM\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"bNw-od-mp5\"/>\n                                        <menuItem title=\"Check Spelling While Typing\" id=\"rbD-Rh-wIN\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleContinuousSpellChecking:\" target=\"-1\" id=\"7w6-Qz-0kB\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Check Grammar With Spelling\" id=\"mK6-2p-4JG\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleGrammarChecking:\" target=\"-1\" id=\"muD-Qn-j4w\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Correct Spelling Automatically\" id=\"78Y-hA-62v\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticSpellingCorrection:\" target=\"-1\" id=\"2lM-Qi-WAP\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Substitutions\" id=\"9ic-FL-obx\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Substitutions\" id=\"FeM-D8-WVr\">\n                                    <items>\n                                        <menuItem title=\"Show Substitutions\" id=\"z6F-FW-3nz\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"orderFrontSubstitutionsPanel:\" target=\"-1\" id=\"oku-mr-iSq\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"gPx-C9-uUO\"/>\n                                        <menuItem title=\"Smart Copy/Paste\" id=\"9yt-4B-nSM\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleSmartInsertDelete:\" target=\"-1\" id=\"3IJ-Se-DZD\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Quotes\" id=\"hQb-2v-fYv\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticQuoteSubstitution:\" target=\"-1\" id=\"ptq-xd-QOA\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Dashes\" id=\"rgM-f4-ycn\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticDashSubstitution:\" target=\"-1\" id=\"oCt-pO-9gS\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Links\" id=\"cwL-P1-jid\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticLinkDetection:\" target=\"-1\" id=\"Gip-E3-Fov\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Data Detectors\" id=\"tRr-pd-1PS\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticDataDetection:\" target=\"-1\" id=\"R1I-Nq-Kbl\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Text Replacement\" id=\"HFQ-gK-NFA\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticTextReplacement:\" target=\"-1\" id=\"DvP-Fe-Py6\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Transformations\" id=\"2oI-Rn-ZJC\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Transformations\" id=\"c8a-y6-VQd\">\n                                    <items>\n                                        <menuItem title=\"Make Upper Case\" id=\"vmV-6d-7jI\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"uppercaseWord:\" target=\"-1\" id=\"sPh-Tk-edu\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Make Lower Case\" id=\"d9M-CD-aMd\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"lowercaseWord:\" target=\"-1\" id=\"iUZ-b5-hil\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Capitalize\" id=\"UEZ-Bs-lqG\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"capitalizeWord:\" target=\"-1\" id=\"26H-TL-nsh\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Speech\" id=\"xrE-MZ-jX0\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Speech\" id=\"3rS-ZA-NoH\">\n                                    <items>\n                                        <menuItem title=\"Start Speaking\" id=\"Ynk-f8-cLZ\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"startSpeaking:\" target=\"-1\" id=\"654-Ng-kyl\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Stop Speaking\" id=\"Oyz-dy-DGm\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"stopSpeaking:\" target=\"-1\" id=\"dX8-6p-jy9\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"View\" id=\"H8h-7b-M4v\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"View\" id=\"HyV-fh-RgO\">\n                        <items>\n                            <menuItem title=\"Enter Full Screen\" keyEquivalent=\"f\" id=\"4J7-dP-txa\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"toggleFullScreen:\" target=\"-1\" id=\"dU3-MA-1Rq\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Window\" id=\"aUF-d1-5bR\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Window\" systemMenu=\"window\" id=\"Td7-aD-5lo\">\n                        <items>\n                            <menuItem title=\"Minimize\" keyEquivalent=\"m\" id=\"OY7-WF-poV\">\n                                <connections>\n                                    <action selector=\"performMiniaturize:\" target=\"-1\" id=\"VwT-WD-YPe\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Zoom\" id=\"R4o-n2-Eq4\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"performZoom:\" target=\"-1\" id=\"DIl-cC-cCs\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"eu3-7i-yIM\"/>\n                            <menuItem title=\"Bring All to Front\" id=\"LE2-aR-0XJ\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"arrangeInFront:\" target=\"-1\" id=\"DRN-fu-gQh\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Help\" id=\"EPT-qC-fAb\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Help\" systemMenu=\"help\" id=\"rJ0-wn-3NY\"/>\n                </menuItem>\n            </items>\n            <point key=\"canvasLocation\" x=\"142\" y=\"-258\"/>\n        </menu>\n        <window title=\"APP_NAME\" allowsToolTipsWhenApplicationIsInactive=\"NO\" autorecalculatesKeyViewLoop=\"NO\" releasedWhenClosed=\"NO\" animationBehavior=\"default\" id=\"QvC-M9-y7g\" customClass=\"MainFlutterWindow\" customModule=\"Runner\" customModuleProvider=\"target\">\n            <windowStyleMask key=\"styleMask\" titled=\"YES\" closable=\"YES\" miniaturizable=\"YES\" resizable=\"YES\"/>\n            <rect key=\"contentRect\" x=\"335\" y=\"390\" width=\"800\" height=\"600\"/>\n            <rect key=\"screenRect\" x=\"0.0\" y=\"0.0\" width=\"2560\" height=\"1577\"/>\n            <view key=\"contentView\" wantsLayer=\"YES\" id=\"EiT-Mj-1SZ\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"800\" height=\"600\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n            </view>\n        </window>\n    </objects>\n</document>\n"
  },
  {
    "path": "example/macos/Runner/Configs/AppInfo.xcconfig",
    "content": "// Application-level settings for the Runner target.\n//\n// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the\n// future. If not, the values below would default to using the project name when this becomes a\n// 'flutter create' template.\n\n// The application's name. By default this is also the title of the Flutter window.\nPRODUCT_NAME = example\n\n// The application's bundle identifier\nPRODUCT_BUNDLE_IDENTIFIER = com.example.example\n\n// The copyright displayed in application information\nPRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved.\n"
  },
  {
    "path": "example/macos/Runner/Configs/Debug.xcconfig",
    "content": "#include \"../../Flutter/Flutter-Debug.xcconfig\"\n#include \"Warnings.xcconfig\"\n"
  },
  {
    "path": "example/macos/Runner/Configs/Release.xcconfig",
    "content": "#include \"../../Flutter/Flutter-Release.xcconfig\"\n#include \"Warnings.xcconfig\"\n"
  },
  {
    "path": "example/macos/Runner/Configs/Warnings.xcconfig",
    "content": "WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings\nGCC_WARN_UNDECLARED_SELECTOR = YES\nCLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES\nCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE\nCLANG_WARN__DUPLICATE_METHOD_MATCH = YES\nCLANG_WARN_PRAGMA_PACK = YES\nCLANG_WARN_STRICT_PROTOTYPES = YES\nCLANG_WARN_COMMA = YES\nGCC_WARN_STRICT_SELECTOR_MATCH = YES\nCLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES\nCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES\nGCC_WARN_SHADOW = YES\nCLANG_WARN_UNREACHABLE_CODE = YES\n"
  },
  {
    "path": "example/macos/Runner/DebugProfile.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.app-sandbox</key>\n\t<true/>\n\t<key>com.apple.security.cs.allow-jit</key>\n\t<true/>\n\t<key>com.apple.security.network.server</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/macos/Runner/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIconFile</key>\n\t<string></string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(FLUTTER_BUILD_NAME)</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(FLUTTER_BUILD_NUMBER)</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>$(PRODUCT_COPYRIGHT)</string>\n\t<key>NSMainNibFile</key>\n\t<string>MainMenu</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/macos/Runner/MainFlutterWindow.swift",
    "content": "import Cocoa\nimport FlutterMacOS\n\nclass MainFlutterWindow: NSWindow {\n  override func awakeFromNib() {\n    let flutterViewController = FlutterViewController()\n    let windowFrame = self.frame\n    self.contentViewController = flutterViewController\n    self.setFrame(windowFrame, display: true)\n\n    RegisterGeneratedPlugins(registry: flutterViewController)\n\n    super.awakeFromNib()\n  }\n}\n"
  },
  {
    "path": "example/macos/Runner/Release.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.app-sandbox</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/macos/Runner.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXAggregateTarget section */\n\t\t33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {\n\t\t\tisa = PBXAggregateTarget;\n\t\t\tbuildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget \"Flutter Assemble\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t33CC111E2044C6BF0003C045 /* ShellScript */,\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"Flutter Assemble\";\n\t\t\tproductName = FLX;\n\t\t};\n/* End PBXAggregateTarget section */\n\n/* Begin PBXBuildFile section */\n\t\t331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };\n\t\t335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };\n\t\t33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };\n\t\t33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };\n\t\t33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };\n\t\t33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 33CC10E52044A3C60003C045 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 33CC10EC2044A3C60003C045;\n\t\t\tremoteInfo = Runner;\n\t\t};\n\t\t33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 33CC10E52044A3C60003C045 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 33CC111A2044C6BA0003C045;\n\t\t\tremoteInfo = FLX;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t33CC110E2044A8840003C045 /* Bundle Framework */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tname = \"Bundle Framework\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = \"<group>\"; };\n\t\t333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = \"<group>\"; };\n\t\t335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = \"<group>\"; };\n\t\t33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = \"example.app\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = \"<group>\"; };\n\t\t33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = \"<group>\"; };\n\t\t33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = \"<group>\"; };\n\t\t33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = \"Flutter-Debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = \"Flutter-Release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = \"Flutter-Generated.xcconfig\"; path = \"ephemeral/Flutter-Generated.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = \"<group>\"; };\n\t\t33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = \"<group>\"; };\n\t\t33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = \"<group>\"; };\n\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = \"<group>\"; };\n\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t331C80D2294CF70F00263BE5 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t33CC10EA2044A3C60003C045 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t331C80D6294CF71000263BE5 /* RunnerTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t331C80D7294CF71000263BE5 /* RunnerTests.swift */,\n\t\t\t);\n\t\t\tpath = RunnerTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33BA886A226E78AF003329D5 /* Configs */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33E5194F232828860026EE4D /* AppInfo.xcconfig */,\n\t\t\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */,\n\t\t\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */,\n\t\t\t\t333000ED22D3DE5D00554162 /* Warnings.xcconfig */,\n\t\t\t);\n\t\t\tpath = Configs;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33CC10E42044A3C60003C045 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33FAB671232836740065AC1E /* Runner */,\n\t\t\t\t33CEB47122A05771004F2AC0 /* Flutter */,\n\t\t\t\t331C80D6294CF71000263BE5 /* RunnerTests */,\n\t\t\t\t33CC10EE2044A3C60003C045 /* Products */,\n\t\t\t\tD73912EC22F37F3D000D13A0 /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33CC10EE2044A3C60003C045 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33CC10ED2044A3C60003C045 /* example.app */,\n\t\t\t\t331C80D5294CF71000263BE5 /* RunnerTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33CC11242044D66E0003C045 /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33CC10F22044A3C60003C045 /* Assets.xcassets */,\n\t\t\t\t33CC10F42044A3C60003C045 /* MainMenu.xib */,\n\t\t\t\t33CC10F72044A3C60003C045 /* Info.plist */,\n\t\t\t);\n\t\t\tname = Resources;\n\t\t\tpath = ..;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33CEB47122A05771004F2AC0 /* Flutter */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,\n\t\t\t\t33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,\n\t\t\t\t33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,\n\t\t\t\t33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,\n\t\t\t);\n\t\t\tpath = Flutter;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33FAB671232836740065AC1E /* Runner */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33CC10F02044A3C60003C045 /* AppDelegate.swift */,\n\t\t\t\t33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,\n\t\t\t\t33E51913231747F40026EE4D /* DebugProfile.entitlements */,\n\t\t\t\t33E51914231749380026EE4D /* Release.entitlements */,\n\t\t\t\t33CC11242044D66E0003C045 /* Resources */,\n\t\t\t\t33BA886A226E78AF003329D5 /* Configs */,\n\t\t\t);\n\t\t\tpath = Runner;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD73912EC22F37F3D000D13A0 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t331C80D4294CF70F00263BE5 /* RunnerTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget \"RunnerTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t331C80D1294CF70F00263BE5 /* Sources */,\n\t\t\t\t331C80D2294CF70F00263BE5 /* Frameworks */,\n\t\t\t\t331C80D3294CF70F00263BE5 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t331C80DA294CF71000263BE5 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = RunnerTests;\n\t\t\tproductName = RunnerTests;\n\t\t\tproductReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\t33CC10EC2044A3C60003C045 /* Runner */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget \"Runner\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t33CC10E92044A3C60003C045 /* Sources */,\n\t\t\t\t33CC10EA2044A3C60003C045 /* Frameworks */,\n\t\t\t\t33CC10EB2044A3C60003C045 /* Resources */,\n\t\t\t\t33CC110E2044A8840003C045 /* Bundle Framework */,\n\t\t\t\t3399D490228B24CF009A79C7 /* ShellScript */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t33CC11202044C79F0003C045 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = Runner;\n\t\t\tproductName = Runner;\n\t\t\tproductReference = 33CC10ED2044A3C60003C045 /* example.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t33CC10E52044A3C60003C045 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tBuildIndependentTargetsInParallel = YES;\n\t\t\t\tLastSwiftUpdateCheck = 0920;\n\t\t\t\tLastUpgradeCheck = 1510;\n\t\t\t\tORGANIZATIONNAME = \"\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t331C80D4294CF70F00263BE5 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 14.0;\n\t\t\t\t\t\tTestTargetID = 33CC10EC2044A3C60003C045;\n\t\t\t\t\t};\n\t\t\t\t\t33CC10EC2044A3C60003C045 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.2;\n\t\t\t\t\t\tLastSwiftMigration = 1100;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t\tSystemCapabilities = {\n\t\t\t\t\t\t\tcom.apple.Sandbox = {\n\t\t\t\t\t\t\t\tenabled = 1;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t\t33CC111A2044C6BA0003C045 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.2;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject \"Runner\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 33CC10E42044A3C60003C045;\n\t\t\tproductRefGroup = 33CC10EE2044A3C60003C045 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t33CC10EC2044A3C60003C045 /* Runner */,\n\t\t\t\t331C80D4294CF70F00263BE5 /* RunnerTests */,\n\t\t\t\t33CC111A2044C6BA0003C045 /* Flutter Assemble */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t331C80D3294CF70F00263BE5 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t33CC10EB2044A3C60003C045 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,\n\t\t\t\t33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t3399D490228B24CF009A79C7 /* ShellScript */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"echo \\\"$PRODUCT_NAME.app\\\" > \\\"$PROJECT_DIR\\\"/Flutter/ephemeral/.app_filename && \\\"$FLUTTER_ROOT\\\"/packages/flutter_tools/bin/macos_assemble.sh embed\\n\";\n\t\t};\n\t\t33CC111E2044C6BF0003C045 /* ShellScript */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t\tFlutter/ephemeral/FlutterInputs.xcfilelist,\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\tFlutter/ephemeral/tripwire,\n\t\t\t);\n\t\t\toutputFileListPaths = (\n\t\t\t\tFlutter/ephemeral/FlutterOutputs.xcfilelist,\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"$FLUTTER_ROOT\\\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t331C80D1294CF70F00263BE5 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t33CC10E92044A3C60003C045 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,\n\t\t\t\t33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,\n\t\t\t\t335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 33CC10EC2044A3C60003C045 /* Runner */;\n\t\t\ttargetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;\n\t\t};\n\t\t33CC11202044C79F0003C045 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;\n\t\t\ttargetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t33CC10F42044A3C60003C045 /* MainMenu.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t33CC10F52044A3C60003C045 /* Base */,\n\t\t\t);\n\t\t\tname = MainMenu.xib;\n\t\t\tpath = Runner;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t331C80DB294CF71000263BE5 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t331C80DC294CF71000263BE5 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t331C80DD294CF71000263BE5 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t338D0CE9231458BD00FA5F75 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.14;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t338D0CEA231458BD00FA5F75 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t338D0CEB231458BD00FA5F75 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_STYLE = Manual;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t33CC10F92044A3C60003C045 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.14;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t33CC10FA2044A3C60003C045 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.14;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t33CC10FC2044A3C60003C045 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t33CC10FD2044A3C60003C045 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t33CC111C2044C6BA0003C045 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_STYLE = Manual;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t33CC111D2044C6BA0003C045 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget \"RunnerTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t331C80DB294CF71000263BE5 /* Debug */,\n\t\t\t\t331C80DC294CF71000263BE5 /* Release */,\n\t\t\t\t331C80DD294CF71000263BE5 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t33CC10E82044A3C60003C045 /* Build configuration list for PBXProject \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t33CC10F92044A3C60003C045 /* Debug */,\n\t\t\t\t33CC10FA2044A3C60003C045 /* Release */,\n\t\t\t\t338D0CE9231458BD00FA5F75 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t33CC10FC2044A3C60003C045 /* Debug */,\n\t\t\t\t33CC10FD2044A3C60003C045 /* Release */,\n\t\t\t\t338D0CEA231458BD00FA5F75 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget \"Flutter Assemble\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t33CC111C2044C6BA0003C045 /* Debug */,\n\t\t\t\t33CC111D2044C6BA0003C045 /* Release */,\n\t\t\t\t338D0CEB231458BD00FA5F75 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 33CC10E52044A3C60003C045 /* Project object */;\n}\n"
  },
  {
    "path": "example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1510\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"33CC10EC2044A3C60003C045\"\n               BuildableName = \"example.app\"\n               BlueprintName = \"Runner\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"33CC10EC2044A3C60003C045\"\n            BuildableName = \"example.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\"\n            parallelizable = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"331C80D4294CF70F00263BE5\"\n               BuildableName = \"RunnerTests.xctest\"\n               BlueprintName = \"RunnerTests\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"33CC10EC2044A3C60003C045\"\n            BuildableName = \"example.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Profile\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"33CC10EC2044A3C60003C045\"\n            BuildableName = \"example.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "example/macos/Runner.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/macos/RunnerTests/RunnerTests.swift",
    "content": "import Cocoa\nimport FlutterMacOS\nimport XCTest\n\nclass RunnerTests: XCTestCase {\n\n  func testExample() {\n    // If you add code to the Runner application, consider adding tests here.\n    // See https://developer.apple.com/documentation/xctest for more information about using XCTest.\n  }\n\n}\n"
  },
  {
    "path": "example/pubspec.yaml",
    "content": "name: example\ndescription: \"A new Flutter project.\"\n# The following line prevents the package from being accidentally published to\n# pub.dev using `flutter pub publish`. This is preferred for private packages.\npublish_to: 'none' # Remove this line if you wish to publish to pub.dev\n\n# The following defines the version and build number for your application.\n# A version number is three numbers separated by dots, like 1.2.43\n# followed by an optional build number separated by a +.\n# Both the version and the builder number may be overridden in flutter\n# build by specifying --build-name and --build-number, respectively.\n# In Android, build-name is used as versionName while build-number used as versionCode.\n# Read more about Android versioning at https://developer.android.com/studio/publish/versioning\n# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.\n# Read more about iOS versioning at\n# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html\n# In Windows, build-name is used as the major, minor, and patch parts\n# of the product and file versions while build-number is used as the build suffix.\nversion: 1.0.0+1\n\nenvironment:\n  sdk: ^3.5.3\n\n# Dependencies specify other packages that your package needs in order to work.\n# To automatically upgrade your package dependencies to the latest versions\n# consider running `flutter pub upgrade --major-versions`. Alternatively,\n# dependencies can be manually updated by changing the version numbers below to\n# the latest version available on pub.dev. To see which dependencies have newer\n# versions available, run `flutter pub outdated`.\ndependencies:\n  flutter:\n    sdk: flutter\n\n\n  # The following adds the Cupertino Icons font to your application.\n  # Use with the CupertinoIcons class for iOS style icons.\n  cupertino_icons: ^1.0.8\n  flutter_gemini:\n    path: ../\n\ndev_dependencies:\n  flutter_test:\n    sdk: flutter\n\n  # The \"flutter_lints\" package below contains a set of recommended lints to\n  # encourage good coding practices. The lint set provided by the package is\n  # activated in the `analysis_options.yaml` file located at the root of your\n  # package. See that file for information about deactivating specific lint\n  # rules and activating additional ones.\n  flutter_lints: ^4.0.0\n\n# For information on the generic Dart part of this file, see the\n# following page: https://dart.dev/tools/pub/pubspec\n\n# The following section is specific to Flutter packages.\nflutter:\n\n  # The following line ensures that the Material Icons font is\n  # included with your application, so that you can use the icons in\n  # the material Icons class.\n  uses-material-design: true\n\n  # To add assets to your application, add an assets section, like this:\n  # assets:\n  #   - images/a_dot_burr.jpeg\n  #   - images/a_dot_ham.jpeg\n\n  # An image asset can refer to one or more resolution-specific \"variants\", see\n  # https://flutter.dev/to/resolution-aware-images\n\n  # For details regarding adding assets from package dependencies, see\n  # https://flutter.dev/to/asset-from-package\n\n  # To add custom fonts to your application, add a fonts section here,\n  # in this \"flutter\" section. Each entry in this list should have a\n  # \"family\" key with the font family name, and a \"fonts\" key with a\n  # list giving the asset and other descriptors for the font. For\n  # example:\n  # fonts:\n  #   - family: Schyler\n  #     fonts:\n  #       - asset: fonts/Schyler-Regular.ttf\n  #       - asset: fonts/Schyler-Italic.ttf\n  #         style: italic\n  #   - family: Trajan Pro\n  #     fonts:\n  #       - asset: fonts/TrajanPro.ttf\n  #       - asset: fonts/TrajanPro_Bold.ttf\n  #         weight: 700\n  #\n  # For details regarding fonts from package dependencies,\n  # see https://flutter.dev/to/font-from-package\n"
  },
  {
    "path": "example/test/widget_test.dart",
    "content": "// This is a basic Flutter widget test.\n//\n// To perform an interaction with a widget in your test, use the WidgetTester\n// utility in the flutter_test package. For example, you can send tap and scroll\n// gestures. You can also use WidgetTester to find child widgets in the widget\n// tree, read text, and verify that the values of widget properties are correct.\n\nimport 'package:flutter_test/flutter_test.dart';\n\nvoid main() {\n  testWidgets('Counter increments smoke test', (WidgetTester tester) async {});\n}\n"
  },
  {
    "path": "example/web/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <!--\n    If you are serving your web app in a path other than the root, change the\n    href value below to reflect the base path you are serving from.\n\n    The path provided below has to start and end with a slash \"/\" in order for\n    it to work correctly.\n\n    For more details:\n    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base\n\n    This is a placeholder for base href that will be replaced by the value of\n    the `--base-href` argument provided to `flutter build`.\n  -->\n  <base href=\"$FLUTTER_BASE_HREF\">\n\n  <meta charset=\"UTF-8\">\n  <meta content=\"IE=Edge\" http-equiv=\"X-UA-Compatible\">\n  <meta name=\"description\" content=\"A new Flutter project.\">\n\n  <!-- iOS meta tags & icons -->\n  <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n  <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n  <meta name=\"apple-mobile-web-app-title\" content=\"example\">\n  <link rel=\"apple-touch-icon\" href=\"icons/Icon-192.png\">\n\n  <!-- Favicon -->\n  <link rel=\"icon\" type=\"image/png\" href=\"favicon.png\"/>\n\n  <title>example</title>\n  <link rel=\"manifest\" href=\"manifest.json\">\n</head>\n<body>\n  <script src=\"flutter_bootstrap.js\" async></script>\n</body>\n</html>\n"
  },
  {
    "path": "example/web/manifest.json",
    "content": "{\n    \"name\": \"example\",\n    \"short_name\": \"example\",\n    \"start_url\": \".\",\n    \"display\": \"standalone\",\n    \"background_color\": \"#0175C2\",\n    \"theme_color\": \"#0175C2\",\n    \"description\": \"A new Flutter project.\",\n    \"orientation\": \"portrait-primary\",\n    \"prefer_related_applications\": false,\n    \"icons\": [\n        {\n            \"src\": \"icons/Icon-192.png\",\n            \"sizes\": \"192x192\",\n            \"type\": \"image/png\"\n        },\n        {\n            \"src\": \"icons/Icon-512.png\",\n            \"sizes\": \"512x512\",\n            \"type\": \"image/png\"\n        },\n        {\n            \"src\": \"icons/Icon-maskable-192.png\",\n            \"sizes\": \"192x192\",\n            \"type\": \"image/png\",\n            \"purpose\": \"maskable\"\n        },\n        {\n            \"src\": \"icons/Icon-maskable-512.png\",\n            \"sizes\": \"512x512\",\n            \"type\": \"image/png\",\n            \"purpose\": \"maskable\"\n        }\n    ]\n}\n"
  },
  {
    "path": "example/windows/.gitignore",
    "content": "flutter/ephemeral/\n\n# Visual Studio user-specific files.\n*.suo\n*.user\n*.userosscache\n*.sln.docstates\n\n# Visual Studio build-related files.\nx64/\nx86/\n\n# Visual Studio cache files\n# files ending in .cache can be ignored\n*.[Cc]ache\n# but keep track of directories ending in .cache\n!*.[Cc]ache/\n"
  },
  {
    "path": "example/windows/CMakeLists.txt",
    "content": "# Project-level configuration.\ncmake_minimum_required(VERSION 3.14)\nproject(example LANGUAGES CXX)\n\n# The name of the executable created for the application. Change this to change\n# the on-disk name of your application.\nset(BINARY_NAME \"example\")\n\n# Explicitly opt in to modern CMake behaviors to avoid warnings with recent\n# versions of CMake.\ncmake_policy(VERSION 3.14...3.25)\n\n# Define build configuration option.\nget_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)\nif(IS_MULTICONFIG)\n  set(CMAKE_CONFIGURATION_TYPES \"Debug;Profile;Release\"\n    CACHE STRING \"\" FORCE)\nelse()\n  if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)\n    set(CMAKE_BUILD_TYPE \"Debug\" CACHE\n      STRING \"Flutter build mode\" FORCE)\n    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS\n      \"Debug\" \"Profile\" \"Release\")\n  endif()\nendif()\n# Define settings for the Profile build mode.\nset(CMAKE_EXE_LINKER_FLAGS_PROFILE \"${CMAKE_EXE_LINKER_FLAGS_RELEASE}\")\nset(CMAKE_SHARED_LINKER_FLAGS_PROFILE \"${CMAKE_SHARED_LINKER_FLAGS_RELEASE}\")\nset(CMAKE_C_FLAGS_PROFILE \"${CMAKE_C_FLAGS_RELEASE}\")\nset(CMAKE_CXX_FLAGS_PROFILE \"${CMAKE_CXX_FLAGS_RELEASE}\")\n\n# Use Unicode for all projects.\nadd_definitions(-DUNICODE -D_UNICODE)\n\n# Compilation settings that should be applied to most targets.\n#\n# Be cautious about adding new options here, as plugins use this function by\n# default. In most cases, you should add new options to specific targets instead\n# of modifying this function.\nfunction(APPLY_STANDARD_SETTINGS TARGET)\n  target_compile_features(${TARGET} PUBLIC cxx_std_17)\n  target_compile_options(${TARGET} PRIVATE /W4 /WX /wd\"4100\")\n  target_compile_options(${TARGET} PRIVATE /EHsc)\n  target_compile_definitions(${TARGET} PRIVATE \"_HAS_EXCEPTIONS=0\")\n  target_compile_definitions(${TARGET} PRIVATE \"$<$<CONFIG:Debug>:_DEBUG>\")\nendfunction()\n\n# Flutter library and tool build rules.\nset(FLUTTER_MANAGED_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/flutter\")\nadd_subdirectory(${FLUTTER_MANAGED_DIR})\n\n# Application build; see runner/CMakeLists.txt.\nadd_subdirectory(\"runner\")\n\n\n# Generated plugin build rules, which manage building the plugins and adding\n# them to the application.\ninclude(flutter/generated_plugins.cmake)\n\n\n# === Installation ===\n# Support files are copied into place next to the executable, so that it can\n# run in place. This is done instead of making a separate bundle (as on Linux)\n# so that building and running from within Visual Studio will work.\nset(BUILD_BUNDLE_DIR \"$<TARGET_FILE_DIR:${BINARY_NAME}>\")\n# Make the \"install\" step default, as it's required to run.\nset(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)\nif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)\n  set(CMAKE_INSTALL_PREFIX \"${BUILD_BUNDLE_DIR}\" CACHE PATH \"...\" FORCE)\nendif()\n\nset(INSTALL_BUNDLE_DATA_DIR \"${CMAKE_INSTALL_PREFIX}/data\")\nset(INSTALL_BUNDLE_LIB_DIR \"${CMAKE_INSTALL_PREFIX}\")\n\ninstall(TARGETS ${BINARY_NAME} RUNTIME DESTINATION \"${CMAKE_INSTALL_PREFIX}\"\n  COMPONENT Runtime)\n\ninstall(FILES \"${FLUTTER_ICU_DATA_FILE}\" DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\"\n  COMPONENT Runtime)\n\ninstall(FILES \"${FLUTTER_LIBRARY}\" DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n  COMPONENT Runtime)\n\nif(PLUGIN_BUNDLED_LIBRARIES)\n  install(FILES \"${PLUGIN_BUNDLED_LIBRARIES}\"\n    DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n    COMPONENT Runtime)\nendif()\n\n# Copy the native assets provided by the build.dart from all packages.\nset(NATIVE_ASSETS_DIR \"${PROJECT_BUILD_DIR}native_assets/windows/\")\ninstall(DIRECTORY \"${NATIVE_ASSETS_DIR}\"\n   DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n   COMPONENT Runtime)\n\n# Fully re-copy the assets directory on each build to avoid having stale files\n# from a previous install.\nset(FLUTTER_ASSET_DIR_NAME \"flutter_assets\")\ninstall(CODE \"\n  file(REMOVE_RECURSE \\\"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\\\")\n  \" COMPONENT Runtime)\ninstall(DIRECTORY \"${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}\"\n  DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\" COMPONENT Runtime)\n\n# Install the AOT library on non-Debug builds only.\ninstall(FILES \"${AOT_LIBRARY}\" DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\"\n  CONFIGURATIONS Profile;Release\n  COMPONENT Runtime)\n"
  },
  {
    "path": "example/windows/flutter/CMakeLists.txt",
    "content": "# This file controls Flutter-level build steps. It should not be edited.\ncmake_minimum_required(VERSION 3.14)\n\nset(EPHEMERAL_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/ephemeral\")\n\n# Configuration provided via flutter tool.\ninclude(${EPHEMERAL_DIR}/generated_config.cmake)\n\n# TODO: Move the rest of this into files in ephemeral. See\n# https://github.com/flutter/flutter/issues/57146.\nset(WRAPPER_ROOT \"${EPHEMERAL_DIR}/cpp_client_wrapper\")\n\n# Set fallback configurations for older versions of the flutter tool.\nif (NOT DEFINED FLUTTER_TARGET_PLATFORM)\n  set(FLUTTER_TARGET_PLATFORM \"windows-x64\")\nendif()\n\n# === Flutter Library ===\nset(FLUTTER_LIBRARY \"${EPHEMERAL_DIR}/flutter_windows.dll\")\n\n# Published to parent scope for install step.\nset(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)\nset(FLUTTER_ICU_DATA_FILE \"${EPHEMERAL_DIR}/icudtl.dat\" PARENT_SCOPE)\nset(PROJECT_BUILD_DIR \"${PROJECT_DIR}/build/\" PARENT_SCOPE)\nset(AOT_LIBRARY \"${PROJECT_DIR}/build/windows/app.so\" PARENT_SCOPE)\n\nlist(APPEND FLUTTER_LIBRARY_HEADERS\n  \"flutter_export.h\"\n  \"flutter_windows.h\"\n  \"flutter_messenger.h\"\n  \"flutter_plugin_registrar.h\"\n  \"flutter_texture_registrar.h\"\n)\nlist(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND \"${EPHEMERAL_DIR}/\")\nadd_library(flutter INTERFACE)\ntarget_include_directories(flutter INTERFACE\n  \"${EPHEMERAL_DIR}\"\n)\ntarget_link_libraries(flutter INTERFACE \"${FLUTTER_LIBRARY}.lib\")\nadd_dependencies(flutter flutter_assemble)\n\n# === Wrapper ===\nlist(APPEND CPP_WRAPPER_SOURCES_CORE\n  \"core_implementations.cc\"\n  \"standard_codec.cc\"\n)\nlist(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND \"${WRAPPER_ROOT}/\")\nlist(APPEND CPP_WRAPPER_SOURCES_PLUGIN\n  \"plugin_registrar.cc\"\n)\nlist(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND \"${WRAPPER_ROOT}/\")\nlist(APPEND CPP_WRAPPER_SOURCES_APP\n  \"flutter_engine.cc\"\n  \"flutter_view_controller.cc\"\n)\nlist(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND \"${WRAPPER_ROOT}/\")\n\n# Wrapper sources needed for a plugin.\nadd_library(flutter_wrapper_plugin STATIC\n  ${CPP_WRAPPER_SOURCES_CORE}\n  ${CPP_WRAPPER_SOURCES_PLUGIN}\n)\napply_standard_settings(flutter_wrapper_plugin)\nset_target_properties(flutter_wrapper_plugin PROPERTIES\n  POSITION_INDEPENDENT_CODE ON)\nset_target_properties(flutter_wrapper_plugin PROPERTIES\n  CXX_VISIBILITY_PRESET hidden)\ntarget_link_libraries(flutter_wrapper_plugin PUBLIC flutter)\ntarget_include_directories(flutter_wrapper_plugin PUBLIC\n  \"${WRAPPER_ROOT}/include\"\n)\nadd_dependencies(flutter_wrapper_plugin flutter_assemble)\n\n# Wrapper sources needed for the runner.\nadd_library(flutter_wrapper_app STATIC\n  ${CPP_WRAPPER_SOURCES_CORE}\n  ${CPP_WRAPPER_SOURCES_APP}\n)\napply_standard_settings(flutter_wrapper_app)\ntarget_link_libraries(flutter_wrapper_app PUBLIC flutter)\ntarget_include_directories(flutter_wrapper_app PUBLIC\n  \"${WRAPPER_ROOT}/include\"\n)\nadd_dependencies(flutter_wrapper_app flutter_assemble)\n\n# === Flutter tool backend ===\n# _phony_ is a non-existent file to force this command to run every time,\n# since currently there's no way to get a full input/output list from the\n# flutter tool.\nset(PHONY_OUTPUT \"${CMAKE_CURRENT_BINARY_DIR}/_phony_\")\nset_source_files_properties(\"${PHONY_OUTPUT}\" PROPERTIES SYMBOLIC TRUE)\nadd_custom_command(\n  OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}\n    ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN}\n    ${CPP_WRAPPER_SOURCES_APP}\n    ${PHONY_OUTPUT}\n  COMMAND ${CMAKE_COMMAND} -E env\n    ${FLUTTER_TOOL_ENVIRONMENT}\n    \"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat\"\n      ${FLUTTER_TARGET_PLATFORM} $<CONFIG>\n  VERBATIM\n)\nadd_custom_target(flutter_assemble DEPENDS\n  \"${FLUTTER_LIBRARY}\"\n  ${FLUTTER_LIBRARY_HEADERS}\n  ${CPP_WRAPPER_SOURCES_CORE}\n  ${CPP_WRAPPER_SOURCES_PLUGIN}\n  ${CPP_WRAPPER_SOURCES_APP}\n)\n"
  },
  {
    "path": "example/windows/flutter/generated_plugin_registrant.cc",
    "content": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#include \"generated_plugin_registrant.h\"\n\n\nvoid RegisterPlugins(flutter::PluginRegistry* registry) {\n}\n"
  },
  {
    "path": "example/windows/flutter/generated_plugin_registrant.h",
    "content": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#ifndef GENERATED_PLUGIN_REGISTRANT_\n#define GENERATED_PLUGIN_REGISTRANT_\n\n#include <flutter/plugin_registry.h>\n\n// Registers Flutter plugins.\nvoid RegisterPlugins(flutter::PluginRegistry* registry);\n\n#endif  // GENERATED_PLUGIN_REGISTRANT_\n"
  },
  {
    "path": "example/windows/flutter/generated_plugins.cmake",
    "content": "#\n# Generated file, do not edit.\n#\n\nlist(APPEND FLUTTER_PLUGIN_LIST\n)\n\nlist(APPEND FLUTTER_FFI_PLUGIN_LIST\n)\n\nset(PLUGIN_BUNDLED_LIBRARIES)\n\nforeach(plugin ${FLUTTER_PLUGIN_LIST})\n  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})\n  target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})\nendforeach(plugin)\n\nforeach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})\n  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})\nendforeach(ffi_plugin)\n"
  },
  {
    "path": "example/windows/runner/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.14)\nproject(runner LANGUAGES CXX)\n\n# Define the application target. To change its name, change BINARY_NAME in the\n# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer\n# work.\n#\n# Any new source files that you add to the application should be added here.\nadd_executable(${BINARY_NAME} WIN32\n  \"flutter_window.cpp\"\n  \"main.cpp\"\n  \"utils.cpp\"\n  \"win32_window.cpp\"\n  \"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc\"\n  \"Runner.rc\"\n  \"runner.exe.manifest\"\n)\n\n# Apply the standard set of build settings. This can be removed for applications\n# that need different build settings.\napply_standard_settings(${BINARY_NAME})\n\n# Add preprocessor definitions for the build version.\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION=\\\"${FLUTTER_VERSION}\\\"\")\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}\")\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}\")\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}\")\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}\")\n\n# Disable Windows macros that collide with C++ standard library functions.\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"NOMINMAX\")\n\n# Add dependency libraries and include directories. Add any application-specific\n# dependencies here.\ntarget_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)\ntarget_link_libraries(${BINARY_NAME} PRIVATE \"dwmapi.lib\")\ntarget_include_directories(${BINARY_NAME} PRIVATE \"${CMAKE_SOURCE_DIR}\")\n\n# Run the Flutter tool portions of the build. This must not be removed.\nadd_dependencies(${BINARY_NAME} flutter_assemble)\n"
  },
  {
    "path": "example/windows/runner/Runner.rc",
    "content": "// Microsoft Visual C++ generated resource script.\n//\n#pragma code_page(65001)\n#include \"resource.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 2 resource.\n//\n#include \"winres.h\"\n\n/////////////////////////////////////////////////////////////////////////////\n#undef APSTUDIO_READONLY_SYMBOLS\n\n/////////////////////////////////////////////////////////////////////////////\n// English (United States) resources\n\n#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\nLANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\n\n#ifdef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// TEXTINCLUDE\n//\n\n1 TEXTINCLUDE\nBEGIN\n    \"resource.h\\0\"\nEND\n\n2 TEXTINCLUDE\nBEGIN\n    \"#include \"\"winres.h\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n3 TEXTINCLUDE\nBEGIN\n    \"\\r\\n\"\n    \"\\0\"\nEND\n\n#endif    // APSTUDIO_INVOKED\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Icon\n//\n\n// Icon with lowest ID value placed first to ensure application icon\n// remains consistent on all systems.\nIDI_APP_ICON            ICON                    \"resources\\\\app_icon.ico\"\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Version\n//\n\n#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD)\n#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD\n#else\n#define VERSION_AS_NUMBER 1,0,0,0\n#endif\n\n#if defined(FLUTTER_VERSION)\n#define VERSION_AS_STRING FLUTTER_VERSION\n#else\n#define VERSION_AS_STRING \"1.0.0\"\n#endif\n\nVS_VERSION_INFO VERSIONINFO\n FILEVERSION VERSION_AS_NUMBER\n PRODUCTVERSION VERSION_AS_NUMBER\n FILEFLAGSMASK VS_FFI_FILEFLAGSMASK\n#ifdef _DEBUG\n FILEFLAGS VS_FF_DEBUG\n#else\n FILEFLAGS 0x0L\n#endif\n FILEOS VOS__WINDOWS32\n FILETYPE VFT_APP\n FILESUBTYPE 0x0L\nBEGIN\n    BLOCK \"StringFileInfo\"\n    BEGIN\n        BLOCK \"040904e4\"\n        BEGIN\n            VALUE \"CompanyName\", \"com.example\" \"\\0\"\n            VALUE \"FileDescription\", \"example\" \"\\0\"\n            VALUE \"FileVersion\", VERSION_AS_STRING \"\\0\"\n            VALUE \"InternalName\", \"example\" \"\\0\"\n            VALUE \"LegalCopyright\", \"Copyright (C) 2024 com.example. All rights reserved.\" \"\\0\"\n            VALUE \"OriginalFilename\", \"example.exe\" \"\\0\"\n            VALUE \"ProductName\", \"example\" \"\\0\"\n            VALUE \"ProductVersion\", VERSION_AS_STRING \"\\0\"\n        END\n    END\n    BLOCK \"VarFileInfo\"\n    BEGIN\n        VALUE \"Translation\", 0x409, 1252\n    END\nEND\n\n#endif    // English (United States) resources\n/////////////////////////////////////////////////////////////////////////////\n\n\n\n#ifndef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 3 resource.\n//\n\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // not APSTUDIO_INVOKED\n"
  },
  {
    "path": "example/windows/runner/flutter_window.cpp",
    "content": "#include \"flutter_window.h\"\n\n#include <optional>\n\n#include \"flutter/generated_plugin_registrant.h\"\n\nFlutterWindow::FlutterWindow(const flutter::DartProject& project)\n    : project_(project) {}\n\nFlutterWindow::~FlutterWindow() {}\n\nbool FlutterWindow::OnCreate() {\n  if (!Win32Window::OnCreate()) {\n    return false;\n  }\n\n  RECT frame = GetClientArea();\n\n  // The size here must match the window dimensions to avoid unnecessary surface\n  // creation / destruction in the startup path.\n  flutter_controller_ = std::make_unique<flutter::FlutterViewController>(\n      frame.right - frame.left, frame.bottom - frame.top, project_);\n  // Ensure that basic setup of the controller was successful.\n  if (!flutter_controller_->engine() || !flutter_controller_->view()) {\n    return false;\n  }\n  RegisterPlugins(flutter_controller_->engine());\n  SetChildContent(flutter_controller_->view()->GetNativeWindow());\n\n  flutter_controller_->engine()->SetNextFrameCallback([&]() {\n    this->Show();\n  });\n\n  // Flutter can complete the first frame before the \"show window\" callback is\n  // registered. The following call ensures a frame is pending to ensure the\n  // window is shown. It is a no-op if the first frame hasn't completed yet.\n  flutter_controller_->ForceRedraw();\n\n  return true;\n}\n\nvoid FlutterWindow::OnDestroy() {\n  if (flutter_controller_) {\n    flutter_controller_ = nullptr;\n  }\n\n  Win32Window::OnDestroy();\n}\n\nLRESULT\nFlutterWindow::MessageHandler(HWND hwnd, UINT const message,\n                              WPARAM const wparam,\n                              LPARAM const lparam) noexcept {\n  // Give Flutter, including plugins, an opportunity to handle window messages.\n  if (flutter_controller_) {\n    std::optional<LRESULT> result =\n        flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam,\n                                                      lparam);\n    if (result) {\n      return *result;\n    }\n  }\n\n  switch (message) {\n    case WM_FONTCHANGE:\n      flutter_controller_->engine()->ReloadSystemFonts();\n      break;\n  }\n\n  return Win32Window::MessageHandler(hwnd, message, wparam, lparam);\n}\n"
  },
  {
    "path": "example/windows/runner/flutter_window.h",
    "content": "#ifndef RUNNER_FLUTTER_WINDOW_H_\n#define RUNNER_FLUTTER_WINDOW_H_\n\n#include <flutter/dart_project.h>\n#include <flutter/flutter_view_controller.h>\n\n#include <memory>\n\n#include \"win32_window.h\"\n\n// A window that does nothing but host a Flutter view.\nclass FlutterWindow : public Win32Window {\n public:\n  // Creates a new FlutterWindow hosting a Flutter view running |project|.\n  explicit FlutterWindow(const flutter::DartProject& project);\n  virtual ~FlutterWindow();\n\n protected:\n  // Win32Window:\n  bool OnCreate() override;\n  void OnDestroy() override;\n  LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam,\n                         LPARAM const lparam) noexcept override;\n\n private:\n  // The project to run.\n  flutter::DartProject project_;\n\n  // The Flutter instance hosted by this window.\n  std::unique_ptr<flutter::FlutterViewController> flutter_controller_;\n};\n\n#endif  // RUNNER_FLUTTER_WINDOW_H_\n"
  },
  {
    "path": "example/windows/runner/main.cpp",
    "content": "#include <flutter/dart_project.h>\n#include <flutter/flutter_view_controller.h>\n#include <windows.h>\n\n#include \"flutter_window.h\"\n#include \"utils.h\"\n\nint APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,\n                      _In_ wchar_t *command_line, _In_ int show_command) {\n  // Attach to console when present (e.g., 'flutter run') or create a\n  // new console when running with a debugger.\n  if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) {\n    CreateAndAttachConsole();\n  }\n\n  // Initialize COM, so that it is available for use in the library and/or\n  // plugins.\n  ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);\n\n  flutter::DartProject project(L\"data\");\n\n  std::vector<std::string> command_line_arguments =\n      GetCommandLineArguments();\n\n  project.set_dart_entrypoint_arguments(std::move(command_line_arguments));\n\n  FlutterWindow window(project);\n  Win32Window::Point origin(10, 10);\n  Win32Window::Size size(1280, 720);\n  if (!window.Create(L\"example\", origin, size)) {\n    return EXIT_FAILURE;\n  }\n  window.SetQuitOnClose(true);\n\n  ::MSG msg;\n  while (::GetMessage(&msg, nullptr, 0, 0)) {\n    ::TranslateMessage(&msg);\n    ::DispatchMessage(&msg);\n  }\n\n  ::CoUninitialize();\n  return EXIT_SUCCESS;\n}\n"
  },
  {
    "path": "example/windows/runner/resource.h",
    "content": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by Runner.rc\n//\n#define IDI_APP_ICON                    101\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n#define _APS_NEXT_RESOURCE_VALUE        102\n#define _APS_NEXT_COMMAND_VALUE         40001\n#define _APS_NEXT_CONTROL_VALUE         1001\n#define _APS_NEXT_SYMED_VALUE           101\n#endif\n#endif\n"
  },
  {
    "path": "example/windows/runner/runner.exe.manifest",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\n  <application xmlns=\"urn:schemas-microsoft-com:asm.v3\">\n    <windowsSettings>\n      <dpiAwareness xmlns=\"http://schemas.microsoft.com/SMI/2016/WindowsSettings\">PerMonitorV2</dpiAwareness>\n    </windowsSettings>\n  </application>\n  <compatibility xmlns=\"urn:schemas-microsoft-com:compatibility.v1\">\n    <application>\n      <!-- Windows 10 and Windows 11 -->\n      <supportedOS Id=\"{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}\"/>\n    </application>\n  </compatibility>\n</assembly>\n"
  },
  {
    "path": "example/windows/runner/utils.cpp",
    "content": "#include \"utils.h\"\n\n#include <flutter_windows.h>\n#include <io.h>\n#include <stdio.h>\n#include <windows.h>\n\n#include <iostream>\n\nvoid CreateAndAttachConsole() {\n  if (::AllocConsole()) {\n    FILE *unused;\n    if (freopen_s(&unused, \"CONOUT$\", \"w\", stdout)) {\n      _dup2(_fileno(stdout), 1);\n    }\n    if (freopen_s(&unused, \"CONOUT$\", \"w\", stderr)) {\n      _dup2(_fileno(stdout), 2);\n    }\n    std::ios::sync_with_stdio();\n    FlutterDesktopResyncOutputStreams();\n  }\n}\n\nstd::vector<std::string> GetCommandLineArguments() {\n  // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use.\n  int argc;\n  wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc);\n  if (argv == nullptr) {\n    return std::vector<std::string>();\n  }\n\n  std::vector<std::string> command_line_arguments;\n\n  // Skip the first argument as it's the binary name.\n  for (int i = 1; i < argc; i++) {\n    command_line_arguments.push_back(Utf8FromUtf16(argv[i]));\n  }\n\n  ::LocalFree(argv);\n\n  return command_line_arguments;\n}\n\nstd::string Utf8FromUtf16(const wchar_t* utf16_string) {\n  if (utf16_string == nullptr) {\n    return std::string();\n  }\n  unsigned int target_length = ::WideCharToMultiByte(\n      CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,\n      -1, nullptr, 0, nullptr, nullptr)\n    -1; // remove the trailing null character\n  int input_length = (int)wcslen(utf16_string);\n  std::string utf8_string;\n  if (target_length == 0 || target_length > utf8_string.max_size()) {\n    return utf8_string;\n  }\n  utf8_string.resize(target_length);\n  int converted_length = ::WideCharToMultiByte(\n      CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,\n      input_length, utf8_string.data(), target_length, nullptr, nullptr);\n  if (converted_length == 0) {\n    return std::string();\n  }\n  return utf8_string;\n}\n"
  },
  {
    "path": "example/windows/runner/utils.h",
    "content": "#ifndef RUNNER_UTILS_H_\n#define RUNNER_UTILS_H_\n\n#include <string>\n#include <vector>\n\n// Creates a console for the process, and redirects stdout and stderr to\n// it for both the runner and the Flutter library.\nvoid CreateAndAttachConsole();\n\n// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string\n// encoded in UTF-8. Returns an empty std::string on failure.\nstd::string Utf8FromUtf16(const wchar_t* utf16_string);\n\n// Gets the command line arguments passed in as a std::vector<std::string>,\n// encoded in UTF-8. Returns an empty std::vector<std::string> on failure.\nstd::vector<std::string> GetCommandLineArguments();\n\n#endif  // RUNNER_UTILS_H_\n"
  },
  {
    "path": "example/windows/runner/win32_window.cpp",
    "content": "#include \"win32_window.h\"\n\n#include <dwmapi.h>\n#include <flutter_windows.h>\n\n#include \"resource.h\"\n\nnamespace {\n\n/// Window attribute that enables dark mode window decorations.\n///\n/// Redefined in case the developer's machine has a Windows SDK older than\n/// version 10.0.22000.0.\n/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute\n#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE\n#define DWMWA_USE_IMMERSIVE_DARK_MODE 20\n#endif\n\nconstexpr const wchar_t kWindowClassName[] = L\"FLUTTER_RUNNER_WIN32_WINDOW\";\n\n/// Registry key for app theme preference.\n///\n/// A value of 0 indicates apps should use dark mode. A non-zero or missing\n/// value indicates apps should use light mode.\nconstexpr const wchar_t kGetPreferredBrightnessRegKey[] =\n  L\"Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Themes\\\\Personalize\";\nconstexpr const wchar_t kGetPreferredBrightnessRegValue[] = L\"AppsUseLightTheme\";\n\n// The number of Win32Window objects that currently exist.\nstatic int g_active_window_count = 0;\n\nusing EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd);\n\n// Scale helper to convert logical scaler values to physical using passed in\n// scale factor\nint Scale(int source, double scale_factor) {\n  return static_cast<int>(source * scale_factor);\n}\n\n// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module.\n// This API is only needed for PerMonitor V1 awareness mode.\nvoid EnableFullDpiSupportIfAvailable(HWND hwnd) {\n  HMODULE user32_module = LoadLibraryA(\"User32.dll\");\n  if (!user32_module) {\n    return;\n  }\n  auto enable_non_client_dpi_scaling =\n      reinterpret_cast<EnableNonClientDpiScaling*>(\n          GetProcAddress(user32_module, \"EnableNonClientDpiScaling\"));\n  if (enable_non_client_dpi_scaling != nullptr) {\n    enable_non_client_dpi_scaling(hwnd);\n  }\n  FreeLibrary(user32_module);\n}\n\n}  // namespace\n\n// Manages the Win32Window's window class registration.\nclass WindowClassRegistrar {\n public:\n  ~WindowClassRegistrar() = default;\n\n  // Returns the singleton registrar instance.\n  static WindowClassRegistrar* GetInstance() {\n    if (!instance_) {\n      instance_ = new WindowClassRegistrar();\n    }\n    return instance_;\n  }\n\n  // Returns the name of the window class, registering the class if it hasn't\n  // previously been registered.\n  const wchar_t* GetWindowClass();\n\n  // Unregisters the window class. Should only be called if there are no\n  // instances of the window.\n  void UnregisterWindowClass();\n\n private:\n  WindowClassRegistrar() = default;\n\n  static WindowClassRegistrar* instance_;\n\n  bool class_registered_ = false;\n};\n\nWindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr;\n\nconst wchar_t* WindowClassRegistrar::GetWindowClass() {\n  if (!class_registered_) {\n    WNDCLASS window_class{};\n    window_class.hCursor = LoadCursor(nullptr, IDC_ARROW);\n    window_class.lpszClassName = kWindowClassName;\n    window_class.style = CS_HREDRAW | CS_VREDRAW;\n    window_class.cbClsExtra = 0;\n    window_class.cbWndExtra = 0;\n    window_class.hInstance = GetModuleHandle(nullptr);\n    window_class.hIcon =\n        LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON));\n    window_class.hbrBackground = 0;\n    window_class.lpszMenuName = nullptr;\n    window_class.lpfnWndProc = Win32Window::WndProc;\n    RegisterClass(&window_class);\n    class_registered_ = true;\n  }\n  return kWindowClassName;\n}\n\nvoid WindowClassRegistrar::UnregisterWindowClass() {\n  UnregisterClass(kWindowClassName, nullptr);\n  class_registered_ = false;\n}\n\nWin32Window::Win32Window() {\n  ++g_active_window_count;\n}\n\nWin32Window::~Win32Window() {\n  --g_active_window_count;\n  Destroy();\n}\n\nbool Win32Window::Create(const std::wstring& title,\n                         const Point& origin,\n                         const Size& size) {\n  Destroy();\n\n  const wchar_t* window_class =\n      WindowClassRegistrar::GetInstance()->GetWindowClass();\n\n  const POINT target_point = {static_cast<LONG>(origin.x),\n                              static_cast<LONG>(origin.y)};\n  HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST);\n  UINT dpi = FlutterDesktopGetDpiForMonitor(monitor);\n  double scale_factor = dpi / 96.0;\n\n  HWND window = CreateWindow(\n      window_class, title.c_str(), WS_OVERLAPPEDWINDOW,\n      Scale(origin.x, scale_factor), Scale(origin.y, scale_factor),\n      Scale(size.width, scale_factor), Scale(size.height, scale_factor),\n      nullptr, nullptr, GetModuleHandle(nullptr), this);\n\n  if (!window) {\n    return false;\n  }\n\n  UpdateTheme(window);\n\n  return OnCreate();\n}\n\nbool Win32Window::Show() {\n  return ShowWindow(window_handle_, SW_SHOWNORMAL);\n}\n\n// static\nLRESULT CALLBACK Win32Window::WndProc(HWND const window,\n                                      UINT const message,\n                                      WPARAM const wparam,\n                                      LPARAM const lparam) noexcept {\n  if (message == WM_NCCREATE) {\n    auto window_struct = reinterpret_cast<CREATESTRUCT*>(lparam);\n    SetWindowLongPtr(window, GWLP_USERDATA,\n                     reinterpret_cast<LONG_PTR>(window_struct->lpCreateParams));\n\n    auto that = static_cast<Win32Window*>(window_struct->lpCreateParams);\n    EnableFullDpiSupportIfAvailable(window);\n    that->window_handle_ = window;\n  } else if (Win32Window* that = GetThisFromHandle(window)) {\n    return that->MessageHandler(window, message, wparam, lparam);\n  }\n\n  return DefWindowProc(window, message, wparam, lparam);\n}\n\nLRESULT\nWin32Window::MessageHandler(HWND hwnd,\n                            UINT const message,\n                            WPARAM const wparam,\n                            LPARAM const lparam) noexcept {\n  switch (message) {\n    case WM_DESTROY:\n      window_handle_ = nullptr;\n      Destroy();\n      if (quit_on_close_) {\n        PostQuitMessage(0);\n      }\n      return 0;\n\n    case WM_DPICHANGED: {\n      auto newRectSize = reinterpret_cast<RECT*>(lparam);\n      LONG newWidth = newRectSize->right - newRectSize->left;\n      LONG newHeight = newRectSize->bottom - newRectSize->top;\n\n      SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth,\n                   newHeight, SWP_NOZORDER | SWP_NOACTIVATE);\n\n      return 0;\n    }\n    case WM_SIZE: {\n      RECT rect = GetClientArea();\n      if (child_content_ != nullptr) {\n        // Size and position the child window.\n        MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left,\n                   rect.bottom - rect.top, TRUE);\n      }\n      return 0;\n    }\n\n    case WM_ACTIVATE:\n      if (child_content_ != nullptr) {\n        SetFocus(child_content_);\n      }\n      return 0;\n\n    case WM_DWMCOLORIZATIONCOLORCHANGED:\n      UpdateTheme(hwnd);\n      return 0;\n  }\n\n  return DefWindowProc(window_handle_, message, wparam, lparam);\n}\n\nvoid Win32Window::Destroy() {\n  OnDestroy();\n\n  if (window_handle_) {\n    DestroyWindow(window_handle_);\n    window_handle_ = nullptr;\n  }\n  if (g_active_window_count == 0) {\n    WindowClassRegistrar::GetInstance()->UnregisterWindowClass();\n  }\n}\n\nWin32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept {\n  return reinterpret_cast<Win32Window*>(\n      GetWindowLongPtr(window, GWLP_USERDATA));\n}\n\nvoid Win32Window::SetChildContent(HWND content) {\n  child_content_ = content;\n  SetParent(content, window_handle_);\n  RECT frame = GetClientArea();\n\n  MoveWindow(content, frame.left, frame.top, frame.right - frame.left,\n             frame.bottom - frame.top, true);\n\n  SetFocus(child_content_);\n}\n\nRECT Win32Window::GetClientArea() {\n  RECT frame;\n  GetClientRect(window_handle_, &frame);\n  return frame;\n}\n\nHWND Win32Window::GetHandle() {\n  return window_handle_;\n}\n\nvoid Win32Window::SetQuitOnClose(bool quit_on_close) {\n  quit_on_close_ = quit_on_close;\n}\n\nbool Win32Window::OnCreate() {\n  // No-op; provided for subclasses.\n  return true;\n}\n\nvoid Win32Window::OnDestroy() {\n  // No-op; provided for subclasses.\n}\n\nvoid Win32Window::UpdateTheme(HWND const window) {\n  DWORD light_mode;\n  DWORD light_mode_size = sizeof(light_mode);\n  LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey,\n                               kGetPreferredBrightnessRegValue,\n                               RRF_RT_REG_DWORD, nullptr, &light_mode,\n                               &light_mode_size);\n\n  if (result == ERROR_SUCCESS) {\n    BOOL enable_dark_mode = light_mode == 0;\n    DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE,\n                          &enable_dark_mode, sizeof(enable_dark_mode));\n  }\n}\n"
  },
  {
    "path": "example/windows/runner/win32_window.h",
    "content": "#ifndef RUNNER_WIN32_WINDOW_H_\n#define RUNNER_WIN32_WINDOW_H_\n\n#include <windows.h>\n\n#include <functional>\n#include <memory>\n#include <string>\n\n// A class abstraction for a high DPI-aware Win32 Window. Intended to be\n// inherited from by classes that wish to specialize with custom\n// rendering and input handling\nclass Win32Window {\n public:\n  struct Point {\n    unsigned int x;\n    unsigned int y;\n    Point(unsigned int x, unsigned int y) : x(x), y(y) {}\n  };\n\n  struct Size {\n    unsigned int width;\n    unsigned int height;\n    Size(unsigned int width, unsigned int height)\n        : width(width), height(height) {}\n  };\n\n  Win32Window();\n  virtual ~Win32Window();\n\n  // Creates a win32 window with |title| that is positioned and sized using\n  // |origin| and |size|. New windows are created on the default monitor. Window\n  // sizes are specified to the OS in physical pixels, hence to ensure a\n  // consistent size this function will scale the inputted width and height as\n  // as appropriate for the default monitor. The window is invisible until\n  // |Show| is called. Returns true if the window was created successfully.\n  bool Create(const std::wstring& title, const Point& origin, const Size& size);\n\n  // Show the current window. Returns true if the window was successfully shown.\n  bool Show();\n\n  // Release OS resources associated with window.\n  void Destroy();\n\n  // Inserts |content| into the window tree.\n  void SetChildContent(HWND content);\n\n  // Returns the backing Window handle to enable clients to set icon and other\n  // window properties. Returns nullptr if the window has been destroyed.\n  HWND GetHandle();\n\n  // If true, closing this window will quit the application.\n  void SetQuitOnClose(bool quit_on_close);\n\n  // Return a RECT representing the bounds of the current client area.\n  RECT GetClientArea();\n\n protected:\n  // Processes and route salient window messages for mouse handling,\n  // size change and DPI. Delegates handling of these to member overloads that\n  // inheriting classes can handle.\n  virtual LRESULT MessageHandler(HWND window,\n                                 UINT const message,\n                                 WPARAM const wparam,\n                                 LPARAM const lparam) noexcept;\n\n  // Called when CreateAndShow is called, allowing subclass window-related\n  // setup. Subclasses should return false if setup fails.\n  virtual bool OnCreate();\n\n  // Called when Destroy is called.\n  virtual void OnDestroy();\n\n private:\n  friend class WindowClassRegistrar;\n\n  // OS callback called by message pump. Handles the WM_NCCREATE message which\n  // is passed when the non-client area is being created and enables automatic\n  // non-client DPI scaling so that the non-client area automatically\n  // responds to changes in DPI. All other messages are handled by\n  // MessageHandler.\n  static LRESULT CALLBACK WndProc(HWND const window,\n                                  UINT const message,\n                                  WPARAM const wparam,\n                                  LPARAM const lparam) noexcept;\n\n  // Retrieves a class instance pointer for |window|\n  static Win32Window* GetThisFromHandle(HWND const window) noexcept;\n\n  // Update the window frame's theme to match the system theme.\n  static void UpdateTheme(HWND const window);\n\n  bool quit_on_close_ = false;\n\n  // window handle for top level window.\n  HWND window_handle_ = nullptr;\n\n  // window handle for hosted content.\n  HWND child_content_ = nullptr;\n};\n\n#endif  // RUNNER_WIN32_WINDOW_H_\n"
  },
  {
    "path": "example_old/.gitignore",
    "content": "# Miscellaneous\n*.class\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.svn/\nmigrate_working_dir/\n\n# IntelliJ related\n*.iml\n*.ipr\n*.iws\n.idea/\n*.env\n\n# The .vscode folder contains launch configuration and tasks you configure in\n# VS Code which you may wish to be included in version control, so this line\n# is commented out by default.\n#.vscode/\n\n# Flutter/Dart/Pub related\n**/doc/api/\n**/ios/Flutter/.last_build_id\n.dart_tool/\n.flutter-plugins\n.flutter-plugins-dependencies\n.packages\n.pub-cache/\n.pub/\n/build/\n\n# Symbolication related\napp.*.symbols\n\n# Obfuscation related\napp.*.map.json\n\n# Android Studio will place build artifacts here\n/android/app/debug\n/android/app/profile\n/android/app/release\n\n.env"
  },
  {
    "path": "example_old/.metadata",
    "content": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrades etc.\n#\n# This file should be version controlled and should not be manually edited.\n\nversion:\n  revision: \"2f708eb8396e362e280fac22cf171c2cb467343c\"\n  channel: \"stable\"\n\nproject_type: app\n\n# Tracks metadata for the flutter migrate command\nmigration:\n  platforms:\n    - platform: root\n      create_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n      base_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n    - platform: android\n      create_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n      base_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n    - platform: ios\n      create_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n      base_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n    - platform: linux\n      create_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n      base_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n    - platform: macos\n      create_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n      base_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n    - platform: web\n      create_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n      base_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n    - platform: windows\n      create_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n      base_revision: 2f708eb8396e362e280fac22cf171c2cb467343c\n\n  # User provided section\n\n  # List of Local paths (relative to this file) that should be\n  # ignored by the migrate tool.\n  #\n  # Files that are not part of the templates will be ignored by default.\n  unmanaged_files:\n    - 'lib/main.dart'\n    - 'ios/Runner.xcodeproj/project.pbxproj'\n"
  },
  {
    "path": "example_old/README.md",
    "content": "# example\n\nA new Flutter project.\n\n## Getting Started\n\nThis project is a starting point for a Flutter application.\n\nA few resources to get you started if this is your first Flutter project:\n\n- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)\n- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)\n\nFor help getting started with Flutter development, view the\n[online documentation](https://docs.flutter.dev/), which offers tutorials,\nsamples, guidance on mobile development, and a full API reference.\n"
  },
  {
    "path": "example_old/analysis_options.yaml",
    "content": "# This file configures the analyzer, which statically analyzes Dart code to\n# check for errors, warnings, and lints.\n#\n# The issues identified by the analyzer are surfaced in the UI of Dart-enabled\n# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be\n# invoked from the command line by running `flutter analyze`.\n\n# The following line activates a set of recommended lints for Flutter apps,\n# packages, and plugins designed to encourage good coding practices.\ninclude: package:flutter_lints/flutter.yaml\n\nlinter:\n  # The lint rules applied to this project can be customized in the\n  # section below to disable rules from the `package:flutter_lints/flutter.yaml`\n  # included above or to enable additional rules. A list of all available lints\n  # and their documentation is published at https://dart.dev/lints.\n  #\n  # Instead of disabling a lint rule for the entire project in the\n  # section below, it can also be suppressed for a single line of code\n  # or a specific dart file by using the `// ignore: name_of_lint` and\n  # `// ignore_for_file: name_of_lint` syntax on the line or in the file\n  # producing the lint.\n  rules:\n    # avoid_print: false  # Uncomment to disable the `avoid_print` rule\n    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule\n\n# Additional information about this file can be found at\n# https://dart.dev/guides/language/analysis-options\n"
  },
  {
    "path": "example_old/android/.gitignore",
    "content": "gradle-wrapper.jar\n/.gradle\n/captures/\n/gradlew\n/gradlew.bat\n/local.properties\nGeneratedPluginRegistrant.java\n\n# Remember to never publicly share your keystore.\n# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app\nkey.properties\n**/*.keystore\n**/*.jks\n"
  },
  {
    "path": "example_old/android/app/build.gradle",
    "content": "plugins {\n    id \"com.android.application\"\n    id \"kotlin-android\"\n    id \"dev.flutter.flutter-gradle-plugin\"\n}\n\ndef localProperties = new Properties()\ndef localPropertiesFile = rootProject.file('local.properties')\nif (localPropertiesFile.exists()) {\n    localPropertiesFile.withReader('UTF-8') { reader ->\n        localProperties.load(reader)\n    }\n}\n\ndef flutterVersionCode = localProperties.getProperty('flutter.versionCode')\nif (flutterVersionCode == null) {\n    flutterVersionCode = '1'\n}\n\ndef flutterVersionName = localProperties.getProperty('flutter.versionName')\nif (flutterVersionName == null) {\n    flutterVersionName = '1.0'\n}\n\nandroid {\n    namespace \"com.example.example\"\n    compileSdkVersion flutter.compileSdkVersion\n    ndkVersion flutter.ndkVersion\n\n    compileOptions {\n        sourceCompatibility JavaVersion.VERSION_1_8\n        targetCompatibility JavaVersion.VERSION_1_8\n    }\n\n    kotlinOptions {\n        jvmTarget = '1.8'\n    }\n\n    sourceSets {\n        main.java.srcDirs += 'src/main/kotlin'\n    }\n\n    defaultConfig {\n        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).\n        applicationId \"com.example.example\"\n        // You can update the following values to match your application needs.\n        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.\n        minSdkVersion flutter.minSdkVersion\n        targetSdkVersion flutter.targetSdkVersion\n        versionCode flutterVersionCode.toInteger()\n        versionName flutterVersionName\n    }\n\n    buildTypes {\n        release {\n            // TODO: Add your own signing config for the release build.\n            // Signing with the debug keys for now, so `flutter run --release` works.\n            signingConfig signingConfigs.debug\n        }\n    }\n}\n\nflutter {\n    source '../..'\n}\n\ndependencies {}\n"
  },
  {
    "path": "example_old/android/app/src/debug/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <!-- The INTERNET permission is required for development. Specifically,\n         the Flutter tool needs it to communicate with the running application\n         to allow setting breakpoints, to provide hot reload, etc.\n    -->\n    <uses-permission android:name=\"android.permission.INTERNET\"/>\n</manifest>\n"
  },
  {
    "path": "example_old/android/app/src/main/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <application\n        android:label=\"example\"\n        android:name=\"${applicationName}\"\n        android:icon=\"@mipmap/ic_launcher\">\n        <activity\n            android:name=\".MainActivity\"\n            android:exported=\"true\"\n            android:launchMode=\"singleTop\"\n            android:theme=\"@style/LaunchTheme\"\n            android:configChanges=\"orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode\"\n            android:hardwareAccelerated=\"true\"\n            android:windowSoftInputMode=\"adjustResize\">\n            <!-- Specifies an Android theme to apply to this Activity as soon as\n                 the Android process has started. This theme is visible to the user\n                 while the Flutter UI initializes. After that, this theme continues\n                 to determine the Window background behind the Flutter UI. -->\n            <meta-data\n              android:name=\"io.flutter.embedding.android.NormalTheme\"\n              android:resource=\"@style/NormalTheme\"\n              />\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\"/>\n                <category android:name=\"android.intent.category.LAUNCHER\"/>\n            </intent-filter>\n        </activity>\n        <!-- Don't delete the meta-data below.\n             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->\n        <meta-data\n            android:name=\"flutterEmbedding\"\n            android:value=\"2\" />\n    </application>\n</manifest>\n"
  },
  {
    "path": "example_old/android/app/src/main/kotlin/com/example/example/MainActivity.kt",
    "content": "package com.example.example\n\nimport io.flutter.embedding.android.FlutterActivity\n\nclass MainActivity: FlutterActivity() {\n}\n"
  },
  {
    "path": "example_old/android/app/src/main/res/drawable/launch_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item android:drawable=\"@android:color/white\" />\n\n    <!-- You can insert your own image assets here -->\n    <!-- <item>\n        <bitmap\n            android:gravity=\"center\"\n            android:src=\"@mipmap/launch_image\" />\n    </item> -->\n</layer-list>\n"
  },
  {
    "path": "example_old/android/app/src/main/res/drawable-v21/launch_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item android:drawable=\"?android:colorBackground\" />\n\n    <!-- You can insert your own image assets here -->\n    <!-- <item>\n        <bitmap\n            android:gravity=\"center\"\n            android:src=\"@mipmap/launch_image\" />\n    </item> -->\n</layer-list>\n"
  },
  {
    "path": "example_old/android/app/src/main/res/values/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->\n    <style name=\"LaunchTheme\" parent=\"@android:style/Theme.Light.NoTitleBar\">\n        <!-- Show a splash screen on the activity. Automatically removed when\n             the Flutter engine draws its first frame -->\n        <item name=\"android:windowBackground\">@drawable/launch_background</item>\n    </style>\n    <!-- Theme applied to the Android Window as soon as the process has started.\n         This theme determines the color of the Android Window while your\n         Flutter UI initializes, as well as behind your Flutter UI while its\n         running.\n\n         This Theme is only used starting with V2 of Flutter's Android embedding. -->\n    <style name=\"NormalTheme\" parent=\"@android:style/Theme.Light.NoTitleBar\">\n        <item name=\"android:windowBackground\">?android:colorBackground</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "example_old/android/app/src/main/res/values-night/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->\n    <style name=\"LaunchTheme\" parent=\"@android:style/Theme.Black.NoTitleBar\">\n        <!-- Show a splash screen on the activity. Automatically removed when\n             the Flutter engine draws its first frame -->\n        <item name=\"android:windowBackground\">@drawable/launch_background</item>\n    </style>\n    <!-- Theme applied to the Android Window as soon as the process has started.\n         This theme determines the color of the Android Window while your\n         Flutter UI initializes, as well as behind your Flutter UI while its\n         running.\n\n         This Theme is only used starting with V2 of Flutter's Android embedding. -->\n    <style name=\"NormalTheme\" parent=\"@android:style/Theme.Black.NoTitleBar\">\n        <item name=\"android:windowBackground\">?android:colorBackground</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "example_old/android/app/src/profile/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <!-- The INTERNET permission is required for development. Specifically,\n         the Flutter tool needs it to communicate with the running application\n         to allow setting breakpoints, to provide hot reload, etc.\n    -->\n    <uses-permission android:name=\"android.permission.INTERNET\"/>\n</manifest>\n"
  },
  {
    "path": "example_old/android/build.gradle",
    "content": "buildscript {\n    ext.kotlin_version = '1.7.10'\n    repositories {\n        google()\n        mavenCentral()\n    }\n\n    dependencies {\n        classpath 'com.android.tools.build:gradle:7.3.0'\n        classpath \"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version\"\n    }\n}\n\nallprojects {\n    repositories {\n        google()\n        mavenCentral()\n    }\n}\n\nrootProject.buildDir = '../build'\nsubprojects {\n    project.buildDir = \"${rootProject.buildDir}/${project.name}\"\n}\nsubprojects {\n    project.evaluationDependsOn(':app')\n}\n\ntasks.register(\"clean\", Delete) {\n    delete rootProject.buildDir\n}\n"
  },
  {
    "path": "example_old/android/gradle/wrapper/gradle-wrapper.properties",
    "content": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-7.5-all.zip\n"
  },
  {
    "path": "example_old/android/gradle.properties",
    "content": "org.gradle.jvmargs=-Xmx1536M\nandroid.useAndroidX=true\nandroid.enableJetifier=true\n"
  },
  {
    "path": "example_old/android/settings.gradle",
    "content": "pluginManagement {\n    def flutterSdkPath = {\n        def properties = new Properties()\n        file(\"local.properties\").withInputStream { properties.load(it) }\n        def flutterSdkPath = properties.getProperty(\"flutter.sdk\")\n        assert flutterSdkPath != null, \"flutter.sdk not set in local.properties\"\n        return flutterSdkPath\n    }\n    settings.ext.flutterSdkPath = flutterSdkPath()\n\n    includeBuild(\"${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle\")\n\n    plugins {\n        id \"dev.flutter.flutter-gradle-plugin\" version \"1.0.0\" apply false\n    }\n}\n\ninclude \":app\"\n\napply from: \"${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle/app_plugin_loader.gradle\"\n"
  },
  {
    "path": "example_old/assets/lottie/ai.json",
    "content": "{\"nm\":\"Comp 1\",\"ddd\":0,\"h\":600,\"w\":1600,\"meta\":{\"g\":\"LottieFiles AE \"},\"layers\":[{\"ty\":4,\"nm\":\"Shape Layer 4\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[800,300,0],\"ix\":2},\"r\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":0},{\"s\":[90],\"t\":103.6796875}],\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":100,\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Ellipse 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.447,\"y\":0.704},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":0},{\"o\":{\"x\":0.611,\"y\":0.327},\"i\":{\"x\":0.667,\"y\":0.481},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[-1.156,-129.595],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-105.949,-124.295]]}],\"t\":26.793},{\"o\":{\"x\":0.333,\"y\":0.519},\"i\":{\"x\":0.667,\"y\":0.821},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[4.498,-139.947],[92.53,-78.595],[138.296,6.608],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-82.828,-90.769]]}],\"t\":52.422},{\"o\":{\"x\":0.721,\"y\":0.386},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[1.156,-130.751],[104.091,-93.624],[140,0],[90.317,85.678],[1.156,150.405],[-89.067,74.976],[-140,0],[-95.545,-102.33]]}],\"t\":79.217},{\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":103.6796875}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":1,\"lj\":1,\"ml\":4,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":1,\"ix\":5},\"c\":{\"a\":0,\"k\":[1,1,1],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":1},{\"ty\":4,\"nm\":\"Shape Layer 3\",\"sr\":1,\"st\":8,\"op\":608,\"ip\":8,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[800,300,0],\"ix\":2},\"r\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.141},\"i\":{\"x\":0.833,\"y\":0.946},\"s\":[0],\"t\":9.32},{\"s\":[280],\"t\":113}],\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":50,\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Ellipse 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.447,\"y\":0.704},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":9.32},{\"o\":{\"x\":0.611,\"y\":0.327},\"i\":{\"x\":0.667,\"y\":0.481},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[-1.156,-129.595],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-105.949,-124.295]]}],\"t\":36.113},{\"o\":{\"x\":0.333,\"y\":0.519},\"i\":{\"x\":0.667,\"y\":0.821},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[4.498,-139.947],[92.53,-78.595],[138.296,6.608],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-82.828,-90.769]]}],\"t\":61.742},{\"o\":{\"x\":0.721,\"y\":0.386},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[1.156,-130.751],[104.091,-93.624],[140,0],[90.317,85.678],[1.156,150.405],[-89.067,74.976],[-140,0],[-95.545,-102.33]]}],\"t\":88.535},{\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":113}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":1,\"lj\":1,\"ml\":4,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":4,\"ix\":5},\"c\":{\"a\":0,\"k\":[0,0.549,0.9569],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":2},{\"ty\":4,\"nm\":\"Shape Layer 2\",\"sr\":1,\"st\":5,\"op\":605,\"ip\":5,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[800,300,0],\"ix\":2},\"r\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.142},\"i\":{\"x\":0.833,\"y\":0.958},\"s\":[0],\"t\":5.824},{\"s\":[360],\"t\":109.505859375}],\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":80,\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Ellipse 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.447,\"y\":0.704},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":5.824},{\"o\":{\"x\":0.611,\"y\":0.327},\"i\":{\"x\":0.667,\"y\":0.481},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[-1.156,-129.595],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-105.949,-124.295]]}],\"t\":32.619},{\"o\":{\"x\":0.333,\"y\":0.519},\"i\":{\"x\":0.667,\"y\":0.821},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[4.498,-139.947],[92.53,-78.595],[138.296,6.608],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-82.828,-90.769]]}],\"t\":58.248},{\"o\":{\"x\":0.721,\"y\":0.386},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[1.156,-130.751],[104.091,-93.624],[140,0],[90.317,85.678],[1.156,150.405],[-89.067,74.976],[-140,0],[-95.545,-102.33]]}],\"t\":85.041},{\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":109.505859375}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":1,\"lj\":1,\"ml\":4,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":4,\"ix\":5},\"c\":{\"a\":0,\"k\":[0,0.549,0.9569],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":3},{\"ty\":4,\"nm\":\"Shape Layer 5\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[800,300,0],\"ix\":2},\"r\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.946},\"s\":[0],\"t\":0},{\"s\":[280],\"t\":115}],\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":100,\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Ellipse 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.447,\"y\":0.733},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":0},{\"o\":{\"x\":0.611,\"y\":0.295},\"i\":{\"x\":0.667,\"y\":0.532},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[-1.156,-129.595],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-105.949,-124.295]]}],\"t\":29.719},{\"o\":{\"x\":0.333,\"y\":0.468},\"i\":{\"x\":0.667,\"y\":0.839},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[4.498,-139.947],[92.53,-78.595],[138.296,6.608],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-82.828,-90.769]]}],\"t\":58.146},{\"o\":{\"x\":0.721,\"y\":0.348},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[1.156,-130.751],[104.091,-93.624],[140,0],[90.317,85.678],[1.156,150.405],[-89.067,74.976],[-140,0],[-95.545,-102.33]]}],\"t\":87.865},{\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":115}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":1,\"lj\":1,\"ml\":4,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":3,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":4},{\"ty\":4,\"nm\":\"Shape Layer 1\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[800,300,0],\"ix\":2},\"r\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":0},{\"s\":[90],\"t\":103.6796875}],\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":100,\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Ellipse 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.447,\"y\":0.704},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":0},{\"o\":{\"x\":0.611,\"y\":0.327},\"i\":{\"x\":0.667,\"y\":0.481},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[-1.156,-129.595],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-105.949,-124.295]]}],\"t\":26.793},{\"o\":{\"x\":0.333,\"y\":0.519},\"i\":{\"x\":0.667,\"y\":0.821},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[4.498,-139.947],[92.53,-78.595],[138.296,6.608],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-82.828,-90.769]]}],\"t\":52.422},{\"o\":{\"x\":0.721,\"y\":0.386},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[1.156,-130.751],[104.091,-93.624],[140,0],[90.317,85.678],[1.156,150.405],[-89.067,74.976],[-140,0],[-95.545,-102.33]]}],\"t\":79.217},{\"s\":[{\"c\":true,\"i\":[[-36.934,0],[-25.626,-28.473],[0,-35.997],[26.356,-25.458],[37.782,0],[25.659,29.231],[0,35.368],[-27.355,25.552]],\"o\":[[41.323,0],[22.324,24.803],[0,39.538],[-25.186,24.327],[-41.951,0],[-21.633,-24.644],[0,-40.386],[25.017,-23.368]],\"v\":[[0,-140],[104.091,-93.624],[140,0],[97.254,100.706],[0,140],[-105.252,92.317],[-140,0],[-95.545,-102.33]]}],\"t\":103.6796875}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":1,\"lj\":1,\"ml\":4,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":3,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":5},{\"ty\":0,\"nm\":\"Pre-comp 1\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[800,300,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[-100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[751,300,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":100,\"ix\":11}},\"ef\":[],\"w\":1600,\"h\":600,\"refId\":\"comp_0\",\"ind\":6},{\"ty\":0,\"nm\":\"Pre-comp 1\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[800,300,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[850,300,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":100,\"ix\":11}},\"ef\":[],\"w\":1600,\"h\":600,\"refId\":\"comp_0\",\"ind\":7},{\"ty\":4,\"nm\":\"Shape Layer 6\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":true,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[800,300,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":100,\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Rectangle 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"rc\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Rect\",\"nm\":\"Rectangle Path 1\",\"d\":1,\"p\":{\"a\":0,\"k\":[0,0],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":4},\"s\":{\"a\":0,\"k\":[1600,600],\"ix\":2}},{\"ty\":\"fl\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Fill\",\"nm\":\"Fill 1\",\"c\":{\"a\":0,\"k\":[0.1569,0.1569,0.1569],\"ix\":4},\"r\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":5}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":8}],\"v\":\"4.8.0\",\"fr\":60,\"op\":116,\"ip\":0,\"assets\":[{\"nm\":\"\",\"id\":\"comp_0\",\"layers\":[{\"ty\":4,\"nm\":\"Shape Layer 5\",\"sr\":1,\"st\":53,\"op\":653,\"ip\":53,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-377.324,-7.936,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[422.676,300,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":100,\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":0,\"k\":{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-192.29,-7.936],[-562.358,-7.936]]},\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":3,\"ix\":5},\"c\":{\"a\":0,\"k\":[0,0.549,0.9569],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]},{\"ty\":\"tm\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Filter - Trim\",\"nm\":\"Trim Paths 1\",\"ix\":2,\"e\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":53},{\"s\":[0],\"t\":105}],\"ix\":2},\"o\":{\"a\":0,\"k\":0,\"ix\":3},\"s\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":57},{\"s\":[0],\"t\":114}],\"ix\":1},\"m\":1}],\"ind\":1},{\"ty\":4,\"nm\":\"Shape Layer 4\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-377.324,-7.936,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[422.676,300,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":0,\"k\":100,\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":0,\"k\":{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-192.29,-7.936],[-562.358,-7.936]]},\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":3,\"ix\":5},\"c\":{\"a\":0,\"k\":[0,0.549,0.9569],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]},{\"ty\":\"tm\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Filter - Trim\",\"nm\":\"Trim Paths 1\",\"ix\":2,\"e\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":0},{\"s\":[100],\"t\":52}],\"ix\":2},\"o\":{\"a\":0,\"k\":0,\"ix\":3},\"s\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":4},{\"s\":[100],\"t\":61}],\"ix\":1},\"m\":1}],\"ind\":2},{\"ty\":4,\"nm\":\"20\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[240,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":42},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":46},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":56},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":60},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":70},{\"s\":[0],\"t\":74}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,19]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,16.5]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,65]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30],[-200,27.75]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,17]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.75],[-200,5.75]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,8.5]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.75],[-200,5.75]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,19]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,16.5]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,65]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30],[-200,27.75]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,17]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.75],[-200,5.75]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,8.5]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.75],[-200,5.75]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,16.5]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,19]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":3},{\"ty\":4,\"nm\":\"19\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[260,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":39},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":43},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":53},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":57},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":58},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":62},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":72},{\"s\":[0],\"t\":76}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,14]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-33],[-200,27]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,25.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-76],[-200,75]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-21],[-200,17]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30.5],[-200,28.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12.75],[-200,14]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,22]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12.75],[-200,14]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,14]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-33],[-200,27]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,25.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-76],[-200,75]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-21],[-200,17]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30.5],[-200,28.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12.75],[-200,14]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,22]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12.75],[-200,14]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-33],[-200,27]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,14]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":4},{\"ty\":4,\"nm\":\"18\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[280,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":37},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":41},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":51},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":55},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":58},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":62},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":72},{\"s\":[0],\"t\":76}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10.5],[-200,11]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-55],[-200,49]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,16]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-34.5],[-200,31]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-74],[-200,65]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10.5],[-200,8.5]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-43.5],[-200,39]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,9.75]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,18]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,9.75]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10.5],[-200,11]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-55],[-200,49]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,16]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-34.5],[-200,31]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-74],[-200,65]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10.5],[-200,8.5]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-43.5],[-200,39]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,9.75]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,18]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,9.75]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,16]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-55],[-200,49]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10.5],[-200,11]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":5},{\"ty\":4,\"nm\":\"17\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[300,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":35},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":39},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":49},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":53},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":60},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":64},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":74},{\"s\":[0],\"t\":78}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.5],[-200,20]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,65]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25.5],[-200,24]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-68],[-200,59]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13.5],[-200,9.5]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-46],[-200,44]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.75],[-200,13.75]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.5],[-200,20]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,65]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25.5],[-200,24]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-68],[-200,59]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13.5],[-200,9.5]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-46],[-200,44]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.75],[-200,13.75]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,65]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.5],[-200,20]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":6},{\"ty\":4,\"nm\":\"16\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[320,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":33},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":37},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":47},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":51},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":61},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":65},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":75},{\"s\":[0],\"t\":79}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.5],[-200,16.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,65]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-32],[-200,41.5]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-27.5],[-200,28.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,52]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.5],[-200,11]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-42.5],[-200,39.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12.75],[-200,17]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,10]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12.75],[-200,17]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.5],[-200,16.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,65]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-32],[-200,41.5]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-27.5],[-200,28.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,52]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.5],[-200,11]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-42.5],[-200,39.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12.75],[-200,17]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,10]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12.75],[-200,17]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-32],[-200,41.5]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-62],[-200,65]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.5],[-200,16.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":7},{\"ty\":4,\"nm\":\"15\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[340,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":31},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":35},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":45},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":49},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":62},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":66},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":76},{\"s\":[0],\"t\":80}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,15.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-43],[-200,51]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15],[-200,19]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-56],[-200,48]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,13.5]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-37.5],[-200,34.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,14]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.75],[-200,19]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,14]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,15.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-43],[-200,51]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15],[-200,19]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-56],[-200,48]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,13.5]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-37.5],[-200,34.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,14]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.75],[-200,19]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.75],[-200,14]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-43],[-200,51]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,15.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":8},{\"ty\":4,\"nm\":\"14\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[360,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":29},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":33},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":43},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":47},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":63},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":67},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":77},{\"s\":[0],\"t\":81}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.5],[-200,11]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30],[-200,32]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-35],[-200,37.5]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,20.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-43],[-200,39]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,19]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30.5],[-200,27]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8],[-200,11.25]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,24]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8],[-200,11.25]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.5],[-200,11]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30],[-200,32]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-35],[-200,37.5]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,20.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-43],[-200,39]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,19]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30.5],[-200,27]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8],[-200,11.25]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,24]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8],[-200,11.25]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-35],[-200,37.5]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30],[-200,32]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.5],[-200,11]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":9},{\"ty\":4,\"nm\":\"13\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[380,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":27},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":31},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":41},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":45},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":67},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":71},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":81},{\"s\":[0],\"t\":85}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,15.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-51],[-200,46]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-24.5],[-200,22.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-37],[-200,31]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,26]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23.5],[-200,20.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-6.5],[-200,8.5]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18.75],[-200,19.25]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-6.5],[-200,8.5]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,15.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-51],[-200,46]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-24.5],[-200,22.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-37],[-200,31]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,26]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23.5],[-200,20.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-6.5],[-200,8.5]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18.75],[-200,19.25]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-6.5],[-200,8.5]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-51],[-200,46]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,15.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":10},{\"ty\":4,\"nm\":\"12\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[400,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":25},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":29},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":39},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":43},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":70},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":74},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":84},{\"s\":[0],\"t\":88}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,14]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-42],[-200,38]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,27]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30],[-200,24]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-39],[-200,34]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,15]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14.25],[-200,15.25]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-24.75],[-200,23]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14.25],[-200,15.25]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,14]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-42],[-200,38]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,27]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30],[-200,24]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-39],[-200,34]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,15]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14.25],[-200,15.25]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-24.75],[-200,23]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14.25],[-200,15.25]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-42],[-200,38]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,14]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":11},{\"ty\":4,\"nm\":\"10\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[420,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":23},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":27},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":37},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":41},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":73},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":77},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":87},{\"s\":[0],\"t\":91}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9],[-200,12]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,23]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17.5]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-36.5],[-200,31]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,17]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30.5],[-200,26.5]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-27.5],[-200,24]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.5],[-200,8.5]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.25],[-200,18.75]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.5],[-200,8.5]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9],[-200,12]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,23]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17.5]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-36.5],[-200,31]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,17]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-30.5],[-200,26.5]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-27.5],[-200,24]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.5],[-200,8.5]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.25],[-200,18.75]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.5],[-200,8.5]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17.5]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,23]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9],[-200,12]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":12},{\"ty\":4,\"nm\":\"09\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[440,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":21},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":25},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":35},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":39},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":76},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":80},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":90},{\"s\":[0],\"t\":94}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10],[-200,14]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,17]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8.5],[-200,9.5]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-40],[-200,35]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,29]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,19]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-38],[-200,34]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-6.25],[-200,6]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13.5],[-200,13.75]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-6.25],[-200,6]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10],[-200,14]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,17]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8.5],[-200,9.5]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-40],[-200,35]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,29]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,19]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-38],[-200,34]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-6.25],[-200,6]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13.5],[-200,13.75]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-6.25],[-200,6]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8.5],[-200,9.5]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,17]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10],[-200,14]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":13},{\"ty\":4,\"nm\":\"08\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[460,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":19},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":23},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":33},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":37},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":80},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":84},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":94},{\"s\":[0],\"t\":98}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,19.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-27],[-200,30]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13.5],[-200,14]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-34],[-200,30.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-47],[-200,45]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.5],[-200,17]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-32.5],[-200,31]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13],[-200,12.75]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-21.25],[-200,20.5]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13],[-200,12.75]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,19.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-27],[-200,30]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13.5],[-200,14]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-34],[-200,30.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-47],[-200,45]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.5],[-200,17]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-32.5],[-200,31]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13],[-200,12.75]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-21.25],[-200,20.5]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13],[-200,12.75]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13.5],[-200,14]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-27],[-200,30]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19],[-200,19.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":14},{\"ty\":4,\"nm\":\"07\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[480,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":16},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":20},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":30},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":34},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":84},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":88},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":98},{\"s\":[0],\"t\":102}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,25]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-24.5],[-200,23.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-72],[-200,60]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8.5],[-200,7.5]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23.5],[-200,24.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,9.5]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,9.5]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,9.5]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,25]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-24.5],[-200,23.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-72],[-200,60]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-8.5],[-200,7.5]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23.5],[-200,24.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,9.5]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,9.5]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,9.5]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,22]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-22],[-200,25]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,17]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":15},{\"ty\":4,\"nm\":\"06\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[500,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":13},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":17},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":27},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":31},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":88},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":92},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":102},{\"s\":[0],\"t\":106}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,14.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-42],[-200,43]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-34],[-200,51]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,11.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-67],[-200,53]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10.5],[-200,9.5]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,20.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,14.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-42],[-200,43]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-34],[-200,51]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,11.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-67],[-200,53]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-10.5],[-200,9.5]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,20.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-7.25],[-200,8]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-34],[-200,51]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-42],[-200,43]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,14.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":16},{\"ty\":4,\"nm\":\"05\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[520,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":10},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":14},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":24},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":28},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":92},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":96},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":106},{\"s\":[0],\"t\":110}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,21.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-38],[-200,35]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-51],[-200,66]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14.5],[-200,14]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-61],[-200,47]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,12]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13],[-200,14]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.25],[-200,6.75]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.25],[-200,6.75]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.25],[-200,6.75]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,21.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-38],[-200,35]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-51],[-200,66]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14.5],[-200,14]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-61],[-200,47]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,12]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-13],[-200,14]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.25],[-200,6.75]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.25],[-200,6.75]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-5.25],[-200,6.75]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-51],[-200,66]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-38],[-200,35]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,21.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":17},{\"ty\":4,\"nm\":\"04\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[540,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":7},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":11},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":21},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":25},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":96},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":100},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":110},{\"s\":[0],\"t\":114}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.5],[-200,18.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-26],[-200,27]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-37],[-200,47]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,16]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-53],[-200,40]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18.5],[-200,19]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.5],[-200,10.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,13.5]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-3.75],[-200,4.25]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,13.5]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.5],[-200,18.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-26],[-200,27]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-37],[-200,47]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,16]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-53],[-200,40]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18.5],[-200,19]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.5],[-200,10.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,13.5]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-3.75],[-200,4.25]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,13.5]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-37],[-200,47]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-26],[-200,27]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16.5],[-200,18.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":18},{\"ty\":4,\"nm\":\"03\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[560,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":4},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":8},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":19},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":23},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":100},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":104},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":114},{\"s\":[0],\"t\":118}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-17],[-200,18.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,18]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-28],[-200,33]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,20.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-47],[-200,33]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,23.5]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,16.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.25],[-200,22]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,13.75]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.25],[-200,22]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-17],[-200,18.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,18]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-28],[-200,33]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-23],[-200,20.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-47],[-200,33]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25],[-200,23.5]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,16.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.25],[-200,22]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.5],[-200,13.75]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.25],[-200,22]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-28],[-200,33]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-16],[-200,18]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-17],[-200,18.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":19},{\"ty\":4,\"nm\":\"02\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[580,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":2},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":6},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":17},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":21},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":104},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":108},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":118},{\"s\":[0],\"t\":122}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,14.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,13]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-39],[-200,46]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25.5],[-200,25.5]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-38],[-200,26]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.5],[-200,17.5]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,13.5]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-17.25],[-200,18.25]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-24.25],[-200,22.5]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-17.25],[-200,18.25]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,14.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,13]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-39],[-200,46]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-25.5],[-200,25.5]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-38],[-200,26]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-19.5],[-200,17.5]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,13.5]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-17.25],[-200,18.25]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-24.25],[-200,22.5]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-17.25],[-200,18.25]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-39],[-200,46]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-12],[-200,13]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-14],[-200,14.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":20},{\"ty\":4,\"nm\":\"01\",\"sr\":1,\"st\":0,\"op\":600,\"ip\":0,\"hd\":false,\"ddd\":0,\"bm\":0,\"hasMask\":false,\"ao\":0,\"ks\":{\"a\":{\"a\":0,\"k\":[-200,1.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6},\"sk\":{\"a\":0,\"k\":0},\"p\":{\"a\":0,\"k\":[600,301.5,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"sa\":{\"a\":0,\"k\":0},\"o\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":0},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":3},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":15},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":19},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[0],\"t\":107},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":111},{\"o\":{\"x\":0.167,\"y\":0.167},\"i\":{\"x\":0.833,\"y\":0.833},\"s\":[100],\"t\":121},{\"s\":[0],\"t\":125}],\"ix\":11}},\"ef\":[],\"shapes\":[{\"ty\":\"gr\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Group\",\"nm\":\"Shape 1\",\"ix\":1,\"cix\":2,\"np\":3,\"it\":[{\"ty\":\"sh\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Shape - Group\",\"nm\":\"Path 1\",\"ix\":1,\"d\":1,\"ks\":{\"a\":1,\"k\":[{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11],[-200,11.5]]}],\"t\":0},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,22]]}],\"t\":6},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,31]]}],\"t\":11},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,17]]}],\"t\":20},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-21],[-200,19]]}],\"t\":24},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,14]]}],\"t\":28},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.5],[-200,8]]}],\"t\":32},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.25],[-200,12.75]]}],\"t\":40},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,19.25]]}],\"t\":43},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.25],[-200,12.75]]}],\"t\":47},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11],[-200,11.5]]}],\"t\":55},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,22]]}],\"t\":61},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,31]]}],\"t\":66},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,17]]}],\"t\":75},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-21],[-200,19]]}],\"t\":79},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-15.5],[-200,14]]}],\"t\":83},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-9.5],[-200,8]]}],\"t\":87},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.25],[-200,12.75]]}],\"t\":95},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-20],[-200,19.25]]}],\"t\":98},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11.25],[-200,12.75]]}],\"t\":102},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-31],[-200,31]]}],\"t\":106},{\"o\":{\"x\":0.333,\"y\":0},\"i\":{\"x\":0.667,\"y\":1},\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-18],[-200,22]]}],\"t\":111},{\"s\":[{\"c\":false,\"i\":[[0,0],[0,0]],\"o\":[[0,0],[0,0]],\"v\":[[-200,-11],[-200,11.5]]}],\"t\":117}],\"ix\":2}},{\"ty\":\"st\",\"bm\":0,\"hd\":false,\"mn\":\"ADBE Vector Graphic - Stroke\",\"nm\":\"Stroke 1\",\"lc\":2,\"lj\":2,\"ml\":1,\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":2,\"ix\":5},\"c\":{\"a\":0,\"k\":[0.4471,1,0.9176],\"ix\":3}},{\"ty\":\"tr\",\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"o\":{\"a\":0,\"k\":100,\"ix\":7}}]}],\"ind\":21}]}]}"
  },
  {
    "path": "example_old/ios/.gitignore",
    "content": "**/dgph\n*.mode1v3\n*.mode2v3\n*.moved-aside\n*.pbxuser\n*.perspectivev3\n**/*sync/\n.sconsign.dblite\n.tags*\n**/.vagrant/\n**/DerivedData/\nIcon?\n**/Pods/\n**/.symlinks/\nprofile\nxcuserdata\n**/.generated/\nFlutter/App.framework\nFlutter/Flutter.framework\nFlutter/Flutter.podspec\nFlutter/Generated.xcconfig\nFlutter/ephemeral/\nFlutter/app.flx\nFlutter/app.zip\nFlutter/flutter_assets/\nFlutter/flutter_export_environment.sh\nServiceDefinitions.json\nRunner/GeneratedPluginRegistrant.*\n\n# Exceptions to above rules.\n!default.mode1v3\n!default.mode2v3\n!default.pbxuser\n!default.perspectivev3\n"
  },
  {
    "path": "example_old/ios/Flutter/AppFrameworkInfo.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>CFBundleDevelopmentRegion</key>\n  <string>en</string>\n  <key>CFBundleExecutable</key>\n  <string>App</string>\n  <key>CFBundleIdentifier</key>\n  <string>io.flutter.flutter.app</string>\n  <key>CFBundleInfoDictionaryVersion</key>\n  <string>6.0</string>\n  <key>CFBundleName</key>\n  <string>App</string>\n  <key>CFBundlePackageType</key>\n  <string>FMWK</string>\n  <key>CFBundleShortVersionString</key>\n  <string>1.0</string>\n  <key>CFBundleSignature</key>\n  <string>????</string>\n  <key>CFBundleVersion</key>\n  <string>1.0</string>\n  <key>MinimumOSVersion</key>\n  <string>11.0</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/ios/Flutter/Debug.xcconfig",
    "content": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example_old/ios/Flutter/Release.xcconfig",
    "content": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example_old/ios/Runner/AppDelegate.swift",
    "content": "import UIKit\nimport Flutter\n\n@UIApplicationMain\n@objc class AppDelegate: FlutterAppDelegate {\n  override func application(\n    _ application: UIApplication,\n    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?\n  ) -> Bool {\n    GeneratedPluginRegistrant.register(with: self)\n    return super.application(application, didFinishLaunchingWithOptions: launchOptions)\n  }\n}\n"
  },
  {
    "path": "example_old/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-40x40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-40x40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-60x60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-60x60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-20x20@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-29x29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-29x29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-40x40@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-40x40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-76x76@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-76x76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-83.5x83.5@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"Icon-App-1024x1024@1x.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "example_old/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "example_old/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md",
    "content": "# Launch Screen Assets\n\nYou can customize the launch screen with your own desired assets by replacing the image files in this directory.\n\nYou can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images."
  },
  {
    "path": "example_old/ios/Runner/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"12121\" systemVersion=\"16G29\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"12089\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Ydg-fD-yQy\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"xbc-2k-c8Z\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" image=\"LaunchImage\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"YRO-k0-Ey4\">\n                            </imageView>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"YRO-k0-Ey4\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"1a2-6s-vTC\"/>\n                            <constraint firstItem=\"YRO-k0-Ey4\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"4X2-HB-R7a\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"53\" y=\"375\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"LaunchImage\" width=\"168\" height=\"185\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "example_old/ios/Runner/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"10117\" systemVersion=\"15F34\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"10085\"/>\n    </dependencies>\n    <scenes>\n        <!--Flutter View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController id=\"BYZ-38-t0r\" customClass=\"FlutterViewController\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"y3c-jy-aDJ\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"wfy-db-euE\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"600\" height=\"600\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"calibratedWhite\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "example_old/ios/Runner/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>Example</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>example</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(FLUTTER_BUILD_NAME)</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(FLUTTER_BUILD_NUMBER)</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>CADisableMinimumFrameDurationOnPhone</key>\n\t<true/>\n\t<key>UIApplicationSupportsIndirectInputEvents</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/ios/Runner/Runner-Bridging-Header.h",
    "content": "#import \"GeneratedPluginRegistrant.h\"\n"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };\n\t\t3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };\n\t\t74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };\n\t\t97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };\n\t\t97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };\n\t\t97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };\n\t\t331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 97C146E61CF9000F007C117D /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 97C146ED1CF9000F007C117D;\n\t\t\tremoteInfo = Runner;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t9705A1C41CF9048500538489 /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = \"<group>\"; };\n\t\t1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = \"<group>\"; };\n\t\t3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = \"<group>\"; };\n\t\t74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"Runner-Bridging-Header.h\"; sourceTree = \"<group>\"; };\n\t\t74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = \"<group>\"; };\n\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = \"<group>\"; };\n\t\t9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = \"<group>\"; };\n\t\t97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = \"<group>\"; };\n\t\t331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t97C146EB1CF9000F007C117D /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t9740EEB11CF90186004384FC /* Flutter */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,\n\t\t\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */,\n\t\t\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */,\n\t\t\t\t9740EEB31CF90195004384FC /* Generated.xcconfig */,\n\t\t\t);\n\t\t\tname = Flutter;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t331C8082294A63A400263BE5 /* RunnerTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t331C807B294A618700263BE5 /* RunnerTests.swift */,\n\t\t\t);\n\t\t\tpath = RunnerTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146E51CF9000F007C117D = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9740EEB11CF90186004384FC /* Flutter */,\n\t\t\t\t97C146F01CF9000F007C117D /* Runner */,\n\t\t\t\t97C146EF1CF9000F007C117D /* Products */,\n\t\t\t\t331C8082294A63A400263BE5 /* RunnerTests */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146EF1CF9000F007C117D /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146EE1CF9000F007C117D /* Runner.app */,\n\t\t\t\t331C8081294A63A400263BE5 /* RunnerTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146F01CF9000F007C117D /* Runner */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146FA1CF9000F007C117D /* Main.storyboard */,\n\t\t\t\t97C146FD1CF9000F007C117D /* Assets.xcassets */,\n\t\t\t\t97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,\n\t\t\t\t97C147021CF9000F007C117D /* Info.plist */,\n\t\t\t\t1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,\n\t\t\t\t1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,\n\t\t\t\t74858FAE1ED2DC5600515810 /* AppDelegate.swift */,\n\t\t\t\t74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,\n\t\t\t);\n\t\t\tpath = Runner;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t331C8080294A63A400263BE5 /* RunnerTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget \"RunnerTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t331C807D294A63A400263BE5 /* Sources */,\n\t\t\t\t331C807E294A63A400263BE5 /* Frameworks */,\n\t\t\t\t331C807F294A63A400263BE5 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t331C8086294A63A400263BE5 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = RunnerTests;\n\t\t\tproductName = RunnerTests;\n\t\t\tproductReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\t97C146ED1CF9000F007C117D /* Runner */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget \"Runner\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t9740EEB61CF901F6004384FC /* Run Script */,\n\t\t\t\t97C146EA1CF9000F007C117D /* Sources */,\n\t\t\t\t97C146EB1CF9000F007C117D /* Frameworks */,\n\t\t\t\t97C146EC1CF9000F007C117D /* Resources */,\n\t\t\t\t9705A1C41CF9048500538489 /* Embed Frameworks */,\n\t\t\t\t3B06AD1E1E4923F5004D2608 /* Thin Binary */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = Runner;\n\t\t\tproductName = Runner;\n\t\t\tproductReference = 97C146EE1CF9000F007C117D /* Runner.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t97C146E61CF9000F007C117D /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tBuildIndependentTargetsInParallel = YES;\n\t\t\t\tLastUpgradeCheck = 1430;\n\t\t\t\tORGANIZATIONNAME = \"\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t331C8080294A63A400263BE5 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 14.0;\n\t\t\t\t\t\tTestTargetID = 97C146ED1CF9000F007C117D;\n\t\t\t\t\t};\n\t\t\t\t\t97C146ED1CF9000F007C117D = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.3.1;\n\t\t\t\t\t\tLastSwiftMigration = 1100;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject \"Runner\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 97C146E51CF9000F007C117D;\n\t\t\tproductRefGroup = 97C146EF1CF9000F007C117D /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t97C146ED1CF9000F007C117D /* Runner */,\n\t\t\t\t331C8080294A63A400263BE5 /* RunnerTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t331C807F294A63A400263BE5 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t97C146EC1CF9000F007C117D /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,\n\t\t\t\t3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,\n\t\t\t\t97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,\n\t\t\t\t97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\t\"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\",\n\t\t\t);\n\t\t\tname = \"Thin Binary\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"/bin/sh \\\"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\\\" embed_and_thin\";\n\t\t};\n\t\t9740EEB61CF901F6004384FC /* Run Script */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"Run Script\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"/bin/sh \\\"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\\\" build\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t331C807D294A63A400263BE5 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t97C146EA1CF9000F007C117D /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,\n\t\t\t\t1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t331C8086294A63A400263BE5 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 97C146ED1CF9000F007C117D /* Runner */;\n\t\t\ttargetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t97C146FA1CF9000F007C117D /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146FB1CF9000F007C117D /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t97C147001CF9000F007C117D /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t249021D3217E4FDB00AE95B9 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSUPPORTED_PLATFORMS = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t249021D4217E4FDB00AE95B9 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"Runner/Runner-Bridging-Header.h\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t331C8088294A63A400263BE5 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t331C8089294A63A400263BE5 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t331C808A294A63A400263BE5 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t97C147031CF9000F007C117D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t97C147041CF9000F007C117D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSUPPORTED_PLATFORMS = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t97C147061CF9000F007C117D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"Runner/Runner-Bridging-Header.h\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t97C147071CF9000F007C117D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"Runner/Runner-Bridging-Header.h\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget \"RunnerTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t331C8088294A63A400263BE5 /* Debug */,\n\t\t\t\t331C8089294A63A400263BE5 /* Release */,\n\t\t\t\t331C808A294A63A400263BE5 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t97C146E91CF9000F007C117D /* Build configuration list for PBXProject \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t97C147031CF9000F007C117D /* Debug */,\n\t\t\t\t97C147041CF9000F007C117D /* Release */,\n\t\t\t\t249021D3217E4FDB00AE95B9 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t97C147061CF9000F007C117D /* Debug */,\n\t\t\t\t97C147071CF9000F007C117D /* Release */,\n\t\t\t\t249021D4217E4FDB00AE95B9 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 97C146E61CF9000F007C117D /* Project object */;\n}\n"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreviewsEnabled</key>\n\t<false/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1430\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n               BuildableName = \"Runner.app\"\n               BlueprintName = \"Runner\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\"\n            parallelizable = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"331C8080294A63A400263BE5\"\n               BuildableName = \"RunnerTests.xctest\"\n               BlueprintName = \"RunnerTests\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Profile\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "example_old/ios/Runner.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "example_old/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreviewsEnabled</key>\n\t<false/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/ios/RunnerTests/RunnerTests.swift",
    "content": "import Flutter\nimport UIKit\nimport XCTest\n\nclass RunnerTests: XCTestCase {\n\n  func testExample() {\n    // If you add code to the Runner application, consider adding tests here.\n    // See https://developer.apple.com/documentation/xctest for more information about using XCTest.\n  }\n\n}\n"
  },
  {
    "path": "example_old/lib/main.dart",
    "content": "import 'package:example/sections/chat.dart';\nimport 'package:example/sections/chat_stream.dart';\nimport 'package:example/sections/embed_batch_contents.dart';\nimport 'package:example/sections/embed_content.dart';\nimport 'package:example/sections/response_widget_stream.dart';\nimport 'package:example/sections/stream.dart';\nimport 'package:example/sections/text_and_image.dart';\nimport 'package:example/sections/text_only.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\n\nvoid main() async {\n  /// flutter run --dart-define=apiKey='Your Api Key'\n  Gemini.init(\n      apiKey: const String.fromEnvironment('apiKey'), enableDebugging: true);\n\n  // Gemini.reInitialize(apiKey: \"new api key\", enableDebugging: false);\n\n  runApp(const MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n  const MyApp({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: 'Flutter Gemini',\n      themeMode: ThemeMode.dark,\n      debugShowCheckedModeBanner: false,\n      darkTheme: ThemeData.dark().copyWith(\n          colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),\n          cardTheme: CardTheme(color: Colors.blue.shade900)),\n      home: const MyHomePage(),\n    );\n  }\n}\n\nclass SectionItem {\n  final int index;\n  final String title;\n  final Widget widget;\n\n  SectionItem(this.index, this.title, this.widget);\n}\n\nclass MyHomePage extends StatefulWidget {\n  const MyHomePage({super.key});\n\n  @override\n  State<MyHomePage> createState() => _MyHomePageState();\n}\n\nclass _MyHomePageState extends State<MyHomePage> {\n  int _selectedItem = 0;\n\n  final _sections = <SectionItem>[\n    SectionItem(0, 'Stream text', const SectionTextStreamInput()),\n    SectionItem(1, 'textAndImage', const SectionTextAndImageInput()),\n    SectionItem(2, 'chat', const SectionChat()),\n    SectionItem(3, 'Stream chat', const SectionStreamChat()),\n    SectionItem(4, 'text', const SectionTextInput()),\n    SectionItem(5, 'embedContent', const SectionEmbedContent()),\n    SectionItem(6, 'batchEmbedContents', const SectionBatchEmbedContents()),\n    SectionItem(\n        7, 'response without setState()', const ResponseWidgetSection()),\n  ];\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        backgroundColor: Theme.of(context).colorScheme.inversePrimary,\n        title: Text(_selectedItem == 0\n            ? 'Flutter Gemini'\n            : _sections[_selectedItem].title),\n        actions: [\n          PopupMenuButton<int>(\n            initialValue: _selectedItem,\n            onSelected: (value) => setState(() => _selectedItem = value),\n            itemBuilder: (context) => _sections.map((e) {\n              return PopupMenuItem<int>(value: e.index, child: Text(e.title));\n            }).toList(),\n            child: const Icon(Icons.more_vert_rounded),\n          )\n        ],\n      ),\n      body: IndexedStack(\n        index: _selectedItem,\n        children: _sections.map((e) => e.widget).toList(),\n      ),\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/sections/chat.dart",
    "content": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:flutter_markdown/flutter_markdown.dart';\n\nclass SectionChat extends StatefulWidget {\n  const SectionChat({super.key});\n\n  @override\n  State<SectionChat> createState() => _SectionChatState();\n}\n\nclass _SectionChatState extends State<SectionChat> {\n  final controller = TextEditingController();\n  final gemini = Gemini.instance;\n  bool _loading = false;\n\n  bool get loading => _loading;\n\n  set loading(bool set) => setState(() => _loading = set);\n  final List<Content> chats = [];\n\n  @override\n  Widget build(BuildContext context) {\n    return Column(\n      children: [\n        Expanded(\n            child: chats.isNotEmpty\n                ? Align(\n                    alignment: Alignment.bottomCenter,\n                    child: SingleChildScrollView(\n                      reverse: true,\n                      child: ListView.builder(\n                        itemBuilder: chatItem,\n                        shrinkWrap: true,\n                        physics: const NeverScrollableScrollPhysics(),\n                        itemCount: chats.length,\n                        reverse: false,\n                      ),\n                    ),\n                  )\n                : const Center(child: Text('Search something!'))),\n        if (loading) const CircularProgressIndicator(),\n        ChatInputBox(\n          controller: controller,\n          onSend: () {\n            if (controller.text.isNotEmpty) {\n              final searchedText = controller.text;\n              chats.add(\n                  Content(role: 'user', parts: [Parts(text: searchedText)]));\n              controller.clear();\n              loading = true;\n\n              gemini.chat(chats).then((value) {\n                chats.add(Content(\n                    role: 'model', parts: [Parts(text: value?.output)]));\n                loading = false;\n              });\n            }\n          },\n        ),\n      ],\n    );\n  }\n\n  Widget chatItem(BuildContext context, int index) {\n    final Content content = chats[index];\n\n    return Card(\n      elevation: 0,\n      color:\n          content.role == 'model' ? Colors.blue.shade800 : Colors.transparent,\n      child: Padding(\n        padding: const EdgeInsets.all(8.0),\n        child: Column(\n          crossAxisAlignment: CrossAxisAlignment.start,\n          children: [\n            Text(content.role ?? 'role'),\n            Markdown(\n                shrinkWrap: true,\n                physics: const NeverScrollableScrollPhysics(),\n                data: (content.parts?.lastOrNull as TextPart?)?.text ??\n                    'cannot generate data!'),\n          ],\n        ),\n      ),\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/sections/chat_stream.dart",
    "content": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:flutter_markdown/flutter_markdown.dart';\n\nclass SectionStreamChat extends StatefulWidget {\n  const SectionStreamChat({super.key});\n\n  @override\n  State<SectionStreamChat> createState() => _SectionStreamChatState();\n}\n\nclass _SectionStreamChatState extends State<SectionStreamChat> {\n  final controller = TextEditingController();\n  final gemini = Gemini.instance;\n  bool _loading = false;\n\n  bool get loading => _loading;\n\n  set loading(bool set) => setState(() => _loading = set);\n  final List<Content> chats = [];\n\n  @override\n  Widget build(BuildContext context) {\n    return Column(\n      children: [\n        Expanded(\n            child: chats.isNotEmpty\n                ? Align(\n                    alignment: Alignment.bottomCenter,\n                    child: SingleChildScrollView(\n                      reverse: true,\n                      child: ListView.builder(\n                        itemBuilder: chatItem,\n                        shrinkWrap: true,\n                        physics: const NeverScrollableScrollPhysics(),\n                        itemCount: chats.length,\n                        reverse: false,\n                      ),\n                    ),\n                  )\n                : const Center(child: Text('Search something!'))),\n        if (loading) const CircularProgressIndicator(),\n        ChatInputBox(\n          controller: controller,\n          onSend: () {\n            if (controller.text.isNotEmpty) {\n              final searchedText = controller.text;\n              chats.add(\n                  Content(role: 'user', parts: [Parts(text: searchedText)]));\n              controller.clear();\n              loading = true;\n\n              gemini.streamChat(chats).listen((value) {\n                print(\"-------------------------------\");\n                print(value.output);\n                loading = false;\n                setState(() {\n                  if (chats.isNotEmpty &&\n                      chats.last.role == value.content?.role) {\n                    (chats.last.parts?.lastOrNull as TextPart?)?.text =\n                        '${(chats.last.parts!.last as TextPart?)?.text}${value.output}';\n                  } else {\n                    chats.add(Content(\n                        role: 'model', parts: [Parts(text: value.output)]));\n                  }\n                });\n              });\n            }\n          },\n        ),\n      ],\n    );\n  }\n\n  Widget chatItem(BuildContext context, int index) {\n    final Content content = chats[index];\n\n    return Card(\n      elevation: 0,\n      color:\n          content.role == 'model' ? Colors.blue.shade800 : Colors.transparent,\n      child: Padding(\n        padding: const EdgeInsets.all(8.0),\n        child: Column(\n          crossAxisAlignment: CrossAxisAlignment.start,\n          children: [\n            Text(content.role ?? 'role'),\n            Markdown(\n                shrinkWrap: true,\n                physics: const NeverScrollableScrollPhysics(),\n                data: (content.parts?.lastOrNull as TextPart?)?.text ??\n                    'cannot generate data!'),\n          ],\n        ),\n      ),\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/sections/embed_batch_contents.dart",
    "content": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:lottie/lottie.dart';\n\nclass SectionBatchEmbedContents extends StatefulWidget {\n  const SectionBatchEmbedContents({super.key});\n\n  @override\n  State<SectionBatchEmbedContents> createState() =>\n      _SectionTextInputStreamState();\n}\n\nclass _SectionTextInputStreamState extends State<SectionBatchEmbedContents> {\n  final controller = TextEditingController();\n  final gemini = Gemini.instance;\n  String? searchedText;\n  List<List<num>?>? result;\n  bool _loading = false;\n\n  bool get loading => _loading;\n\n  set loading(bool set) => setState(() => _loading = set);\n\n  @override\n  Widget build(BuildContext context) {\n    return Column(\n      children: [\n        if (searchedText != null)\n          MaterialButton(\n              color: Colors.blue.shade700,\n              onPressed: () {\n                setState(() {\n                  searchedText = null;\n                  result = null;\n                });\n              },\n              child: Text('search: $searchedText')),\n        Expanded(\n            child: loading\n                ? Lottie.asset('assets/lottie/ai.json')\n                : result != null\n                    ? Padding(\n                        padding: const EdgeInsets.all(8.0),\n                        child: SingleChildScrollView(\n                            child: Text(result?.toString() ?? '')),\n                      )\n                    : const Center(child: Text('Search something!'))),\n        ChatInputBox(\n          controller: controller,\n          onSend: () {\n            if (controller.text.isNotEmpty) {\n              searchedText = controller.text;\n              controller.clear();\n              loading = true;\n\n              gemini.batchEmbedContents([searchedText!]).then((value) {\n                result = value;\n                loading = false;\n              });\n            }\n          },\n        )\n      ],\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/sections/embed_content.dart",
    "content": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:lottie/lottie.dart';\n\nclass SectionEmbedContent extends StatefulWidget {\n  const SectionEmbedContent({super.key});\n\n  @override\n  State<SectionEmbedContent> createState() => _SectionEmbedContentState();\n}\n\nclass _SectionEmbedContentState extends State<SectionEmbedContent> {\n  final controller = TextEditingController();\n  final gemini = Gemini.instance;\n  String? searchedText;\n  List<num>? result;\n  bool _loading = false;\n\n  bool get loading => _loading;\n\n  set loading(bool set) => setState(() => _loading = set);\n\n  @override\n  Widget build(BuildContext context) {\n    return Column(\n      children: [\n        if (searchedText != null)\n          MaterialButton(\n              color: Colors.blue.shade700,\n              onPressed: () {\n                setState(() {\n                  searchedText = null;\n                  result = null;\n                });\n              },\n              child: Text('search: $searchedText')),\n        Expanded(\n            child: loading\n                ? Lottie.asset('assets/lottie/ai.json')\n                : result != null\n                    ? Padding(\n                        padding: const EdgeInsets.all(8.0),\n                        child: SingleChildScrollView(\n                            child: Text(result?.toString() ?? '')),\n                      )\n                    : const Center(child: Text('Search something!'))),\n        ChatInputBox(\n          controller: controller,\n          onSend: () {\n            if (controller.text.isNotEmpty) {\n              searchedText = controller.text;\n              controller.clear();\n              loading = true;\n\n              gemini.embedContent(searchedText!).then((value) {\n                result = value;\n                loading = false;\n              });\n            }\n          },\n        ),\n      ],\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/sections/response_widget_stream.dart",
    "content": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:flutter_markdown/flutter_markdown.dart';\nimport 'package:lottie/lottie.dart';\n\nclass ResponseWidgetSection extends StatefulWidget {\n  const ResponseWidgetSection({super.key});\n\n  @override\n  State<ResponseWidgetSection> createState() => _SectionTextInputStreamState();\n}\n\nclass _SectionTextInputStreamState extends State<ResponseWidgetSection> {\n  final controller = TextEditingController();\n  final gemini = Gemini.instance;\n  String? searchedText, result, _finishReason;\n  bool _loading = false;\n\n  String? get finishReason => _finishReason;\n  bool get loading => _loading;\n\n  set finishReason(String? set) {\n    if (set != _finishReason) {\n      setState(() => _finishReason = set);\n    }\n  }\n\n  set loading(bool set) {\n    if (set != loading) {\n      setState(() => _loading = set);\n    }\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Column(\n      children: [\n        if (searchedText != null)\n          MaterialButton(\n              color: Colors.blue.shade700,\n              onPressed: () {\n                setState(() {\n                  searchedText = null;\n                  result = null;\n                });\n              },\n              child: Text('search: $searchedText')),\n        Expanded(\n            child: loading\n                ? Lottie.asset('assets/lottie/ai.json')\n                : result != null\n                    ? Markdown(data: result ?? '')\n                    : const Center(child: Text('Search something!'))),\n        if (finishReason != null) Text(finishReason!),\n        ChatInputBox(\n          controller: controller,\n          onSend: () {\n            if (controller.text.isNotEmpty) {\n              searchedText = controller.text;\n              controller.clear();\n              loading = true;\n              result = null;\n              finishReason = null;\n\n              gemini\n                  .streamGenerateContent(searchedText!,\n                      generationConfig: GenerationConfig(\n                        maxOutputTokens: 2000,\n                        temperature: 0.9,\n                        topP: 0.1,\n                        topK: 16,\n                      ))\n                  .listen((value) {\n                result = (result ?? '') + (value.output ?? '');\n\n                if (value.finishReason != 'STOP') {\n                  finishReason = 'Finish reason is `RECITATION`';\n                }\n                loading = false;\n              });\n            }\n          },\n        ),\n      ],\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/sections/stream.dart",
    "content": "import 'dart:typed_data';\nimport 'package:example/widgets/chat_input_box.dart';\nimport 'package:example/widgets/item_image_view.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:flutter_markdown/flutter_markdown.dart';\nimport 'package:image_picker/image_picker.dart';\n\nclass SectionTextStreamInput extends StatefulWidget {\n  const SectionTextStreamInput({super.key});\n\n  @override\n  State<SectionTextStreamInput> createState() => _SectionTextInputStreamState();\n}\n\nclass _SectionTextInputStreamState extends State<SectionTextStreamInput> {\n  final ImagePicker picker = ImagePicker();\n  final controller = TextEditingController();\n  final gemini = Gemini.instance;\n  String? searchedText,\n      // result,\n      _finishReason;\n\n  List<Uint8List>? images;\n  String result = '';\n\n  String? get finishReason => _finishReason;\n\n  set finishReason(String? set) {\n    if (set != _finishReason) {\n      setState(() => _finishReason = set);\n    }\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Column(\n      children: [\n        if (searchedText != null)\n          MaterialButton(\n              color: Colors.blue.shade700,\n              onPressed: () {\n                setState(() {\n                  searchedText = null;\n                  finishReason = null;\n                  // result = null;\n                });\n              },\n              child: Text('search: $searchedText')),\n        Expanded(child: Markdown(data: result)),\n\n        /// if the returned finishReason isn't STOP\n        if (finishReason != null) Text(finishReason!),\n\n        if (images != null)\n          Container(\n            height: 120,\n            padding: const EdgeInsets.symmetric(horizontal: 4),\n            alignment: Alignment.centerLeft,\n            child: Card(\n              child: ListView.builder(\n                itemBuilder: (context, index) => ItemImageView(\n                  bytes: images!.elementAt(index),\n                ),\n                itemCount: images!.length,\n                scrollDirection: Axis.horizontal,\n              ),\n            ),\n          ),\n\n        /// imported from local widgets\n        ChatInputBox(\n          controller: controller,\n          onClickCamera: () {\n            picker.pickMultiImage().then((value) async {\n              final imagesBytes = <Uint8List>[];\n              for (final file in value) {\n                imagesBytes.add(await file.readAsBytes());\n              }\n\n              if (imagesBytes.isNotEmpty) {\n                setState(() {\n                  images = imagesBytes;\n                });\n              }\n            });\n          },\n          onSend: () {\n            if (controller.text.isNotEmpty) {\n              print('request');\n\n              searchedText = controller.text;\n              controller.clear();\n              gemini\n                  .streamGenerateContent(searchedText!,\n                      images: images,\n                      modelName: 'models/gemini-1.5-flash-latest')\n                  .handleError((e) {\n                if (e is GeminiException) {\n                  print(e);\n                }\n              }).listen((value) {\n                setState(() {\n                  images = null;\n                });\n                result = (result) + (value.output ?? '');\n\n                if (value.finishReason != 'STOP') {\n                  finishReason = 'Finish reason is `${value.finishReason}`';\n                }\n              });\n            }\n          },\n        )\n      ],\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/sections/text_and_image.dart",
    "content": "import 'dart:typed_data';\n\nimport 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:flutter_markdown/flutter_markdown.dart';\nimport 'package:image_picker/image_picker.dart';\nimport 'package:lottie/lottie.dart';\n\nclass SectionTextAndImageInput extends StatefulWidget {\n  const SectionTextAndImageInput({super.key});\n\n  @override\n  State<SectionTextAndImageInput> createState() =>\n      _SectionTextAndImageInputState();\n}\n\nclass _SectionTextAndImageInputState extends State<SectionTextAndImageInput> {\n  final ImagePicker picker = ImagePicker();\n  final controller = TextEditingController();\n  final gemini = Gemini.instance;\n  String? searchedText, result;\n  bool _loading = false;\n\n  Uint8List? selectedImage;\n\n  bool get loading => _loading;\n\n  set loading(bool set) => setState(() => _loading = set);\n\n  @override\n  Widget build(BuildContext context) {\n    return Column(\n      children: [\n        if (searchedText != null)\n          MaterialButton(\n              color: Colors.blue.shade700,\n              onPressed: () {\n                setState(() {\n                  searchedText = null;\n                  result = null;\n                });\n              },\n              child: Text('search: $searchedText')),\n        Expanded(\n          child: Padding(\n            padding: const EdgeInsets.all(8.0),\n            child: Row(\n              mainAxisAlignment: MainAxisAlignment.center,\n              children: [\n                Expanded(\n                  flex: 2,\n                  child: loading\n                      ? Lottie.asset('assets/lottie/ai.json')\n                      : result != null\n                          ? Markdown(\n                              data: result!,\n                              padding:\n                                  const EdgeInsets.symmetric(horizontal: 12),\n                            )\n                          : const Center(\n                              child: Text('Search something!'),\n                            ),\n                ),\n                if (selectedImage != null)\n                  Expanded(\n                    flex: 1,\n                    child: ClipRRect(\n                      borderRadius: BorderRadius.circular(32),\n                      child: Image.memory(\n                        selectedImage!,\n                        fit: BoxFit.cover,\n                      ),\n                    ),\n                  )\n              ],\n            ),\n          ),\n        ),\n        ChatInputBox(\n          controller: controller,\n          onClickCamera: () async {\n            // Capture a photo.\n            final XFile? photo =\n                await picker.pickImage(source: ImageSource.camera);\n\n            if (photo != null) {\n              photo.readAsBytes().then((value) => setState(() {\n                    selectedImage = value;\n                  }));\n            }\n          },\n          onSend: () {\n            if (controller.text.isNotEmpty && selectedImage != null) {\n              searchedText = controller.text;\n              controller.clear();\n              loading = true;\n\n              gemini.textAndImage(\n                  text: searchedText!, images: [selectedImage!]).then((value) {\n                result = value?.output;\n                loading = false;\n              });\n            }\n          },\n        ),\n      ],\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/sections/text_only.dart",
    "content": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:flutter_markdown/flutter_markdown.dart';\nimport 'package:lottie/lottie.dart';\n\nclass SectionTextInput extends StatefulWidget {\n  const SectionTextInput({super.key});\n\n  @override\n  State<SectionTextInput> createState() => _SectionTextInputState();\n}\n\nclass _SectionTextInputState extends State<SectionTextInput> {\n  final controller = TextEditingController();\n  final gemini = Gemini.instance;\n  String? searchedText, result;\n  bool _loading = false;\n\n  bool get loading => _loading;\n\n  set loading(bool set) => setState(() => _loading = set);\n\n  @override\n  Widget build(BuildContext context) {\n    return Column(\n      children: [\n        if (searchedText != null)\n          MaterialButton(\n              color: Colors.blue.shade700,\n              onPressed: () {\n                setState(() {\n                  searchedText = null;\n                  result = null;\n                });\n              },\n              child: Text('search: $searchedText')),\n        Expanded(\n            child: loading\n                ? Lottie.asset('assets/lottie/ai.json')\n                : result != null\n                    ? Padding(\n                        padding: const EdgeInsets.all(8.0),\n                        child: Markdown(data: result!),\n                      )\n                    : const Center(child: Text('Search something!'))),\n        ChatInputBox(\n          controller: controller,\n          onSend: () {\n            if (controller.text.isNotEmpty) {\n              searchedText = controller.text;\n              controller.clear();\n              loading = true;\n\n              gemini.text(searchedText!).then((value) {\n                result = value?.output;\n                loading = false;\n              });\n            }\n          },\n        ),\n      ],\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/widgets/chat_input_box.dart",
    "content": "import 'package:flutter/material.dart';\n\nclass ChatInputBox extends StatelessWidget {\n  final TextEditingController? controller;\n  final VoidCallback? onSend, onClickCamera;\n\n  const ChatInputBox({\n    super.key,\n    this.controller,\n    this.onSend,\n    this.onClickCamera,\n  });\n\n  @override\n  Widget build(BuildContext context) {\n    return Card(\n      margin: const EdgeInsets.all(8),\n      child: Row(\n        crossAxisAlignment: CrossAxisAlignment.end,\n        children: [\n          if (onClickCamera != null)\n            Padding(\n              padding: const EdgeInsets.all(4.0),\n              child: IconButton(\n                  onPressed: onClickCamera,\n                  color: Theme.of(context).colorScheme.onSecondary,\n                  icon: const Icon(Icons.file_copy_rounded)),\n            ),\n          Expanded(\n              child: TextField(\n            controller: controller,\n            minLines: 1,\n            maxLines: 6,\n            cursorColor: Theme.of(context).colorScheme.inversePrimary,\n            textInputAction: TextInputAction.newline,\n            keyboardType: TextInputType.multiline,\n            decoration: const InputDecoration(\n              contentPadding: EdgeInsets.symmetric(vertical: 10, horizontal: 4),\n              hintText: 'Message',\n              border: InputBorder.none,\n            ),\n            onTapOutside: (event) =>\n                FocusManager.instance.primaryFocus?.unfocus(),\n          )),\n          Padding(\n            padding: const EdgeInsets.all(4),\n            child: FloatingActionButton.small(\n              onPressed: onSend,\n              child: const Icon(Icons.send_rounded),\n            ),\n          )\n        ],\n      ),\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/lib/widgets/item_image_view.dart",
    "content": "import 'dart:typed_data';\n\nimport 'package:flutter/material.dart';\n\nclass ItemImageView extends StatelessWidget {\n  final Uint8List bytes;\n  const ItemImageView({super.key, required this.bytes});\n\n  @override\n  Widget build(BuildContext context) {\n    return Padding(\n      padding: const EdgeInsets.all(4),\n      child: ClipRRect(\n        borderRadius: BorderRadius.circular(12),\n        child: Image.memory(\n          bytes,\n          width: 110,\n          height: 110,\n          fit: BoxFit.cover,\n        ),\n      ),\n    );\n  }\n}\n"
  },
  {
    "path": "example_old/linux/.gitignore",
    "content": "flutter/ephemeral\n"
  },
  {
    "path": "example_old/linux/CMakeLists.txt",
    "content": "# Project-level configuration.\ncmake_minimum_required(VERSION 3.10)\nproject(runner LANGUAGES CXX)\n\n# The name of the executable created for the application. Change this to change\n# the on-disk name of your application.\nset(BINARY_NAME \"example\")\n# The unique GTK application identifier for this application. See:\n# https://wiki.gnome.org/HowDoI/ChooseApplicationID\nset(APPLICATION_ID \"com.example.example\")\n\n# Explicitly opt in to modern CMake behaviors to avoid warnings with recent\n# versions of CMake.\ncmake_policy(SET CMP0063 NEW)\n\n# Load bundled libraries from the lib/ directory relative to the binary.\nset(CMAKE_INSTALL_RPATH \"$ORIGIN/lib\")\n\n# Root filesystem for cross-building.\nif(FLUTTER_TARGET_PLATFORM_SYSROOT)\n  set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})\n  set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})\n  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)\n  set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)\n  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)\n  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)\nendif()\n\n# Define build configuration options.\nif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)\n  set(CMAKE_BUILD_TYPE \"Debug\" CACHE\n    STRING \"Flutter build mode\" FORCE)\n  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS\n    \"Debug\" \"Profile\" \"Release\")\nendif()\n\n# Compilation settings that should be applied to most targets.\n#\n# Be cautious about adding new options here, as plugins use this function by\n# default. In most cases, you should add new options to specific targets instead\n# of modifying this function.\nfunction(APPLY_STANDARD_SETTINGS TARGET)\n  target_compile_features(${TARGET} PUBLIC cxx_std_14)\n  target_compile_options(${TARGET} PRIVATE -Wall -Werror)\n  target_compile_options(${TARGET} PRIVATE \"$<$<NOT:$<CONFIG:Debug>>:-O3>\")\n  target_compile_definitions(${TARGET} PRIVATE \"$<$<NOT:$<CONFIG:Debug>>:NDEBUG>\")\nendfunction()\n\n# Flutter library and tool build rules.\nset(FLUTTER_MANAGED_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/flutter\")\nadd_subdirectory(${FLUTTER_MANAGED_DIR})\n\n# System-level dependencies.\nfind_package(PkgConfig REQUIRED)\npkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)\n\nadd_definitions(-DAPPLICATION_ID=\"${APPLICATION_ID}\")\n\n# Define the application target. To change its name, change BINARY_NAME above,\n# not the value here, or `flutter run` will no longer work.\n#\n# Any new source files that you add to the application should be added here.\nadd_executable(${BINARY_NAME}\n  \"main.cc\"\n  \"my_application.cc\"\n  \"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc\"\n)\n\n# Apply the standard set of build settings. This can be removed for applications\n# that need different build settings.\napply_standard_settings(${BINARY_NAME})\n\n# Add dependency libraries. Add any application-specific dependencies here.\ntarget_link_libraries(${BINARY_NAME} PRIVATE flutter)\ntarget_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)\n\n# Run the Flutter tool portions of the build. This must not be removed.\nadd_dependencies(${BINARY_NAME} flutter_assemble)\n\n# Only the install-generated bundle's copy of the executable will launch\n# correctly, since the resources must in the right relative locations. To avoid\n# people trying to run the unbundled copy, put it in a subdirectory instead of\n# the default top-level location.\nset_target_properties(${BINARY_NAME}\n  PROPERTIES\n  RUNTIME_OUTPUT_DIRECTORY \"${CMAKE_BINARY_DIR}/intermediates_do_not_run\"\n)\n\n\n# Generated plugin build rules, which manage building the plugins and adding\n# them to the application.\ninclude(flutter/generated_plugins.cmake)\n\n\n# === Installation ===\n# By default, \"installing\" just makes a relocatable bundle in the build\n# directory.\nset(BUILD_BUNDLE_DIR \"${PROJECT_BINARY_DIR}/bundle\")\nif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)\n  set(CMAKE_INSTALL_PREFIX \"${BUILD_BUNDLE_DIR}\" CACHE PATH \"...\" FORCE)\nendif()\n\n# Start with a clean build bundle directory every time.\ninstall(CODE \"\n  file(REMOVE_RECURSE \\\"${BUILD_BUNDLE_DIR}/\\\")\n  \" COMPONENT Runtime)\n\nset(INSTALL_BUNDLE_DATA_DIR \"${CMAKE_INSTALL_PREFIX}/data\")\nset(INSTALL_BUNDLE_LIB_DIR \"${CMAKE_INSTALL_PREFIX}/lib\")\n\ninstall(TARGETS ${BINARY_NAME} RUNTIME DESTINATION \"${CMAKE_INSTALL_PREFIX}\"\n  COMPONENT Runtime)\n\ninstall(FILES \"${FLUTTER_ICU_DATA_FILE}\" DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\"\n  COMPONENT Runtime)\n\ninstall(FILES \"${FLUTTER_LIBRARY}\" DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n  COMPONENT Runtime)\n\nforeach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})\n  install(FILES \"${bundled_library}\"\n    DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n    COMPONENT Runtime)\nendforeach(bundled_library)\n\n# Fully re-copy the assets directory on each build to avoid having stale files\n# from a previous install.\nset(FLUTTER_ASSET_DIR_NAME \"flutter_assets\")\ninstall(CODE \"\n  file(REMOVE_RECURSE \\\"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\\\")\n  \" COMPONENT Runtime)\ninstall(DIRECTORY \"${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}\"\n  DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\" COMPONENT Runtime)\n\n# Install the AOT library on non-Debug builds only.\nif(NOT CMAKE_BUILD_TYPE MATCHES \"Debug\")\n  install(FILES \"${AOT_LIBRARY}\" DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n    COMPONENT Runtime)\nendif()\n"
  },
  {
    "path": "example_old/linux/flutter/CMakeLists.txt",
    "content": "# This file controls Flutter-level build steps. It should not be edited.\ncmake_minimum_required(VERSION 3.10)\n\nset(EPHEMERAL_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/ephemeral\")\n\n# Configuration provided via flutter tool.\ninclude(${EPHEMERAL_DIR}/generated_config.cmake)\n\n# TODO: Move the rest of this into files in ephemeral. See\n# https://github.com/flutter/flutter/issues/57146.\n\n# Serves the same purpose as list(TRANSFORM ... PREPEND ...),\n# which isn't available in 3.10.\nfunction(list_prepend LIST_NAME PREFIX)\n    set(NEW_LIST \"\")\n    foreach(element ${${LIST_NAME}})\n        list(APPEND NEW_LIST \"${PREFIX}${element}\")\n    endforeach(element)\n    set(${LIST_NAME} \"${NEW_LIST}\" PARENT_SCOPE)\nendfunction()\n\n# === Flutter Library ===\n# System-level dependencies.\nfind_package(PkgConfig REQUIRED)\npkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)\npkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)\npkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)\n\nset(FLUTTER_LIBRARY \"${EPHEMERAL_DIR}/libflutter_linux_gtk.so\")\n\n# Published to parent scope for install step.\nset(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)\nset(FLUTTER_ICU_DATA_FILE \"${EPHEMERAL_DIR}/icudtl.dat\" PARENT_SCOPE)\nset(PROJECT_BUILD_DIR \"${PROJECT_DIR}/build/\" PARENT_SCOPE)\nset(AOT_LIBRARY \"${PROJECT_DIR}/build/lib/libapp.so\" PARENT_SCOPE)\n\nlist(APPEND FLUTTER_LIBRARY_HEADERS\n  \"fl_basic_message_channel.h\"\n  \"fl_binary_codec.h\"\n  \"fl_binary_messenger.h\"\n  \"fl_dart_project.h\"\n  \"fl_engine.h\"\n  \"fl_json_message_codec.h\"\n  \"fl_json_method_codec.h\"\n  \"fl_message_codec.h\"\n  \"fl_method_call.h\"\n  \"fl_method_channel.h\"\n  \"fl_method_codec.h\"\n  \"fl_method_response.h\"\n  \"fl_plugin_registrar.h\"\n  \"fl_plugin_registry.h\"\n  \"fl_standard_message_codec.h\"\n  \"fl_standard_method_codec.h\"\n  \"fl_string_codec.h\"\n  \"fl_value.h\"\n  \"fl_view.h\"\n  \"flutter_linux.h\"\n)\nlist_prepend(FLUTTER_LIBRARY_HEADERS \"${EPHEMERAL_DIR}/flutter_linux/\")\nadd_library(flutter INTERFACE)\ntarget_include_directories(flutter INTERFACE\n  \"${EPHEMERAL_DIR}\"\n)\ntarget_link_libraries(flutter INTERFACE \"${FLUTTER_LIBRARY}\")\ntarget_link_libraries(flutter INTERFACE\n  PkgConfig::GTK\n  PkgConfig::GLIB\n  PkgConfig::GIO\n)\nadd_dependencies(flutter flutter_assemble)\n\n# === Flutter tool backend ===\n# _phony_ is a non-existent file to force this command to run every time,\n# since currently there's no way to get a full input/output list from the\n# flutter tool.\nadd_custom_command(\n  OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}\n    ${CMAKE_CURRENT_BINARY_DIR}/_phony_\n  COMMAND ${CMAKE_COMMAND} -E env\n    ${FLUTTER_TOOL_ENVIRONMENT}\n    \"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh\"\n      ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE}\n  VERBATIM\n)\nadd_custom_target(flutter_assemble DEPENDS\n  \"${FLUTTER_LIBRARY}\"\n  ${FLUTTER_LIBRARY_HEADERS}\n)\n"
  },
  {
    "path": "example_old/linux/flutter/generated_plugin_registrant.cc",
    "content": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#include \"generated_plugin_registrant.h\"\n\n#include <file_selector_linux/file_selector_plugin.h>\n\nvoid fl_register_plugins(FlPluginRegistry* registry) {\n  g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =\n      fl_plugin_registry_get_registrar_for_plugin(registry, \"FileSelectorPlugin\");\n  file_selector_plugin_register_with_registrar(file_selector_linux_registrar);\n}\n"
  },
  {
    "path": "example_old/linux/flutter/generated_plugin_registrant.h",
    "content": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#ifndef GENERATED_PLUGIN_REGISTRANT_\n#define GENERATED_PLUGIN_REGISTRANT_\n\n#include <flutter_linux/flutter_linux.h>\n\n// Registers Flutter plugins.\nvoid fl_register_plugins(FlPluginRegistry* registry);\n\n#endif  // GENERATED_PLUGIN_REGISTRANT_\n"
  },
  {
    "path": "example_old/linux/flutter/generated_plugins.cmake",
    "content": "#\n# Generated file, do not edit.\n#\n\nlist(APPEND FLUTTER_PLUGIN_LIST\n  file_selector_linux\n)\n\nlist(APPEND FLUTTER_FFI_PLUGIN_LIST\n)\n\nset(PLUGIN_BUNDLED_LIBRARIES)\n\nforeach(plugin ${FLUTTER_PLUGIN_LIST})\n  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})\n  target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})\nendforeach(plugin)\n\nforeach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})\n  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})\nendforeach(ffi_plugin)\n"
  },
  {
    "path": "example_old/linux/main.cc",
    "content": "#include \"my_application.h\"\n\nint main(int argc, char** argv) {\n  g_autoptr(MyApplication) app = my_application_new();\n  return g_application_run(G_APPLICATION(app), argc, argv);\n}\n"
  },
  {
    "path": "example_old/linux/my_application.cc",
    "content": "#include \"my_application.h\"\n\n#include <flutter_linux/flutter_linux.h>\n#ifdef GDK_WINDOWING_X11\n#include <gdk/gdkx.h>\n#endif\n\n#include \"flutter/generated_plugin_registrant.h\"\n\nstruct _MyApplication {\n  GtkApplication parent_instance;\n  char** dart_entrypoint_arguments;\n};\n\nG_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)\n\n// Implements GApplication::activate.\nstatic void my_application_activate(GApplication* application) {\n  MyApplication* self = MY_APPLICATION(application);\n  GtkWindow* window =\n      GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));\n\n  // Use a header bar when running in GNOME as this is the common style used\n  // by applications and is the setup most users will be using (e.g. Ubuntu\n  // desktop).\n  // If running on X and not using GNOME then just use a traditional title bar\n  // in case the window manager does more exotic layout, e.g. tiling.\n  // If running on Wayland assume the header bar will work (may need changing\n  // if future cases occur).\n  gboolean use_header_bar = TRUE;\n#ifdef GDK_WINDOWING_X11\n  GdkScreen* screen = gtk_window_get_screen(window);\n  if (GDK_IS_X11_SCREEN(screen)) {\n    const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);\n    if (g_strcmp0(wm_name, \"GNOME Shell\") != 0) {\n      use_header_bar = FALSE;\n    }\n  }\n#endif\n  if (use_header_bar) {\n    GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());\n    gtk_widget_show(GTK_WIDGET(header_bar));\n    gtk_header_bar_set_title(header_bar, \"example\");\n    gtk_header_bar_set_show_close_button(header_bar, TRUE);\n    gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));\n  } else {\n    gtk_window_set_title(window, \"example\");\n  }\n\n  gtk_window_set_default_size(window, 1280, 720);\n  gtk_widget_show(GTK_WIDGET(window));\n\n  g_autoptr(FlDartProject) project = fl_dart_project_new();\n  fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);\n\n  FlView* view = fl_view_new(project);\n  gtk_widget_show(GTK_WIDGET(view));\n  gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));\n\n  fl_register_plugins(FL_PLUGIN_REGISTRY(view));\n\n  gtk_widget_grab_focus(GTK_WIDGET(view));\n}\n\n// Implements GApplication::local_command_line.\nstatic gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {\n  MyApplication* self = MY_APPLICATION(application);\n  // Strip out the first argument as it is the binary name.\n  self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);\n\n  g_autoptr(GError) error = nullptr;\n  if (!g_application_register(application, nullptr, &error)) {\n     g_warning(\"Failed to register: %s\", error->message);\n     *exit_status = 1;\n     return TRUE;\n  }\n\n  g_application_activate(application);\n  *exit_status = 0;\n\n  return TRUE;\n}\n\n// Implements GObject::dispose.\nstatic void my_application_dispose(GObject* object) {\n  MyApplication* self = MY_APPLICATION(object);\n  g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);\n  G_OBJECT_CLASS(my_application_parent_class)->dispose(object);\n}\n\nstatic void my_application_class_init(MyApplicationClass* klass) {\n  G_APPLICATION_CLASS(klass)->activate = my_application_activate;\n  G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;\n  G_OBJECT_CLASS(klass)->dispose = my_application_dispose;\n}\n\nstatic void my_application_init(MyApplication* self) {}\n\nMyApplication* my_application_new() {\n  return MY_APPLICATION(g_object_new(my_application_get_type(),\n                                     \"application-id\", APPLICATION_ID,\n                                     \"flags\", G_APPLICATION_NON_UNIQUE,\n                                     nullptr));\n}\n"
  },
  {
    "path": "example_old/linux/my_application.h",
    "content": "#ifndef FLUTTER_MY_APPLICATION_H_\n#define FLUTTER_MY_APPLICATION_H_\n\n#include <gtk/gtk.h>\n\nG_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,\n                     GtkApplication)\n\n/**\n * my_application_new:\n *\n * Creates a new Flutter-based application.\n *\n * Returns: a new #MyApplication.\n */\nMyApplication* my_application_new();\n\n#endif  // FLUTTER_MY_APPLICATION_H_\n"
  },
  {
    "path": "example_old/macos/.gitignore",
    "content": "# Flutter-related\n**/Flutter/ephemeral/\n**/Pods/\n\n# Xcode-related\n**/dgph\n**/xcuserdata/\n"
  },
  {
    "path": "example_old/macos/Flutter/Flutter-Debug.xcconfig",
    "content": "#include \"ephemeral/Flutter-Generated.xcconfig\"\n"
  },
  {
    "path": "example_old/macos/Flutter/Flutter-Release.xcconfig",
    "content": "#include \"ephemeral/Flutter-Generated.xcconfig\"\n"
  },
  {
    "path": "example_old/macos/Flutter/GeneratedPluginRegistrant.swift",
    "content": "//\n//  Generated file. Do not edit.\n//\n\nimport FlutterMacOS\nimport Foundation\n\nimport file_selector_macos\n\nfunc RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {\n  FileSelectorPlugin.register(with: registry.registrar(forPlugin: \"FileSelectorPlugin\"))\n}\n"
  },
  {
    "path": "example_old/macos/Runner/AppDelegate.swift",
    "content": "import Cocoa\nimport FlutterMacOS\n\n@NSApplicationMain\nclass AppDelegate: FlutterAppDelegate {\n  override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {\n    return true\n  }\n}\n"
  },
  {
    "path": "example_old/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"16x16\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_16.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"16x16\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_32.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"32x32\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_32.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"32x32\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_64.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"128x128\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_128.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"128x128\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_256.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"256x256\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_256.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"256x256\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_512.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"512x512\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_512.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"512x512\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_1024.png\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "example_old/macos/Runner/Base.lproj/MainMenu.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\" useAutolayout=\"YES\" customObjectInstantitationMethod=\"direct\">\n    <dependencies>\n        <deployment identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"14490.70\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <customObject id=\"-2\" userLabel=\"File's Owner\" customClass=\"NSApplication\">\n            <connections>\n                <outlet property=\"delegate\" destination=\"Voe-Tx-rLC\" id=\"GzC-gU-4Uq\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"-1\" userLabel=\"First Responder\" customClass=\"FirstResponder\"/>\n        <customObject id=\"-3\" userLabel=\"Application\" customClass=\"NSObject\"/>\n        <customObject id=\"Voe-Tx-rLC\" customClass=\"AppDelegate\" customModule=\"Runner\" customModuleProvider=\"target\">\n            <connections>\n                <outlet property=\"applicationMenu\" destination=\"uQy-DD-JDr\" id=\"XBo-yE-nKs\"/>\n                <outlet property=\"mainFlutterWindow\" destination=\"QvC-M9-y7g\" id=\"gIp-Ho-8D9\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"YLy-65-1bz\" customClass=\"NSFontManager\"/>\n        <menu title=\"Main Menu\" systemMenu=\"main\" id=\"AYu-sK-qS6\">\n            <items>\n                <menuItem title=\"APP_NAME\" id=\"1Xt-HY-uBw\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"APP_NAME\" systemMenu=\"apple\" id=\"uQy-DD-JDr\">\n                        <items>\n                            <menuItem title=\"About APP_NAME\" id=\"5kV-Vb-QxS\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"orderFrontStandardAboutPanel:\" target=\"-1\" id=\"Exp-CZ-Vem\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"VOq-y0-SEH\"/>\n                            <menuItem title=\"Preferences…\" keyEquivalent=\",\" id=\"BOF-NM-1cW\"/>\n                            <menuItem isSeparatorItem=\"YES\" id=\"wFC-TO-SCJ\"/>\n                            <menuItem title=\"Services\" id=\"NMo-om-nkz\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Services\" systemMenu=\"services\" id=\"hz9-B4-Xy5\"/>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"4je-JR-u6R\"/>\n                            <menuItem title=\"Hide APP_NAME\" keyEquivalent=\"h\" id=\"Olw-nP-bQN\">\n                                <connections>\n                                    <action selector=\"hide:\" target=\"-1\" id=\"PnN-Uc-m68\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Hide Others\" keyEquivalent=\"h\" id=\"Vdr-fp-XzO\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"hideOtherApplications:\" target=\"-1\" id=\"VT4-aY-XCT\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Show All\" id=\"Kd2-mp-pUS\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"unhideAllApplications:\" target=\"-1\" id=\"Dhg-Le-xox\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"kCx-OE-vgT\"/>\n                            <menuItem title=\"Quit APP_NAME\" keyEquivalent=\"q\" id=\"4sb-4s-VLi\">\n                                <connections>\n                                    <action selector=\"terminate:\" target=\"-1\" id=\"Te7-pn-YzF\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Edit\" id=\"5QF-Oa-p0T\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Edit\" id=\"W48-6f-4Dl\">\n                        <items>\n                            <menuItem title=\"Undo\" keyEquivalent=\"z\" id=\"dRJ-4n-Yzg\">\n                                <connections>\n                                    <action selector=\"undo:\" target=\"-1\" id=\"M6e-cu-g7V\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Redo\" keyEquivalent=\"Z\" id=\"6dh-zS-Vam\">\n                                <connections>\n                                    <action selector=\"redo:\" target=\"-1\" id=\"oIA-Rs-6OD\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"WRV-NI-Exz\"/>\n                            <menuItem title=\"Cut\" keyEquivalent=\"x\" id=\"uRl-iY-unG\">\n                                <connections>\n                                    <action selector=\"cut:\" target=\"-1\" id=\"YJe-68-I9s\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Copy\" keyEquivalent=\"c\" id=\"x3v-GG-iWU\">\n                                <connections>\n                                    <action selector=\"copy:\" target=\"-1\" id=\"G1f-GL-Joy\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Paste\" keyEquivalent=\"v\" id=\"gVA-U4-sdL\">\n                                <connections>\n                                    <action selector=\"paste:\" target=\"-1\" id=\"UvS-8e-Qdg\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Paste and Match Style\" keyEquivalent=\"V\" id=\"WeT-3V-zwk\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"pasteAsPlainText:\" target=\"-1\" id=\"cEh-KX-wJQ\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Delete\" id=\"pa3-QI-u2k\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"delete:\" target=\"-1\" id=\"0Mk-Ml-PaM\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Select All\" keyEquivalent=\"a\" id=\"Ruw-6m-B2m\">\n                                <connections>\n                                    <action selector=\"selectAll:\" target=\"-1\" id=\"VNm-Mi-diN\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"uyl-h8-XO2\"/>\n                            <menuItem title=\"Find\" id=\"4EN-yA-p0u\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Find\" id=\"1b7-l0-nxx\">\n                                    <items>\n                                        <menuItem title=\"Find…\" tag=\"1\" keyEquivalent=\"f\" id=\"Xz5-n4-O0W\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"cD7-Qs-BN4\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Find and Replace…\" tag=\"12\" keyEquivalent=\"f\" id=\"YEy-JH-Tfz\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"WD3-Gg-5AJ\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Find Next\" tag=\"2\" keyEquivalent=\"g\" id=\"q09-fT-Sye\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"NDo-RZ-v9R\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Find Previous\" tag=\"3\" keyEquivalent=\"G\" id=\"OwM-mh-QMV\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"HOh-sY-3ay\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Use Selection for Find\" tag=\"7\" keyEquivalent=\"e\" id=\"buJ-ug-pKt\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"U76-nv-p5D\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Jump to Selection\" keyEquivalent=\"j\" id=\"S0p-oC-mLd\">\n                                            <connections>\n                                                <action selector=\"centerSelectionInVisibleArea:\" target=\"-1\" id=\"IOG-6D-g5B\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Spelling and Grammar\" id=\"Dv1-io-Yv7\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Spelling\" id=\"3IN-sU-3Bg\">\n                                    <items>\n                                        <menuItem title=\"Show Spelling and Grammar\" keyEquivalent=\":\" id=\"HFo-cy-zxI\">\n                                            <connections>\n                                                <action selector=\"showGuessPanel:\" target=\"-1\" id=\"vFj-Ks-hy3\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Check Document Now\" keyEquivalent=\";\" id=\"hz2-CU-CR7\">\n                                            <connections>\n                                                <action selector=\"checkSpelling:\" target=\"-1\" id=\"fz7-VC-reM\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"bNw-od-mp5\"/>\n                                        <menuItem title=\"Check Spelling While Typing\" id=\"rbD-Rh-wIN\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleContinuousSpellChecking:\" target=\"-1\" id=\"7w6-Qz-0kB\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Check Grammar With Spelling\" id=\"mK6-2p-4JG\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleGrammarChecking:\" target=\"-1\" id=\"muD-Qn-j4w\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Correct Spelling Automatically\" id=\"78Y-hA-62v\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticSpellingCorrection:\" target=\"-1\" id=\"2lM-Qi-WAP\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Substitutions\" id=\"9ic-FL-obx\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Substitutions\" id=\"FeM-D8-WVr\">\n                                    <items>\n                                        <menuItem title=\"Show Substitutions\" id=\"z6F-FW-3nz\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"orderFrontSubstitutionsPanel:\" target=\"-1\" id=\"oku-mr-iSq\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"gPx-C9-uUO\"/>\n                                        <menuItem title=\"Smart Copy/Paste\" id=\"9yt-4B-nSM\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleSmartInsertDelete:\" target=\"-1\" id=\"3IJ-Se-DZD\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Quotes\" id=\"hQb-2v-fYv\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticQuoteSubstitution:\" target=\"-1\" id=\"ptq-xd-QOA\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Dashes\" id=\"rgM-f4-ycn\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticDashSubstitution:\" target=\"-1\" id=\"oCt-pO-9gS\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Links\" id=\"cwL-P1-jid\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticLinkDetection:\" target=\"-1\" id=\"Gip-E3-Fov\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Data Detectors\" id=\"tRr-pd-1PS\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticDataDetection:\" target=\"-1\" id=\"R1I-Nq-Kbl\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Text Replacement\" id=\"HFQ-gK-NFA\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticTextReplacement:\" target=\"-1\" id=\"DvP-Fe-Py6\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Transformations\" id=\"2oI-Rn-ZJC\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Transformations\" id=\"c8a-y6-VQd\">\n                                    <items>\n                                        <menuItem title=\"Make Upper Case\" id=\"vmV-6d-7jI\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"uppercaseWord:\" target=\"-1\" id=\"sPh-Tk-edu\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Make Lower Case\" id=\"d9M-CD-aMd\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"lowercaseWord:\" target=\"-1\" id=\"iUZ-b5-hil\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Capitalize\" id=\"UEZ-Bs-lqG\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"capitalizeWord:\" target=\"-1\" id=\"26H-TL-nsh\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Speech\" id=\"xrE-MZ-jX0\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Speech\" id=\"3rS-ZA-NoH\">\n                                    <items>\n                                        <menuItem title=\"Start Speaking\" id=\"Ynk-f8-cLZ\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"startSpeaking:\" target=\"-1\" id=\"654-Ng-kyl\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Stop Speaking\" id=\"Oyz-dy-DGm\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"stopSpeaking:\" target=\"-1\" id=\"dX8-6p-jy9\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"View\" id=\"H8h-7b-M4v\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"View\" id=\"HyV-fh-RgO\">\n                        <items>\n                            <menuItem title=\"Enter Full Screen\" keyEquivalent=\"f\" id=\"4J7-dP-txa\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"toggleFullScreen:\" target=\"-1\" id=\"dU3-MA-1Rq\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Window\" id=\"aUF-d1-5bR\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Window\" systemMenu=\"window\" id=\"Td7-aD-5lo\">\n                        <items>\n                            <menuItem title=\"Minimize\" keyEquivalent=\"m\" id=\"OY7-WF-poV\">\n                                <connections>\n                                    <action selector=\"performMiniaturize:\" target=\"-1\" id=\"VwT-WD-YPe\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Zoom\" id=\"R4o-n2-Eq4\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"performZoom:\" target=\"-1\" id=\"DIl-cC-cCs\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"eu3-7i-yIM\"/>\n                            <menuItem title=\"Bring All to Front\" id=\"LE2-aR-0XJ\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"arrangeInFront:\" target=\"-1\" id=\"DRN-fu-gQh\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Help\" id=\"EPT-qC-fAb\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Help\" systemMenu=\"help\" id=\"rJ0-wn-3NY\"/>\n                </menuItem>\n            </items>\n            <point key=\"canvasLocation\" x=\"142\" y=\"-258\"/>\n        </menu>\n        <window title=\"APP_NAME\" allowsToolTipsWhenApplicationIsInactive=\"NO\" autorecalculatesKeyViewLoop=\"NO\" releasedWhenClosed=\"NO\" animationBehavior=\"default\" id=\"QvC-M9-y7g\" customClass=\"MainFlutterWindow\" customModule=\"Runner\" customModuleProvider=\"target\">\n            <windowStyleMask key=\"styleMask\" titled=\"YES\" closable=\"YES\" miniaturizable=\"YES\" resizable=\"YES\"/>\n            <rect key=\"contentRect\" x=\"335\" y=\"390\" width=\"800\" height=\"600\"/>\n            <rect key=\"screenRect\" x=\"0.0\" y=\"0.0\" width=\"2560\" height=\"1577\"/>\n            <view key=\"contentView\" wantsLayer=\"YES\" id=\"EiT-Mj-1SZ\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"800\" height=\"600\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n            </view>\n        </window>\n    </objects>\n</document>\n"
  },
  {
    "path": "example_old/macos/Runner/Configs/AppInfo.xcconfig",
    "content": "// Application-level settings for the Runner target.\n//\n// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the\n// future. If not, the values below would default to using the project name when this becomes a\n// 'flutter create' template.\n\n// The application's name. By default this is also the title of the Flutter window.\nPRODUCT_NAME = example\n\n// The application's bundle identifier\nPRODUCT_BUNDLE_IDENTIFIER = com.example.example\n\n// The copyright displayed in application information\nPRODUCT_COPYRIGHT = Copyright © 2023 com.example. All rights reserved.\n"
  },
  {
    "path": "example_old/macos/Runner/Configs/Debug.xcconfig",
    "content": "#include \"../../Flutter/Flutter-Debug.xcconfig\"\n#include \"Warnings.xcconfig\"\n"
  },
  {
    "path": "example_old/macos/Runner/Configs/Release.xcconfig",
    "content": "#include \"../../Flutter/Flutter-Release.xcconfig\"\n#include \"Warnings.xcconfig\"\n"
  },
  {
    "path": "example_old/macos/Runner/Configs/Warnings.xcconfig",
    "content": "WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings\nGCC_WARN_UNDECLARED_SELECTOR = YES\nCLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES\nCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE\nCLANG_WARN__DUPLICATE_METHOD_MATCH = YES\nCLANG_WARN_PRAGMA_PACK = YES\nCLANG_WARN_STRICT_PROTOTYPES = YES\nCLANG_WARN_COMMA = YES\nGCC_WARN_STRICT_SELECTOR_MATCH = YES\nCLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES\nCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES\nGCC_WARN_SHADOW = YES\nCLANG_WARN_UNREACHABLE_CODE = YES\n"
  },
  {
    "path": "example_old/macos/Runner/DebugProfile.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.app-sandbox</key>\n\t<true/>\n\t<key>com.apple.security.cs.allow-jit</key>\n\t<true/>\n\t<key>com.apple.security.network.server</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/macos/Runner/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIconFile</key>\n\t<string></string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(FLUTTER_BUILD_NAME)</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(FLUTTER_BUILD_NUMBER)</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>$(PRODUCT_COPYRIGHT)</string>\n\t<key>NSMainNibFile</key>\n\t<string>MainMenu</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/macos/Runner/MainFlutterWindow.swift",
    "content": "import Cocoa\nimport FlutterMacOS\n\nclass MainFlutterWindow: NSWindow {\n  override func awakeFromNib() {\n    let flutterViewController = FlutterViewController()\n    let windowFrame = self.frame\n    self.contentViewController = flutterViewController\n    self.setFrame(windowFrame, display: true)\n\n    RegisterGeneratedPlugins(registry: flutterViewController)\n\n    super.awakeFromNib()\n  }\n}\n"
  },
  {
    "path": "example_old/macos/Runner/Release.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.app-sandbox</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/macos/Runner.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXAggregateTarget section */\n\t\t33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {\n\t\t\tisa = PBXAggregateTarget;\n\t\t\tbuildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget \"Flutter Assemble\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t33CC111E2044C6BF0003C045 /* ShellScript */,\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"Flutter Assemble\";\n\t\t\tproductName = FLX;\n\t\t};\n/* End PBXAggregateTarget section */\n\n/* Begin PBXBuildFile section */\n\t\t331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };\n\t\t335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };\n\t\t33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };\n\t\t33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };\n\t\t33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };\n\t\t33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 33CC10E52044A3C60003C045 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 33CC10EC2044A3C60003C045;\n\t\t\tremoteInfo = Runner;\n\t\t};\n\t\t33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 33CC10E52044A3C60003C045 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 33CC111A2044C6BA0003C045;\n\t\t\tremoteInfo = FLX;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t33CC110E2044A8840003C045 /* Bundle Framework */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tname = \"Bundle Framework\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = \"<group>\"; };\n\t\t333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = \"<group>\"; };\n\t\t335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = \"<group>\"; };\n\t\t33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = \"example.app\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = \"<group>\"; };\n\t\t33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = \"<group>\"; };\n\t\t33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = \"<group>\"; };\n\t\t33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = \"Flutter-Debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = \"Flutter-Release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = \"Flutter-Generated.xcconfig\"; path = \"ephemeral/Flutter-Generated.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = \"<group>\"; };\n\t\t33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = \"<group>\"; };\n\t\t33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = \"<group>\"; };\n\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = \"<group>\"; };\n\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t331C80D2294CF70F00263BE5 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t33CC10EA2044A3C60003C045 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t331C80D6294CF71000263BE5 /* RunnerTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t331C80D7294CF71000263BE5 /* RunnerTests.swift */,\n\t\t\t);\n\t\t\tpath = RunnerTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33BA886A226E78AF003329D5 /* Configs */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33E5194F232828860026EE4D /* AppInfo.xcconfig */,\n\t\t\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */,\n\t\t\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */,\n\t\t\t\t333000ED22D3DE5D00554162 /* Warnings.xcconfig */,\n\t\t\t);\n\t\t\tpath = Configs;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33CC10E42044A3C60003C045 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33FAB671232836740065AC1E /* Runner */,\n\t\t\t\t33CEB47122A05771004F2AC0 /* Flutter */,\n\t\t\t\t331C80D6294CF71000263BE5 /* RunnerTests */,\n\t\t\t\t33CC10EE2044A3C60003C045 /* Products */,\n\t\t\t\tD73912EC22F37F3D000D13A0 /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33CC10EE2044A3C60003C045 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33CC10ED2044A3C60003C045 /* example.app */,\n\t\t\t\t331C80D5294CF71000263BE5 /* RunnerTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33CC11242044D66E0003C045 /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33CC10F22044A3C60003C045 /* Assets.xcassets */,\n\t\t\t\t33CC10F42044A3C60003C045 /* MainMenu.xib */,\n\t\t\t\t33CC10F72044A3C60003C045 /* Info.plist */,\n\t\t\t);\n\t\t\tname = Resources;\n\t\t\tpath = ..;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33CEB47122A05771004F2AC0 /* Flutter */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,\n\t\t\t\t33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,\n\t\t\t\t33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,\n\t\t\t\t33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,\n\t\t\t);\n\t\t\tpath = Flutter;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33FAB671232836740065AC1E /* Runner */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33CC10F02044A3C60003C045 /* AppDelegate.swift */,\n\t\t\t\t33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,\n\t\t\t\t33E51913231747F40026EE4D /* DebugProfile.entitlements */,\n\t\t\t\t33E51914231749380026EE4D /* Release.entitlements */,\n\t\t\t\t33CC11242044D66E0003C045 /* Resources */,\n\t\t\t\t33BA886A226E78AF003329D5 /* Configs */,\n\t\t\t);\n\t\t\tpath = Runner;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD73912EC22F37F3D000D13A0 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t331C80D4294CF70F00263BE5 /* RunnerTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget \"RunnerTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t331C80D1294CF70F00263BE5 /* Sources */,\n\t\t\t\t331C80D2294CF70F00263BE5 /* Frameworks */,\n\t\t\t\t331C80D3294CF70F00263BE5 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t331C80DA294CF71000263BE5 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = RunnerTests;\n\t\t\tproductName = RunnerTests;\n\t\t\tproductReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\t33CC10EC2044A3C60003C045 /* Runner */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget \"Runner\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t33CC10E92044A3C60003C045 /* Sources */,\n\t\t\t\t33CC10EA2044A3C60003C045 /* Frameworks */,\n\t\t\t\t33CC10EB2044A3C60003C045 /* Resources */,\n\t\t\t\t33CC110E2044A8840003C045 /* Bundle Framework */,\n\t\t\t\t3399D490228B24CF009A79C7 /* ShellScript */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t33CC11202044C79F0003C045 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = Runner;\n\t\t\tproductName = Runner;\n\t\t\tproductReference = 33CC10ED2044A3C60003C045 /* example.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t33CC10E52044A3C60003C045 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 0920;\n\t\t\t\tLastUpgradeCheck = 1430;\n\t\t\t\tORGANIZATIONNAME = \"\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t331C80D4294CF70F00263BE5 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 14.0;\n\t\t\t\t\t\tTestTargetID = 33CC10EC2044A3C60003C045;\n\t\t\t\t\t};\n\t\t\t\t\t33CC10EC2044A3C60003C045 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.2;\n\t\t\t\t\t\tLastSwiftMigration = 1100;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t\tSystemCapabilities = {\n\t\t\t\t\t\t\tcom.apple.Sandbox = {\n\t\t\t\t\t\t\t\tenabled = 1;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t\t33CC111A2044C6BA0003C045 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.2;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject \"Runner\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 33CC10E42044A3C60003C045;\n\t\t\tproductRefGroup = 33CC10EE2044A3C60003C045 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t33CC10EC2044A3C60003C045 /* Runner */,\n\t\t\t\t331C80D4294CF70F00263BE5 /* RunnerTests */,\n\t\t\t\t33CC111A2044C6BA0003C045 /* Flutter Assemble */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t331C80D3294CF70F00263BE5 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t33CC10EB2044A3C60003C045 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,\n\t\t\t\t33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t3399D490228B24CF009A79C7 /* ShellScript */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"echo \\\"$PRODUCT_NAME.app\\\" > \\\"$PROJECT_DIR\\\"/Flutter/ephemeral/.app_filename && \\\"$FLUTTER_ROOT\\\"/packages/flutter_tools/bin/macos_assemble.sh embed\\n\";\n\t\t};\n\t\t33CC111E2044C6BF0003C045 /* ShellScript */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t\tFlutter/ephemeral/FlutterInputs.xcfilelist,\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\tFlutter/ephemeral/tripwire,\n\t\t\t);\n\t\t\toutputFileListPaths = (\n\t\t\t\tFlutter/ephemeral/FlutterOutputs.xcfilelist,\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"$FLUTTER_ROOT\\\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t331C80D1294CF70F00263BE5 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t33CC10E92044A3C60003C045 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,\n\t\t\t\t33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,\n\t\t\t\t335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 33CC10EC2044A3C60003C045 /* Runner */;\n\t\t\ttargetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;\n\t\t};\n\t\t33CC11202044C79F0003C045 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;\n\t\t\ttargetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t33CC10F42044A3C60003C045 /* MainMenu.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t33CC10F52044A3C60003C045 /* Base */,\n\t\t\t);\n\t\t\tname = MainMenu.xib;\n\t\t\tpath = Runner;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t331C80DB294CF71000263BE5 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t331C80DC294CF71000263BE5 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t331C80DD294CF71000263BE5 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t338D0CE9231458BD00FA5F75 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.14;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t338D0CEA231458BD00FA5F75 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t338D0CEB231458BD00FA5F75 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_STYLE = Manual;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t33CC10F92044A3C60003C045 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.14;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t33CC10FA2044A3C60003C045 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.14;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t33CC10FC2044A3C60003C045 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t33CC10FD2044A3C60003C045 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t33CC111C2044C6BA0003C045 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_STYLE = Manual;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t33CC111D2044C6BA0003C045 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget \"RunnerTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t331C80DB294CF71000263BE5 /* Debug */,\n\t\t\t\t331C80DC294CF71000263BE5 /* Release */,\n\t\t\t\t331C80DD294CF71000263BE5 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t33CC10E82044A3C60003C045 /* Build configuration list for PBXProject \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t33CC10F92044A3C60003C045 /* Debug */,\n\t\t\t\t33CC10FA2044A3C60003C045 /* Release */,\n\t\t\t\t338D0CE9231458BD00FA5F75 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t33CC10FC2044A3C60003C045 /* Debug */,\n\t\t\t\t33CC10FD2044A3C60003C045 /* Release */,\n\t\t\t\t338D0CEA231458BD00FA5F75 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget \"Flutter Assemble\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t33CC111C2044C6BA0003C045 /* Debug */,\n\t\t\t\t33CC111D2044C6BA0003C045 /* Release */,\n\t\t\t\t338D0CEB231458BD00FA5F75 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 33CC10E52044A3C60003C045 /* Project object */;\n}\n"
  },
  {
    "path": "example_old/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1430\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"33CC10EC2044A3C60003C045\"\n               BuildableName = \"example.app\"\n               BlueprintName = \"Runner\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"33CC10EC2044A3C60003C045\"\n            BuildableName = \"example.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\"\n            parallelizable = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"331C80D4294CF70F00263BE5\"\n               BuildableName = \"RunnerTests.xctest\"\n               BlueprintName = \"RunnerTests\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"33CC10EC2044A3C60003C045\"\n            BuildableName = \"example.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Profile\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"33CC10EC2044A3C60003C045\"\n            BuildableName = \"example.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "example_old/macos/Runner.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "example_old/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example_old/macos/RunnerTests/RunnerTests.swift",
    "content": "import FlutterMacOS\nimport Cocoa\nimport XCTest\n\nclass RunnerTests: XCTestCase {\n\n  func testExample() {\n    // If you add code to the Runner application, consider adding tests here.\n    // See https://developer.apple.com/documentation/xctest for more information about using XCTest.\n  }\n\n}\n"
  },
  {
    "path": "example_old/pubspec.yaml",
    "content": "name: example\ndescription: A new Flutter project.\n# The following line prevents the package from being accidentally published to\n# pub.dev using `flutter pub publish`. This is preferred for private packages.\npublish_to: 'none' # Remove this line if you wish to publish to pub.dev\n\n# The following defines the version and build number for your application.\n# A version number is three numbers separated by dots, like 1.2.43\n# followed by an optional build number separated by a +.\n# Both the version and the builder number may be overridden in flutter\n# build by specifying --build-name and --build-number, respectively.\n# In Android, build-name is used as versionName while build-number used as versionCode.\n# Read more about Android versioning at https://developer.android.com/studio/publish/versioning\n# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.\n# Read more about iOS versioning at\n# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html\n# In Windows, build-name is used as the major, minor, and patch parts\n# of the product and file versions while build-number is used as the build suffix.\nversion: 1.0.0+1\n\nenvironment:\n  sdk: '>=3.1.3 <4.0.0'\n\n# Dependencies specify other packages that your package needs in order to work.\n# To automatically upgrade your package dependencies to the latest versions\n# consider running `flutter pub upgrade --major-versions`. Alternatively,\n# dependencies can be manually updated by changing the version numbers below to\n# the latest version available on pub.dev. To see which dependencies have newer\n# versions available, run `flutter pub outdated`.\ndependencies:\n  flutter:\n    sdk: flutter\n\n\n  # The following adds the Cupertino Icons font to your application.\n  # Use with the CupertinoIcons class for iOS style icons.\n  cupertino_icons: ^1.0.2\n  flutter_gemini:\n    path: ../\n  lottie: ^2.7.0\n  flutter_markdown: ^0.6.18+2\n  image_picker: ^1.0.5\n\ndev_dependencies:\n  flutter_test:\n    sdk: flutter\n\n  # The \"flutter_lints\" package below contains a set of recommended lints to\n  # encourage good coding practices. The lint set provided by the package is\n  # activated in the `analysis_options.yaml` file located at the root of your\n  # package. See that file for information about deactivating specific lint\n  # rules and activating additional ones.\n  flutter_lints: ^2.0.0\n\n# For information on the generic Dart part of this file, see the\n# following page: https://dart.dev/tools/pub/pubspec\n\n# The following section is specific to Flutter packages.\nflutter:\n\n  # The following line ensures that the Material Icons font is\n  # included with your application, so that you can use the icons in\n  # the material Icons class.\n  uses-material-design: true\n\n  # To add assets to your application, add an assets section, like this:\n  assets:\n   - assets/lottie/\n\n  # An image asset can refer to one or more resolution-specific \"variants\", see\n  # https://flutter.dev/assets-and-images/#resolution-aware\n\n  # For details regarding adding assets from package dependencies, see\n  # https://flutter.dev/assets-and-images/#from-packages\n\n  # To add custom fonts to your application, add a fonts section here,\n  # in this \"flutter\" section. Each entry in this list should have a\n  # \"family\" key with the font family name, and a \"fonts\" key with a\n  # list giving the asset and other descriptors for the font. For\n  # example:\n  # fonts:\n  #   - family: Schyler\n  #     fonts:\n  #       - asset: fonts/Schyler-Regular.ttf\n  #       - asset: fonts/Schyler-Italic.ttf\n  #         style: italic\n  #   - family: Trajan Pro\n  #     fonts:\n  #       - asset: fonts/TrajanPro.ttf\n  #       - asset: fonts/TrajanPro_Bold.ttf\n  #         weight: 700\n  #\n  # For details regarding fonts from package dependencies,\n  # see https://flutter.dev/custom-fonts/#from-packages\n"
  },
  {
    "path": "example_old/test/widget_test.dart",
    "content": "// This is a basic Flutter widget test.\n//\n// To perform an interaction with a widget in your test, use the WidgetTester\n// utility in the flutter_test package. For example, you can send tap and scroll\n// gestures. You can also use WidgetTester to find child widgets in the widget\n// tree, read text, and verify that the values of widget properties are correct.\n\nimport 'package:flutter/material.dart';\nimport 'package:flutter_test/flutter_test.dart';\n\nimport 'package:example/main.dart';\n\nvoid main() {\n  testWidgets('Counter increments smoke test', (WidgetTester tester) async {\n    // Build our app and trigger a frame.\n    await tester.pumpWidget(const MyApp());\n\n    // Verify that our counter starts at 0.\n    expect(find.text('0'), findsOneWidget);\n    expect(find.text('1'), findsNothing);\n\n    // Tap the '+' icon and trigger a frame.\n    await tester.tap(find.byIcon(Icons.add));\n    await tester.pump();\n\n    // Verify that our counter has incremented.\n    expect(find.text('0'), findsNothing);\n    expect(find.text('1'), findsOneWidget);\n  });\n}\n"
  },
  {
    "path": "example_old/web/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <!--\n    If you are serving your web app in a path other than the root, change the\n    href value below to reflect the base path you are serving from.\n\n    The path provided below has to start and end with a slash \"/\" in order for\n    it to work correctly.\n\n    For more details:\n    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base\n\n    This is a placeholder for base href that will be replaced by the value of\n    the `--base-href` argument provided to `flutter build`.\n  -->\n  <base href=/flutter_gemini/>\n\n  <meta charset=\"UTF-8\">\n  <meta content=\"IE=Edge\" http-equiv=\"X-UA-Compatible\">\n  <meta name=\"description\" content=\"Google Gemini is a set of cutting-edge large language models (LLMs) designed to be the driving force behind Google's future AI initiatives.\">\n\n  <!-- iOS meta tags & icons -->\n  <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n  <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n  <meta name=\"apple-mobile-web-app-title\" content=\"Flutter Gemini\">\n  <link rel=\"apple-touch-icon\" href=\"icons/Icon-192.png\">\n\n  <!-- Favicon -->\n  <link rel=\"icon\" type=\"image/png\" href=\"favicon.png\"/>\n\n  <title>Flutter Gemini</title>\n  <link rel=\"manifest\" href=\"manifest.json\">\n\n  <script>\n    // The value below is injected by flutter build, do not touch.\n    const serviceWorkerVersion = null;\n  </script>\n  <!-- This script adds the flutter initialization JS code -->\n  <script src=\"flutter.js\" defer></script>\n</head>\n<body>\n  <script>\n    window.addEventListener('load', function(ev) {\n      // Download main.dart.js\n      _flutter.loader.loadEntrypoint({\n        serviceWorker: {\n          serviceWorkerVersion: serviceWorkerVersion,\n        },\n        onEntrypointLoaded: function(engineInitializer) {\n          engineInitializer.initializeEngine().then(function(appRunner) {\n            appRunner.runApp();\n          });\n        }\n      });\n    });\n  </script>\n</body>\n</html>\n"
  },
  {
    "path": "example_old/web/manifest.json",
    "content": "{\n    \"name\": \"example\",\n    \"short_name\": \"example\",\n    \"start_url\": \".\",\n    \"display\": \"standalone\",\n    \"background_color\": \"#0175C2\",\n    \"theme_color\": \"#0175C2\",\n    \"description\": \"A new Flutter project.\",\n    \"orientation\": \"portrait-primary\",\n    \"prefer_related_applications\": false,\n    \"icons\": [\n        {\n            \"src\": \"icons/Icon-192.png\",\n            \"sizes\": \"192x192\",\n            \"type\": \"image/png\"\n        },\n        {\n            \"src\": \"icons/Icon-512.png\",\n            \"sizes\": \"512x512\",\n            \"type\": \"image/png\"\n        },\n        {\n            \"src\": \"icons/Icon-maskable-192.png\",\n            \"sizes\": \"192x192\",\n            \"type\": \"image/png\",\n            \"purpose\": \"maskable\"\n        },\n        {\n            \"src\": \"icons/Icon-maskable-512.png\",\n            \"sizes\": \"512x512\",\n            \"type\": \"image/png\",\n            \"purpose\": \"maskable\"\n        }\n    ]\n}\n"
  },
  {
    "path": "example_old/windows/.gitignore",
    "content": "flutter/ephemeral/\n\n# Visual Studio user-specific files.\n*.suo\n*.user\n*.userosscache\n*.sln.docstates\n\n# Visual Studio build-related files.\nx64/\nx86/\n\n# Visual Studio cache files\n# files ending in .cache can be ignored\n*.[Cc]ache\n# but keep track of directories ending in .cache\n!*.[Cc]ache/\n"
  },
  {
    "path": "example_old/windows/CMakeLists.txt",
    "content": "# Project-level configuration.\ncmake_minimum_required(VERSION 3.14)\nproject(example LANGUAGES CXX)\n\n# The name of the executable created for the application. Change this to change\n# the on-disk name of your application.\nset(BINARY_NAME \"example\")\n\n# Explicitly opt in to modern CMake behaviors to avoid warnings with recent\n# versions of CMake.\ncmake_policy(VERSION 3.14...3.25)\n\n# Define build configuration option.\nget_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)\nif(IS_MULTICONFIG)\n  set(CMAKE_CONFIGURATION_TYPES \"Debug;Profile;Release\"\n    CACHE STRING \"\" FORCE)\nelse()\n  if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)\n    set(CMAKE_BUILD_TYPE \"Debug\" CACHE\n      STRING \"Flutter build mode\" FORCE)\n    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS\n      \"Debug\" \"Profile\" \"Release\")\n  endif()\nendif()\n# Define settings for the Profile build mode.\nset(CMAKE_EXE_LINKER_FLAGS_PROFILE \"${CMAKE_EXE_LINKER_FLAGS_RELEASE}\")\nset(CMAKE_SHARED_LINKER_FLAGS_PROFILE \"${CMAKE_SHARED_LINKER_FLAGS_RELEASE}\")\nset(CMAKE_C_FLAGS_PROFILE \"${CMAKE_C_FLAGS_RELEASE}\")\nset(CMAKE_CXX_FLAGS_PROFILE \"${CMAKE_CXX_FLAGS_RELEASE}\")\n\n# Use Unicode for all projects.\nadd_definitions(-DUNICODE -D_UNICODE)\n\n# Compilation settings that should be applied to most targets.\n#\n# Be cautious about adding new options here, as plugins use this function by\n# default. In most cases, you should add new options to specific targets instead\n# of modifying this function.\nfunction(APPLY_STANDARD_SETTINGS TARGET)\n  target_compile_features(${TARGET} PUBLIC cxx_std_17)\n  target_compile_options(${TARGET} PRIVATE /W4 /WX /wd\"4100\")\n  target_compile_options(${TARGET} PRIVATE /EHsc)\n  target_compile_definitions(${TARGET} PRIVATE \"_HAS_EXCEPTIONS=0\")\n  target_compile_definitions(${TARGET} PRIVATE \"$<$<CONFIG:Debug>:_DEBUG>\")\nendfunction()\n\n# Flutter library and tool build rules.\nset(FLUTTER_MANAGED_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/flutter\")\nadd_subdirectory(${FLUTTER_MANAGED_DIR})\n\n# Application build; see runner/CMakeLists.txt.\nadd_subdirectory(\"runner\")\n\n\n# Generated plugin build rules, which manage building the plugins and adding\n# them to the application.\ninclude(flutter/generated_plugins.cmake)\n\n\n# === Installation ===\n# Support files are copied into place next to the executable, so that it can\n# run in place. This is done instead of making a separate bundle (as on Linux)\n# so that building and running from within Visual Studio will work.\nset(BUILD_BUNDLE_DIR \"$<TARGET_FILE_DIR:${BINARY_NAME}>\")\n# Make the \"install\" step default, as it's required to run.\nset(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)\nif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)\n  set(CMAKE_INSTALL_PREFIX \"${BUILD_BUNDLE_DIR}\" CACHE PATH \"...\" FORCE)\nendif()\n\nset(INSTALL_BUNDLE_DATA_DIR \"${CMAKE_INSTALL_PREFIX}/data\")\nset(INSTALL_BUNDLE_LIB_DIR \"${CMAKE_INSTALL_PREFIX}\")\n\ninstall(TARGETS ${BINARY_NAME} RUNTIME DESTINATION \"${CMAKE_INSTALL_PREFIX}\"\n  COMPONENT Runtime)\n\ninstall(FILES \"${FLUTTER_ICU_DATA_FILE}\" DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\"\n  COMPONENT Runtime)\n\ninstall(FILES \"${FLUTTER_LIBRARY}\" DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n  COMPONENT Runtime)\n\nif(PLUGIN_BUNDLED_LIBRARIES)\n  install(FILES \"${PLUGIN_BUNDLED_LIBRARIES}\"\n    DESTINATION \"${INSTALL_BUNDLE_LIB_DIR}\"\n    COMPONENT Runtime)\nendif()\n\n# Fully re-copy the assets directory on each build to avoid having stale files\n# from a previous install.\nset(FLUTTER_ASSET_DIR_NAME \"flutter_assets\")\ninstall(CODE \"\n  file(REMOVE_RECURSE \\\"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\\\")\n  \" COMPONENT Runtime)\ninstall(DIRECTORY \"${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}\"\n  DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\" COMPONENT Runtime)\n\n# Install the AOT library on non-Debug builds only.\ninstall(FILES \"${AOT_LIBRARY}\" DESTINATION \"${INSTALL_BUNDLE_DATA_DIR}\"\n  CONFIGURATIONS Profile;Release\n  COMPONENT Runtime)\n"
  },
  {
    "path": "example_old/windows/flutter/CMakeLists.txt",
    "content": "# This file controls Flutter-level build steps. It should not be edited.\ncmake_minimum_required(VERSION 3.14)\n\nset(EPHEMERAL_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/ephemeral\")\n\n# Configuration provided via flutter tool.\ninclude(${EPHEMERAL_DIR}/generated_config.cmake)\n\n# TODO: Move the rest of this into files in ephemeral. See\n# https://github.com/flutter/flutter/issues/57146.\nset(WRAPPER_ROOT \"${EPHEMERAL_DIR}/cpp_client_wrapper\")\n\n# === Flutter Library ===\nset(FLUTTER_LIBRARY \"${EPHEMERAL_DIR}/flutter_windows.dll\")\n\n# Published to parent scope for install step.\nset(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)\nset(FLUTTER_ICU_DATA_FILE \"${EPHEMERAL_DIR}/icudtl.dat\" PARENT_SCOPE)\nset(PROJECT_BUILD_DIR \"${PROJECT_DIR}/build/\" PARENT_SCOPE)\nset(AOT_LIBRARY \"${PROJECT_DIR}/build/windows/app.so\" PARENT_SCOPE)\n\nlist(APPEND FLUTTER_LIBRARY_HEADERS\n  \"flutter_export.h\"\n  \"flutter_windows.h\"\n  \"flutter_messenger.h\"\n  \"flutter_plugin_registrar.h\"\n  \"flutter_texture_registrar.h\"\n)\nlist(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND \"${EPHEMERAL_DIR}/\")\nadd_library(flutter INTERFACE)\ntarget_include_directories(flutter INTERFACE\n  \"${EPHEMERAL_DIR}\"\n)\ntarget_link_libraries(flutter INTERFACE \"${FLUTTER_LIBRARY}.lib\")\nadd_dependencies(flutter flutter_assemble)\n\n# === Wrapper ===\nlist(APPEND CPP_WRAPPER_SOURCES_CORE\n  \"core_implementations.cc\"\n  \"standard_codec.cc\"\n)\nlist(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND \"${WRAPPER_ROOT}/\")\nlist(APPEND CPP_WRAPPER_SOURCES_PLUGIN\n  \"plugin_registrar.cc\"\n)\nlist(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND \"${WRAPPER_ROOT}/\")\nlist(APPEND CPP_WRAPPER_SOURCES_APP\n  \"flutter_engine.cc\"\n  \"flutter_view_controller.cc\"\n)\nlist(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND \"${WRAPPER_ROOT}/\")\n\n# Wrapper sources needed for a plugin.\nadd_library(flutter_wrapper_plugin STATIC\n  ${CPP_WRAPPER_SOURCES_CORE}\n  ${CPP_WRAPPER_SOURCES_PLUGIN}\n)\napply_standard_settings(flutter_wrapper_plugin)\nset_target_properties(flutter_wrapper_plugin PROPERTIES\n  POSITION_INDEPENDENT_CODE ON)\nset_target_properties(flutter_wrapper_plugin PROPERTIES\n  CXX_VISIBILITY_PRESET hidden)\ntarget_link_libraries(flutter_wrapper_plugin PUBLIC flutter)\ntarget_include_directories(flutter_wrapper_plugin PUBLIC\n  \"${WRAPPER_ROOT}/include\"\n)\nadd_dependencies(flutter_wrapper_plugin flutter_assemble)\n\n# Wrapper sources needed for the runner.\nadd_library(flutter_wrapper_app STATIC\n  ${CPP_WRAPPER_SOURCES_CORE}\n  ${CPP_WRAPPER_SOURCES_APP}\n)\napply_standard_settings(flutter_wrapper_app)\ntarget_link_libraries(flutter_wrapper_app PUBLIC flutter)\ntarget_include_directories(flutter_wrapper_app PUBLIC\n  \"${WRAPPER_ROOT}/include\"\n)\nadd_dependencies(flutter_wrapper_app flutter_assemble)\n\n# === Flutter tool backend ===\n# _phony_ is a non-existent file to force this command to run every time,\n# since currently there's no way to get a full input/output list from the\n# flutter tool.\nset(PHONY_OUTPUT \"${CMAKE_CURRENT_BINARY_DIR}/_phony_\")\nset_source_files_properties(\"${PHONY_OUTPUT}\" PROPERTIES SYMBOLIC TRUE)\nadd_custom_command(\n  OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}\n    ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN}\n    ${CPP_WRAPPER_SOURCES_APP}\n    ${PHONY_OUTPUT}\n  COMMAND ${CMAKE_COMMAND} -E env\n    ${FLUTTER_TOOL_ENVIRONMENT}\n    \"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat\"\n      windows-x64 $<CONFIG>\n  VERBATIM\n)\nadd_custom_target(flutter_assemble DEPENDS\n  \"${FLUTTER_LIBRARY}\"\n  ${FLUTTER_LIBRARY_HEADERS}\n  ${CPP_WRAPPER_SOURCES_CORE}\n  ${CPP_WRAPPER_SOURCES_PLUGIN}\n  ${CPP_WRAPPER_SOURCES_APP}\n)\n"
  },
  {
    "path": "example_old/windows/flutter/generated_plugin_registrant.cc",
    "content": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#include \"generated_plugin_registrant.h\"\n\n#include <file_selector_windows/file_selector_windows.h>\n\nvoid RegisterPlugins(flutter::PluginRegistry* registry) {\n  FileSelectorWindowsRegisterWithRegistrar(\n      registry->GetRegistrarForPlugin(\"FileSelectorWindows\"));\n}\n"
  },
  {
    "path": "example_old/windows/flutter/generated_plugin_registrant.h",
    "content": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#ifndef GENERATED_PLUGIN_REGISTRANT_\n#define GENERATED_PLUGIN_REGISTRANT_\n\n#include <flutter/plugin_registry.h>\n\n// Registers Flutter plugins.\nvoid RegisterPlugins(flutter::PluginRegistry* registry);\n\n#endif  // GENERATED_PLUGIN_REGISTRANT_\n"
  },
  {
    "path": "example_old/windows/flutter/generated_plugins.cmake",
    "content": "#\n# Generated file, do not edit.\n#\n\nlist(APPEND FLUTTER_PLUGIN_LIST\n  file_selector_windows\n)\n\nlist(APPEND FLUTTER_FFI_PLUGIN_LIST\n)\n\nset(PLUGIN_BUNDLED_LIBRARIES)\n\nforeach(plugin ${FLUTTER_PLUGIN_LIST})\n  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})\n  target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})\nendforeach(plugin)\n\nforeach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})\n  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})\n  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})\nendforeach(ffi_plugin)\n"
  },
  {
    "path": "example_old/windows/runner/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.14)\nproject(runner LANGUAGES CXX)\n\n# Define the application target. To change its name, change BINARY_NAME in the\n# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer\n# work.\n#\n# Any new source files that you add to the application should be added here.\nadd_executable(${BINARY_NAME} WIN32\n  \"flutter_window.cpp\"\n  \"main.cpp\"\n  \"utils.cpp\"\n  \"win32_window.cpp\"\n  \"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc\"\n  \"Runner.rc\"\n  \"runner.exe.manifest\"\n)\n\n# Apply the standard set of build settings. This can be removed for applications\n# that need different build settings.\napply_standard_settings(${BINARY_NAME})\n\n# Add preprocessor definitions for the build version.\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION=\\\"${FLUTTER_VERSION}\\\"\")\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}\")\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}\")\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}\")\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}\")\n\n# Disable Windows macros that collide with C++ standard library functions.\ntarget_compile_definitions(${BINARY_NAME} PRIVATE \"NOMINMAX\")\n\n# Add dependency libraries and include directories. Add any application-specific\n# dependencies here.\ntarget_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)\ntarget_link_libraries(${BINARY_NAME} PRIVATE \"dwmapi.lib\")\ntarget_include_directories(${BINARY_NAME} PRIVATE \"${CMAKE_SOURCE_DIR}\")\n\n# Run the Flutter tool portions of the build. This must not be removed.\nadd_dependencies(${BINARY_NAME} flutter_assemble)\n"
  },
  {
    "path": "example_old/windows/runner/Runner.rc",
    "content": "// Microsoft Visual C++ generated resource script.\n//\n#pragma code_page(65001)\n#include \"resource.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 2 resource.\n//\n#include \"winres.h\"\n\n/////////////////////////////////////////////////////////////////////////////\n#undef APSTUDIO_READONLY_SYMBOLS\n\n/////////////////////////////////////////////////////////////////////////////\n// English (United States) resources\n\n#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\nLANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\n\n#ifdef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// TEXTINCLUDE\n//\n\n1 TEXTINCLUDE\nBEGIN\n    \"resource.h\\0\"\nEND\n\n2 TEXTINCLUDE\nBEGIN\n    \"#include \"\"winres.h\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n3 TEXTINCLUDE\nBEGIN\n    \"\\r\\n\"\n    \"\\0\"\nEND\n\n#endif    // APSTUDIO_INVOKED\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Icon\n//\n\n// Icon with lowest ID value placed first to ensure application icon\n// remains consistent on all systems.\nIDI_APP_ICON            ICON                    \"resources\\\\app_icon.ico\"\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Version\n//\n\n#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD)\n#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD\n#else\n#define VERSION_AS_NUMBER 1,0,0,0\n#endif\n\n#if defined(FLUTTER_VERSION)\n#define VERSION_AS_STRING FLUTTER_VERSION\n#else\n#define VERSION_AS_STRING \"1.0.0\"\n#endif\n\nVS_VERSION_INFO VERSIONINFO\n FILEVERSION VERSION_AS_NUMBER\n PRODUCTVERSION VERSION_AS_NUMBER\n FILEFLAGSMASK VS_FFI_FILEFLAGSMASK\n#ifdef _DEBUG\n FILEFLAGS VS_FF_DEBUG\n#else\n FILEFLAGS 0x0L\n#endif\n FILEOS VOS__WINDOWS32\n FILETYPE VFT_APP\n FILESUBTYPE 0x0L\nBEGIN\n    BLOCK \"StringFileInfo\"\n    BEGIN\n        BLOCK \"040904e4\"\n        BEGIN\n            VALUE \"CompanyName\", \"com.example\" \"\\0\"\n            VALUE \"FileDescription\", \"example\" \"\\0\"\n            VALUE \"FileVersion\", VERSION_AS_STRING \"\\0\"\n            VALUE \"InternalName\", \"example\" \"\\0\"\n            VALUE \"LegalCopyright\", \"Copyright (C) 2023 com.example. All rights reserved.\" \"\\0\"\n            VALUE \"OriginalFilename\", \"example.exe\" \"\\0\"\n            VALUE \"ProductName\", \"example\" \"\\0\"\n            VALUE \"ProductVersion\", VERSION_AS_STRING \"\\0\"\n        END\n    END\n    BLOCK \"VarFileInfo\"\n    BEGIN\n        VALUE \"Translation\", 0x409, 1252\n    END\nEND\n\n#endif    // English (United States) resources\n/////////////////////////////////////////////////////////////////////////////\n\n\n\n#ifndef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 3 resource.\n//\n\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // not APSTUDIO_INVOKED\n"
  },
  {
    "path": "example_old/windows/runner/flutter_window.cpp",
    "content": "#include \"flutter_window.h\"\n\n#include <optional>\n\n#include \"flutter/generated_plugin_registrant.h\"\n\nFlutterWindow::FlutterWindow(const flutter::DartProject& project)\n    : project_(project) {}\n\nFlutterWindow::~FlutterWindow() {}\n\nbool FlutterWindow::OnCreate() {\n  if (!Win32Window::OnCreate()) {\n    return false;\n  }\n\n  RECT frame = GetClientArea();\n\n  // The size here must match the window dimensions to avoid unnecessary surface\n  // creation / destruction in the startup path.\n  flutter_controller_ = std::make_unique<flutter::FlutterViewController>(\n      frame.right - frame.left, frame.bottom - frame.top, project_);\n  // Ensure that basic setup of the controller was successful.\n  if (!flutter_controller_->engine() || !flutter_controller_->view()) {\n    return false;\n  }\n  RegisterPlugins(flutter_controller_->engine());\n  SetChildContent(flutter_controller_->view()->GetNativeWindow());\n\n  flutter_controller_->engine()->SetNextFrameCallback([&]() {\n    this->Show();\n  });\n\n  // Flutter can complete the first frame before the \"show window\" callback is\n  // registered. The following call ensures a frame is pending to ensure the\n  // window is shown. It is a no-op if the first frame hasn't completed yet.\n  flutter_controller_->ForceRedraw();\n\n  return true;\n}\n\nvoid FlutterWindow::OnDestroy() {\n  if (flutter_controller_) {\n    flutter_controller_ = nullptr;\n  }\n\n  Win32Window::OnDestroy();\n}\n\nLRESULT\nFlutterWindow::MessageHandler(HWND hwnd, UINT const message,\n                              WPARAM const wparam,\n                              LPARAM const lparam) noexcept {\n  // Give Flutter, including plugins, an opportunity to handle window messages.\n  if (flutter_controller_) {\n    std::optional<LRESULT> result =\n        flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam,\n                                                      lparam);\n    if (result) {\n      return *result;\n    }\n  }\n\n  switch (message) {\n    case WM_FONTCHANGE:\n      flutter_controller_->engine()->ReloadSystemFonts();\n      break;\n  }\n\n  return Win32Window::MessageHandler(hwnd, message, wparam, lparam);\n}\n"
  },
  {
    "path": "example_old/windows/runner/flutter_window.h",
    "content": "#ifndef RUNNER_FLUTTER_WINDOW_H_\n#define RUNNER_FLUTTER_WINDOW_H_\n\n#include <flutter/dart_project.h>\n#include <flutter/flutter_view_controller.h>\n\n#include <memory>\n\n#include \"win32_window.h\"\n\n// A window that does nothing but host a Flutter view.\nclass FlutterWindow : public Win32Window {\n public:\n  // Creates a new FlutterWindow hosting a Flutter view running |project|.\n  explicit FlutterWindow(const flutter::DartProject& project);\n  virtual ~FlutterWindow();\n\n protected:\n  // Win32Window:\n  bool OnCreate() override;\n  void OnDestroy() override;\n  LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam,\n                         LPARAM const lparam) noexcept override;\n\n private:\n  // The project to run.\n  flutter::DartProject project_;\n\n  // The Flutter instance hosted by this window.\n  std::unique_ptr<flutter::FlutterViewController> flutter_controller_;\n};\n\n#endif  // RUNNER_FLUTTER_WINDOW_H_\n"
  },
  {
    "path": "example_old/windows/runner/main.cpp",
    "content": "#include <flutter/dart_project.h>\n#include <flutter/flutter_view_controller.h>\n#include <windows.h>\n\n#include \"flutter_window.h\"\n#include \"utils.h\"\n\nint APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,\n                      _In_ wchar_t *command_line, _In_ int show_command) {\n  // Attach to console when present (e.g., 'flutter run') or create a\n  // new console when running with a debugger.\n  if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) {\n    CreateAndAttachConsole();\n  }\n\n  // Initialize COM, so that it is available for use in the library and/or\n  // plugins.\n  ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);\n\n  flutter::DartProject project(L\"data\");\n\n  std::vector<std::string> command_line_arguments =\n      GetCommandLineArguments();\n\n  project.set_dart_entrypoint_arguments(std::move(command_line_arguments));\n\n  FlutterWindow window(project);\n  Win32Window::Point origin(10, 10);\n  Win32Window::Size size(1280, 720);\n  if (!window.Create(L\"example\", origin, size)) {\n    return EXIT_FAILURE;\n  }\n  window.SetQuitOnClose(true);\n\n  ::MSG msg;\n  while (::GetMessage(&msg, nullptr, 0, 0)) {\n    ::TranslateMessage(&msg);\n    ::DispatchMessage(&msg);\n  }\n\n  ::CoUninitialize();\n  return EXIT_SUCCESS;\n}\n"
  },
  {
    "path": "example_old/windows/runner/resource.h",
    "content": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by Runner.rc\n//\n#define IDI_APP_ICON                    101\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n#define _APS_NEXT_RESOURCE_VALUE        102\n#define _APS_NEXT_COMMAND_VALUE         40001\n#define _APS_NEXT_CONTROL_VALUE         1001\n#define _APS_NEXT_SYMED_VALUE           101\n#endif\n#endif\n"
  },
  {
    "path": "example_old/windows/runner/runner.exe.manifest",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\n  <application xmlns=\"urn:schemas-microsoft-com:asm.v3\">\n    <windowsSettings>\n      <dpiAwareness xmlns=\"http://schemas.microsoft.com/SMI/2016/WindowsSettings\">PerMonitorV2</dpiAwareness>\n    </windowsSettings>\n  </application>\n  <compatibility xmlns=\"urn:schemas-microsoft-com:compatibility.v1\">\n    <application>\n      <!-- Windows 10 and Windows 11 -->\n      <supportedOS Id=\"{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}\"/>\n      <!-- Windows 8.1 -->\n      <supportedOS Id=\"{1f676c76-80e1-4239-95bb-83d0f6d0da78}\"/>\n      <!-- Windows 8 -->\n      <supportedOS Id=\"{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}\"/>\n      <!-- Windows 7 -->\n      <supportedOS Id=\"{35138b9a-5d96-4fbd-8e2d-a2440225f93a}\"/>\n    </application>\n  </compatibility>\n</assembly>\n"
  },
  {
    "path": "example_old/windows/runner/utils.cpp",
    "content": "#include \"utils.h\"\n\n#include <flutter_windows.h>\n#include <io.h>\n#include <stdio.h>\n#include <windows.h>\n\n#include <iostream>\n\nvoid CreateAndAttachConsole() {\n  if (::AllocConsole()) {\n    FILE *unused;\n    if (freopen_s(&unused, \"CONOUT$\", \"w\", stdout)) {\n      _dup2(_fileno(stdout), 1);\n    }\n    if (freopen_s(&unused, \"CONOUT$\", \"w\", stderr)) {\n      _dup2(_fileno(stdout), 2);\n    }\n    std::ios::sync_with_stdio();\n    FlutterDesktopResyncOutputStreams();\n  }\n}\n\nstd::vector<std::string> GetCommandLineArguments() {\n  // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use.\n  int argc;\n  wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc);\n  if (argv == nullptr) {\n    return std::vector<std::string>();\n  }\n\n  std::vector<std::string> command_line_arguments;\n\n  // Skip the first argument as it's the binary name.\n  for (int i = 1; i < argc; i++) {\n    command_line_arguments.push_back(Utf8FromUtf16(argv[i]));\n  }\n\n  ::LocalFree(argv);\n\n  return command_line_arguments;\n}\n\nstd::string Utf8FromUtf16(const wchar_t* utf16_string) {\n  if (utf16_string == nullptr) {\n    return std::string();\n  }\n  int target_length = ::WideCharToMultiByte(\n      CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,\n      -1, nullptr, 0, nullptr, nullptr)\n    -1; // remove the trailing null character\n  int input_length = (int)wcslen(utf16_string);\n  std::string utf8_string;\n  if (target_length <= 0 || target_length > utf8_string.max_size()) {\n    return utf8_string;\n  }\n  utf8_string.resize(target_length);\n  int converted_length = ::WideCharToMultiByte(\n      CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,\n      input_length, utf8_string.data(), target_length, nullptr, nullptr);\n  if (converted_length == 0) {\n    return std::string();\n  }\n  return utf8_string;\n}\n"
  },
  {
    "path": "example_old/windows/runner/utils.h",
    "content": "#ifndef RUNNER_UTILS_H_\n#define RUNNER_UTILS_H_\n\n#include <string>\n#include <vector>\n\n// Creates a console for the process, and redirects stdout and stderr to\n// it for both the runner and the Flutter library.\nvoid CreateAndAttachConsole();\n\n// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string\n// encoded in UTF-8. Returns an empty std::string on failure.\nstd::string Utf8FromUtf16(const wchar_t* utf16_string);\n\n// Gets the command line arguments passed in as a std::vector<std::string>,\n// encoded in UTF-8. Returns an empty std::vector<std::string> on failure.\nstd::vector<std::string> GetCommandLineArguments();\n\n#endif  // RUNNER_UTILS_H_\n"
  },
  {
    "path": "example_old/windows/runner/win32_window.cpp",
    "content": "#include \"win32_window.h\"\n\n#include <dwmapi.h>\n#include <flutter_windows.h>\n\n#include \"resource.h\"\n\nnamespace {\n\n/// Window attribute that enables dark mode window decorations.\n///\n/// Redefined in case the developer's machine has a Windows SDK older than\n/// version 10.0.22000.0.\n/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute\n#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE\n#define DWMWA_USE_IMMERSIVE_DARK_MODE 20\n#endif\n\nconstexpr const wchar_t kWindowClassName[] = L\"FLUTTER_RUNNER_WIN32_WINDOW\";\n\n/// Registry key for app theme preference.\n///\n/// A value of 0 indicates apps should use dark mode. A non-zero or missing\n/// value indicates apps should use light mode.\nconstexpr const wchar_t kGetPreferredBrightnessRegKey[] =\n  L\"Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Themes\\\\Personalize\";\nconstexpr const wchar_t kGetPreferredBrightnessRegValue[] = L\"AppsUseLightTheme\";\n\n// The number of Win32Window objects that currently exist.\nstatic int g_active_window_count = 0;\n\nusing EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd);\n\n// Scale helper to convert logical scaler values to physical using passed in\n// scale factor\nint Scale(int source, double scale_factor) {\n  return static_cast<int>(source * scale_factor);\n}\n\n// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module.\n// This API is only needed for PerMonitor V1 awareness mode.\nvoid EnableFullDpiSupportIfAvailable(HWND hwnd) {\n  HMODULE user32_module = LoadLibraryA(\"User32.dll\");\n  if (!user32_module) {\n    return;\n  }\n  auto enable_non_client_dpi_scaling =\n      reinterpret_cast<EnableNonClientDpiScaling*>(\n          GetProcAddress(user32_module, \"EnableNonClientDpiScaling\"));\n  if (enable_non_client_dpi_scaling != nullptr) {\n    enable_non_client_dpi_scaling(hwnd);\n  }\n  FreeLibrary(user32_module);\n}\n\n}  // namespace\n\n// Manages the Win32Window's window class registration.\nclass WindowClassRegistrar {\n public:\n  ~WindowClassRegistrar() = default;\n\n  // Returns the singleton registrar instance.\n  static WindowClassRegistrar* GetInstance() {\n    if (!instance_) {\n      instance_ = new WindowClassRegistrar();\n    }\n    return instance_;\n  }\n\n  // Returns the name of the window class, registering the class if it hasn't\n  // previously been registered.\n  const wchar_t* GetWindowClass();\n\n  // Unregisters the window class. Should only be called if there are no\n  // instances of the window.\n  void UnregisterWindowClass();\n\n private:\n  WindowClassRegistrar() = default;\n\n  static WindowClassRegistrar* instance_;\n\n  bool class_registered_ = false;\n};\n\nWindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr;\n\nconst wchar_t* WindowClassRegistrar::GetWindowClass() {\n  if (!class_registered_) {\n    WNDCLASS window_class{};\n    window_class.hCursor = LoadCursor(nullptr, IDC_ARROW);\n    window_class.lpszClassName = kWindowClassName;\n    window_class.style = CS_HREDRAW | CS_VREDRAW;\n    window_class.cbClsExtra = 0;\n    window_class.cbWndExtra = 0;\n    window_class.hInstance = GetModuleHandle(nullptr);\n    window_class.hIcon =\n        LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON));\n    window_class.hbrBackground = 0;\n    window_class.lpszMenuName = nullptr;\n    window_class.lpfnWndProc = Win32Window::WndProc;\n    RegisterClass(&window_class);\n    class_registered_ = true;\n  }\n  return kWindowClassName;\n}\n\nvoid WindowClassRegistrar::UnregisterWindowClass() {\n  UnregisterClass(kWindowClassName, nullptr);\n  class_registered_ = false;\n}\n\nWin32Window::Win32Window() {\n  ++g_active_window_count;\n}\n\nWin32Window::~Win32Window() {\n  --g_active_window_count;\n  Destroy();\n}\n\nbool Win32Window::Create(const std::wstring& title,\n                         const Point& origin,\n                         const Size& size) {\n  Destroy();\n\n  const wchar_t* window_class =\n      WindowClassRegistrar::GetInstance()->GetWindowClass();\n\n  const POINT target_point = {static_cast<LONG>(origin.x),\n                              static_cast<LONG>(origin.y)};\n  HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST);\n  UINT dpi = FlutterDesktopGetDpiForMonitor(monitor);\n  double scale_factor = dpi / 96.0;\n\n  HWND window = CreateWindow(\n      window_class, title.c_str(), WS_OVERLAPPEDWINDOW,\n      Scale(origin.x, scale_factor), Scale(origin.y, scale_factor),\n      Scale(size.width, scale_factor), Scale(size.height, scale_factor),\n      nullptr, nullptr, GetModuleHandle(nullptr), this);\n\n  if (!window) {\n    return false;\n  }\n\n  UpdateTheme(window);\n\n  return OnCreate();\n}\n\nbool Win32Window::Show() {\n  return ShowWindow(window_handle_, SW_SHOWNORMAL);\n}\n\n// static\nLRESULT CALLBACK Win32Window::WndProc(HWND const window,\n                                      UINT const message,\n                                      WPARAM const wparam,\n                                      LPARAM const lparam) noexcept {\n  if (message == WM_NCCREATE) {\n    auto window_struct = reinterpret_cast<CREATESTRUCT*>(lparam);\n    SetWindowLongPtr(window, GWLP_USERDATA,\n                     reinterpret_cast<LONG_PTR>(window_struct->lpCreateParams));\n\n    auto that = static_cast<Win32Window*>(window_struct->lpCreateParams);\n    EnableFullDpiSupportIfAvailable(window);\n    that->window_handle_ = window;\n  } else if (Win32Window* that = GetThisFromHandle(window)) {\n    return that->MessageHandler(window, message, wparam, lparam);\n  }\n\n  return DefWindowProc(window, message, wparam, lparam);\n}\n\nLRESULT\nWin32Window::MessageHandler(HWND hwnd,\n                            UINT const message,\n                            WPARAM const wparam,\n                            LPARAM const lparam) noexcept {\n  switch (message) {\n    case WM_DESTROY:\n      window_handle_ = nullptr;\n      Destroy();\n      if (quit_on_close_) {\n        PostQuitMessage(0);\n      }\n      return 0;\n\n    case WM_DPICHANGED: {\n      auto newRectSize = reinterpret_cast<RECT*>(lparam);\n      LONG newWidth = newRectSize->right - newRectSize->left;\n      LONG newHeight = newRectSize->bottom - newRectSize->top;\n\n      SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth,\n                   newHeight, SWP_NOZORDER | SWP_NOACTIVATE);\n\n      return 0;\n    }\n    case WM_SIZE: {\n      RECT rect = GetClientArea();\n      if (child_content_ != nullptr) {\n        // Size and position the child window.\n        MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left,\n                   rect.bottom - rect.top, TRUE);\n      }\n      return 0;\n    }\n\n    case WM_ACTIVATE:\n      if (child_content_ != nullptr) {\n        SetFocus(child_content_);\n      }\n      return 0;\n\n    case WM_DWMCOLORIZATIONCOLORCHANGED:\n      UpdateTheme(hwnd);\n      return 0;\n  }\n\n  return DefWindowProc(window_handle_, message, wparam, lparam);\n}\n\nvoid Win32Window::Destroy() {\n  OnDestroy();\n\n  if (window_handle_) {\n    DestroyWindow(window_handle_);\n    window_handle_ = nullptr;\n  }\n  if (g_active_window_count == 0) {\n    WindowClassRegistrar::GetInstance()->UnregisterWindowClass();\n  }\n}\n\nWin32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept {\n  return reinterpret_cast<Win32Window*>(\n      GetWindowLongPtr(window, GWLP_USERDATA));\n}\n\nvoid Win32Window::SetChildContent(HWND content) {\n  child_content_ = content;\n  SetParent(content, window_handle_);\n  RECT frame = GetClientArea();\n\n  MoveWindow(content, frame.left, frame.top, frame.right - frame.left,\n             frame.bottom - frame.top, true);\n\n  SetFocus(child_content_);\n}\n\nRECT Win32Window::GetClientArea() {\n  RECT frame;\n  GetClientRect(window_handle_, &frame);\n  return frame;\n}\n\nHWND Win32Window::GetHandle() {\n  return window_handle_;\n}\n\nvoid Win32Window::SetQuitOnClose(bool quit_on_close) {\n  quit_on_close_ = quit_on_close;\n}\n\nbool Win32Window::OnCreate() {\n  // No-op; provided for subclasses.\n  return true;\n}\n\nvoid Win32Window::OnDestroy() {\n  // No-op; provided for subclasses.\n}\n\nvoid Win32Window::UpdateTheme(HWND const window) {\n  DWORD light_mode;\n  DWORD light_mode_size = sizeof(light_mode);\n  LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey,\n                               kGetPreferredBrightnessRegValue,\n                               RRF_RT_REG_DWORD, nullptr, &light_mode,\n                               &light_mode_size);\n\n  if (result == ERROR_SUCCESS) {\n    BOOL enable_dark_mode = light_mode == 0;\n    DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE,\n                          &enable_dark_mode, sizeof(enable_dark_mode));\n  }\n}\n"
  },
  {
    "path": "example_old/windows/runner/win32_window.h",
    "content": "#ifndef RUNNER_WIN32_WINDOW_H_\n#define RUNNER_WIN32_WINDOW_H_\n\n#include <windows.h>\n\n#include <functional>\n#include <memory>\n#include <string>\n\n// A class abstraction for a high DPI-aware Win32 Window. Intended to be\n// inherited from by classes that wish to specialize with custom\n// rendering and input handling\nclass Win32Window {\n public:\n  struct Point {\n    unsigned int x;\n    unsigned int y;\n    Point(unsigned int x, unsigned int y) : x(x), y(y) {}\n  };\n\n  struct Size {\n    unsigned int width;\n    unsigned int height;\n    Size(unsigned int width, unsigned int height)\n        : width(width), height(height) {}\n  };\n\n  Win32Window();\n  virtual ~Win32Window();\n\n  // Creates a win32 window with |title| that is positioned and sized using\n  // |origin| and |size|. New windows are created on the default monitor. Window\n  // sizes are specified to the OS in physical pixels, hence to ensure a\n  // consistent size this function will scale the inputted width and height as\n  // as appropriate for the default monitor. The window is invisible until\n  // |Show| is called. Returns true if the window was created successfully.\n  bool Create(const std::wstring& title, const Point& origin, const Size& size);\n\n  // Show the current window. Returns true if the window was successfully shown.\n  bool Show();\n\n  // Release OS resources associated with window.\n  void Destroy();\n\n  // Inserts |content| into the window tree.\n  void SetChildContent(HWND content);\n\n  // Returns the backing Window handle to enable clients to set icon and other\n  // window properties. Returns nullptr if the window has been destroyed.\n  HWND GetHandle();\n\n  // If true, closing this window will quit the application.\n  void SetQuitOnClose(bool quit_on_close);\n\n  // Return a RECT representing the bounds of the current client area.\n  RECT GetClientArea();\n\n protected:\n  // Processes and route salient window messages for mouse handling,\n  // size change and DPI. Delegates handling of these to member overloads that\n  // inheriting classes can handle.\n  virtual LRESULT MessageHandler(HWND window,\n                                 UINT const message,\n                                 WPARAM const wparam,\n                                 LPARAM const lparam) noexcept;\n\n  // Called when CreateAndShow is called, allowing subclass window-related\n  // setup. Subclasses should return false if setup fails.\n  virtual bool OnCreate();\n\n  // Called when Destroy is called.\n  virtual void OnDestroy();\n\n private:\n  friend class WindowClassRegistrar;\n\n  // OS callback called by message pump. Handles the WM_NCCREATE message which\n  // is passed when the non-client area is being created and enables automatic\n  // non-client DPI scaling so that the non-client area automatically\n  // responds to changes in DPI. All other messages are handled by\n  // MessageHandler.\n  static LRESULT CALLBACK WndProc(HWND const window,\n                                  UINT const message,\n                                  WPARAM const wparam,\n                                  LPARAM const lparam) noexcept;\n\n  // Retrieves a class instance pointer for |window|\n  static Win32Window* GetThisFromHandle(HWND const window) noexcept;\n\n  // Update the window frame's theme to match the system theme.\n  static void UpdateTheme(HWND const window);\n\n  bool quit_on_close_ = false;\n\n  // window handle for top level window.\n  HWND window_handle_ = nullptr;\n\n  // window handle for hosted content.\n  HWND child_content_ = nullptr;\n};\n\n#endif  // RUNNER_WIN32_WINDOW_H_\n"
  },
  {
    "path": "lib/flutter_gemini.dart",
    "content": "library flutter_gemini;\n\nexport 'src/init.dart';\nexport 'src/models/gemini_model/gemini_model.dart';\nexport 'src/models/candidates/candidates.dart';\nexport 'src/models/gemini_response/gemini_response.dart';\nexport 'src/models/gemini_safety/gemini_safety.dart';\nexport 'src/models/content/content.dart';\nexport 'src/models/parts/parts.dart';\nexport 'src/models/generation_config/generation_config.dart';\nexport 'src/models/gemini_safety/gemini_safety_category.dart';\nexport 'src/models/gemini_safety/gemini_safety_threshold.dart';\nexport 'src/utils/candidate_extension.dart';\nexport 'src/utils/gemini_exception.dart';\n\nexport 'src/models/part/part.dart'\n    show FileDataPart, FilePart, TextPart, Part, InlineData, InlinePart;\n"
  },
  {
    "path": "lib/src/config/constants.dart",
    "content": "import '../models/gemini_model/gemini_model.dart';\n\nclass Constants {\n  Constants._();\n\n  static const String defaultModel = 'models/gemini-2.5-flash';\n  static const String defaultVersion = 'v1';\n  static const String defaultGenerateType = 'generateContent';\n  static const String baseUrl = 'https://generativelanguage.googleapis.com/';\n\n  static List<GeminiModel> get geminiDefaultModels => [\n        {\n          \"name\": \"models/gemini-2.5-pro\",\n          \"version\": \"001\",\n          \"displayName\": \"Gemini 2.5 Pro\",\n          \"description\":\n              \"Our most powerful thinking model with maximum response accuracy and state-of-the-art performance. Best for complex coding, reasoning, and multimodal understanding.\",\n          \"inputTokenLimit\": 1048576,\n          \"outputTokenLimit\": 65536,\n          \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n          \"temperature\": 0.9,\n          \"topP\": 1,\n          \"topK\": 32\n        },\n        {\n          \"name\": \"models/gemini-2.5-flash\",\n          \"version\": \"001\",\n          \"displayName\": \"Gemini 2.5 Flash\",\n          \"description\":\n              \"Our best model in terms of price-performance, offering well-rounded capabilities. Best for low latency, high volume tasks that require thinking.\",\n          \"inputTokenLimit\": 1048576,\n          \"outputTokenLimit\": 65536,\n          \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n          \"temperature\": 0.4,\n          \"topP\": 1,\n          \"topK\": 32\n        },\n        {\n          \"name\": \"models/gemini-2.5-flash-lite\",\n          \"version\": \"001\",\n          \"displayName\": \"Gemini 2.5 Flash-Lite\",\n          \"description\":\n              \"A Gemini 2.5 Flash model optimized for cost-efficiency and high throughput.\",\n          \"inputTokenLimit\": 1048576,\n          \"outputTokenLimit\": 65536,\n          \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n          \"temperature\": 0.4,\n          \"topP\": 1,\n          \"topK\": 32\n        },\n        {\n          \"name\": \"models/gemini-2.0-flash-001\",\n          \"version\": \"001\",\n          \"displayName\": \"Gemini 2.0 Flash\",\n          \"description\":\n              \"Second generation model with next-gen features including superior speed, native tool use, and 1M token context window.\",\n          \"inputTokenLimit\": 1048576,\n          \"outputTokenLimit\": 8192,\n          \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n          \"temperature\": 0.4,\n          \"topP\": 1,\n          \"topK\": 32\n        },\n        {\n          \"name\": \"models/gemini-2.0-flash-lite-001\",\n          \"version\": \"001\",\n          \"displayName\": \"Gemini 2.0 Flash-Lite\",\n          \"description\":\n              \"A Gemini 2.0 Flash model optimized for cost efficiency and low latency.\",\n          \"inputTokenLimit\": 1048576,\n          \"outputTokenLimit\": 8192,\n          \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n          \"temperature\": 0.4,\n          \"topP\": 1,\n          \"topK\": 32\n        },\n        {\n          \"name\": \"models/gemini-1.5-flash\",\n          \"version\": \"002\",\n          \"displayName\": \"Gemini 1.5 Flash\",\n          \"description\":\n              \"Fast and versatile multimodal model for scaling across diverse tasks. (Previous generation)\",\n          \"inputTokenLimit\": 1048576,\n          \"outputTokenLimit\": 8192,\n          \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n          \"temperature\": 0.4,\n          \"topP\": 1,\n          \"topK\": 32\n        },\n        {\n          \"name\": \"models/gemini-1.5-pro\",\n          \"version\": \"002\",\n          \"displayName\": \"Gemini 1.5 Pro\",\n          \"description\":\n              \"Mid-size multimodal model optimized for wide-range reasoning tasks. Can process large amounts of data. (Previous generation)\",\n          \"inputTokenLimit\": 2097152,\n          \"outputTokenLimit\": 8192,\n          \"supportedGenerationMethods\": [\"generateContent\", \"countTokens\"],\n          \"temperature\": 0.9,\n          \"topP\": 1,\n          \"topK\": 32\n        },\n        {\n          \"name\": \"models/gemini-embedding-001\",\n          \"version\": \"001\",\n          \"displayName\": \"Gemini Embedding\",\n          \"description\":\n              \"Obtain a distributed representation of a text with latest embedding capabilities.\",\n          \"inputTokenLimit\": 2048,\n          \"outputTokenLimit\": 1,\n          \"supportedGenerationMethods\": [\"embedContent\", \"countTokens\"]\n        },\n        {\n          \"name\": \"models/text-embedding-005\",\n          \"version\": \"005\",\n          \"displayName\": \"Text Embedding 005\",\n          \"description\":\n              \"Latest text embedding model with improved performance.\",\n          \"inputTokenLimit\": 2048,\n          \"outputTokenLimit\": 1,\n          \"supportedGenerationMethods\": [\"embedContent\", \"countTokens\"]\n        },\n        {\n          \"name\": \"models/text-embedding-004\",\n          \"version\": \"004\",\n          \"displayName\": \"Text Embedding 004\",\n          \"description\": \"Text embedding model with robust performance.\",\n          \"inputTokenLimit\": 2048,\n          \"outputTokenLimit\": 1,\n          \"supportedGenerationMethods\": [\"embedContent\", \"countTokens\"]\n        },\n        {\n          \"name\": \"models/text-multilingual-embedding-002\",\n          \"version\": \"002\",\n          \"displayName\": \"Multilingual Text Embedding\",\n          \"description\":\n              \"Multilingual text embedding model supporting various languages.\",\n          \"inputTokenLimit\": 2048,\n          \"outputTokenLimit\": 1,\n          \"supportedGenerationMethods\": [\"embedContent\", \"countTokens\"]\n        }\n      ].map((e) => GeminiModel.fromJson(e)).toList();\n\n  static List<GeminiModel> get geminiLiveModels => [\n        {\n          \"name\": \"models/gemini-live-2.5-flash-preview\",\n          \"version\": \"preview\",\n          \"displayName\": \"Gemini 2.5 Flash Live\",\n          \"description\":\n              \"Low-latency bidirectional voice and video interactions with Gemini 2.5 Flash.\",\n          \"inputTokenLimit\": 1048576,\n          \"outputTokenLimit\": 8192,\n          \"supportedGenerationMethods\": [\"generateContent\", \"liveApi\"],\n          \"temperature\": 0.4,\n          \"topP\": 1,\n          \"topK\": 32\n        },\n        {\n          \"name\": \"models/gemini-2.0-flash-live-001\",\n          \"version\": \"001\",\n          \"displayName\": \"Gemini 2.0 Flash Live\",\n          \"description\":\n              \"Low-latency bidirectional voice and video interactions with Gemini 2.0 Flash.\",\n          \"inputTokenLimit\": 1048576,\n          \"outputTokenLimit\": 8192,\n          \"supportedGenerationMethods\": [\"generateContent\", \"liveApi\"],\n          \"temperature\": 0.4,\n          \"topP\": 1,\n          \"topK\": 32\n        }\n      ].map((e) => GeminiModel.fromJson(e)).toList();\n\n  static List<GeminiModel> get geminiSpecializedModels => [\n        {\n          \"name\": \"models/gemini-2.5-flash-image-preview\",\n          \"version\": \"preview\",\n          \"displayName\": \"Gemini 2.5 Flash Image\",\n          \"description\":\n              \"Generate and edit images conversationally with Gemini 2.5 Flash.\",\n          \"inputTokenLimit\": 32768,\n          \"outputTokenLimit\": 32768,\n          \"supportedGenerationMethods\": [\"generateContent\", \"imageGeneration\"]\n        },\n        {\n          \"name\": \"models/gemini-2.0-flash-preview-image-generation\",\n          \"version\": \"preview\",\n          \"displayName\": \"Gemini 2.0 Flash Image Generation\",\n          \"description\":\n              \"Generate and edit images conversationally with Gemini 2.0 Flash.\",\n          \"inputTokenLimit\": 32000,\n          \"outputTokenLimit\": 8192,\n          \"supportedGenerationMethods\": [\"generateContent\", \"imageGeneration\"]\n        },\n        {\n          \"name\": \"models/gemini-2.5-flash-preview-tts\",\n          \"version\": \"preview\",\n          \"displayName\": \"Gemini 2.5 Flash TTS\",\n          \"description\":\n              \"Price-performant text-to-speech model with high control and transparency.\",\n          \"inputTokenLimit\": 8000,\n          \"outputTokenLimit\": 16000,\n          \"supportedGenerationMethods\": [\"textToSpeech\"]\n        },\n        {\n          \"name\": \"models/gemini-2.5-pro-preview-tts\",\n          \"version\": \"preview\",\n          \"displayName\": \"Gemini 2.5 Pro TTS\",\n          \"description\":\n              \"Most powerful text-to-speech model with high control and transparency.\",\n          \"inputTokenLimit\": 8000,\n          \"outputTokenLimit\": 16000,\n          \"supportedGenerationMethods\": [\"textToSpeech\"]\n        }\n      ].map((e) => GeminiModel.fromJson(e)).toList();\n\n  static List<GeminiModel> get allGeminiModels => [\n        ...geminiDefaultModels,\n        ...geminiLiveModels,\n        ...geminiSpecializedModels,\n      ];\n}\n"
  },
  {
    "path": "lib/src/implement/gemini_implement.dart",
    "content": "import 'dart:async';\nimport 'dart:typed_data';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport 'package:flutter_gemini/src/config/constants.dart';\nimport 'package:flutter_gemini/src/utils/gemini_data_builder.dart';\nimport 'package:flutter_gemini/src/utils/gemini_model_manager.dart';\nimport 'package:flutter_gemini/src/utils/gemini_request_handler.dart';\nimport 'package:flutter_gemini/src/utils/gemini_response_parser.dart';\nimport 'package:flutter_gemini/src/repository/gemini_interface.dart';\nimport 'gemini_service.dart';\n\n/// [GeminiImpl]\n/// In this class we declare and implement all the functions body\nclass GeminiImpl implements GeminiInterface {\n  final GeminiService _api;\n  final GeminiRequestHandler _requestHandler;\n  final GeminiModelManager _modelManager;\n\n  GeminiImpl({\n    required GeminiService api,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  })  : _api = api,\n        _requestHandler = GeminiRequestHandler(api),\n        _modelManager = GeminiModelManager(api) {\n    _api\n      ..safetySettings = safetySettings\n      ..generationConfig = generationConfig;\n  }\n\n  @override\n  Future<List<List<num>?>?> batchEmbedContents(\n    List<String> texts, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: modelName, expectedModel: 'embedding-001');\n    return _requestHandler.executeRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:batchEmbedContents',\n      data: GeminiDataBuilder.buildBatchEmbedData(texts),\n      responseParser: GeminiResponseParser.parseBatchEmbeddingResponse,\n    );\n  }\n\n  @override\n  Future<Candidates?> chat(\n    List<Content> chats, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n    String? systemPrompt,\n  }) async {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: modelName, expectedModel: Constants.defaultModel);\n    return _requestHandler.executeRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:${Constants.defaultGenerateType}',\n      data: GeminiDataBuilder.buildChatData(chats, systemPrompt),\n      responseParser: GeminiResponseParser.parseGenerateResponse,\n    );\n  }\n\n  @override\n  Future<int?> countTokens(\n    String text, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: modelName, expectedModel: Constants.defaultModel);\n    return _requestHandler.executeRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:countTokens',\n      data: GeminiDataBuilder.buildTextData(text),\n      responseParser: (data) => data['totalTokens'],\n    );\n  }\n\n  @override\n  Future<List<num>?> embedContent(\n    String text, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: modelName, expectedModel: 'embedding-001');\n    return _requestHandler.executeRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:embedContent',\n      data: GeminiDataBuilder.buildEmbedData(text),\n      responseParser: (data) =>\n          (data['embedding']['values'] as List).cast<num>(),\n    );\n  }\n\n  @override\n  Future<GeminiModel> info({required String model}) async {\n    return _requestHandler.executeRequest(\n      endpoint: '${Constants.baseUrl}${Constants.defaultVersion}/$model',\n      isGetRequest: true,\n      responseParser: (data) => GeminiModel.fromJson(data),\n    );\n  }\n\n  @override\n  Future<List<GeminiModel>> listModels() async {\n    return _requestHandler.executeRequest(\n      endpoint: '${Constants.baseUrl}${Constants.defaultVersion}/models',\n      isGetRequest: true,\n      responseParser: (data) => GeminiModel.jsonToList(data['models']),\n    );\n  }\n\n  @override\n  Future<Candidates?> text(\n    String text, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: modelName, expectedModel: Constants.defaultModel);\n    final candidate = await _requestHandler.executeRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:${Constants.defaultGenerateType}',\n      data: GeminiDataBuilder.buildTextData(text),\n      responseParser: GeminiResponseParser.parseGenerateResponse,\n    );\n    Gemini.instance.typeProvider?.add(candidate?.output);\n    return candidate;\n  }\n\n  @override\n  Future<Candidates?> textAndImage({\n    required String text,\n    required List<Uint8List> images,\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: modelName, expectedModel: 'gemini-1.5-flash');\n    return _requestHandler.executeRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:${Constants.defaultGenerateType}',\n      data: GeminiDataBuilder.buildTextAndImageData(text, images),\n      responseParser: GeminiResponseParser.parseGenerateResponse,\n    );\n  }\n\n  @override\n  Future<Candidates?> prompt({\n    required List<Part> parts,\n    String? model,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: model, expectedModel: Constants.defaultModel);\n    return _requestHandler.executeRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:${Constants.defaultGenerateType}',\n      data: GeminiDataBuilder.buildPromptData(parts),\n      responseParser: GeminiResponseParser.parseGenerateResponse,\n    );\n  }\n\n  @override\n  Stream<Candidates> streamChat(\n    List<Content> chats, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async* {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: modelName, expectedModel: Constants.defaultModel);\n    yield* _requestHandler.executeStreamRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:streamGenerateContent',\n      data: GeminiDataBuilder.buildChatData(chats, null),\n    );\n  }\n\n  @override\n  Stream<Candidates> streamGenerateContent(\n    String text, {\n    List<Uint8List>? images,\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async* {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: modelName, expectedModel: Constants.defaultModel);\n    yield* _requestHandler.executeStreamRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:streamGenerateContent',\n      data: GeminiDataBuilder.buildTextAndImageData(text, images),\n    );\n  }\n\n  @override\n  Stream<Candidates?> promptStream({\n    required List<Part> parts,\n    String? model,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) async* {\n    final resolvedModel = await _modelManager.resolveModelName(\n        userModel: model, expectedModel: Constants.defaultModel);\n    yield* _requestHandler.executeStreamRequest(\n      endpoint:\n          '${Constants.baseUrl}${Constants.defaultVersion}/$resolvedModel:streamGenerateContent',\n      data: GeminiDataBuilder.buildPromptData(parts),\n    );\n  }\n\n  @override\n  Future<void> cancelRequest() => _api.cancelRequest();\n}\n"
  },
  {
    "path": "lib/src/implement/gemini_service.dart",
    "content": "import 'dart:convert';\nimport 'package:dio/dio.dart';\nimport 'package:flutter_gemini/src/repository/api_interface.dart';\nimport 'package:flutter_gemini/src/utils/gemini_exception_handler_mixin.dart';\nimport '../init.dart';\nimport '../models/gemini_safety/gemini_safety.dart';\nimport '../models/generation_config/generation_config.dart';\n\n/// [GeminiService] is an API helper service class that extends [ApiInterface] and mixes in [GeminiExceptionHandler].\n/// This service is used for making HTTP requests (POST, GET) to interact with the Gemini API.\nclass GeminiService extends ApiInterface with GeminiExceptionHandler {\n  final Dio dio; // Dio instance for making HTTP requests.\n  final String apiKey; // The API key for authenticating requests.\n  CancelToken? cancelToken; // Token used to cancel HTTP requests.\n\n  /// Constructor for [GeminiService]. Optionally enables logging for debugging.\n  GeminiService(this.dio, {required this.apiKey}) {\n    if ((Gemini.enableDebugging ?? false)) {\n      dio.interceptors.add(LogInterceptor(\n          requestBody: true,\n          responseBody: true)); // Adds logging if debugging is enabled.\n    }\n  }\n\n  /// Sends a POST request to the Gemini API.\n  ///\n  /// [route] is the endpoint route.\n  /// [data] contains the body of the request.\n  /// [generationConfig] configures generation parameters for the request.\n  /// [safetySettings] configures safety settings for the request.\n  /// [isStreamResponse] determines whether the response should be streamed.\n  @override\n  Future<Response> post(\n    String route, {\n    required Map<String, Object>? data,\n    GenerationConfig? generationConfig,\n    List<SafetySetting>? safetySettings,\n    bool isStreamResponse = false,\n  }) async {\n    cancelToken ??= CancelToken(); // Ensure cancelToken is initialized.\n\n    // If safetySettings are provided, include them in the request data.\n    if (safetySettings != null || this.safetySettings != null) {\n      final listSafetySettings = safetySettings ?? this.safetySettings ?? [];\n      final items = [];\n      for (final safetySetting in listSafetySettings) {\n        items.add({\n          'category': safetySetting.category.value,\n          'threshold': safetySetting.threshold.value,\n        });\n      }\n      data?['safetySettings'] = items; // Add safety settings to data.\n    }\n\n    // If generationConfig is provided, include it in the request data.\n    if (generationConfig != null || this.generationConfig != null) {\n      data?['generationConfig'] =\n          generationConfig?.toJson() ?? this.generationConfig?.toJson() ?? {};\n    }\n\n    // Make the POST request using Dio.\n    return handler(() => dio.post(\n          route,\n          data: jsonEncode(data), // Encode the data as JSON.\n          queryParameters: {\n            'key': apiKey\n          }, // Include the API key in the query parameters.\n          options: Options(\n              responseType: isStreamResponse == true\n                  ? ResponseType.stream\n                  : null), // Set response type if streaming is enabled.\n          cancelToken: cancelToken, // Attach the cancel token.\n        ));\n  }\n\n  /// Sends a GET request to the Gemini API.\n  ///\n  /// [route] is the endpoint route.\n  @override\n  Future<Response> get(String route) async {\n    cancelToken ??= CancelToken(); // Ensure cancelToken is initialized.\n\n    // Make the GET request using Dio.\n    return handler(() => dio.get(route,\n        queryParameters: {\n          'key': apiKey\n        }, // Include the API key in the query parameters.\n        cancelToken: cancelToken)); // Attach the cancel token.\n  }\n\n  /// Cancels an ongoing request if it exists.\n  Future<void> cancelRequest() async {\n    if (cancelToken != null) {\n      cancelToken!.cancel(); // Cancel the request.\n      cancelToken = null; // Nullify the cancel token.\n    }\n  }\n}\n"
  },
  {
    "path": "lib/src/init.dart",
    "content": "import 'dart:async';\nimport 'dart:typed_data';\nimport 'package:flutter_gemini/src/models/candidates/candidates.dart';\nimport 'package:flutter_gemini/src/models/part/part.dart';\nimport 'config/constants.dart';\nimport 'implement/gemini_service.dart';\nimport 'models/content/content.dart';\nimport 'models/gemini_model/gemini_model.dart';\nimport 'models/generation_config/generation_config.dart';\nimport 'repository/gemini_interface.dart';\nimport 'package:dio/dio.dart';\nimport 'implement/gemini_implement.dart';\nimport 'models/gemini_safety/gemini_safety.dart';\n\n/// [Gemini]\n/// Flutter Google Gemini SDK. Google Gemini is a set of cutting-edge large language models\n///   (LLMs) designed to be the driving force behind Google's future AI initiatives.\n///   implements [GeminiInterface]\n///   and [GeminiInterface] defines all methods of Gemini\n///   Here's a simple example of using this API:\n///\n/// ```dart\n/// const apiKey = 'AIza...';\n///\n/// void main() async {\n///   Gemini.init(apiKey: apiKey);\n///   final prompt = Gemini.instance.prompt(parts: [\n///     Part.text('Write a story about a magic backpack.'),\n///   ]);\n///   print(prompt?.output);\n/// }\n/// ```\nclass Gemini implements GeminiInterface {\n  /// [enableDebugging]\n  /// to see request progress\n  static bool? enableDebugging = false;\n\n  /// Private constructor for initializing the Gemini instance. This constructor\n  /// is used internally to configure the Gemini service with the necessary API key,\n  /// optional configuration settings, and safety options.\n  ///\n  /// **Parameters:**\n  /// - `apiKey` (required String): The API key required to authenticate requests.\n  /// - `baseURL` (optional String): The base URL for the API, defaults to a predefined constant if not provided.\n  /// - `headers` (optional Map<String, dynamic>): Custom headers to include in the API requests.\n  /// - `safetySettings` (optional List<SafetySetting>): Optional safety settings to apply to the API requests.\n  /// - `generationConfig` (optional GenerationConfig): Configuration related to text generation, such as model parameters.\n  /// - `version` (optional String): The API version to use. Defaults to a predefined constant if not provided.\n  /// - `disableAutoUpdateModelName` (optional bool, default false): Flag to disable auto-updating of the model name.\n  Gemini._({\n    /// [apiKey] is required property\n    required String apiKey,\n    String? baseURL,\n    Map<String, dynamic>? headers,\n\n    /// theses properties are optional\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n    String? version,\n    this.disableAutoUpdateModelName = false,\n  }) : _impl = GeminiImpl(\n          api: GeminiService(\n              Dio(BaseOptions(\n                baseUrl:\n                    '${baseURL ?? Constants.baseUrl}${version ?? Constants.defaultVersion}/',\n                contentType: 'application/json',\n                headers: headers,\n              )),\n              apiKey: apiKey),\n          safetySettings: safetySettings,\n          generationConfig: generationConfig,\n        );\n\n  /// singleton [instance] from main [Gemini] class\n  static late Gemini instance;\n  static bool _firstInit = true;\n\n  /// initial properties\n  ///  - [_impl] functions logic\n  GeminiImpl _impl;\n\n  /// [Gemini]\n  /// Flutter Google Gemini SDK. Google Gemini is a set of cutting-edge large language models\n  ///   (LLMs) designed to be the driving force behind Google's future AI initiatives.\n  ///   implements [GeminiInterface]\n  ///   and [GeminiInterface] defines all methods of Gemini\n  ///   Here's a simple example of using this API:\n  ///\n  /// ```dart\n  /// const apiKey = 'AIza...';\n  ///\n  /// void main() async {\n  ///   Gemini.init(apiKey: apiKey);\n  ///   final prompt = Gemini.instance.prompt(parts: [\n  ///     Part.text('Write a story about a magic backpack.'),\n  ///   ]);\n  ///   print(prompt?.output);\n  /// }\n  /// ```\n  /// /// Factory method to initialize and return a singleton instance of `Gemini`.\n  /// This method is used to configure and initialize the Gemini instance for the first time.\n  /// It ensures that only one instance of `Gemini` is created throughout the lifecycle of the application.\n  ///\n  /// **Parameters:**\n  /// - `apiKey` (required String): The API key for authenticating requests.\n  /// - `baseURL` (optional String): The base URL for the API.\n  /// - `headers` (optional Map<String, dynamic>): Custom headers for API requests.\n  /// - `safetySettings` (optional List<SafetySetting>): Safety settings to configure content filtering.\n  /// - `generationConfig` (optional GenerationConfig): Configuration for text generation.\n  /// - `enableDebugging` (optional bool): Flag to enable debugging (logs, verbose output).\n  /// - `version` (optional String): The API version to use.\n  /// - `disableAutoUpdateModelName` (default false): Flag to disable automatic model name updates.\n  factory Gemini.init({\n    required String apiKey,\n    String? baseURL,\n    Map<String, dynamic>? headers,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n    bool? enableDebugging,\n    String? version,\n    bool disableAutoUpdateModelName = false,\n  }) {\n    Gemini.enableDebugging = enableDebugging;\n    if (_firstInit) {\n      _firstInit = false;\n      instance = Gemini._(\n        apiKey: apiKey,\n        baseURL: baseURL,\n        headers: headers,\n        safetySettings: safetySettings,\n        generationConfig: generationConfig,\n        version: version,\n        disableAutoUpdateModelName: disableAutoUpdateModelName,\n      );\n    }\n    return instance;\n  }\n\n  factory Gemini.reInitialize({\n    required String apiKey,\n    String? baseURL,\n    Map<String, dynamic>? headers,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n    bool? enableDebugging,\n    String? version,\n    bool disableAutoUpdateModelName = false,\n  }) {\n    Gemini.enableDebugging = enableDebugging;\n    instance = Gemini._(\n      apiKey: apiKey,\n      baseURL: baseURL,\n      headers: headers,\n      safetySettings: safetySettings,\n      generationConfig: generationConfig,\n      version: version,\n      disableAutoUpdateModelName: disableAutoUpdateModelName,\n    );\n    return instance;\n  }\n\n  /// Facilitates a chat interaction by processing a list of `Content` objects\n  /// (representing chat messages) and generating a response.\n  ///\n  /// **Parameters:**\n  /// - `chats` (List<Content>): A list of chat messages in the conversation. Each\n  ///   message is represented as a `Content` object.\n  /// - `modelName` (String?, optional): The name of the AI model to use for the\n  ///   chat. Defaults to the system's preferred model if not provided.\n  /// - `safetySettings` (List<SafetySetting>?, optional): Configures safety\n  ///   settings for the response, such as filtering sensitive content.\n  /// - `generationConfig` (GenerationConfig?, optional): Controls the response\n  ///   generation behavior, like maximum length, temperature, etc.\n  /// - `systemPrompt` (String?, optional): A custom system-level prompt to guide\n  ///   the AI's behavior throughout the conversation.\n  ///\n  /// **Returns:**\n  /// - `Future<Candidates?>`: A future that resolves to a `Candidates` object\n  ///   containing the AI's response. Returns `null` if the process fails.\n  ///\n  /// **Example Usage:**\n  /// ```dart\n  /// final response = await Gemini.instance.chat([\n  ///   Content(role: \"user\", parts: [Part.text(\"Tell me a joke.\")]),\n  /// ]);\n  /// print(response?.content?.parts.first);\n  /// ```\n  @override\n  Future<Candidates?> chat(List<Content> chats,\n          {String? modelName,\n          List<SafetySetting>? safetySettings,\n          GenerationConfig? generationConfig,\n          String? systemPrompt}) =>\n      _impl.chat(chats,\n          generationConfig: generationConfig,\n          safetySettings: safetySettings,\n          modelName: modelName,\n          systemPrompt: systemPrompt);\n\n  /// Streams the ongoing chat interactions and responses in real-time. This method\n  /// allows you to send a list of chat messages (contents) and receive responses as a stream,\n  /// enabling real-time communication or processing of chat-like conversations.\n  ///\n  /// **Usage:**\n  /// This method provides a continuous stream of responses for each chat input. You can use it\n  /// to implement real-time conversational AI systems where the response is processed as it arrives.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// Gemini.instance.streamChat([\n  ///   Content(parts: [Part.text('Hello, how are you?')]),\n  /// ]).listen((response) {\n  ///   print(response.output); // Handle real-time responses here.\n  /// });\n  /// ```\n  @override\n  Stream<Candidates> streamChat(\n    List<Content> chats, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) =>\n      _impl.streamChat(chats,\n          modelName: modelName,\n          safetySettings: safetySettings,\n          generationConfig: generationConfig);\n\n  /// [countTokens] When using long prompts, it might be useful to count tokens\n  /// before sending any content to the model.\n  /// * not implemented yet\n  @override\n  Future<int?> countTokens(String text,\n          {String? modelName,\n          List<SafetySetting>? safetySettings,\n          GenerationConfig? generationConfig}) =>\n      _impl.countTokens(text,\n          generationConfig: generationConfig,\n          safetySettings: safetySettings,\n          modelName: modelName);\n\n  /// [info]\n  /// If you `GET` a model's URL, the API used the `get` method to return\n  /// information about that model such as version, display name, input token limit, etc.\n  @override\n  Future<GeminiModel> info({required String model}) => _impl.info(model: model);\n\n  /// [listModels]\n  /// If you `GET` the `models` directory, it used the `list` method to list\n  /// all of the models available through the API, including both the Gemini and PaLM family models.\n  @override\n  Future<List<GeminiModel>> listModels() => _impl.listModels();\n\n  /// [streamGenerateContent] By default, the model returns a response after\n  /// completing the entire generation process.\n  /// You can achieve faster interactions by not waiting\n  /// for the entire result, and instead use streaming to handle partial results.\n  @Deprecated('Please use `prompt` or `promptStream` instead')\n  @override\n  Stream<Candidates> streamGenerateContent(String text,\n          {List<Uint8List>? images,\n          String? modelName,\n          List<SafetySetting>? safetySettings,\n          GenerationConfig? generationConfig}) =>\n      _impl.streamGenerateContent(text,\n          images: images,\n          generationConfig: generationConfig,\n          safetySettings: safetySettings,\n          modelName: modelName);\n\n  /// [textAndImage] If the input contains both text and image, use\n  /// the `gemini-1.5-flash` model. The following snippets help you build a request and send it to the REST API.\n  @Deprecated('Please use `prompt` or `promptStream` instead')\n  @override\n  Future<Candidates?> textAndImage(\n          {required String text,\n          required List<Uint8List> images,\n          String? modelName,\n          List<SafetySetting>? safetySettings,\n          GenerationConfig? generationConfig}) =>\n      _impl.textAndImage(\n          text: text,\n          images: images,\n          generationConfig: generationConfig,\n          safetySettings: safetySettings,\n          modelName: modelName);\n\n  /// This method is deprecated. Please use `prompt` or `promptStream` instead.\n  ///\n  /// Processes the provided text input to generate AI responses based on the\n  /// specified model and configuration settings.\n  ///\n  /// **Parameters:**\n  /// - `text` (String): The input text to process. This is the main content\n  ///   for which a response will be generated.\n  /// - `modelName` (String?, optional): The name of the AI model to be used\n  ///   for generating the response. If not provided, the default model is used.\n  /// - `safetySettings` (List<SafetySetting>?, optional): A list of safety\n  ///   settings to customize the response generation, such as filtering\n  ///   inappropriate content.\n  /// - `generationConfig` (GenerationConfig?, optional): Configuration\n  ///   settings to control the response generation behavior, like maximum\n  ///   length, temperature, and more.\n  ///\n  /// **Returns:**\n  /// - `Future<Candidates?>`: A future that resolves to a `Candidates` object,\n  ///   containing the generated AI responses. Returns `null` if the process fails.\n  ///\n  /// **Note:** This method is deprecated and will be removed in future versions.\n  /// Use the `prompt` or `promptStream` methods for enhanced functionality and\n  /// greater flexibility.\n  @Deprecated('Please use `prompt` or `promptStream` instead')\n  @override\n  Future<Candidates?> text(String text,\n          {String? modelName,\n          List<SafetySetting>? safetySettings,\n          GenerationConfig? generationConfig}) =>\n      _impl.text(text,\n          generationConfig: generationConfig,\n          safetySettings: safetySettings,\n          modelName: modelName);\n\n  /// [Embedding] is a technique used to represent information as a\n  /// list of floating point numbers in an array.\n  /// With Gemini, you can represent text (words, sentences, and blocks of text)\n  /// in a vectorized form, making it easier to compare and contrast embeddings.\n  /// For example, two texts that share a similar subject matter or sentiment\n  /// should have similar embeddings, which can be identified through mathematical\n  /// comparison techniques such as cosine similarity.\n  ///\n  /// Use the `embedding-001` model with either [embedContent] or [batchEmbedContents]\n  @override\n  Future<List<List<num>?>?> batchEmbedContents(List<String> texts,\n          {String? modelName,\n          List<SafetySetting>? safetySettings,\n          GenerationConfig? generationConfig}) =>\n      _impl.batchEmbedContents(texts,\n          safetySettings: safetySettings,\n          generationConfig: generationConfig,\n          modelName: modelName);\n\n  /// Embeds the provided text content into a vector representation, typically used for\n  /// similarity search, semantic analysis, or other tasks that require a vectorized\n  /// representation of the input text.\n  ///\n  /// **Usage:**\n  /// This method takes a string of text and returns its vectorized embedding (a list of numbers),\n  /// which can be used for various machine learning tasks such as search, clustering, or recommendation.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// final embedding = await Gemini.instance.embedContent('This is a sample text');\n  /// print(embedding); // A list of numbers representing the text's embedding.\n  /// ```\n  @override\n  Future<List<num>?> embedContent(String text,\n          {String? modelName,\n          List<SafetySetting>? safetySettings,\n          GenerationConfig? generationConfig}) =>\n      _impl.embedContent(text,\n          safetySettings: safetySettings,\n          generationConfig: generationConfig,\n          modelName: modelName);\n\n  dynamic typeProvider;\n  bool disableAutoUpdateModelName;\n\n  @override\n  Future<void> cancelRequest() => _impl.cancelRequest();\n\n  /// Sends a request to the AI and receives a single response. This is the\n  /// standard method for one-off prompts.\n  ///\n  /// **Parameters:**\n  /// - `parts` (List<Part>, required): A list of `Part` objects representing the\n  ///   input data (e.g., text, files, binary data).\n  /// - `model` (String?, optional): The name of the AI model to use. Defaults\n  ///   to the system's preferred model if not provided.\n  /// - `safetySettings` (List<SafetySetting>?, optional): Configures safety\n  ///   settings for the response generation.\n  /// - `generationConfig` (GenerationConfig?, optional): Controls the response\n  ///   generation behavior, like maximum length, temperature, etc.\n  ///\n  /// **Returns:**\n  /// - `Future<Candidates?>`: A future that resolves to a `Candidates` object\n  ///   containing the generated response.\n  ///\n  /// **Example Usage:**\n  /// ```dart\n  /// Gemini.instance.prompt(parts: [\n  ///   Part.text('What are the benefits of renewable energy?'),\n  /// ]).then((value) {\n  ///   print(value?.content?.parts.first);\n  /// });\n  /// ```\n  @override\n  Future<Candidates?> prompt({\n    required List<Part> parts,\n    String? model,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  }) =>\n      _impl.prompt(\n        parts: parts,\n        generationConfig: generationConfig,\n        model: model,\n        safetySettings: safetySettings,\n      );\n\n  /// Sends a request to the AI and listens to a real-time stream of responses.\n  /// Ideal for scenarios requiring immediate feedback or partial results.\n  ///\n  /// **Parameters:**\n  /// - `parts` (List<Part>, required): A list of `Part` objects representing the\n  ///   input data (e.g., text, files, binary data).\n  /// - `model` (String?, optional): The name of the AI model to use. Defaults\n  ///   to the system's preferred model if not provided.\n  /// - `safetySettings` (List<SafetySetting>?, optional): Configures safety\n  ///   settings for the response generation.\n  /// - `generationConfig` (GenerationConfig?, optional): Controls the response\n  ///   generation behavior, like maximum length, temperature, etc.\n  ///\n  /// **Returns:**\n  /// - `Stream<Candidates?>`: A stream that emits `Candidates` objects containing\n  ///   the generated responses.\n  ///\n  /// **Example Usage:**\n  /// ```dart\n  /// Gemini.instance.promptStream(parts: [\n  ///   Part.text('Describe the future of AI in 50 years.'),\n  /// ]).listen((value) {\n  ///   print(value?.content?.parts.first);\n  /// });\n  /// ```\n  @override\n  Stream<Candidates?> promptStream(\n          {required List<Part> parts,\n          String? model,\n          List<SafetySetting>? safetySettings,\n          GenerationConfig? generationConfig}) =>\n      _impl.promptStream(\n        parts: parts,\n        generationConfig: generationConfig,\n        model: model,\n        safetySettings: safetySettings,\n      );\n}\n"
  },
  {
    "path": "lib/src/models/candidates/candidates.dart",
    "content": "import '../content/content.dart';\nimport '../safety_ratings/safety_ratings.dart';\n\n/// [Candidates] is the value in request response\n/// A class representing the AI-generated response, including content,\n/// metadata, and safety-related information.\nclass Candidates {\n  /// The main content of the response generated by the AI.\n  Content? content;\n\n  /// The reason why the generation process ended. Possible values might\n  /// include \"stop\", \"length\", or other reasons depending on the model.\n  String? finishReason;\n\n  /// The index of the candidate in the response list, useful when multiple\n  /// responses are generated in a single request.\n  int? index;\n\n  /// A list of safety ratings for the content, indicating whether it adheres\n  /// to safety standards, such as filtering offensive or inappropriate content.\n  List<SafetyRatings>? safetyRatings;\n\n  /// Creates a new `Candidates` object with optional parameters.\n  Candidates({\n    this.content,\n    this.finishReason,\n    this.index,\n    this.safetyRatings,\n  });\n\n  /// Factory constructor to create a `Candidates` instance from a JSON object.\n  factory Candidates.fromJson(Map<String, dynamic> json) {\n    return Candidates(\n      content: json['content'] == null\n          ? null\n          : Content.fromJson(json['content'] as Map<String, dynamic>),\n      finishReason: json['finishReason'] as String?,\n      index: (json['index'] as num?)?.toInt(),\n      safetyRatings: (json['safetyRatings'] as List<dynamic>?)\n          ?.map((e) => SafetyRatings.fromJson(e as Map<String, dynamic>))\n          .toList(),\n    );\n  }\n\n  /// Converts the `Candidates` object to a JSON object.\n  Map<String, dynamic> toJson(Map<String, dynamic> json) => {\n        'content': content?.toJson(),\n        'finishReason': finishReason,\n        'index': index,\n        'safetyRatings': safetyRatings?.map((e) => e.toJson()).toList(),\n      };\n\n  /// Creates a copy of the current `Candidates` object with optional updated fields.\n  Candidates copyWith(\n    Content? content,\n    String? finishReason,\n    int? index,\n    List<SafetyRatings>? safetyRatings,\n  ) =>\n      Candidates(\n        safetyRatings: safetyRatings ?? this.safetyRatings,\n        index: index ?? this.index,\n        finishReason: finishReason ?? this.finishReason,\n        content: content ?? this.content,\n      );\n\n  /// Converts a JSON list into a list of `Candidates` objects.\n  static List<Candidates> jsonToList(List list) =>\n      list.map((e) => Candidates.fromJson(e as Map<String, dynamic>)).toList();\n}\n"
  },
  {
    "path": "lib/src/models/content/content.dart",
    "content": "import '../part/part.dart';\n\n/// Represents the content of an AI response, including its components (parts)\n/// and the role associated with it, such as \"user\" or \"model\".\nclass Content {\n  /// A list of `Part` objects that make up the content. Each `Part` can\n  /// represent text, files, or binary data.\n  List<Part>? parts;\n\n  /// The role associated with this content, indicating who or what generated\n  /// the content (e.g., \"model\" or \"user\").\n  String? role;\n\n  /// Creates a new `Content` object with optional parts and role.\n  Content({\n    this.parts,\n    this.role,\n  });\n\n  /// Factory constructor to create a `Content` instance from a JSON object.\n  factory Content.fromJson(Map<String, dynamic> json) => Content(\n        parts: (json['parts'] as List?)\n            ?.map((e) => Part.fromJson(e as Map<String, dynamic>))\n            .toList(),\n        role: json['role'] as String?,\n      );\n\n  /// Converts a JSON list into a list of `Content` objects.\n  static List<Content> jsonToList(List list) =>\n      list.map((e) => Content.fromJson(e as Map<String, dynamic>)).toList();\n\n  /// Converts the `Content` object to a JSON object.\n  Map<String, dynamic> toJson() => {\n        'parts': parts?.map((e) => Part.toJson(e)).toList(),\n        'role': role,\n      };\n}\n"
  },
  {
    "path": "lib/src/models/gemini_file/gemini_file_part.dart",
    "content": "/// Represents a file part in the Gemini system with metadata like name, size,\n/// state, and additional details such as error information and video metadata.\nclass GeminiFilePart {\n  /// The name of the file.\n  String? name;\n\n  /// The display name of the file.\n  String? displayName;\n\n  /// The MIME type of the file.\n  String? mimeType;\n\n  /// The size of the file in bytes.\n  String? sizeBytes;\n\n  /// The creation time of the file.\n  String? createTime;\n\n  /// The last update time of the file.\n  String? updateTime;\n\n  /// The expiration time of the file.\n  String? expirationTime;\n\n  /// The SHA256 hash of the file for integrity verification.\n  String? sha256Hash;\n\n  /// The URI pointing to the location of the file.\n  String? uri;\n\n  /// The current state of the file.\n  String? state;\n\n  /// Any error information associated with the file, if applicable.\n  Map<String, dynamic>? error;\n\n  /// Metadata related to video files, if applicable.\n  Map<String, dynamic>? videoMetadata;\n\n  /// Constructor to initialize a [GeminiFilePart] instance with optional values for all fields.\n  GeminiFilePart({\n    this.name,\n    this.displayName,\n    this.mimeType,\n    this.sizeBytes,\n    this.createTime,\n    this.updateTime,\n    this.expirationTime,\n    this.sha256Hash,\n    this.uri,\n    this.state,\n    this.error,\n    this.videoMetadata,\n  });\n\n  /// Creates a [GeminiFilePart] from a JSON object.\n  factory GeminiFilePart.fromJson(Map<String, dynamic> json) => GeminiFilePart(\n        name: json['name'] as String?,\n        displayName: json['displayName'] as String?,\n        mimeType: json['mimeType'] as String?,\n        sizeBytes: json['sizeBytes'] as String?,\n        createTime: json['createTime'] as String?,\n        updateTime: json['updateTime'] as String?,\n        expirationTime: json['expirationTime'] as String?,\n        sha256Hash: json['sha256Hash'] as String?,\n        uri: json['uri'] as String?,\n        state: json['state'] as String?,\n        error: json['error'] as Map<String, dynamic>?,\n        videoMetadata: json['videoMetadata'] as Map<String, dynamic>?,\n      );\n\n  /// Converts the current [GeminiFilePart] object back into a JSON object.\n  Map<String, dynamic> toJson() => <String, dynamic>{\n        'name': name,\n        'displayName': displayName,\n        'mimeType': mimeType,\n        'sizeBytes': sizeBytes,\n        'createTime': createTime,\n        'updateTime': updateTime,\n        'expirationTime': expirationTime,\n        'sha256Hash': sha256Hash,\n        'uri': uri,\n        'state': state,\n        'error': error,\n        'videoMetadata': videoMetadata,\n      };\n\n  /// Converts a list of JSON objects into a list of [GeminiFilePart] objects.\n  static List<GeminiFilePart> jsonToList(List list) => list\n      .map((e) => GeminiFilePart.fromJson(e as Map<String, dynamic>))\n      .toList();\n}\n"
  },
  {
    "path": "lib/src/models/gemini_model/gemini_model.dart",
    "content": "/// Represents the Gemini model with properties such as name, version,\n/// description, and token limits, along with configuration for generation\n/// methods and sampling parameters.\nclass GeminiModel {\n  /// The name of the model.\n  String? name;\n\n  /// The version of the model.\n  String? version;\n\n  /// The display name for the model.\n  String? displayName;\n\n  /// A description of the model, providing more details about its functionality.\n  String? description;\n\n  /// The maximum number of input tokens the model can handle.\n  int? inputTokenLimit;\n\n  /// The maximum number of output tokens the model can generate.\n  int? outputTokenLimit;\n\n  /// A list of supported generation methods for the model.\n  List<String>? supportedGenerationMethods;\n\n  /// The temperature used for controlling the randomness of the model's output.\n  /// A value between 0 and 1. Higher values make the output more random.\n  double? temperature;\n\n  /// The top-P sampling parameter used to control the diversity of the model's\n  /// output. A value between 0 and 1.\n  double? topP;\n\n  /// The top-K sampling parameter used to limit the number of possible outputs\n  /// considered at each step.\n  int? topK;\n\n  /// Constructor to initialize a [GeminiModel] instance with optional values for all fields.\n  GeminiModel({\n    this.name,\n    this.version,\n    this.displayName,\n    this.description,\n    this.inputTokenLimit,\n    this.outputTokenLimit,\n    this.supportedGenerationMethods,\n    this.temperature,\n    this.topP,\n    this.topK,\n  });\n\n  /// Converts a list of JSON objects into a list of [GeminiModel] objects.\n  static List<GeminiModel> jsonToList(List list) =>\n      list.map((e) => GeminiModel.fromJson(e as Map<String, dynamic>)).toList();\n\n  /// Creates a [GeminiModel] from a JSON object.\n  factory GeminiModel.fromJson(Map<String, dynamic> json) => GeminiModel(\n        name: json['name'] as String?,\n        version: json['version'] as String?,\n        displayName: json['displayName'] as String?,\n        description: json['description'] as String?,\n        inputTokenLimit: (json['inputTokenLimit'] as num?)?.toInt(),\n        outputTokenLimit: (json['outputTokenLimit'] as num?)?.toInt(),\n        supportedGenerationMethods:\n            (json['supportedGenerationMethods'] as List<dynamic>?)\n                ?.map((e) => e as String)\n                .toList(),\n        temperature: (json['temperature'] as num?)?.toDouble(),\n        topP: (json['topP'] as num?)?.toDouble(),\n        topK: (json['topK'] as num?)?.toInt(),\n      );\n\n  /// Converts the current [GeminiModel] object back into a JSON object.\n  Map<String, dynamic> toJson() => <String, dynamic>{\n        'name': name,\n        'version': version,\n        'displayName': displayName,\n        'description': description,\n        'inputTokenLimit': inputTokenLimit,\n        'outputTokenLimit': outputTokenLimit,\n        'supportedGenerationMethods': supportedGenerationMethods,\n        'temperature': temperature,\n        'topP': topP,\n        'topK': topK,\n      };\n}\n"
  },
  {
    "path": "lib/src/models/gemini_response/gemini_response.dart",
    "content": "import '../candidates/candidates.dart';\nimport '../prompt_feedback/prompt_feedback.dart';\n\nclass GeminiResponse {\n  List<Candidates>? candidates; // List of candidates, possibly empty or null\n  PromptFeedback? promptFeedback; // Optional feedback related to the prompt\n\n  // Constructor for GeminiResponse\n  GeminiResponse({\n    this.candidates,\n    this.promptFeedback,\n  });\n\n  // Factory constructor to create a GeminiResponse object from a JSON map\n  factory GeminiResponse.fromJson(Map<String, dynamic> json) => GeminiResponse(\n        candidates: (json['candidates'] as List<dynamic>?)\n            ?.map((e) => Candidates.fromJson(e as Map<String, dynamic>))\n            .toList(), // Converts the candidates list from JSON to Candidate objects\n        promptFeedback: json['promptFeedback'] == null\n            ? null\n            : PromptFeedback.fromJson(json['promptFeedback'] as Map<String,\n                dynamic>), // Converts prompt feedback if it exists\n      );\n\n  // Method to convert a GeminiResponse object back to JSON\n  Map<String, dynamic> toJson() => <String, dynamic>{\n        'candidates': candidates, // Serializes candidates list to JSON\n        'promptFeedback': promptFeedback, // Serializes prompt feedback to JSON\n      };\n\n  // Static method to convert a list of JSON objects to a list of GeminiResponse objects\n  static List<GeminiResponse> jsonToList(List list) => list\n      .map((e) => GeminiResponse.fromJson(e as Map<String, dynamic>))\n      .toList();\n}\n"
  },
  {
    "path": "lib/src/models/gemini_safety/gemini_safety.dart",
    "content": "import 'gemini_safety_category.dart';\nimport 'gemini_safety_threshold.dart';\n\n/// [SafetySetting]\n/// Safety settings are part of the request you send to the text service.\n/// It can be adjusted for each request you make to the API.\n/// The following table lists the categories that you can set and describes the type of harm that each category encompasses.\n/// A configuration for setting safety measures, including a category and threshold.\n/// This class helps define the safety parameters to assess or control the behavior of the AI model's outputs.\n///\n/// **Parameters:**\n/// - `category`: The safety category that specifies the type of content safety being controlled (e.g., toxic content, explicit material).\n/// - `threshold`: The threshold for safety within the specified category. This defines the level at which the content is considered unsafe or acceptable.\n///\n/// **Usage:**\n/// This class is used when you want to specify the level of safety to be applied during content generation or filtering. It can be used in AI systems to enforce content moderation, ensuring that the generated content adheres to certain safety standards.\n///\n/// **Example:**\n/// ```dart\n/// var safetySetting = SafetySetting(\n///   category: SafetyCategory.explosive,\n///   threshold: SafetyThreshold.high,\n/// );\n/// ```\nclass SafetySetting {\n  final SafetyCategory\n      category; // The category of safety being controlled (e.g., toxic content).\n  final SafetyThreshold\n      threshold; // The threshold for safety within the category.\n\n  // Constructor to initialize the SafetySetting with required category and threshold.\n  SafetySetting({\n    required this.category,\n    required this.threshold,\n  });\n}\n"
  },
  {
    "path": "lib/src/models/gemini_safety/gemini_safety_category.dart",
    "content": "/// An enumeration representing various safety categories for content moderation.\n/// Each category corresponds to a type of potentially harmful content that can be flagged,\n/// restricted, or filtered based on specific safety settings.\n///\n/// **Enum Values:**\n/// - `harassment`: Content that involves negative or harmful comments targeting someone's identity, protected attributes, or groups.\n/// - `hateSpeech`: Content that is rude, offensive, or profane. Includes derogatory, dehumanizing, or discriminatory language.\n/// - `sexuallyExplicit`: Content that includes sexual acts or other sexually suggestive material.\n/// - `dangerous`: Content that promotes, encourages, or facilitates harmful or dangerous actions, such as violence, self-harm, etc.\n///\n/// **Usage:**\n/// The `SafetyCategory` enum is used as part of content moderation or filtering systems to ensure that AI-generated content adheres to safety standards. When setting up safety measures, users can select the appropriate category to monitor or control content in a more focused way.\n///\n/// **Example:**\n/// ```dart\n/// var safetySetting = SafetySetting(\n///   category: SafetyCategory.hateSpeech,  // Flag hate speech content.\n///   threshold: SafetyThreshold.high,      // Apply a high-level safety threshold.\n/// );\n/// ```\nenum SafetyCategory {\n  /// [harassment]\n  /// Negative or harmful comments targeting identity and/or protected attributes.\n  harassment('HARM_CATEGORY_HARASSMENT'),\n\n  /// [hateSpeech]\n  /// Content that is rude, disrespectful, or profane.\n  hateSpeech('HARM_CATEGORY_HATE_SPEECH'),\n\n  /// [sexuallyExplicit]\n  /// Contains references to sexual acts or other lewd content.\n  sexuallyExplicit('HARM_CATEGORY_SEXUALLY_EXPLICIT'),\n\n  /// [dangerous]\n  /// Promotes, facilitates, or encourages harmful acts.\n  dangerous('HARM_CATEGORY_DANGEROUS_CONTENT');\n\n  const SafetyCategory(this.value);\n\n  /// The string value that represents the safety category for backend processing or API use.\n  final String value;\n}\n"
  },
  {
    "path": "lib/src/models/gemini_safety/gemini_safety_threshold.dart",
    "content": "/// An enumeration representing various safety thresholds for content moderation.\n/// Each threshold defines a level of risk associated with potentially unsafe content,\n/// dictating whether content should be blocked or flagged based on its probability of being harmful.\n///\n/// **Enum Values:**\n/// - `blockNone`: Content is always shown, regardless of the probability of unsafe content.\n/// - `blockOnlyHigh`: Content is blocked only if there is a high probability of unsafe content.\n/// - `blockMediumAndAbove`: Content is blocked if there is a medium or high probability of unsafe content.\n/// - `blockLowAndAbove`: Content is blocked if there is a low, medium, or high probability of unsafe content.\n/// - `harmBlockThresholdUnspecified`: The threshold is unspecified, and the system uses a default block threshold.\n///\n/// **Usage:**\n/// The `SafetyThreshold` enum is used to configure how strict the moderation system should be when evaluating content. Depending on the chosen threshold, content with varying levels of unsafe probability can be blocked or allowed.\n///\n/// **Example:**\n/// ```dart\n/// var safetySetting = SafetySetting(\n///   category: SafetyCategory.dangerous,     // Flag dangerous content.\n///   threshold: SafetyThreshold.blockMediumAndAbove, // Block if content has medium or high risk.\n/// );\n/// ```\nenum SafetyThreshold {\n  /// [blockNone]\n  /// Always show regardless of probability of unsafe content\n  blockNone('BLOCK_NONE'),\n\n  /// [blockOnlyHigh]\n  /// Block when high probability of unsafe content\n  blockOnlyHigh('BLOCK_ONLY_HIGH'),\n\n  /// [blockMediumAndAbove]\n  /// Block when medium or high probability of unsafe content\n  blockMediumAndAbove('BLOCK_MEDIUM_AND_ABOVE'),\n\n  /// [blockLowAndAbove]\n  /// Block when low, medium or high probability of unsafe content\n  blockLowAndAbove('BLOCK_LOW_AND_ABOVE'),\n\n  /// [harmBlockThresholdUnspecified]\n  /// Threshold is unspecified, block using default threshold\n  harmBlockThresholdUnspecified('HARM_BLOCK_THRESHOLD_UNSPECIFIED');\n\n  const SafetyThreshold(this.value);\n\n  /// The string value that represents the safety threshold for backend processing or API use.\n  final String value;\n}\n"
  },
  {
    "path": "lib/src/models/generation_config/generation_config.dart",
    "content": "/// Configuration for controlling the behavior of content generation,\n/// including various parameters such as stop sequences, temperature, and token limits.\n///\n/// **Parameters:**\n/// - `stopSequences`: A list of strings that the model should stop generating upon encountering.\n/// - `temperature`: A floating-point value that controls the randomness of the output.\n///   A higher temperature makes the output more random, while a lower temperature makes it more deterministic.\n/// - `maxOutputTokens`: The maximum number of tokens the model should generate in its response.\n/// - `topP`: A parameter used for nucleus sampling. It controls the cumulative probability distribution\n///   from which the model samples, helping to make the output more diverse.\n/// - `topK`: The number of highest probability tokens to consider during sampling.\n///\n/// **Usage:**\n/// This class is used to define and configure the generation behavior of a model when generating text or content.\n/// It allows customization of parameters that control the creativity and structure of the generated output.\n///\n/// **Example:**\n/// ```dart\n/// var config = GenerationConfig(\n///   stopSequences: ['\\n'],\n///   temperature: 0.7,\n///   maxOutputTokens: 100,\n/// );\n/// ```\nclass GenerationConfig {\n  List<String>? stopSequences; // A list of stop sequences to halt generation.\n  double? temperature; // A value between 0 and 1 controlling output randomness.\n  int? maxOutputTokens; // Maximum number of tokens to be generated.\n  double? topP; // Nucleus sampling parameter.\n  int? topK; // The number of top tokens to sample from.\n\n  // Constructor to initialize the GenerationConfig instance with optional parameters.\n  GenerationConfig({\n    this.stopSequences,\n    this.temperature,\n    this.maxOutputTokens,\n    this.topP,\n    this.topK,\n  });\n\n  /// Factory method to create a GenerationConfig instance from JSON data.\n  /// It converts JSON fields like `stopSequences`, `temperature`, `maxOutputTokens`,\n  /// `topP`, and `topK` to their corresponding properties in the `GenerationConfig` class.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var config = GenerationConfig.fromJson(jsonData);\n  /// ```\n  factory GenerationConfig.fromJson(Map<String, dynamic> json) =>\n      GenerationConfig(\n        stopSequences: (json['stopSequences'] as List<dynamic>?)\n            ?.map((e) => e as String)\n            .toList(),\n        temperature: (json['temperature'] as num?)?.toDouble(),\n        maxOutputTokens: (json['maxOutputTokens'] as num?)?.toInt(),\n        topP: (json['topP'] as num?)?.toDouble(),\n        topK: (json['topK'] as num?)?.toInt(),\n      );\n\n  /// Converts the GenerationConfig instance into a JSON map. This is useful for\n  /// serializing the configuration to be sent in API requests or stored in a database.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var json = config.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => <String, dynamic>{\n        'stopSequences': stopSequences,\n        'temperature': temperature,\n        'maxOutputTokens': maxOutputTokens,\n        'topP': topP,\n        'topK': topK,\n      };\n\n  /// Converts a list of JSON objects into a list of `GenerationConfig` instances.\n  /// This is helpful when handling an array of generation configurations in a JSON response.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var configsList = GenerationConfig.jsonToList(jsonList);\n  /// ```\n  static List<GenerationConfig> jsonToList(List list) => list\n      .map((e) => GenerationConfig.fromJson(e as Map<String, dynamic>))\n      .toList();\n}\n"
  },
  {
    "path": "lib/src/models/part/file_data_part.dart",
    "content": "part of 'part.dart';\n\n/// Represents a part of a file, including metadata like MIME type and URI pointing to the file.\n/// This class is used when a file is included in the conversation or request, allowing the system\n/// to handle files alongside other content types (such as text or inline data).\n///\n/// **Parameters:**\n/// - `mimeType` (optional String): The MIME type of the file (e.g., 'image/png', 'application/pdf').\n/// - `fileUri` (optional String): The URI pointing to the location of the file.\n///\n/// **Usage:**\n/// The `FileDataPart` is typically used when you need to send or process file data as part of a request.\n/// It contains the necessary information to identify and handle the file correctly, such as its type\n/// and location. For example, it can be used in chat-based applications where users send files.\nclass FileDataPart {\n  String? mimeType; // The MIME type of the file (e.g., image/jpeg, text/plain)\n  String? fileUri; // The URI of the file, which points to its location.\n\n  // Constructor for initializing the FileDataPart with optional mimeType and fileUri\n  FileDataPart({this.mimeType, this.fileUri});\n\n  /// Factory method to create a FileDataPart object from a JSON map.\n  /// This is useful for deserializing a JSON response that includes file data.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var fileDataPart = FileDataPart.fromJson(jsonData);\n  /// ```\n  factory FileDataPart.fromJson(Map<String, dynamic> json) => FileDataPart(\n        mimeType: json['mime_type'] as String?, // Extract mimeType from JSON\n        fileUri: json['file_uri'] as String?, // Extract fileUri from JSON\n      );\n\n  /// Converts the FileDataPart object into a JSON map, which can be used for serializing the data.\n  /// This is useful for sending file data in API requests or saving it in a file format.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var jsonData = fileDataPart.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => {\n        'mime_type': mimeType, // Add mimeType to JSON map\n        'file_uri': fileUri, // Add fileUri to JSON map\n      };\n}\n"
  },
  {
    "path": "lib/src/models/part/file_part.dart",
    "content": "part of 'part.dart';\n\n/// Represents a part of a request or response that contains file data. This class implements\n/// the `Part` interface and is used when a file is included in the conversation, allowing\n/// for seamless handling of file-based content alongside other parts such as text or inline data.\n///\n/// **Parameters:**\n/// - `fileData` (optional FileDataPart): Contains the actual file data and associated metadata,\n///   such as MIME type and file URI.\n///\n/// **Usage:**\n/// `FilePart` is used when you need to send or receive file data as part of an API request or\n/// response. It encapsulates the file-related information within the context of a larger content\n/// structure, like a conversation or message.\nclass FilePart implements Part {\n  FileDataPart?\n      fileData; // The file data and its associated metadata (e.g., mimeType, fileUri)\n\n  // Constructor for initializing the FilePart with a FileDataPart\n  FilePart(this.fileData);\n\n  /// Converts a list of JSON objects into a list of FilePart instances.\n  /// This is useful for deserializing a response that contains multiple file parts.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var filePartsList = FilePart.jsonToList(jsonList);\n  /// ```\n  static List<FilePart> jsonToList(List list) =>\n      list.map((e) => FilePart.fromJson(e as Map<String, dynamic>)).toList();\n\n  /// Converts the FilePart instance into a JSON map. This is used when serializing\n  /// the FilePart to be sent as part of an API request or saving it to storage.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var jsonData = filePart.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => {\n        'fileData':\n            fileData?.toJson(), // Serialize fileData to JSON if available\n      };\n\n  /// Factory method to create a FilePart instance from a JSON map. This is used for\n  /// deserializing a JSON response that includes a file part.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var filePart = FilePart.fromJson(jsonData);\n  /// ```\n  factory FilePart.fromJson(Map<String, dynamic> json) =>\n      FilePart(json['file_data'] == null\n          ? null\n          : FileDataPart.fromJson(json['file_data'])); // Deserialize file data\n}\n"
  },
  {
    "path": "lib/src/models/part/inline_data.dart",
    "content": "part of 'part.dart';\n\n/// Represents inline data used in requests or responses, including metadata like MIME type\n/// and the actual data, which is often encoded as a Base64 string. This class is useful for\n/// handling in-line binary data such as images, audio files, or any data that needs to be\n/// transmitted in the body of a message.\n///\n/// **Parameters:**\n/// - `mimeType` (optional String): The MIME type of the data (e.g., 'image/png', 'application/pdf').\n/// - `data` (optional String): The Base64-encoded data representing the binary content.\n///\n/// **Usage:**\n/// `InlineData` is commonly used when binary data needs to be transmitted in a format suitable\n/// for text-based protocols (e.g., JSON). It is especially useful for sending media or other\n/// non-text data in API requests or responses.\nclass InlineData {\n  String?\n      mimeType; // MIME type of the inline data (e.g., 'image/png', 'application/json')\n  String? data; // Base64-encoded data representing the file or binary content\n\n  // Constructor to initialize the InlineData with optional mimeType and data\n  InlineData({this.mimeType, this.data});\n\n  /// Factory method to create an InlineData instance from a JSON map.\n  /// This is used for deserializing JSON responses that contain inline data.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var inlineData = InlineData.fromJson(jsonData);\n  /// ```\n  factory InlineData.fromJson(Map<String, dynamic> json) => InlineData(\n        mimeType: json['mime_type'] as String?, // Extract mimeType from JSON\n        data: json['data'] as String?, // Extract Base64-encoded data from JSON\n      );\n\n  /// Factory method to create an InlineData instance from raw bytes (Uint8List).\n  /// The raw bytes are Base64-encoded, and the MIME type is inferred from the data\n  /// using the `mime` package.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var inlineData = InlineData.fromUint8List(bytes);\n  /// ```\n  factory InlineData.fromUint8List(Uint8List bytes) => InlineData(\n        mimeType: mime.lookupMimeType('', headerBytes: bytes) ??\n            \"image/jpg\", // Try to infer MIME type from bytes\n        data: base64Encode(bytes), // Encode bytes into Base64 format\n      );\n\n  /// Converts the InlineData instance into a JSON map. This method is useful for\n  /// serializing the inline data to be sent in an API request or stored.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var jsonData = inlineData.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => {\n        'mime_type': mimeType, // Add mimeType to the JSON map\n        'data': data, // Add Base64-encoded data to the JSON map\n      };\n}\n"
  },
  {
    "path": "lib/src/models/part/inline_part.dart",
    "content": "part of 'part.dart';\n\n/// Represents an inline part of a request or response, specifically used for\n/// handling binary data that is transmitted inline, such as images, audio, or other\n/// media types. This class wraps the `InlineData` object, which contains the actual\n/// binary content along with its metadata (like MIME type and Base64-encoded data).\n///\n/// **Parameters:**\n/// - `inlineData` (optional InlineData): The inline data associated with this part, typically\n///   representing binary data (e.g., an image or file content).\n///\n/// **Usage:**\n/// `InlinePart` is used when the system needs to handle inline data in the form of\n/// binary content. It is often used in conjunction with the `Part` interface to represent\n/// different types of parts in a larger message (e.g., for multi-part data like in a chat or\n/// file upload).\nclass InlinePart implements Part {\n  InlineData?\n      inlineData; // The inline data, typically a Base64-encoded file or binary content.\n\n  // Constructor to initialize the InlinePart with the given InlineData.\n  InlinePart(this.inlineData);\n\n  /// Converts a list of JSON objects into a list of InlinePart instances.\n  /// This is useful for parsing an array of inline parts from a JSON response.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var inlineParts = InlinePart.jsonToList(jsonList);\n  /// ```\n  static List<InlinePart> jsonToList(List list) =>\n      list.map((e) => InlinePart.fromJson(e as Map<String, dynamic>)).toList();\n\n  /// Converts the InlinePart instance into a JSON map. This is used for serializing\n  /// the inline part data (including its inline data) to be sent in an API request or\n  /// stored in a database.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var jsonData = inlinePart.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => {\n        'inline_data':\n            inlineData?.toJson(), // Add inlineData to the JSON map if available\n      };\n\n  /// Factory method to create an InlinePart instance from a JSON map.\n  /// This is used to deserialize JSON responses containing inline part data.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var inlinePart = InlinePart.fromJson(jsonData);\n  /// ```\n  factory InlinePart.fromJson(Map<String, dynamic> json) =>\n      InlinePart(json['inline_data'] == null\n          ? null\n          : InlineData.fromJson(\n              json['inline_data'])); // Extract inline data from the JSON\n}\n"
  },
  {
    "path": "lib/src/models/part/part.dart",
    "content": "import 'dart:convert';\nimport 'dart:typed_data';\nimport 'package:mime/mime.dart' as mime;\n\npart 'text_part.dart';\n\npart 'file_data_part.dart';\n\npart 'file_part.dart';\n\npart 'inline_data.dart';\n\npart 'inline_part.dart';\n\n/// Represents a flexible data part that can hold text, file, or binary data.\n/// This is an abstract interface class with factory constructors for specific\n/// implementations like `TextPart`, `FilePart`, and `InlinePart`.\nabstract interface class Part {\n  /// Factory constructor to create a `Part` object containing text data.\n  factory Part.text(String text) => TextPart(text);\n\n  /// Factory constructor to create a `Part` object containing file data.\n  factory Part.file(FileDataPart fileData) => FilePart(fileData);\n\n  /// Factory constructor to create a `Part` object containing inline binary data.\n  factory Part.inline(InlineData inlineData) => InlinePart(inlineData);\n\n  /// Factory constructor to create a `Part` object from raw binary data.\n  factory Part.bytes(Uint8List bytes) =>\n      InlinePart(InlineData.fromUint8List(bytes));\n\n  /// Factory constructor to create a `Part` object from a `Uint8List`.\n  factory Part.uint8List(Uint8List list) =>\n      InlinePart(InlineData.fromUint8List(list));\n\n  /// Factory constructor to create a `Part` object from a JSON object.\n  /// Automatically detects the part type based on the keys in the JSON.\n  factory Part.fromJson(Map<String, dynamic> json) {\n    if (json.containsKey('file_data')) {\n      return Part.file(\n          FileDataPart.fromJson(json['file_data'] as Map<String, dynamic>));\n    } else if (json.containsKey('inline_data')) {\n      return Part.inline(\n          InlineData.fromJson(json['inline_data'] as Map<String, dynamic>));\n    }\n\n    return Part.text(json['text'] as String);\n  }\n\n  /// Converts a JSON list into a list of `Part` objects.\n  static List<Part> jsonToList(List list) =>\n      list.map((e) => Part.fromJson(e as Map<String, dynamic>)).toList();\n\n  /// Converts the `Part` object to a JSON object, automatically identifying\n  /// its specific type (`TextPart`, `FilePart`, or `InlinePart`).\n  static Map<String, dynamic> toJson(Part e) {\n    if (e is TextPart) {\n      return e.toJson();\n    } else if (e is FilePart) {\n      return e.toJson();\n    } else if (e is InlinePart) {\n      return e.toJson();\n    }\n\n    throw UnsupportedError('${e.runtimeType} not supported!');\n  }\n}\n"
  },
  {
    "path": "lib/src/models/part/text_part.dart",
    "content": "part of 'part.dart';\n\n/// Represents a text part of a request or response, used for handling plain text\n/// content within a message. This class encapsulates the text content, which can\n/// be transmitted as part of a multi-part message or response.\n///\n/// **Parameters:**\n/// - `text`: The plain text content that will be included as part of the message.\n///\n/// **Usage:**\n/// `TextPart` is used when the system needs to handle textual data, such as strings,\n/// that will be part of a larger message or request. It is commonly used for generating\n/// text-based responses or prompts in AI models.\nclass TextPart implements Part {\n  String text;\n\n  /// The text content to be included in this part.\n\n  /// Constructor to initialize the TextPart with the given text content.\n  TextPart(this.text);\n\n  /// Converts a list of JSON objects into a list of TextPart instances.\n  /// This is useful for parsing an array of text parts from a JSON response.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var textParts = TextPart.jsonToList(jsonList);\n  /// ```\n  static List<Part> jsonToList(List list) =>\n      list.map((e) => Part.fromJson(e as Map<String, dynamic>)).toList();\n\n  /// Converts the TextPart instance into a JSON map. This is used for serializing\n  /// the text content to be sent in an API request or stored in a database.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var jsonData = textPart.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => {\n        'text': text, // Add text content to the JSON map\n      };\n}\n"
  },
  {
    "path": "lib/src/models/parts/parts.dart",
    "content": "import '../../../flutter_gemini.dart';\n\n/// **DEPRECATED**: Please use `Part` instead. This class has been replaced by\n/// `Part` for better structure and flexibility in handling different types of\n/// content. The `Parts` class was originally designed to hold textual content,\n/// but has been superseded by the more general `Part` class, which supports\n/// multiple content types, such as text, files, and inline data.\n///\n/// This class is kept for backward compatibility, but it is recommended to\n/// migrate to the `Part` class for future-proofing your code.\n///\n/// **Parameters:**\n/// - `text`: A plain text string that will be included as part of the message.\n///\n/// **Usage:**\n/// The `Parts` class was used for handling plain text content in earlier versions\n/// of the package. However, it is now deprecated in favor of the `Part` interface,\n/// which supports multiple types of data (e.g., text, files, and bytes).\n///\n/// **Example:**\n/// ```dart\n/// var oldPart = Parts(text: 'Some text content');\n/// ```\n///\n@Deprecated('Please use Part instead.')\nclass Parts implements Part {\n  String? text; // The text content that is part of this object.\n\n  // Constructor to initialize the Parts class with optional text.\n  Parts({\n    this.text,\n  });\n\n  /// Factory method to create a Parts instance from JSON data. This was used\n  /// to parse plain text content from a JSON object.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var part = Parts.fromJson(jsonData);\n  /// ```\n  factory Parts.fromJson(Map<String, dynamic> json) =>\n      Parts(text: json['text'] as String?);\n\n  /// Converts the Parts instance into a JSON map, serializing the text content\n  /// into a structured format for use in API requests or responses.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var json = part.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => <String, dynamic>{'text': text};\n\n  /// Converts a list of JSON objects into a list of Parts instances.\n  /// This was useful when parsing an array of text-based content from a JSON\n  /// response.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var partsList = Parts.jsonToList(jsonList);\n  /// ```\n  static List<Parts> jsonToList(List list) =>\n      list.map((e) => Parts.fromJson(e as Map<String, dynamic>)).toList();\n}\n"
  },
  {
    "path": "lib/src/models/prompt_feedback/prompt_feedback.dart",
    "content": "import '../safety_ratings/safety_ratings.dart';\n\n/// Represents feedback related to a prompt, specifically focusing on safety ratings.\n/// This class holds a list of `SafetyRatings` objects, which evaluate the safety\n/// of the generated content based on predefined criteria or custom settings.\n///\n/// **Parameters:**\n/// - `safetyRatings`: A list of `SafetyRatings` objects, which provide an evaluation\n///   of the content's safety based on the model's output.\n///\n/// **Usage:**\n/// This class is used to encapsulate feedback on the safety of a generated response.\n/// It may include various safety assessments such as whether the content contains\n/// harmful or inappropriate material.\n///\n/// **Example:**\n/// ```dart\n/// var feedback = PromptFeedback(safetyRatings: [SafetyRatings(...), SafetyRatings(...)]);\n/// ```\nclass PromptFeedback {\n  List<SafetyRatings>?\n      safetyRatings; // List of safety ratings for the generated content.\n\n  // Constructor to initialize a PromptFeedback instance with optional safetyRatings.\n  PromptFeedback({\n    this.safetyRatings,\n  });\n\n  /// Factory method to create a PromptFeedback instance from JSON data. This method\n  /// extracts the `safetyRatings` from the JSON and maps each to a `SafetyRatings` object.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var feedback = PromptFeedback.fromJson(jsonData);\n  /// ```\n  factory PromptFeedback.fromJson(Map<String, dynamic> json) => PromptFeedback(\n        safetyRatings: (json['safetyRatings'] as List<dynamic>?)\n            ?.map((e) => SafetyRatings.fromJson(e as Map<String, dynamic>))\n            .toList(),\n      );\n\n  /// Converts the PromptFeedback instance into a JSON map. This is useful for\n  /// serializing the feedback to be sent in API requests or responses.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var json = feedback.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => <String, dynamic>{\n        'safetyRatings': safetyRatings,\n      };\n\n  /// Converts a list of JSON objects into a list of `PromptFeedback` instances.\n  /// This is helpful when handling an array of feedback objects in a JSON response.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var feedbackList = PromptFeedback.jsonToList(jsonList);\n  /// ```\n  static List<PromptFeedback> jsonToList(List list) => list\n      .map((e) => PromptFeedback.fromJson(e as Map<String, dynamic>))\n      .toList();\n}\n"
  },
  {
    "path": "lib/src/models/safety_ratings/safety_ratings.dart",
    "content": "/// Represents a safety rating for generated content, which includes a category and\n/// a probability score. The category indicates the type of safety issue (e.g.,\n/// harmful, inappropriate), and the probability is a confidence score indicating\n/// how likely the content falls into that category.\n///\n/// **Parameters:**\n/// - `category`: The category of the safety rating (e.g., \"Harmful\", \"Inappropriate\").\n/// - `probability`: The probability or confidence level that the content falls under\n///   the specified safety category (expressed as a string, often a percentage or score).\n///\n/// **Usage:**\n/// This class is used to evaluate the safety of AI-generated content. For example,\n/// a system could generate content and then evaluate its safety with respect to various\n/// categories such as offensive language, harmful behavior, or misleading information.\n///\n/// **Example:**\n/// ```dart\n/// var safetyRating = SafetyRatings(category: \"Harmful\", probability: \"0.85\");\n/// print(safetyRating.category); // Outputs: Harmful\n/// ```\nclass SafetyRatings {\n  String? category; // The safety category (e.g., \"Harmful\", \"Offensive\").\n  String?\n      probability; // The probability score indicating how likely the content is harmful.\n\n  // Constructor to initialize a SafetyRatings instance with optional category and probability.\n  SafetyRatings({\n    this.category,\n    this.probability,\n  });\n\n  /// Factory method to create a SafetyRatings instance from JSON data.\n  /// It extracts the `category` and `probability` fields from the JSON and assigns them\n  /// to the class's properties.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var safetyRating = SafetyRatings.fromJson(jsonData);\n  /// ```\n  factory SafetyRatings.fromJson(Map<String, dynamic> json) => SafetyRatings(\n        category: json['category'] as String?,\n        probability: json['probability'] as String?,\n      );\n\n  /// Converts the SafetyRatings instance into a JSON map. This is useful for\n  /// serializing the safety rating to be sent in API requests or responses.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var json = safetyRating.toJson();\n  /// ```\n  Map<String, dynamic> toJson() => <String, dynamic>{\n        'category': category,\n        'probability': probability,\n      };\n\n  /// Converts a list of JSON objects into a list of `SafetyRatings` instances.\n  /// This is helpful when handling an array of safety ratings in a JSON response.\n  ///\n  /// **Example:**\n  /// ```dart\n  /// var safetyRatingsList = SafetyRatings.jsonToList(jsonList);\n  /// ```\n  static List<SafetyRatings> jsonToList(List list) => list\n      .map((e) => SafetyRatings.fromJson(e as Map<String, dynamic>))\n      .toList();\n}\n"
  },
  {
    "path": "lib/src/repository/api_interface.dart",
    "content": "import 'package:dio/dio.dart';\nimport '../models/gemini_safety/gemini_safety.dart';\nimport '../models/generation_config/generation_config.dart';\n\n/// [ApiInterface] is an API helper service class.\n///\n/// This class defines the contract for making API requests. It includes methods\n/// for `POST` and `GET` requests, and allows the passing of configuration settings\n/// such as `generationConfig` and `safetySettings` for controlling API behavior.\n\nabstract class ApiInterface {\n  /// Optional configuration for generation parameters.\n  GenerationConfig? generationConfig;\n\n  /// Optional list of safety settings to apply during the API request.\n  List<SafetySetting>? safetySettings;\n\n  /// Sends a `POST` request to the specified route with the given data.\n  ///\n  /// Parameters:\n  /// - `route`: The API endpoint to which the request will be sent.\n  /// - `data`: A map of data to send with the request. The keys are strings and the values are objects.\n  /// - `generationConfig`: An optional configuration for controlling the generation behavior.\n  /// - `safetySettings`: An optional list of safety settings to apply during the request.\n  ///\n  /// Returns:\n  /// A `Response` object representing the outcome of the HTTP request.\n  Future<Response> post(\n    String route, {\n    required Map<String, Object>? data,\n    GenerationConfig? generationConfig,\n    List<SafetySetting>? safetySettings,\n  });\n\n  /// Sends a `GET` request to the specified route.\n  ///\n  /// Parameters:\n  /// - `route`: The API endpoint to which the request will be sent.\n  ///\n  /// Returns:\n  /// A `Response` object representing the outcome of the HTTP request.\n  Future<Response> get(String route);\n}\n"
  },
  {
    "path": "lib/src/repository/gemini_interface.dart",
    "content": "import 'dart:async';\nimport 'dart:typed_data';\nimport '../../flutter_gemini.dart';\n\nabstract class GeminiInterface {\n  /// [listModels]\n  /// If you `GET` the `models` directory, it used the `list` method to list\n  /// all of the models available through the API, including both the Gemini and PaLM family models.\n  Future<List<GeminiModel>> listModels();\n\n  /// [info]\n  /// If you `GET` a model's URL, the API used the `get` method to return\n  /// information about that model such as version, display name, input token limit, etc.\n  Future<GeminiModel> info({required String model});\n\n  /// [text] Use the `generateContent` method to generate a response\n  /// from the model given an input message.\n  /// If the input contains only text, use the `gemini-pro` model.\n  @Deprecated('Please use the `prompt` or `promptStream` method')\n  Future<Candidates?> text(\n    String text, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  /// [Embedding] is a technique used to represent information as a\n  /// list of floating point numbers in an array.\n  /// With Gemini, you can represent text (words, sentences, and blocks of text)\n  /// in a vectorized form, making it easier to compare and contrast embeddings.\n  /// For example, two texts that share a similar subject matter or sentiment\n  /// should have similar embeddings, which can be identified through mathematical\n  /// comparison techniques such as cosine similarity.\n  ///\n  /// Use the `embedding-001` model with either [embedContent] or [batchEmbedContents]\n  Future<List<List<num>?>?> batchEmbedContents(\n    List<String> texts, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  /// [embedContent] description in upper comments\n  Future<List<num>?> embedContent(\n    String text, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  /// [countTokens] When using long prompts, it might be useful to count tokens\n  /// before sending any content to the model.\n  Future<int?> countTokens(\n    String text, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  /// [streamGenerateContent] By default, the model returns a response after\n  /// completing the entire generation process.\n  /// You can achieve faster interactions by not waiting\n  /// for the entire result, and instead use streaming to handle partial results.\n  @Deprecated('Please use the `prompt` or `promptStream` method')\n  Stream<Candidates> streamGenerateContent(\n    String text, {\n    List<Uint8List>? images,\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  @Deprecated('Please use the `prompt` or `promptStream` method')\n  Stream<Candidates> streamChat(\n    List<Content> chats, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  /// [chat] or `Multi-turn conversations`\n  /// Using Gemini, you can build freeform conversations across multiple turns.\n  @Deprecated('Please use the `prompt` or `promptStream` method')\n  Future<Candidates?> chat(\n    List<Content> chats, {\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  /// [textAndImage] If the input contains both text and image, use\n  /// the `gemini-1.5-flash` model. The following snippets help you build a request and send it to the REST API.\n  Future<Candidates?> textAndImage({\n    required String text,\n    required List<Uint8List> images,\n    String? modelName,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  // cancel request\n  Future<void> cancelRequest();\n\n  /// [prompt] If the input contains both text and image, use\n  /// the `gemini-1.5-flash` model. The following snippets help you build a request and send it to the REST API.\n  Future<Candidates?> prompt({\n    required List<Part> parts,\n    String? model,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n\n  /// [prompt] If the input contains both text and image, use\n  /// the `gemini-1.5-flash` model. The following snippets help you build a request and send it to the REST API.\n  Stream<Candidates?> promptStream({\n    required List<Part> parts,\n    String? model,\n    List<SafetySetting>? safetySettings,\n    GenerationConfig? generationConfig,\n  });\n}\n"
  },
  {
    "path": "lib/src/utils/candidate_extension.dart",
    "content": "import 'package:flutter_gemini/src/models/candidates/candidates.dart';\nimport 'package:flutter_gemini/src/models/part/part.dart';\n\n/// [CandidateExtension] used when wanna get [output] simply\n/// Extension for the `Candidates` class that provides convenient getters\n/// to access the last part of the `content` in different formats (text, file, or generic part).\n/// This extension is useful for extracting the relevant output from the `Candidates`\n/// object based on the response type (text, file, or other parts).\nextension CandidateExtension on Candidates {\n  /// Retrieves the last `TextPart` from the content and returns the `text` property.\n  /// This is useful for getting the AI-generated text response from the `Candidates` object.\n  ///\n  /// **Returns:**\n  /// - `String?`: The text of the last part if it is a `TextPart`, or `null` if not found.\n  String? get output => (content?.parts?.lastOrNull as TextPart?)?.text;\n\n  /// Retrieves the last `FilePart` from the content and returns its `fileData`.\n  /// This is useful for handling file responses (such as images or documents) from the AI.\n  ///\n  /// **Returns:**\n  /// - `FileDataPart?`: The `FileDataPart` object containing the file data, or `null` if not found.\n  FileDataPart? get outputFile =>\n      (content?.parts?.lastOrNull as FilePart?)?.fileData;\n\n  /// Retrieves the last `Part` from the content, regardless of its type (text, file, etc.).\n  /// This provides a more generic access to the last part of the response.\n  ///\n  /// **Returns:**\n  /// - `Part?`: The last `Part` object, or `null` if not found.\n  Part? get outputPart => content?.parts?.lastOrNull;\n}\n"
  },
  {
    "path": "lib/src/utils/gemini_data_builder.dart",
    "content": "import 'dart:convert';\nimport 'dart:typed_data';\n\nimport 'package:flutter_gemini/src/models/content/content.dart';\nimport 'package:flutter_gemini/src/models/part/part.dart';\nimport 'package:mime/mime.dart';\n\nclass GeminiDataBuilder {\n  static Map<String, Object> buildTextData(String text) => {\n        'contents': [\n          {\n            'parts': [\n              {'text': text}\n            ]\n          }\n        ]\n      };\n\n  static Map<String, Object> buildTextAndImageData(\n      String text, List<Uint8List>? images) {\n    final parts = <Map<String, Object>>[\n      {'text': text},\n      if (images != null)\n        ...images.map((image) => {\n              'inline_data': {\n                'mime_type':\n                    lookupMimeType('', headerBytes: image) ?? 'image/jpeg',\n                'data': base64Encode(image),\n              }\n            })\n    ];\n    return {\n      'contents': [\n        {'parts': parts}\n      ]\n    };\n  }\n\n  static Map<String, Object> buildChatData(\n      List<Content> chats, String? systemPrompt) {\n    final data = <String, Object>{\n      'contents': chats.map((e) => e.toJson()).toList(),\n    };\n    if (systemPrompt != null) {\n      data['system_instruction'] = {\n        'parts': [\n          {'text': systemPrompt}\n        ]\n      };\n    }\n    return data;\n  }\n\n  static Map<String, Object> buildPromptData(List<Part> parts) => {\n        'contents': [\n          {'parts': parts.map((e) => Part.toJson(e)).toList()}\n        ]\n      };\n\n  static Map<String, Object> buildEmbedData(String text) => {\n        'model': 'embedding-001',\n        'content': {\n          'parts': [\n            {'text': text}\n          ]\n        }\n      };\n\n  static Map<String, Object> buildBatchEmbedData(List<String> texts) => {\n        'requests': texts\n            .map((text) => {\n                  'model': 'models/embedding-001',\n                  'content': {\n                    'parts': [\n                      {'text': text}\n                    ]\n                  }\n                })\n            .toList()\n      };\n}\n"
  },
  {
    "path": "lib/src/utils/gemini_exception.dart",
    "content": "/// A custom exception class to represent errors that occur during Gemini API interactions.\n/// This exception is used to capture error messages and status codes from the API response,\n/// providing more context for error handling.\n///\n/// **Usage:**\n/// You can throw a `GeminiException` when an API request fails or encounters an unexpected issue.\n///\n/// **Example:**\n/// ```dart\n/// if (response.statusCode != 200) {\n///   throw GeminiException('Failed to fetch data', statusCode: response.statusCode);\n/// }\n/// ```\nclass GeminiException implements Exception {\n  /// A message describing the error that occurred. This can be a string or any other object\n  /// containing details about the error (e.g., error description, API message).\n  final Object message;\n\n  /// The HTTP response status code from the API request. It provides context for the error,\n  /// such as whether it was a client error (4xx) or server error (5xx).\n  final int? statusCode;\n\n  /// Constructs a [GeminiException] with an error message and optional status code.\n  ///\n  /// **Parameters:**\n  /// - `message` (Object): The message describing the error.\n  /// - `statusCode` (int?, optional): The HTTP status code associated with the error (e.g., 404, 500).\n  const GeminiException(\n    this.message, {\n    this.statusCode,\n  });\n\n  @override\n  String toString() {\n    // Returns a string representation of the exception, including the error message and status code.\n    return '**GeminiException** => $message\\n\\tStatus Code: $statusCode';\n  }\n}\n"
  },
  {
    "path": "lib/src/utils/gemini_exception_handler_mixin.dart",
    "content": "import 'package:dio/dio.dart';\nimport 'package:flutter_gemini/src/repository/api_interface.dart';\nimport 'package:flutter_gemini/src/utils/gemini_exception.dart';\n\n/// A mixin that provides centralized exception handling for API requests.\n/// This is designed to simplify error management by wrapping requests\n/// with a handler that detects and processes exceptions.\n///\n/// **Usage:**\n/// Add this mixin to a class implementing `ApiInterface` to gain access\n/// to the `handler` method for streamlined API call management.\n///\n/// **Example:**\n/// ```dart\n/// class ApiService with GeminiExceptionHandler implements ApiInterface {\n///   Future<Response> fetchData() async {\n///     return await handler(() async {\n///       return await dio.get('/endpoint');\n///     });\n///   }\n/// }\n/// ```\nmixin GeminiExceptionHandler on ApiInterface {\n  /// Wraps an API request and handles potential exceptions.\n  ///\n  /// **Parameters:**\n  /// - `request` (Future<Response> Function()): A function that executes\n  ///   the actual API request and returns a `Future<Response>`.\n  ///\n  /// **Returns:**\n  /// - `Future<Response>`: The API response if the request succeeds.\n  ///\n  /// **Throws:**\n  /// - `GeminiException`: If the response indicates an error or if a\n  ///   DioException occurs.\n  Future<Response> handler(Future<Response> Function() request) async {\n    try {\n      // Execute the API request.\n      final res = await request();\n\n      // Extract the HTTP status code.\n      int statusCode = res.statusCode ?? 200;\n\n      // If the status code indicates success, return the response.\n      if (statusCode >= 200 && statusCode < 300) {\n        return res;\n      }\n\n      // Throw a GeminiException if the status code indicates failure.\n      throw GeminiException(res.data?['error'], statusCode: statusCode);\n    } catch (e) {\n      // Handle Dio-specific exceptions.\n      if (e is DioException) {\n        final data = e.response?.data;\n\n        // Check if the response contains a raw `ResponseBody`.\n        if (data is ResponseBody) {\n          throw GeminiException(\n            e.message ?? 'Something went wrong!',\n            statusCode: e.response!.statusCode,\n          );\n        }\n\n        // For other DioExceptions, throw a GeminiException with status -1.\n        throw GeminiException(e.message ?? 'Something went wrong!',\n            statusCode: -1);\n      }\n\n      // For all other exceptions, wrap them in a GeminiException.\n      throw GeminiException(e, statusCode: -1);\n    }\n  }\n}\n"
  },
  {
    "path": "lib/src/utils/gemini_model_manager.dart",
    "content": "import 'dart:developer';\n\nimport 'package:flutter_gemini/src/config/constants.dart';\nimport 'package:flutter_gemini/src/init.dart';\nimport 'package:flutter_gemini/src/models/gemini_model/gemini_model.dart';\n\nimport '../implement/gemini_service.dart';\n\nclass GeminiModelManager {\n  final GeminiService _api;\n  List<GeminiModel>? _models;\n\n  GeminiModelManager(this._api);\n\n  Future<String> resolveModelName({\n    required String? userModel,\n    required String expectedModel,\n  }) async {\n    if (Gemini.instance.disableAutoUpdateModelName) {\n      return userModel ?? expectedModel;\n    }\n\n    _models ??= await _listModels();\n\n    if (userModel != null) {\n      final resolved = _findModel(userModel);\n      if (resolved != null) return resolved;\n      _logModelNotFound(userModel);\n    }\n\n    final resolvedExpected = _findModel(expectedModel);\n    if (resolvedExpected != null) return resolvedExpected;\n\n    return _findFallbackModel(userModel, expectedModel);\n  }\n\n  Future<List<GeminiModel>> _listModels() async {\n    final response = await _api\n        .get('${Constants.baseUrl}${Constants.defaultVersion}/models');\n    return GeminiModel.jsonToList(response.data['models']);\n  }\n\n  String? _findModel(String modelName) {\n    final models = _models!;\n    if (models.any((m) => m.name == modelName)) return modelName;\n\n    final withPrefix = 'models/$modelName';\n    if (models.any((m) => m.name == withPrefix)) return withPrefix;\n\n    final partialMatches = models\n        .where((m) =>\n            m.name?.toLowerCase().contains(modelName.toLowerCase()) ?? false)\n        .toList();\n\n    if (partialMatches.isNotEmpty) {\n      partialMatches.sort(_compareModelVersions);\n      final bestMatch = partialMatches.first.name!;\n      log('Using partial match \"$bestMatch\" for requested model \"$modelName\"',\n          name: 'GEMINI_INFO');\n      return bestMatch;\n    }\n\n    return null;\n  }\n\n  String _findFallbackModel(String? userModel, String expectedModel) {\n    log('Expected model \"$expectedModel\" not found. Searching for alternatives...',\n        name: 'GEMINI_WARNING');\n\n    final fallback = _findBestFallback(userModel, expectedModel);\n    if (fallback != null) {\n      log('Using fallback model: $fallback', name: 'GEMINI_INFO');\n      return fallback;\n    }\n\n    log('No suitable model found. Using default: ${Constants.defaultModel}',\n        name: 'GEMINI_WARNING');\n    return Constants.defaultModel;\n  }\n\n  void _logModelNotFound(String modelName) {\n    log('Model \"$modelName\" not found. Available: ${_models?.map((e) => e.name).join(\", \")}',\n        name: 'GEMINI_WARNING');\n  }\n\n  int _compareModelVersions(GeminiModel a, GeminiModel b) {\n    final versionA = _extractVersion(a.name ?? '');\n    final versionB = _extractVersion(b.name ?? '');\n    return versionB.compareTo(versionA);\n  }\n\n  double _extractVersion(String name) {\n    final match = RegExp(r'(\\d+\\.?\\d*)').firstMatch(name);\n    return double.tryParse(match?.group(1) ?? '0') ?? 0;\n  }\n\n  String? _findBestFallback(String? userModel, String expectedModel) {\n    if (_models == null || _models!.isEmpty) return null;\n    final fallbackPriority = ['gemini-2.5-pro', 'gemini-2.5-flash'];\n    final userHint = userModel?.toLowerCase();\n    final expectedHint = expectedModel.toLowerCase();\n\n    if (userHint?.contains('pro') ?? expectedHint.contains('pro')) {\n      return _findModelByPatterns(['pro', ...fallbackPriority]);\n    }\n    if (userHint?.contains('flash') ?? expectedHint.contains('flash')) {\n      return _findModelByPatterns(['flash', ...fallbackPriority]);\n    }\n    return _findModelByPatterns(fallbackPriority);\n  }\n\n  String? _findModelByPatterns(List<String> patterns) {\n    for (final pattern in patterns) {\n      final matches = _models!\n          .where((m) => m.name?.toLowerCase().contains(pattern) ?? false)\n          .toList();\n      if (matches.isNotEmpty) {\n        matches.sort(_compareModelVersions);\n        return matches.first.name;\n      }\n    }\n    return null;\n  }\n}\n"
  },
  {
    "path": "lib/src/utils/gemini_request_handler.dart",
    "content": "import 'package:dio/dio.dart';\nimport 'package:flutter_gemini/src/utils/gemini_response_parser.dart';\nimport 'package:flutter_gemini/src/implement/gemini_service.dart';\nimport 'package:flutter_gemini/src/init.dart';\nimport 'package:flutter_gemini/src/models/candidates/candidates.dart';\n\nclass GeminiRequestHandler {\n  final GeminiService _api;\n\n  GeminiRequestHandler(this._api);\n\n  /// Executes a standard API request.\n  Future<T> executeRequest<T>({\n    required String endpoint,\n    Map<String, Object>? data,\n    required T Function(Map<String, dynamic>) responseParser,\n    bool isGetRequest = false,\n  }) async {\n    _clearTypeProvider();\n    try {\n      final Response response = isGetRequest\n          ? await _api.get(endpoint)\n          : await _api.post(endpoint, data: data);\n      return responseParser(response.data);\n    } finally {\n      _setTypeProviderLoading(false);\n    }\n  }\n\n  /// Executes a streaming API request.\n  Stream<Candidates> executeStreamRequest({\n    required String endpoint,\n    required Map<String, Object> data,\n  }) async* {\n    _clearTypeProvider();\n    try {\n      final response = await _api.post(\n        endpoint,\n        data: data,\n        isStreamResponse: true,\n      );\n\n      if (response.statusCode == 200) {\n        yield* GeminiResponseParser.processStreamResponse(response.data);\n      }\n    } finally {\n      _setTypeProviderLoading(false);\n    }\n  }\n\n  void _clearTypeProvider() => Gemini.instance.typeProvider?.clear();\n  void _setTypeProviderLoading(bool loading) =>\n      Gemini.instance.typeProvider?.loading = loading;\n}\n"
  },
  {
    "path": "lib/src/utils/gemini_response_parser.dart",
    "content": "import 'dart:convert';\nimport 'dart:developer';\n\nimport 'package:dio/dio.dart';\nimport 'package:flutter_gemini/src/init.dart';\nimport 'package:flutter_gemini/src/models/candidates/candidates.dart';\nimport 'package:flutter_gemini/src/models/gemini_response/gemini_response.dart';\nimport 'package:flutter_gemini/src/utils/candidate_extension.dart';\n\nclass GeminiResponseParser {\n  static const _splitter = LineSplitter();\n\n  static Candidates? parseGenerateResponse(Map<String, dynamic> responseData) =>\n      GeminiResponse.fromJson(responseData).candidates?.lastOrNull;\n\n  static List<List<num>?>? parseBatchEmbeddingResponse(\n      Map<String, dynamic> responseData) {\n    return (responseData['embeddings'] as List)\n        .map((e) => (e['values'] as List).cast<num>())\n        .toList();\n  }\n\n  static Stream<Candidates> processStreamResponse(\n      ResponseBody responseBody) async* {\n    int index = 0;\n    String modelStr = '';\n    List<int> cacheUnits = [];\n\n    await for (final itemList in responseBody.stream) {\n      final list = cacheUnits + itemList;\n      cacheUnits.clear();\n\n      String res;\n      try {\n        res = utf8.decode(list);\n      } catch (e) {\n        log('Error in parsing chunk', error: e, name: 'Gemini_Exception');\n        cacheUnits = list;\n        continue;\n      }\n\n      res = _cleanStreamResponse(res, index == 0);\n      yield* _parseStreamLines(\n          res, modelStr, (newModelStr) => modelStr = newModelStr);\n      index++;\n    }\n  }\n\n  static Stream<Candidates> _parseStreamLines(String response,\n      String currentModelStr, void Function(String) updateModelStr) async* {\n    String modelStr = currentModelStr;\n    for (final line in _splitter.convert(response)) {\n      if (modelStr.isEmpty && line == ',') continue;\n      modelStr += line;\n\n      final candidate = _tryParseCandidate(modelStr);\n      if (candidate != null) {\n        yield candidate;\n        Gemini.instance.typeProvider?.add(candidate.output);\n        modelStr = '';\n      }\n    }\n    updateModelStr(modelStr);\n  }\n\n  static Candidates? _tryParseCandidate(String jsonStr) {\n    try {\n      final candidateData =\n          (jsonDecode(jsonStr)['candidates'] as List?)?.firstOrNull;\n      return candidateData != null ? Candidates.fromJson(candidateData) : null;\n    } catch (e) {\n      return null;\n    }\n  }\n\n  static String _cleanStreamResponse(String response, bool isFirst) {\n    String cleaned = response.trim();\n    if (isFirst && cleaned.startsWith('[')) cleaned = cleaned.substring(1);\n    if (cleaned.startsWith(',')) cleaned = cleaned.substring(1);\n    if (cleaned.endsWith(']')) {\n      cleaned = cleaned.substring(0, cleaned.length - 1);\n    }\n    return cleaned.trim();\n  }\n}\n"
  },
  {
    "path": "pubspec.yaml",
    "content": "name: flutter_gemini\ndescription: Flutter Google Gemini SDK. Google Gemini is a set of cutting-edge large language models \n  (LLMs) designed to be the driving force behind Google's future AI initiatives.\nversion: 3.0.0\nrepository: https://github.com/babakcode/flutter_gemini\ntopics:\n  - gemini\n  - ai\n  - google-gemini\n  - flutter-gemini\nscreenshots:\n  - description: Flutter_Gemini example screenshot\n    path: screenshots/gemini_screenshot.png\n  - description: Flutter_Gemini example\n    path: screenshots/gemini_cover.jpeg\n\nplatforms:\n  android:\n  ios:\n  web:\n  linux:\n  windows:\n  macos:\n\nenvironment:\n  sdk: '>=3.0.0 <4.0.0'\n\ndependencies:\n  dio: ^5.7.0\n  mime: ^2.0.0\n\ndev_dependencies:\n  test: ^1.24.0\n  flutter_lints: ^2.0.0\n  json_convert: ^1.1.0\n  build_runner: ^2.4.7"
  },
  {
    "path": "test/features/chat_test.dart",
    "content": "import 'dart:developer';\nimport 'package:test/test.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport '../flutter_gemini_test.dart';\n\nvoid main() {\n  Gemini.init(apiKey: apiKey, enableDebugging: true);\n\n  test('Check Gemini\\'s generated simple chat responding', () async {\n    /// an instance\n    final gemini = Gemini.instance;\n\n    await gemini\n        .chat([\n          Content(parts: [\n            Parts(\n                text: 'Write the first line of a story about a magic backpack.')\n          ], role: 'user'),\n          Content(parts: [\n            Parts(\n                text:\n                    'In the bustling city of Meadow brook, lived a young girl named Sophie. She was a bright and curious soul with an imaginative mind.')\n          ], role: 'model'),\n          Content(parts: [\n            Parts(text: 'Can you set it in a quiet village in 1600s France?')\n          ], role: 'user'),\n        ])\n        .then((value) => log(value?.output ?? 'without output'))\n        .catchError((e) => log('chat', error: e));\n  });\n}\n"
  },
  {
    "path": "test/features/count_tokens_test.dart",
    "content": "import 'dart:developer';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport '../flutter_gemini_test.dart';\nimport 'package:test/test.dart';\n\nvoid main() {\n  Gemini.init(apiKey: apiKey, enableDebugging: true);\n\n  test('check gemini to generate simple text', () async {\n    /// an instance\n    final gemini = Gemini.instance;\n    await gemini\n        .countTokens(\"Write a story about a magic backpack.\")\n        .then((value) => log((value ?? 0).toString()))\n        .catchError((e) => log('text input exception', error: e));\n  });\n}\n"
  },
  {
    "path": "test/features/info_test.dart",
    "content": "import 'dart:developer';\nimport 'package:test/test.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport '../flutter_gemini_test.dart';\n\nvoid main() {\n  Gemini.init(apiKey: apiKey, enableDebugging: true);\n\n  test('Check Gemini\\'s generated model info', () async {\n    /// an instance\n    final gemini = Gemini.instance;\n    await gemini\n        .info(model: 'gemini-pro')\n        .then((info) => log(info.toString()))\n        .catchError((e) => log('text input exception', error: e));\n  });\n}\n"
  },
  {
    "path": "test/features/list_models_test.dart",
    "content": "import 'dart:developer';\nimport 'package:test/test.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport '../flutter_gemini_test.dart';\n\nvoid main() {\n  Gemini.init(apiKey: apiKey, enableDebugging: true);\n\n  test('Check Gemini\\'s generated model list', () async {\n    /// an instance\n    final gemini = Gemini.instance;\n    await gemini\n        .listModels()\n        .then((models) => log(models.toString()))\n        .catchError((e) => log('listModels', error: e));\n  });\n}\n"
  },
  {
    "path": "test/features/text_test.dart",
    "content": "import 'dart:developer';\nimport 'package:test/test.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\nimport '../flutter_gemini_test.dart';\n\nvoid main() {\n  Gemini.init(apiKey: apiKey, enableDebugging: true);\n\n  test('check gemini to generate simple text', () async {\n    /// an instance\n    final gemini = Gemini.instance;\n    await gemini\n        .text(\"Write a story about a magic backpack.\")\n        .then((value) => log(value?.output ?? ''))\n        .catchError((e) => log('text input exception', error: e));\n  });\n}\n"
  },
  {
    "path": "test/flutter_gemini_test.dart",
    "content": "import 'dart:developer';\nimport 'package:test/test.dart';\nimport 'package:flutter_gemini/flutter_gemini.dart';\n\nconst apiKey = '--- Your Gemini Api Key ---';\n\nvoid main() {\n  Gemini.init(apiKey: apiKey, enableDebugging: true);\n\n  test('check gemini to generate simple text', () async {\n    /// an instance\n    final gemini = Gemini.instance;\n\n    await gemini\n        .chat([\n          Content(parts: [\n            Parts(\n                text: 'Write the first line of a story about a magic backpack.')\n          ], role: 'user'),\n          Content(parts: [\n            Parts(\n                text:\n                    'In the bustling city of Meadow brook, lived a young girl named Sophie. She was a bright and curious soul with an imaginative mind.')\n          ], role: 'model'),\n          Content(parts: [\n            Parts(text: 'Can you set it in a quiet village in 1600s France?')\n          ], role: 'user'),\n        ])\n        .then((value) => log(value?.output ?? 'without output'))\n        .catchError((e) => log('chat', error: e));\n  });\n}\n"
  }
]