From 7222646b57d92b6c59d6be13dcd9c4f2bbf9acd5 Mon Sep 17 00:00:00 2001 From: Moe Date: Fri, 1 Dec 2023 22:43:46 +0700 Subject: [PATCH] Initial commit --- .gitignore | 43 ++ .metadata | 45 ++ README.md | 14 + analysis_options.yaml | 28 + android/.gitignore | 13 + android/app/build.gradle | 67 ++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 33 + .../example/nekoya_landing/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../main/res/mipmap-hdpi/launcher_icon.png | Bin 0 -> 1231 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 0 -> 736 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 0 -> 1566 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 0 -> 2505 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 0 -> 3409 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 30 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 29 + assets/images/featured.webp | Bin 0 -> 76932 bytes assets/images/logo.webp | Bin 0 -> 6872 bytes assets/images/onboarding.webp | Bin 0 -> 52438 bytes assets/images/onboarding_2.webp | Bin 0 -> 67586 bytes assets/images/onboarding_3.webp | Bin 0 -> 48796 bytes ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 614 ++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 31074 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 330 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 624 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 931 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 512 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 987 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1475 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 624 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1300 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 1974 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 709 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 1541 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 918 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 1949 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 1974 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3275 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 1231 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 2505 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1323 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 2593 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3017 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 49 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/main.dart | 241 ++++++ linux/.gitignore | 1 + linux/CMakeLists.txt | 145 ++++ linux/flutter/CMakeLists.txt | 88 +++ linux/flutter/generated_plugin_registrant.cc | 15 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 24 + linux/main.cc | 6 + linux/my_application.cc | 104 +++ linux/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 12 + macos/Runner.xcodeproj/project.pbxproj | 695 ++++++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 31074 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 2169 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 299 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 4956 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 517 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 11786 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 1055 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 +++++++++ macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 12 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 8 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.lock | 386 ++++++++++ pubspec.yaml | 109 +++ web/favicon.png | Bin 0 -> 299 bytes web/icons/Icon-192.png | Bin 0 -> 3409 bytes web/icons/Icon-512.png | Bin 0 -> 11786 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 3409 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 11786 bytes web/index.html | 54 ++ web/manifest.json | 35 + windows/.gitignore | 17 + windows/CMakeLists.txt | 108 +++ windows/flutter/CMakeLists.txt | 109 +++ .../flutter/generated_plugin_registrant.cc | 14 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 24 + windows/runner/CMakeLists.txt | 40 + windows/runner/Runner.rc | 121 +++ windows/runner/flutter_window.cpp | 71 ++ windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 ++ windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 758 bytes windows/runner/runner.exe.manifest | 20 + windows/runner/utils.cpp | 65 ++ windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 288 ++++++++ windows/runner/win32_window.h | 102 +++ 143 files changed, 5211 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/nekoya_landing/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 assets/images/featured.webp create mode 100644 assets/images/logo.webp create mode 100644 assets/images/onboarding.webp create mode 100644 assets/images/onboarding_2.webp create mode 100644 assets/images/onboarding_3.webp create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/main.dart create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 linux/main.cc create mode 100644 linux/my_application.cc create mode 100644 linux/my_application.h create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..29a3a50 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..d22992e --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "db7ef5bf9f59442b0e200a90587e8fa5e0c6336a" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + - platform: android + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + - platform: ios + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + - platform: linux + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + - platform: macos + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + - platform: web + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + - platform: windows + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/README.md b/README.md new file mode 100644 index 0000000..3060b58 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# Nekoya (Landing Page) + +

+ + Frontier of Hell + +

+ + +## Description +Landing Page for Nekoya ~ + +## Contributors +- Michael William Jonathan / [@moepoi](https://github.com/moepoi) \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..dc6528d --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,67 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +android { + namespace "com.example.nekoya_landing" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "team.moe.nekoya.landing" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies {} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7a938ad --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/nekoya_landing/MainActivity.kt b/android/app/src/main/kotlin/com/example/nekoya_landing/MainActivity.kt new file mode 100644 index 0000000..807b889 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/nekoya_landing/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.nekoya_landing + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fc3b1524ed523e7cf8e412191be67721285fa100 GIT binary patch literal 1231 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3f14ddb3b73cbb0c979945666c3af74526536c59 GIT binary patch literal 1566 zcmZvcdoWga z7|6|7#Z=wuuIia%x-)c+!Mrub=5W0lpYO_YfJ0+tJ?9 z!OT#?*4PdP+Tw7IF)>ZPvscu(8~k}aJv|JE5yR4PZ{yC+TKT=s)vh2H7b`b}%t*#; ze6s4jC~<>EJ7669&5fm3Ecrjv_q5#kb*Z?fqP~76fk1fG(a}L5MMoPMleWf|z8wpg zaKPgWMj62$C?#fHf5lDi0NAZNnM`ImA~2NUsGSIi2^wFXe(vb#*qF_PIl+1J^F@1A z>;_WzolsR(y(Ot|+=RtqjlCP)T_QzpU0PUp$mQZk>qAr$6B8Z%{nd$e`Uz!FvW%v; zDn!x9$P>zwfL`?VecYg^qeDG$LcTK;9A&ew`1r(yFOC+^L5M`+#`;GUV%?jRS!mzu z*MncbEYFVBhghRA7-(&6ZIGY;c$PJgQwZdtoLeHq3r{J6p`ze!sA%8B0j**(ae1OF zs-?d_1q8uYy}ikd*v+22Ct*I;5ZgyAa5v;_a&CG@)Wo2~aZ_02VAqfzg7|r;)>(wGNUwv^+JZj)zZ-2kb zgTS3fG&F+!y8pD*1g6oKsY~ywu_2% zRR06hHo?O7Kj0FlIbaT{{{8&&L{m;_Sv{FTL9k+u2$~g6gx{f8S0BYWg+RQ#ygb4u z-`u_p?`PdJBqO&6o`K+SxFHV5{%wVq6B`bP`&%&FEpfQw)zzTK<>l=6o^#0+U=>3o zlZ55L{&=$)FezgD%3@{M)$9v)VCHYy?ECJ!<@?JkDqPhI3Yub8r_A}6;C0e6GOYWW z=XguwFI>O&_VnPzBWhqq383k7?k|~sh&(o_3Bl#-! z`Hz}W&1ZsFxTgH;wb=WYIJ8qF=dbc(C-Ay=Yg2g5cYfBp=f3&nB(D-k>3HGJZIy zF9DmEo}X`rL?XjMHFb5D$@87Ic6O=b-*1vzThaU|kE%D&EzQoV&&!<3Ie6263!r9} zPNOx?t$IAWW)OYV#btO+e+l%kwy_ybQ(B2=BY3p6wS{*f5C{dvwd!~J`<|L5NtSIT zF-P=42c}%cRi&0k+q~t7ndk-t2cMq5C;{oLtg&!{To&CB2rg$oER{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d234b91bb056641ddd5379010ccf43ced488bd9a GIT binary patch literal 2505 zcmbtWc{tSF7azkkjD)gepR7X*5rvq+m>Q!@GPa^fWSi{LLSrdJh8Rn>u^U@7ma(?b zSVFXUF@&)C+_B7fO zK=SX!y9?N7F_R4-5FZ(fHnO_G#mRE_5^&hhl%rED?Qh{?v_A}csAF*@JYPyv=&?Me z1%_5==NLiCQ0(c`FU5^`t6xdhR@EviN;+fRAx7SW!s*^$iW{xB~%C(_vgwVC+j(1G9^uEIgp@DF)@c#^6s(1|M-n%jz3y=4-=`Y(& z!ON89=95*-)8^*MeOdacBlWJmlBx#}memB=b6tSZFFyynk2X|OQ5_u}N$KhH-}Ym% z*d#I;PaOaLZBdo%ppgV^@95YP>D<{Lbmwh51sw7Sx?4gM-BP}>Hfw>b?Q9&fgl}9U z5sS}e>Gg5QWFe)2>7LXb*0CNZ9BH(xw>QPH<)&`EF!fFRIr#YR!@QBgHgAj0C~0aA zGOn{b6MqsZO4Ws^Y`@&K*?ydvS**XlvNA?e#|vRBObmC*tXd4g27 zJOdWVDucp)WS?Co1PjT_L5d0%^FEuW@%af(&ICdLcdD zAzB@__ypXE6)Ox$L zZ^jNNNE8r2Pr2RG%#jtY{Yrv;<{D5aYl*f{<145|p~jo%v8E zYx{({wJcy&LL)O+wB%HR>|mZL|Go<%ws^Q)rhf3*B8!~LJc>fFq+UQtR|QNOK^ClZ zXew&=<*aK|dwiU}I0`(f6vpQASc|`*3TKny^zvR8GeNGbEQIoc0w#zxXDu||JoW46 z4#7oUN3>s4hjNoVnW;xUb3w21$s#s6Ul^L+>fh5S*E752FMSTn)xPu-1-4?WHsgcQ;)j$t$-m=DDJ6iZ-Mtn-9q^6%#2x65T_t?=ld}8l|aKfXC(FD zJX-D4Gk%`XADagRWlxeD8cryY7xTvTPCRsCMp0=n94`+Zt7~ZJSVv?neDklcuT8qM zy^b|Ej~jl~?cCMX<%lB~pDyRVGxJ))uG%?jLU-@py)K;L+Ci!bbnE9%leB)2`AlC{ znb@ZQH=wwy6EC6Z$FFA(%jyS}14%wLOn0C1g+W?^~-a00vD`8wpI&2hIzs- zOOWuoDh38Dw_q*r;bWrb^78Wu;(_c=;lK&s>iFpBXne?rpF7)EN9w%q<&4nXA9be# zG+%JFhvN5j?wo{{YaDaI0N}c$jtAmp-Th?nYX0ryfghKgo%0qdzto1TxoZCvR~W@D z)59A%d7aD*?6_e;C$j8ik)emw9h>nZKpPXb9tlSq>IW}bF`1@oL7#z+ubsQ$=$O66 zzZxVRIOV1UWyK2}=QRMSt^$Q6;fN!R}D z3O35>ShxF|7HU?OUSQJTpru`7fIGv!f)rQCV=Qmr)+b#hF5ti=A3NntD8QVIErqw) z)f2N8@`Made&LK9Puc$TqqFM8%a`vB752y(mOqTS7LB-e?B;GhzH?YzHrI(d0`ah| zF`TI`V-gY>BGRf2R**S;*DPXg-G?NjpsC>FWK(&uv{4FuL~$`2<@Z2%I7tatfPJJ) zb51x{&!Yh|X*sI+MM}p@BUvI*TTAPFw!y6;OaPTiHR}V)*ZELJzqyX(1$Kl-YlN)2 zeCuIebA1uXw;&!j$eoR{A-T}q`m;UIQ-`aJ@(hThCq!#~CX~-+mgJ=hmswXNIWz^8 zK289pB~4(ACd+CiZeuwD8QhsKg< zV0K`hKDPA6=X&r2*Lv#xyKn!IiufWKDx)h3-_z`jhL^z;zL3!|6+%zTtqnG3q&^f` yH4b^fbH(01qs;+Kbiz literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8c166e7acdc427b296577a4ad1adbb4034334b5c GIT binary patch literal 3409 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 ynl7~?`?^3a + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..e83fb5d --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,30 @@ +buildscript { + ext.kotlin_version = '1.7.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..598d13f --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3c472b9 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..7cd7128 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,29 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + } + settings.ext.flutterSdkPath = flutterSdkPath() + + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } + + plugins { + id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false +} + +include ":app" diff --git a/assets/images/featured.webp b/assets/images/featured.webp new file mode 100644 index 0000000000000000000000000000000000000000..489dc1087b86433f9577718f225f222941190e99 GIT binary patch literal 76932 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 literal 0 HcmV?d00001 diff --git a/assets/images/onboarding.webp b/assets/images/onboarding.webp new file mode 100644 index 0000000000000000000000000000000000000000..0f832cf6f19a55838050e6405042cb809d203e04 GIT binary patch literal 52438 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

%qs(UX1d$>9a-0|M(t z*2_=7ujTr1y|8dUj7yXP6LE|u#CsvyCBG%$&@-Ni!e6BKbK<~W9h0!xESJ3f#Z|QF zhHrHL;Eru~TTD%oN})RkzM~e*X_1NgD)sw~U=#*9s2>Q!i_M6Y$e|XNa`$B3Zl`>z zi4#l}JQqz@6Ec%qU&+&Dp6`$-=wU&E@fOUwXl-Zj7D}%n<1l1p{10}K({FQi6f9ne z8*06EJW@}_=(uc_MnUQU2)CK7KEyR~qRhxPY)nYUa&*0A?p}yn8^KjyD zI4Uv}d}9T_Zf)<5&M%NITs%hDUjR1%=;!(VZk1oUiT**6zKDEuB}|2XLkC0{XPGaZ z6$NIZb>Q%42V}OlSN+Dzo>@Q8lM9TgIW@$@ScAsaIn3y8>!9z-w#75Kz@IL1C9L>o z{L0d|_oCXbQzBC!Rlc_ZFh=zcLX8r>_pI+LGx#*|J~5KoyLl_+U{2O&cDY)Y<+>)`EE)0vJ{WXqKUD@HnD<%ht8J**;gHlghyPae#MMCrq};(j92Q48P}0GcLaHChBN-> zQ)%ys%zR&M9ub~32nxnD8d|*j$LZcB=xcR`MasOVH@Y^y*p{JGI0s+nfy*Udz5AY9 zk+tJ*9K@((Y#W|pb1dA6#%?0Zk#|)`Pnx92&rLNjktH`sdn&v;?oiL*cnMG|?#EmA{eESBIf3X&4xjGW&XdA{y{Pj1V@DP6! zmBgyQbFCV_G=BzW<6yZwB4^g&G&$m>VMPNRyJ+DbdGV(&qwaSdYtrvUZGMsJUeOBr zU-bKMMYoZ!K;T}sVnm@}@m`<0Qv{u*BKGSps#_@pjFdWEw0{VM`^4_@ps1azO6j-S zDMO}~p*`G=cFQgXpW`#wt~3HX4j&@tAJnC>CD)z%Tkr-wW!+M^7J0K_p}QX|1-reA zHR6%9C>Z5Uf_`(Nv|g)?;BGW)6hblJX&WmOm!37x7FBckHX#7`ilK7z#=}UKm>YWj znfG(KEOP*ozvn_*0&mc8+Il#lvxSsYAo{gLvK_rKOET`V-LVuQovj=6dy>1t+HVH| z_Fhi^2_RUEoa_X-*~tr2ZI<`BTkwjjNSLP%-~NZv(`3|H55B;X zrm^zj6@LWg6hRhMonln_!DZ5zKVco#7i6mUwG5pJ3|W({35Cnpv15B6o&EPipx4#) z?-^S$!6j@(ylP&&G@x{eV~5F#M3tChkRC|D-=v-~<+~j_vySylj@Xbaho;T;g-0Ji z;CZ(77#mi`aO2YDuo*N_VkubGGs+WlVZ7Se&i(JFLmpuT?}7bZuTM6j=tsHwjyh(H z-fhL}=yv;8@63LrL3sSjAurKA+!i<1(5eZ|?$33UL^Ln;s`R1sWKM+^*? zW4xwtkq*W8mXo#5LZw{#e`NhrbS>S}_Ybew_Kt1awr$(CZQHhOn>)6%lkDu+PX4)` z-+l0o@t$-a^jNdISI=2h{i&*N)8L3pV3e~!+6C=~s~-1?UbH@aIh_Q-hN}GoEdEF5 z@Re?VIGvCfxSm2opMXqBlTJ5~vP`dh*KBQ=vBwzg^?N;d`1@tZAHN7RvcSF!`M?!4 zVoj@Ud26!+LAj_ZJerjwpZs5i@4Y?1eWSbS6t-2Fzs!rN^8YvS#?HbEYMfx7EB2`3 zp)JEJk-`0kXX~KMjhESAEyymjV-E#iqL*t0x&_nhJFjpC$%c4GO1k`JG+(P4nI+3N zZYG&La%QxLE=YV13n+};PSEY?q43rDb~45lG{Lor|Ko6bzoS9p*>~=>PtGp-wn-UT z(iN2k@6N8af=0UbE{Ex2K|SqZhQSn*WN;NVMHiAkfUFLvG;_76ScUA6>r9tbtTtg2 zl`cq}ewm`Frqx0oTz~Y(%NXM<3@HdL{$MS{FNMJ$1{Tbo^MX<1I^Kyzu57xlk+FtY z=?-Sq>8l*ob<-?j2s?4_@!y>c+>2%4gpeuyk~iQtg_&3UwZPyqcoPK>G&@MVLK^-2j~RJsNHaF(i8;H>3K&Jt1X}u3H&? z>=)mNgZkRfI|)>P=8`szZg;%`JOsa>#?g%C!c;$`j+Au6Vp$=LlHWtB$oWsT*X-+# zA~{%sY17f5QZ~ku%%{79W;aSxQR8@0HL=eKKg6MP&!KDV{)Ox^YU3I9kD)xi3XZS5 z+N?+%U#JXHa{F=8xY;4FXmN7S)EODDe?hLkQffRCC-}!X{1iduW`#*Is&A~~5Jbx( zLF>=#G5tpZiDwTPMmC-OI5Rz}ci2A>5!lLb|3{;JjReu`K*HkUJ2gdWBuwcdMvL@L zbAOI;*Ap|4~g~TAnw->n2f1>u-a`vyI;= zT|2ZY{hnYn@&6l+{Lt|w{m>r-l!zx17@*4k&mG6VZoQi}3X|Bu`M#}gGp+POZ$NSJtj{Aonf z)Oe2t;*Y;Usamy@K2+fIuvjJ+L#KV=8@IOUi=gT(w)G%w*tE@2GfPKRY8|vpP z3<^BD{=dw_e|+%urhj8FOmHp zdd>?EDodIUAj4t)rv{b9DrFP~pAUZy5zFxDCd&T<=ubPoj?2Qdu7t)Zr%P6*e z&w+y;`~T%G-p2|GxhXw%hkuJGsyeb8+BMr!TdsPn=NEieDKWF@q)fE|!|K6V_`&q) zWm~aE82w+);r}nHV<|-(kP^)Q9H=+2j#XIx{`V^%-yP$BX$-77B{A2v1Fve!aol7c ztrH-1%{OC{scs&Y2o*W|2}P2@ptNzi|!*_Jxt^kvZkSk)c3DLaabsPb%g6l(y0r}Wvu*_mL!>-&%~+57M& z{qNVtEdUI4-F&FIBqDkbM-H7!z>nk+sWH5k=_n4fk+YDB%?h4PZhTlI>rUVfkKPUK zGl5O{^@nqaZSIYe$$;9#ijTUw3kN6CNDU(>RKV|qs#S41TBm|H1KpPNF8hm+V2|76 z26;zO07v2BcNnVbowWek8-6`{J3c^>`39nGM#Q09BTc-RJLJPC5MfHIqUr3eB9(G5 zy6F%3qm(>0cDMICqgbaTG%^Ji4Q{&$mBzV(_66}rI~~u}_``3wuBo=0{$W@Os|O^t zz7;^7z%=Qo!`AKE0#m^TY#$=|FD&i%pT6Iwa6@Z@-heZ`7XScBjTO!zMpSW{ztIyR zGK{wz`SFg~AipOt)3^S{5@S`04H4M;#(1~r8k(NFkj#KVHHeTz1d=i zM*(Ap5Mr-_+>Kn@)%^;E{@lZGPa?IK>pc?5^uLb!%`w ziZuA83?Gc`rs1R&TgAn}@GEeS-In`?K;Uf(Po`I-z(Dx)+(LVvo!ZDYfJ(K+R0JfR zcwY{v1N%WAJCgdb=GFG66^(Y?V%DHd!J&d)kyDY$i~)~JaUI4~_*USarG=a=_3I5$ ze5fN4rg7==FxWX_{P*q!27v|X_@d^!cVk{|Ul zk%#;nXrM^?c?b>jDeX3FUio)Pd`ez91D13Eo=wDiugeyrifMw$eX9Z7oFzbA;B;Ls zC!22pUs)R0A_2s7H>Mcset#RrU~KQP;Cd_vN*bn50ez+HLb~qU3}LM8uFus!HHrBI z%0YhE|LV!LOfq_rcOL+x&!gHriq3{wt6>yk{At)@RVMdK+*E}k|&Ep~D}cE>PX*O3s7|~5m~*Ns3%I>Tff!dXK4V!^R=;VGI5Of_&NWE_$MAP^*Eh_Oa3`d4_2{xM(Ns1^()+Rqf$kL8Od5?~aYxFyw7 zGOw@*=o2nH88zw`Lef5W}b;be%%?GmyV0f45rl4(x13^?|cZT|w&Wbdy4(Rj9a!Ai~f9LT#r z_G)Gh!tTn>kFDDRl}(|Q&nhMw>_%L*66t@B&Ey-YG55Vf`%JZy!m#(H<;U|UYKXl5 z$^rlw;t>L%^zE7n=}%#S!-do2w{ypqE7mlkCJF%1F4%W2Z&|G3z}DOL>hCukyHVjg z!stsr648DHrAF4jL-X?2k>W(%S{Q6b?>E&C3qc8&ac)qAvslv*)D=LrT$YVZBt%hMK&+m+@MO3-#GB>U0o9Xf<6+^R22jqzM<#WCChDelBqcB z;VR|9XUyulvRZNAr107G+Q{oQ#ngwk+!CIls^CfJAUzcGh`4`cmezp3vX%3 zT%L`=+EN&3K1hsWCI9xxEAUIxc0vJBk|HHCd|0lj&aTs;3e4u;FsvvsA`P9gE>!UvMc>u#f>OX`~>f$aj&Wf5xFFu63R(SQ^_S|)(|r}V-KyGM(kSe zs_0FDcGVnIa4c3H`C%RBr;}ew^&P8k%5N~>866RC<7ZETg2FcZyn<$~dWT?bF`D@w zDLgE^lmRA1digI)b6(y?@usN=ob;YiPeKEijtRFqVXh_(cRRCXryNx|afHBmXsHkW z2Km3X{)z{aRYcDB9CMdxqDKJ);Faq?i-vatR2TF(<@%qZ5xjuZMLmwWzBg%j|AOhF z9i^OqTQm?^6VV|wR>yal+m)mE20A(ts+0rCzkQySgfj%JPNCsLu?oCYPwQtrgJsn_ zoT{(Rb}?j!A#SphH_M!QK83FG-{QZ*gq{RnoQ)TF$^y&3XOS9rTSi@%!yE_#lioi> zdUN8TYq!<_RnYfe{&fpeJeoUCY@8eT;QZL;A!k%4Vm!4EaFfy z8dcY?6LC%ZGdkd#H6y)H0}yY?!;u>E2R<@x<5^=@S<5_uve^`4-v9oWU!A909Xu}u zzYant|LL0_iB>J{ z^d({jZx>}wN%YREjUce|)Fwy;cjlD&4ahfj&LEU*uTJ;x#zRbNb|&F3D*1CO(=|~< z>*gGhmwVh7?~(3XU3Y={ZinE01_yO~uoSXZIzjGryIxP%az1nXstso(KxP`gQ#39m z?tK6zwP@;z=w+&&zhf*v{`t%gu$f5-w+PN9UVQwOA$UPoni7Wu)4r5C_hX;~1pt7d z&S#oF-oM+Hxbr{%sV8%@N3N@vwkM;VG-L_TTFJOc`Y7+b>KUbo0?=1hos`zb7p&%wuTCt{xPV zVGOU_!Vr?gv@D8EtzMl zOQQdUqBu?TveUD&kNDFz9LV@lDjTOJ+Zo-mjIx&UKriCf*zxVw4 z{r@&uBGujN6F|6LX4YRc5*xFxN|Uuoeo^8rIBLVxD@pw@hh5|RLZE6j(~e`40l18- z?o?HiduRi@ic7T@B9N6jT4!_+^-T;Bo$r+j`KSTB`cnkUj=N)Dc$Mb~G{YUocg&#GP^dji8j=8zp*~ zVF)(AKTRJ-BmL{(Wn4G)>!ZU!ZUcnqfCx$FdTF!MZ%)BiyYn8(_XC}}p6l8T(}wg3 zRcu!X`|Yf|kXsO=_IDQ0*-{%`+>^=(4~A*AAf+b*D;Y9{;m&M_MEfkoW%G&CfL)1O z%zsStTirat$zZvb6jrsTR`mDr?7|U{l-n)VZDts_qnCKJDbVJRBx?~iaBL^z5&C@GBv*RyuDuq?WME+<9Nc$I-zO{T(e|p^p+{fIY$5VQHW)EKG*bG789K3CQa_1H z#nLTJ){>*XZvvyThtK8!0LYV#NU&yIYR7tbLCh_|EGbIy zva1xD)y484!*phq(&EwR3m@|?iNrV?z5KE!eupaoiGpcU49d@i0IQN3rPKgIR7oGR zNt!5UatdO#7bkeU55gBk*9#o%Nr(sws3Mnjyf-ud9)4)9kaL{+NcvdKwg%ujQqjCT zT@t}$(WuYcPZ4p|N0ObSzJfvm0Ez4`*Lm^KPc1pNU_6;3P7$8lR>jM(w_GV}P0;z3 z>euSko3zVumJGJcClHb#o)q7-B`eeqGquOyvT2{xLotWU{sqsXk0Aj=0V==qe$+#K zN^HJouB^utm}S=vHb+3YPV&7v?rEq9bJRD&Y3obP%3O7;?{h!a<8v=!FKPLmYB`u z(Ln}EG`s_p@aBYl046OlZY7T1w#oXQ(@^a9p{Ef)h*H3Kzawbmr&y$qX-MP#=__2A z36Yh=%9qJ>{@xXcz`U4tEjb}B~NYusEP@2Xqx zu|Q_6^?Zhn`&8wov99C7duqjR-$kJw&d|Ga!T8bj?298*HmffVrk>9lDA@9rz&`v> z6kUaRqZSeAb}3uxXJ7a`-5#Se{2-t-c&(z$jm;~~zyc#=d`x7u90`_?mV?-2wq@+k z^?y3o;R}qF*M_r03cg~B=XHNxTp`kKNwMiJF`X0J&nNc#9JZY+gLkdq5M6y*Xx^{1 zlZ|Q|!1EXLg|%+x^GqU2gwH@daB*&!HcoNzUad#}?P>rh*Ro+Jpt!(3Xb6GCgP>T} zBSrS)-?$R1>4{^P)wd03I`_-AbLVOh5B)S^eONB=nSqO!HzA9&cb;D61;9Pb5B$vf z`#;=VhzzR#$=2LL{e8zLcQwwbiog78BN3}f2YV%r4`5_D5*e%Oh!S8nypn1A?w*pC z|9_JZ?wI~*TX&N|-&D}PO2h~2DofZ-?oh@`GvWWB6(37@**564T@-2YaHpDKP^K;>P_W+amr#UmwkttnD__c7CsHS01#KkDy^YDn;xoVOZ$Z|MY zXZL&#SzRAtb*NcoJpPy&D_vWt*cap@tT>aH!xa@~Rz?Db;Lwp)X>83@Wu zj1y92l@Bphg<)-`b;xNIU?==l%DB<%9&M}Cr9rVLA*Rq&Z8!h-+=#zfOU^?fm5>z% zK0y-u7Xp}Il%1d)p6|deRYIM&Bn_5PPJSADVg(!IE<}rtASDmVQQAGb!XJ6d zag+i8I5-xq>xvX{tmG7=I~>6UFA@<^P&=Hp6Nh zCNjY_8f2Z=CH8v1yhc2NcQvwHDS$Z%keoC{Pwlwlv4+bB2VBrS+#$>gNR;+YZC?^W zfD(1|KHR$~us~XF`j0ZxeC6Xg%vIfRm!%nQvV@&10n}Q*W=G=BF8g|T9t1+adi={- z9!Dl!Eb6Fydk3rqG-YY;r7(u9o421aV{I~TG)3K=yuu?`n zjImq`FFC}@c>thhQKa*I-X^TbZ+DoVzvg|A*J}1!mLGLg0w(Veycs90&w6MLbI8o1 z70$nNoGc62i-|V?s=9#p%=e4^cRl`Q>SX$S1l!Y@#o0ELqBYN+srnW>%pn`R$7fC_ z)=g0c8;WeJ?oh;_N)l<#CWUASWeM z^Qqcd$#u(avk^ps&8{#J*9Z(Qx`|I0nHFAtBO+69Cif2BRIykn0h9$cR~V)S*Wu_w zcota2?zCS|b0gYJWotXawxOlx0;-@emV_p;yrC4B! zu{uDy@?tBhChXO8GHPjVSxIr4YZI}CX@hz)u(g!WQb2BjB7$u~BrV!F3hvFsMIq}G zyS>buFE8hH1FNKAyYFpnvI>X+Ko%;ZXA)F^mme_E#9AZxhwy?3w{K!Z|gO6 z9S_wuQ0UCKl%KcTf>8H$>;{ zi@~0K?3@QKuRnoMBHb~`zxEpg3TQRe@=u%XRru>jegUfawVGdp+^sKEZfB8hHvc+i zEHTFAk+Y)Jf$De~CIQc!?@SH>%nnVoXCb$MEv)FiJ?>o3VgncGC+)yFFm|^6CqY`P zMNF=H3Bik{QfH8vu8rsWd@?Rng@J$nqMXE#Eh`0^{sPG$F%$(`rEJk@Q>e=!@-JS) zuoyCNAcRZ9tEFySJ)JXf)1z`5W^a+xlN!H@El9|qCtwkEt-tQ;o5y}$ySLAF#Vv?u z)5CK>TcQ5#sXDfW07GED=-HFalz>OfL7bFL*7WI{OoaH`{! ze7k&ZLzv@Q-|@Hy033hn3w!!{>L_Tcp?qLsV3zvafmb0O6EVR+{mqY-0P53>@_=qA z-Ps|oCrP-sCC4?rEy53o-MpZ+hC4iOH)x4u;E_X)BS2N`UFPjcV$ZA%3kWr?^hlXn zWafN`Q0q^pKsH0K9Na@fto;jT(*2%&|EmQJpY+aILc-D)k=+)yZwL%|v6WkKG|ER) zEM>oo0qWgy(m}vck$r3x>c9XijMMbxqd-o7CTZ1*`mc?_tYc#|&3qzF$Lbv~4`qgc zDq?{Xt&u6*$3iM&pR8ZV`VUx;b26`gl+0C|3RB!Ft2^58Bd@{flT8!)*4KTeV};nS z4TXL4wmt$F#i8~uodgNh-r@l&>I{-T?e+`8)4D56u9kS|w3p@oZJS;0~ zi9CzavW(zd3J=$V`54u4)Y_I@EI*USB&evQ9%mLb-+N;kBd&W8$L#G>>8%JU)VCWx zn%$BG#M)88_bAqDw~Q<){@scJ0K`&z1@YBPWaub91DoViw0L(Zkhkl=<4OPV{q}ZZ znp#p&%mnXP72GCzKZ!EsdSr zP-}fHhgH9P%xU;fwZ&x$gvk_%Pc>2~K@KY)K1CKX!i`=YG{L4k!A)Q^d~@N2SMLPU z?4+cd4Z5q@jsFqS3Q;k1*P&LYAu>~ZluRRPEHwtxZR&LBF0FZIpUo-|)%&dIc$b6q zt$NW5>e{=Jl7lOQ%8cFvTaZMqkSV)TQ-o{ubrmbl;a-R1;d9(xoGya{89&DH^m?-r zZ?yEtnZgti2!%eItML-$ z-}vYl!xP1;*4@GqhD(DYw0CcIjpo@oql?wteL#z4S~XCBgtysBcEA@O3QKDJDARgL z?u@aUSvO7Qo_**Ml~diHbX*p#_&|>FE4)KJ8`j2d@XuDk=7=y{Y@$D;WH7D;p%Exl zxbsHghQc`M0^90{| znN+9}&pp}O684dkz^_6l?;@1L;;1S$W%=pcEcvUMGg0yDKvL7?v{zD(-WU=YUInzwA-|e5s))xD8*!ZHT(3A&d#a0*ARq$5LUE*q+nZD!0uq zz$#D`O;yWFjk7SX8!GSp0#kvCU&U+LqOQ?)se9B&UOZx$MW>D#Ds2lIZ$Q9GjN3b| zKqP@dvS~h-I9b${j2(J+rH?j2@N#x2=FGK5%|GB^#x_L-G8p_PpIVM`z7f4fH^s3X z!HUu{Lo$*2UckU%AS?{s) zsxZIY`&{{syF8TsjwU%?$s05~H2(02C=u(%mSrGyaM#MO8jt*`u{aPc) z2k?e38~qAx?LcRTh3iDx&^M#=btXM$>Fcj;u)h{;wfr>i17FaJ=B`E#;cakH3%`s0 zl^ZF zQ%jfc=>%-xLS23qld^OZf#Y~Ce85yTOJN`AM)WfyQGnXQthjYK^MG*+W}Ac1Sdy?H z0O-5^7{)J^_#rMOS-QK>x0gaGc(!GJbT8BOWs%hS(2WwPC9D%=C}1$bn@y9GJLrRM z`Fm?s=i2?<8_WDEl~MkW66uim>k`9z+OS1M2PN=tH86VPw!edq>7ohpg96u25NJJ` z^P!<{*kb$TNS6Otj%dxtYa~~GI(S=Jr)N-4H9!QU9N%W%UM^U(`az`&lWk3V#crkPv(g(g>CN}qgJjq zq6?LwgsRRh6RJaK;)Q4JNvFwh5;U>~Pvj+1WUe^B(q`W<1YV(*`1x5QnBA(0Ug*4D zJ1$3=s)Wh*`Ra7Kt%l{Rwl<3HFe~#V_nW1&-Zs``l~cp69XaI3PN6%KqN>$>wl6c} zcNx2wYa{p8>?-V@Q&7j?3ixS>uw5h=QulFF96<=frU!U*(U z7JHTww}Z~VjWVY~k<_t!xYtzPQp+KVZ zO2IVktmqMc$j5svFl;aK!wj}nqt0WteMSbHU;k#TY{j0GQ2SvGJb7!v3@&MJc%KE0 znfwm%NtC%H3ZtH1mQky`R^QzrjA*5v4>DYB(mj_)KC~qIV#?}{eO0x#L8eDusRL&z z^aGuUa4*~pYQ^6hp+cmWEC7?m)#K1~MaNz5$vct62K~Fqcc#1J1A~>!hjb^(+!BRZ zFRaL@Ro<)b?Gi?`TrUI_t~Kdi%Of3G68$n|b;W+HTH7GeBdykfxfuF_LPWS5ZUw#U z?~hm^&`TE3ql2T2uwYaqz% zrsp0vt>}{WuTSGW0d{;2B8!kmv}p z@f%=fWT=k_yoX%l^&Pbc*9D@Lj#q#^xgPvWp)2;-Vp`zuCBZI_0TC%Pzoqh%Mes+< z+vNZbIaT19Z2BLB`6~m-FMMZKbTr79mCZEm5St9G2TF8O2_jZokJzW%x1gz_zmTQl*Qh3q#|hUc zV3^*WHB5(_n;CLrFmYb$&V@=2N<00tUM^hcsUAz~+EZK_FTp)Ctq8>w!43gb8ZMLm zKoln5|Ag}hrnpU*L!OcjoWFf`eE|I!*gAlV5j{BQ{258aV|CyQitVr}-byYf^JmDGs}e)*p6*nCe zt+#mZ#zZ`PrU(gH$h+D+Qix0}(kZ0Yj`gXeiW%PfJ4on96>xkSVu?1>Ns^P`D@kEB z)xUH-$RyLLIS&<{H0kNxNwc;{Kqvm+?gyOX`J!o zvIC{khh;1D-&Yfifdv}t{-O19^|NRnvc?SWemcZ{&BxsoFoF>kNf-&obsbOhDf9j7 zqUf#aj7vv^{DFMD41%!$Jk|#N5q>4gdG2}f-^X_pnTwjif!7wqd9#0l$NT5Si>e7Y zLJPr+Rw~GR07iw!L+TYHH*M3dt5=S|a+OaFbge+Y=h-Ja&_>e*qb4IOxLUwDO>%{R zFTA}X-Tz4bkxSnF^?b&HjV1^^yUg$=%UJ|z4)O#rQ4-^ZEZiN5cD&u5b;5EpQQ8lp zD5W~EpZg}eFqP=2D{5t~DFD!;0$<~hm=rR}0 z+XAGq#`Vn#)6)a9sFGhXQ@9@}a1pgaRL4bTE%YcHnJG(9_Qp2)$ad3jKfN0$ttOgshBr0$Sq_#BI!mTHTm{@kuqWugf9z69pHKs=l^Ej8nrrB1L?3+YKJ*Gcg z5&$k9l`7dv#X@cS;OV3bqtD^zWKyaz)}a{PP~w75&DGV(T3YFxY&lV1L|9Ep%{@#& z93N;lP!io%oJ6*(A*bj5Trb$CiFtvx-7ruV7k=NJb_qqCsPBi#wGD{cWL!C&JWc0l%F#q_k?#}G~q(|8KHepr2 z+404=3wHsnHi33xylLVddm`q~T{h2!aw5(t{+LdsZ#||7ZDChG_PkK)7ynGm%Xhnk z#1Oozh=ACT36A@ILQ|2ON19V<+}f;W9);Z@oFwCP{Zcw5P<(IL99Xh>iI5u%Jjvy- zq$?f9Gov{nOsag;?V|ATpObB3Rc_y>11rOK8H* zv(d@qXY?H=+>mw^h#}s@4+cK0a&@TRSAb1mNC`|oi#nmj#nnud8Le3$e2A(=%BdRQ zO`Fk#qEK9fnQh9ibLRCQ9q@e}hWv^3)8C7pfl) z!axA$xac?Gk8Yt5zDBOiw!8sGC(qs4O&M8TY#?xjVchA=iTo=a)Wz)`;>C`;{_I|= zRfw=wYD*~8!E2Mes3Gw@YgTZwSt>21jcj5hKtC%L6tM?7slSY&09uS!THiHINB>Nr z-CUC?)N5?~#rOJ3=hUj+Qw)YdHK+0mI30l5*N+heXV;{4_am?3h)I@jcu%JT8tN%7 zZh^Dop6IVe_Hk5x_W>{0t>EnIV+vO$b?QmWLhI}wlJ1up?2P6f!}lcqa?=O^hF7;j z_~zEbtw_P!l;oGKtBj~JV8Y?l$S;smt5+1GlG=uf@R6)Vk zwf41o!nNog#vIijPKKp=A>Bb?VeI@AlLM#vc~*De?O$#iGv2*(AUzirs`AjZ>`)d) zz%XehA*N8|4^m(qN;YO=I~>6Fu*^>m59ROa5Ly%3*%BA33|*f=k|HniUFqNUpWNcm;xFk1f=%DhyU$1;yfYIHTb(&LEse5ldR!}Xe*Zpq#o z<^6A)5z6U1^EE{Zc(#@#LcG_5`XP~7&yvF@mqPsElE_p#Fzyp^RPVKSxMx|Q;jYTw z%j)Wr{961OM}jT~)i}7+GA-1G8<=$&G3|b#)%BJ|f+nFKi|*xCmxuHq zdT6^ZVo=*}(LR$r?a>`JR-K)sU+yqkR##I|3e4di=F#+S@cDI(RNLG5k|0GwY?ljJ z1iV6cja(F8u%H_$3TJ&%90~vQFI+TagMGUs=NCa!J{y9&FjDz~0po`7NX z4-5@NyxBWqX?ZFoqs5H;5Tuk0UYxbiEq=(H7v_u3VSsc5hno{(>5T4rGHS{sk`(Q-aUntg1TMxtEm)X=dEI#0;O<_KOWnI2&@l<2C^m&y z%B3yjR6|gJDJC1?7Q|6qMQHtqi1yb>-K%yok{Zn9n{DZPcdLjPD5uUF(&R;*Cw<7|KAlkx6sho&Q^C!@*L6k zBzYBAD%7n6$fm6bmFgqcohkH-doqQ3jm-l>ufKFot?G5fU}zL`Dv#aYv<3qV3=}6I zdDR9(ylv|*{pn!L%s?~|a`U1;o=|5;B*qJ=Qj4e(ZiJX6NKFc$EJee^p-kGr>NzM6 zD(bF)K_fQ;17HQCo(jVyx9Z(gp5STKLlsc%cZ|hDS|p9A+T>PyvX$z9v;_rd1=?_o zBIB-<^qaITGsUWFOB34RD5^)q2qt|_`e z^_u>US{TKPJ>B8-&G-l{!?f3Oig#^5SXk}0h-In7;)If^+(I6=o#s?Vt%rS8ljHs+ z$?xg(I)s0yGe%@m)J<2mJ9D6oVvtJXP+6<7bEz=!dg`t^@E+$FZqV8CDetjhq8oy= z&c~?1W0OrebWS4*Gnb2q`_5{Q9%w%DlcTdN+Ey9*JQ?0%B%NP-*3hx_gvx@l74}Vu zUHDGo!aQ-rYEey*`I-~G;R<^SK+uOKX8#=*wC@FOn=#}`g+GKXAQ0+|5t$T}R0w%k zirWLDYnT8qVCL@5=?lK)Q>7o6G03;xhIru2i`9IB&MHmO#X6>pG3iT4Sn70#Y{_V% zNIYwrGOV~vgP?J_!+?xPKtQqu=t2U;FRqB6%aut7=$L+OaFKUUGZ&$i6Xx0j<6yPxaNAP6C4b=ZW)iagkLX(4o z%=BixUGpCo)C_EB>Ah$yq$eEBq|gumw=^d0>r3H(wP{^7mbf{T{^PF};G`3!lddIW z_n@P+%k2)Ag5Rf&dndkXZHngfQcp#!LqIzqr z5NYHLqob4dDJTKg?hE5@MSgm5tEzyGGt;LALvTKbflQc{tYfc3x-U-YuJDgNvC0(o z>weoT5pL$5o&l|JEai{lEtFDa6mXkG!|pcBs7hVhXPqKR`c8eW55T$@t8=*^xwH%a zM`GFXHj}&q-syw(HrMZM!V9E4Z-ApR%twJl_>`}{OG2OC4iCAt8e3!3_hPoUS@+j6 zhVsBf3lDp|?=RQgu_MCBxIjEE?X*D3lFd>@U=hgBvTCYxVEVIhKJ%iPc2pm$o5fnN3 zg(I^;0jOHED;A8t0Lt)fW(PZ2xWcoZ7yrle4Ss?4FnTl!xp;d)D5c}_SMD)S7E8T# zV|BN&bAcy)dX)lg7WX=Wg)1>Ag$l5B)ZE~L1uUmmU2PnddCWhwdW`64{QK%g+$$Jp z@K;`M&F+Mdr#N&A{hd@I-QMbj57urVc`FV&XLBybE}o!-Kt$)u^`UC7h8h<1Y5BV0 zYtEb)C}X)4)jEG~7`y7B>Mzd0n*6jh9^i2u7K$aL{H_9hTmX<@`fE{C_yK~=bWLV_ z8`b9)I=AOwWlED7jLD;25s>Jypvkia%-c&icns(vfOp49ZTaKGZGI%@&!m59@7wuid9zb^ zuiWY9lP{yv?xO3ngRQE{4{j(FkWa=sBOVWGi>W&De%Ow zG}POe8F6Wk#kYURAut{iZR?0D5~TuG(IFyn`l6Ev^7ifhP)@8n#-j3gHwu#_`cjz` z2!}1Hk>m*Z%)*hHH0Tqc;R?nSc;KmA$-%EX@8gsGzJO~Z;`>})1e)4}MdPOJ6$bpu zgmN=fhIB{PfS&msQfz`6sBjG2Ju5iG7<8&t&dqWa!Xpc|pWGzIH;Vdq2I3zf-#3^9 zT4N@lQ^x((D%nBY=*1i@((=m2yG@5nBFcIJOGHR#+nZI);=iY+zZZjxQj$J z)fglL6~VW8)_AVCW}l`jbW_yLu`{|O$=s@NUTsm-zw>TYV<{QM;4ZhT_CQmY8rDRi ze|_ZG37GbkLQLC)2CO$+D2UJnBnl{j7eEiNj8;)0j9|CtE?wJe`mzSS_Y%amJZQaB zM`h?HRY8|O>3=a`2pqua_tT}P4RO;esQt^xC)#zUJ0co)&hpqD-Qp;RIR^4j@MRvhYrLf&y{}N! zg-lMB??q}HvkU2YYP&5o_CKj7)%Qt>1iQabsUp)${njj&B0sB5oEQmbYE_=olX#)h zE2e5o9KR>hBNR>L_KSUHbVvAmXJyg+a)1KGaqhpts40>rs!n3WY&|?^pPam%@X8kJ zZ6{-@jtsu|nsf^(TBBNY;z6Kq`ipcbZe>H^@V?j075BJ{Ok}5hB@VRL(Bt-jDmJO& zYRkn$`I=cr+8zv)WkiItV_$*wxqF(=Q&U`Mz4Lvg z`D-$2ilm9ElNc#m4-a5NbsBZRPxbJ0TWKI369*1bes&4r19sk1p*>i5xSukB^Ri$S zDH|ovBp$7qJCdBSI#KnbgLVEIU}bj3a{{lI4_t$K!D^1QX;RRWyox^;#u9IEL<%K9 zXI)l(jIa_na7L^UK-?`1yS0pF+yrZ4umAN^){DYi!`bni3+v)O+m|0N_Of$;YxZsy z)s^Mf86s$BcXxAB<^~PKO;I<;&gi!Bl3Efv9(-MR)vPHEUkHoL2P1m}s1npFvJXPn zdjw0%3Lf{cRlUr9E=_7*?0`N`QL=RuP@2}H3NFZ{s_3y9Wr#WK;TY{}r0$(m6KZS! zxNw|SzGf?tT%n@fzv;TsJLoA)Fl>~2cwJDVOBW@7Ir#%ub=AL;#h0RK&6qy_|1ow> zL7D|y8vV<*%`T(Mwr$(CZL^DAwr$(CZQGuX8}l%6pXNN~Lq?o95qUCm?{BS5)L$}+ z{e`d-wcHzP?vk|1T6|OYF%HGL1OleuA52_b_SB<1V+#EKDW1n#?K&S21vv=&u7o0t&QLQMqRL_?dUg*|F&%E)IfUgCMT zOJm*<`v&OL(oP|7?TTFMXde+u))_%FN=Q@|w@T^e_%}rbpAT$S%(fF%u9+MpwntLw zi=P)}XANC4IY4xV|0RY*Qfn+%XlBAvD9q0#73&cyUMnY?xdYF_E7!YI#Dn9kN_fnh zG<-Ik&b--OqHx_^+~nqiexFf8xrnkbWB+*)Sa;F6&;RL}iuTjei1`6B6V`|q2Wnti z#@?GIcHs$|;wG@`Ntd>k#%Qwqx1BcoGa}BeY#yQIzXa+}fEsP=E6c`cDuo@CxIeq4 z%!)Jw?qBsKuQ5>o41*;91)cRZQG~8&W;D)EbwDU}#%rSMg@xt0Vrr=KO8xAr$awaG z?GuW4^%26dedOYZoRKggqdNj?xmW29+S_GmLXj2c`hi%e__MZFWOh!%3miNSDh`y}zb32f`TLrh>5f z2eOfjujJ=VD61@l+zr3g9t>%t?9K6XsbygJn3Z8#yT=O{FZVf-`aL6OzjHYPZ+t_=|3;$8SHLEaxyhd$``WmJ(S-{|)r_H4hTWnQz@+8sED2E%Fbf;7U3f)qT=S12Kvb*q5^~n|~!M+bvk6 z2*G===c#Pz%P!@HTE?`%tVN$mzaSkO7ah{pJXp#+25okmB_=5c6rsVz<_ShQ z=CDiVY#kqqq*Gv&l6I`l_z$pKCghsbh47{tqYsxL)Jk)j7MezFZo>Kxojd|vL#CPKB_0zJFN z-Og-n!-m20Qp+8$T9i#+SS3V61WxT`8yc8sdz-F@MxGZMNx{ZRZtk`=v!d~MkGnB2 zr`SES2Q=(l9@yHPir2wbp8vWq`8-2u+d5dw14Uu~*|Aw*XR&iNcL zm@wAgOAy9CZ8c8hOJ6#*?>CF!K9@0-1&VFnf3WkPdETq}$#!XPGitnjHsR2tSccEI zLL_u+BX~QrqQ2CDUk7vUYbB`Xw=IuAf_7gVB10#^z;5q6H9_+b47X0IowkE z$e^de)WeZkT;GUVynufd3}4kQxJkd^+UM4$sp8Y@<$ObrWqGNI4ZDX^wXO_YFU>FL zPBM=%vQI!|3Y3o>RA{{l5A`hzmR|mncuyeG9~Vo?S2nm?qf8wxieE)H707%02_$jk z30ouo{CDMdQ=uJFfOnM&ycnKTCP6 z<6_ZPzu>ZX*oV{v8!GvLW>ZF!hm<}=Gk|sFUT=b1-k$o&#)`rArj>y@LWmAmVgStwe91~d;-z@AhA zy2MDEl+bYw0gj_x_=xfQ`k-8a$&VmEkTEjw@R9NI{i#xv(VOGq)dfkFB?n%L<^#f%XNb*KiQazf=pW4@ksK@H)#nj`7SAfj#`MWZ6rZvE?P-SW5^=f$2u-S--?s>HGTbZ#!!EZ%PnD(_beNz|f*C4d+;hAbDlP32~*n==pq%q^~oZ ze)sJk({TM2M6BDMG{@?nj_p?a#Vf!&pwDThN?VxXT|Tf) z&(MGC1)y3aG)X2ULRvS=Q9`9 zSmPp5(M`1J%D5LC#kVL>pCwHDt@Mr`LYO5?@}k#WSj1D!Tm|;@**pVID-d2xUxRo4 zif76GrH=bfTO3`%?5;t-v2@t!TRWBGZV@Efm-7qm9F@2rk{3;U6Q>5ES&H8j$2^xI zn9$gO1K677T~U!Nx&GLJ%$R*EqEib?G6);Uh>;GsO;DY2guG@o-@)9i;W*Y!^Sqti@5;sAcE6BiKYb$eN&4tC3br?O&t~P6M zrx;QmVpHWlY0oaJoR2Z7?BfF?6*X*Z1e6i4qLf!?5eo2G*1V&HDCfhoHOhY!)LEap z$yo3+2rZ|&!AllEa#Fn;;WG!#+>M?+H|T~OLH&%eA2L6qLz-ds7XtZ&7WN8B>hOm5%I@8&YEX!Oqmg5Tr{K~|CaFXd#G zng=IQl9BZuX7o`k4$Xw0@s}5(R?Y zS+y&|j>nhp3g0yKk}a|QiYea&L(ec;9K43?*0S=tg4>1F%R@fGc4cwr(Vxq1$V8}5 zjIq}j?E={RjWj`IRx_S@aN_6kAf>~VULd+((S^o>@k2s=`Tc~{CL zn?$VH0~D6iSi*e`=M-bfRafefEuLuVC&=HPpv+L~z5)@^fErezz*UyWdy7`P#1IqA z9n`v~H!xrKpsic^a*u0z$ys8vK#LG|m1ubFJC*?>J~K~XosLp;gM4~yim~N1-`tCCiW`{)iw-_wCpV88bPB^a&|Jl*sVpFeO}rsQN7qZ+&p znxSz&pb?mj**#5llsbMH7<_#W>0D7(ZNtLKi>e>uR>>zb%MEx&n=Y{|WlA$N>&!(q z9^Ii$St!ZpbtOWWceV0{`7<;r$N&&LwfXNW7C-F~kQQr-paGZ;tS!N(F;r?@CEhfD z+3OhUhT{u&s1`d|u4bG)ezrZ6QX{^JY9~@y&LtM4_$@M<7mJ=SYuSd(mbdC59r+N;5)QtTYN9;uWAy-anc#$?0NzdIfVzi#AEYp_)B?4e{t`Y!u3m&#O(FC)7`(9pKO z-DC_2d~)luoIcn4%HrP;8|UEXq-3y9^gy z?l|uPsVTJsrwl18on_;=B;GW(39QHPha2TX^i@0%_`CMvVy_-Rt0V>@m0o?JwlU$e zG|j?!pU{1EH7KaLINc>INz0UqD7Y%~?g+ipHaATa%(Vzlq8kd1W`aHyp!;F$jw5ck zw(ZLLdYE{Jcsn4w+6y1Hx|`^$T$S>oFD@C_*GDwGOd6GNx8kHmE^v@!KY&zf?dQDj z-P`%C1l);iMjd2N$%vdbT=BOR(9IKd2f+(?SSwzyxMI8FQFxO>ZLo`k(=n2HtX08)w%bQ`WSG0t(S z-J+zn!3JpOC#@Ut6SPT2&>Lumlq$qy1aiIR+hh0|98*kebNXDFb&U^)K<0o&lOaV` z1IMFer1^!v$cuoZo3YB2O(alX5oAGBNeQYIfqevGDURP+ebViP7oK+!KcG!UYSt4T z>^lB3l=3}14d^KbF=qpYto-(LE{vD)1T_{dkOH7Nl4|F#f`DkWPI>W8iaHKrl+HXJ z{}>H6Y@ zrtd7gdRtA}HDW@g1I9EPJPC)H|6lLJf*&qnxDiuim%KgPw+9V`st?%#6_E+|j)VG= zOamJ$wLMFb3lgBz$0?u>S~5peQh`!N#bA1(W4TeVi)fdmkeQx_V@txec>)+c&9Q$q#^9eqY`g`$x}f#jV7I*XhcE`T|$)D{`w5}6N3+>|(Eh7IiU-W6f`&q409B3w)b$Njl zD6dDG`9bYcz{oCoB=Wc?ys?Afj;U&tCIms%M(Iv#=tqA=+n#-5yM|7{U46bl!4cEU zfDaLIzViLm9^A>2XZtn@_w1s(`cjE6I9(1Q_OVy!3#)Ch5WM#%tI_4|I~z3uF%*t# zkLD~mE*nf)S9iHtUczR1KyG);9`;|K3x(WaU2S{=q)|r}FANswE>pSgIGP=OAj5AdSx~H-+hx2ZfU*k+JQ> z6g2F2$pgp-euopCUV|Bj!Xk=ptrMBy0yTd?V2(GSRZ>#kIbf&iGLb;tdymb-^9Xqw zC%e>wnquOX8n-E;irSX+FY6%!o=S(n`iS^ZjN6H)iMDF}H zd24vhVS3OsFuO6;Vo={GO?+p&p~7#SdIY*v{MpeS5UBiByoa+9Ey=b}r@opQQ+bf| zT7zLhUoCE7VN-DnJI_2dKFla}Hst%0rS~sty@H z%_PSBVf<|X$f~wG4JCIVXzc{x-Z)sp`74kq18?FcLXinn=DEwJpcnTr$@t1|h_;QO z10 z-Bzd@!(RXhV*63IYmG^Q5X>)@>j9j>5m0oOKA&>_s=r#RiN0Bz(L-j!Bt5ARSj{Qb znGMh9kj%G&=Ot}0gsxxhg@pTnfR82IYZ#%JMw|ImdlAPz)Lq!zyRm|R{wfKh{K0MQ z2mxk|8Rz^$_h9AAaQ7TP*a#7{hJjZ|;9n5DmcsNZIg=Lc9DGfM6A7-U5aC2-&>_$f zaGB$Ozh8{iQ2E}^&bG`}%`nz2^VdM#`Hu53_m~HUB~5Z001~!>c51k4*k^y0VjzMK0@3o#)15koGsLX;(fR<_ zm5DwqmSdkLEOv31@k-Znq;9h#RcW$)yV@g8`ayN6v^C*iL))wOZoEMV8k%M$jPtWZ zRd!Y*ztcn()ZLsTcIM133D@fZsj4-1gU8vFbjlV;(;FtYw2sNGW7`KdkBrW#?f)HE z^)w*{bCBsN&rQ01e+uo-rc~R?u2-+qh!@;jznF5q;J-?Y@dv?SuO@tJ0ky3&hWG7`u3uoyJJCE^a zbBWYM3Ftrlw%8sw8W*?csbRR^GumhbK=FMAE9XFxF5WdqZ1A-nDSfFvnuwc3M2Gu3 z2S4=CFTEAI1#}L+tm5msp@Ce2IK43rgRBvjdoqbxq@Gs)OQk}c2_L>5m6QhB2vDvGCZmE1cZ&G4W5x#l zns4SxTlnST8%F$85R5m{?*^|}55bE@hDNA5D$Q|$nx=Ep0R$|&|7((9%GXy!IX#PF z&I6Y?S8c%q=*wb04+gz^!goX;r6Y=qLBxs3Z@>akst-R4n(D_@%2CJIgHqHQUfbKu z$0UaBQ+^W~)W}I8#M?ti6zS2KN>fRV?kMsj_7{mng zRm2h_=B^Y!K(x>Z?l63a+-FX9=`2UahWZ)xO)Ywvk+n*9di}7lxXfob$Hr}2EDLIp zo^|Oiex?0{FyQyXLp*emMOSMsaYLl4|9yOy->;JgR3MPw@Xe#F)XwHdM-dFrqw3%t zSchYXLHMi7Ip3`_SVP`87{=6esm9b>FHZh>Ze7c-Fvvu^OHK)&mcicR%RO@V^Egax zpPUkXXQZZP>LXV4z*{C>0P0z&Te2Ef5&IG!t~T}yq_%Tz_?tF!*!_G)tLwjt@Sh`C z3Wy;FDNpA=_g2Q1Gl1jby+0Ds@qhzgZW7p4a@~>nLf$+MG!gP=Rm^a97ht|3b{B~z zqnB?wf49qcl*4|9AtPcfB-2xK4D1oBU&^JYG1&-Yoh!VP7>qxNinsaRF!fGkm0TgsP@@= z3F>d%VR{wHR&80>;ht?NX}@5jpa0$T)q?O;j8H*b5EDriS#U7}%6 zu=lY0ed60L#K76=#RoBp-v&sOwMqf~$~hC^&Gchnc=1io4t&zoIw2ToD&dcTDNPE# zhx6i(DW5mB%2h+POO(M_WSbz!d`&MoAk|bhTaC_KMK~9fyp@~bmpWzHvUiEu!rme` zqgwHB4)xZoKUomXy6$p81|{B;oD{|=JN?#jEgtCVc=ZVj;L-q+gL~O34a-% z;@Cj!HGjUz{=j=Z2pzC zKE!I-%ilRCf|s$)fNWG1GC4Sk`aaqDqasZbCIU-*iYng}g-cS{fJrZc1d?IL^DdO= zFYWi=^WUGSu)mB**%^|rPTp~ZP8_ez1Z6@LmggUeP{}T^%h}83=3vkk+#xlR zOaRf#Hm*hKN^smGyqKt*UeQ;LTQ@<93qzA)sm_!h=ntOPr!Fdq1)HV^g;#a#Y}#j) zp3iEs{vM};`F<8cVlVabxn$W>3!T2WtOWt5d(p~pX2 zXAcST-phrlws}$P#%m#^+MK?)m2-I?CPtBkX&D=ZcyQlNXWK8TBdTEk3pOlcr<{wMSVI>0j!>c3vC6IJF^_~CD6w)%UG1FFss1?(VvG?88G)|~g|uOy8Rjue-u2C( zW{GH*iFKWA0YJ=7(8)E`_^2!qqTp9>tbJqrrh12ReiH$r;~+c}i6*IFIw1Ht?yH))XC`1^VH)4UP2 zWB}?dZ)WRu-PkUq>~D9ky4R6MG@%V;OS62&*#XY!CGBMM^q(^sbmbRGSj|MV$ajc8 zu@z3`4jo3E_V2=!X8o8o7>$JY02rXmEKF!ox_SJbDtQmhUN2YQRYXW_95B19-xEEBvemu&^xyOLeu&wPM4th5 z;ZYf^l8ykHE2l~Z&wvO4seALXRn^K*J=j4us`AXTT^FvJMwo!?XPYUGtpo)Dpz zPM)?2d=bn6X!Wn&9exJG2ADNy5zxYc?@*wOlI)$y2l2I6V1ZDZo67>I&ZYlgM$3Jq z@{|8U-ikJfUYX&GzY=$aMaLe1Rh{9lT{Z6O@uIvg&qPG!^}!PryYX~F(H*@pLwq&qQGrO+ya zP{(^B*ISYujyir3!%_&YL?dj@9EzpjRTuZRxF2E+nQ8>1~0& zg5|#Dex1P;~bwi>y@y^e7F@QJ05KZjfYq`^mgO@rUQ&(|q8dac@Wc2w$qjW;a z_`(G`FV9L;fnMoUiY~cmDO1@0q_UM$f`V|p({#R!#RqSH3OVG1^;AixItL@#pT>d&*kxLw5e&3iq9x z7vkVStDO>={MTQ^UkE9Cbs<)1naQ|yg6|gzw7@#S&{B4vSziS=TI(}E!? z$%hBVcAAoN(tpo!gYQDMsmloOkaGI?uxpPJDO_V_Sy#-gZYeKOOio`NH>>-2$e@(z zxf2l$=PHoSV=39(68&bHy<7wr=0(OOXkDsiKnLQWl>XAinPY0}+GZ`K72V#kJs$Q* zdl`yj)Z&lXv^~l_zZ8)M0CPOe3~S)&MFjsu!_>scHNg2l@ zul!XN7GbQ{n)9!g7fh+(M7Oa5EK=8&s?3HsmwdE)ult%%LWO0N2+BSgoHYkq`J(wW zryjM4>`9u3pi}_|SUdwwOTV}vJ*WH~-YcJo*`wPAc~k1hrx|4pUJwOzK`GSJ$95fx zDXE_*%lxci$myP0vRibXq8KpInZV;rDP4ceZ&-cLHu;gy4k_4j2N9^80>`8z(wazpS7`$72i`bRF`oXUt5&a_#6Zok$R{ z4#SN=o0^VUHRCtt=meeiSj2kEX{ZJb2Gfz(J@9Y<9Z?oc$fc*5#SZ(}xMPu~vXp$v z8!Qz1>uERHv8q(fO2qf81lB$^J+fKH_yeZmVEZ0y(fauRR+^2 z{INs)x#oAjaGfNWNk>EXM>G7R&lu-ppPKdPUEpYe z`e9pg;S%Oa7I>8rH3^TT1Re_1X-E0XQZR30a?#{{AdXs3+~p6#^fV*Tdy7#`fZJ$==T5Gj z#8F@868##{9+DMO6eXAZLS&bBv&<`os7E-nZD5LcbtYTOFmeeDtuqzO;f{zwqJqVw z>auz_X)q~4=ZEN?L;&SNwo=o2S*hq+=(LVrTkcJl=@0n|yPm_&-83?nuX<9LBOT6o zQ(`UX*BFsdLA0bh4l|ZgREj{k9iMUNP>*C# zJ@|S~%c`kg;S`nqTnghk=yOf#%__Z!>*@&4VFmPLDpRH*e&4}!`UXFXYki#~65#T1 zyfcUUiR%w+exG)(Tgj@+x<&jRMWo}QkY3foh&CCrU~ISD_rpsn*owFCes*{Rf%|xJzVPBA#zh9jAU8 zl{uO|dlD1)5vQGIm#kkaepyxM!A+H|hVOh^?j;1yT0gYV)S+ozK>a&-LP(0}={OuR zyVetF+J>E6?YtG$*Yq9$=S8J2`>Phtp{dfmRoNvns+@d!lO}f2n5K7kc<^QTZY-!{ zR1)#XbzR4lSBI|G-kwStUS5eUhq_-^haXK8b&(TpALhq)ocwGuGaX?+??j@{o7LZ7 zfzOEVSY6P|je{mh2xEAPWf~4_xi{Y@bae;_S+#r;&?rmQLd+~5YrsSc0ByC#9l*;| zSapF0u0+P0ivxN@>{t>~7Fc2-lH@otVAdU4-E_t*Zbs5- z98+i7^;EYJOPaK;6cOzwTeEa;qhDcrt|XaJj>8HnRTYRRqPV9e@UPShaMRPY-k8(V zNWA%y&21!MI1|8P)y?op1mls7iTeM=waC&(mCXgsRwI`nGc)!3<&6wmg|_iw6U2&2aQC~@fiW}=>+MVX z7r{>~5rP4&xpG%5Z9tLQi?EJxL3{mCVs`uAz{1(vynScZRwM9hUSTkIH)F+jO($I_ zHoB7FW>oY2>l-Y;Dpkrmq;BJO;V~E7U0KN{%I}=;opA$-C?i>uCtDo}*f9OU8)_6q zbcLo)vxgqF%mo5T_z4$&+S`-QZ?Jkc6d=`ff%)m%p=l2n{ zCH>|KHv%sZ=%nA(7}6Xgt>WAnm}ZXcjBam&Q3>fxZl=-$MR;+){x7i7dJRpMS|B@-u%wVt4&Ia!jDtZJP@StLuk zkwD{q1|M2*rPez-e}A9Gmq6~k6V2~k7I*^=WW4m~%5^ASG~Qh|2@uD9$zwJFq|Lx_hs25J7O7TOrDQl zlrIqI!Ko~_Ki3@_+*|9A=;pU%7OVbW41|E01*3!0zg!Lb;Go$K88^78Yy6Aagy|~j zY8~nEgrA&QhT^>65ut4*LCb|~r377drhzE2SO)m6t}s$0YRjV%WF1<)!7(EUX6m;H z#oKZbPpbA;L7~>4VJ3?1Y-Z$JguKoiioek_N*+>H1c?o7o_=fpGg0_AUAvWSjuKud z^TcrDz^)9__*Q=aM&;BKFym>7o{pA;_w>VA>CD9#mU_G=xc<2?5 z(+hk_$=>JOZA?@+w)c&5A%Y34?~QlwThBSQ?_jZjb+Lv_;oh}EVpt20Tp-ui3_?j5 z$u5>m0IxT4(qazX=JxiwD&b0s;SJ*Nna0v}3u&@1v9VOpO7Hvu1%YmP3p(c%w)}tO zK6Mp4IBQi@i^^cAGs55umxCq0+pFacG3TJZ&1Crvx~tCcg|l7F~wl2jkYACIc_ z?9>e*o^^}xWTmw`X1_%slP zti#;Y_vL&8B5B-0!6J+v$A}%~gLg_73C0X$YRB%z!I&6jpTX^9 zmNn``T5ln%T{gUBAx=mskpUAI{rs`V^3LrynVJRp&bZo`vn>#lFzIN^T&s!^h2ngl zcOKezahfAv|9&@_?#HuBmCYr=N}6&`Bd|PBP~jG2ms@`WbmY?ztWJ}BxFc|S|4;og zB;%>ms8*ET{|Da4KMYTax?g2Zl2#UX{+zhhDEV*i1v zRIkuc3+J7h$)(46d4#Z5c5C*EeXT1dasD+)fsLm?F92|Q{li+%zc;hnce!mK5e5Mn zv+)}$_wLY)SOaLj4;vf^QKykbrjXD3IIjN;{+Pc3f^m8$ZvQ+up$A&%Pj7pnbBxB$ z;97S&gbeBYJ-d<^9e*D9S1A@u1lu4vv&_bPHDo*~MP15o9%zj1q+sh^Ni&VxL^#LD zRVoG2tEr@tWxx$!IynnhIF_n)5ETB9z|#yPShfXBqNM@5|VaN#{F$q&h9rT+*G+YK@) zm$u?Z<}%(9@F8#omDrzO*)7GkFHrN*C=llCvWerw`H+)d6xT2^ zs4`$azJvxP(k#@l$N5Kj|Fe)TQx8bEqH7<8{jE9x6YaE}gN8t>&y4@DS{pF~8$7=dKN z?8a*@%gUe%D~+#N1swUh$mdhA9ufc8{asg2VYCM@;efTF z98H1e;qDaZ8_`5&4;~wJTFmw7en6(-kNgqqY}J+Qmp)So!2SuQgq>wv1$$LhjuY{U zTfBmZVNGxtFu1@0FiPr7Uq9C?aZcHG&HMti#;MWuT<+X}NnQ1ud-hJ6ejP#UlagmFTh8b(kEC!%5*x&u@4h6C80@%oQ(#`U~*Hut^_?T-1ROMeG|%D z&SDi@?>i;Q@h{Pm8NwFz_h4s-?ISy+dKJ$G2aIC&)=^W;Y6!^)3^YNQJv>CnY$ymE zeo#rRI5Rb9?KbCDX0Q*pixD=ozm3(#i(AFfL31R3%NDBaIzr;}WrJGg(3fI$=N*t~ z{-KBiv+h$U$(F1}f$)!zZ<=M*JEJMw&ukCNwcEmP7@eaup|&YpmRF`M0-2c;a~6m{srGXTh@|Y=j&{5E6?3mr&UJUMxudP6*)<)$zrWK)Z0ZPppFS5Xj*_`$92uVM#G&5vmsZ9) z*cFsoF!zMxl3JJB9)AlDd&2rpT%Y zZ_3PEw^gjEa%HH3y|rUQoq3S|ShpZDaJ?~8qSj3CLsy%7+%v}~87A<0sbZ4V%5V?m zhl|s1oTRnmHKxCvqx^&UL0A+PEp70ZN{{8WM2 zW!X_lCmwbp^OrzV?{9w3bb5}hZQfF81>rumo8p1>Gf|bibEgesdv(8B*d5Qd84^t$ z5TiM8)56{f^l&#Ad(Pa-@14Gv=^Y>Wfa44G%D&5PL%PDCh&J%WyXoLn^1YsCenk5u zZv<6u`o?DhAxI&GnWB1c9Q=8cljc!;FnF<4jylT*9Sv7VS=_N^+-wA=0jDqY*%l*T zmw0kI3QyxfLHevJ8AbVpRs&r7r$C;1+O-ovmhc?Dg{j_van`6@6G&fV07rl zxKQ3-qn%i4GhO;z0kW7&Zo-&^7u>w6A^a)t1Qm)zhjMhYqyANa(;4y&7gvT+L|f>l ztAn=Wu-NlBUw(%9sLi(AECzUskfo_Q(xMPZ-HMlw@gANRI`^&dUW`1m`E1EVFh{|=;IWLY^6Iki%BY02OP_z; zf`7=4%}dA)_o}wuAbyFLa7C`bM2olcFu^kVU}^=iwwsS4NAVY`=e?U;&okah;9_L( z=609F(^yuA#7@IROdVmXxAMg4`|Pvurrq_wS>iWZf5!cPSTA3=5S@Ck>|H{n`#T7eb zbdGqO_kqeXKSVH?6@0pljny&O3i8rfAydM~(LpS1*=rz;fP3@IsiVoSakjZmfp+JV zIZ}xXBpzPT(1irM?a_$NDl|~hTdWCf#oVapvfVxu>K>Ik7emIX0kdaLqjeKr=pCS^ zVY?EY!pKETf0O+U{o*~6P2=}qy(_bx+2{`7*@4uU&#F@fC*}b6i{mP$)vpVtxWhZ<~UQl25{+%I( z(nO)ktWC4ZpZ7#;3gWLv+4C9f)v!d=ejw7J4?RZCU*9efH{*{B#oHME}QYLf}8*Gqn&;vR(eICjK6xumLEy}i`yykmXv97 zHNl4Ps9Jtw%+0#QTL&*sw-J6_=exCho}d$|RL{n1oOBBLZ}~`1VMoYp*Ksl2#n|}4 zIcO6p<244^tD!WTLAGz8rGb}gsQ(Sf56OzWPRrKYdMRp#VkZ&VX~unLvI>0owJxuj ztne-QkDs#@cf;jV^-j~$vD~nsVTCvNs7x?|q^(~t!%p?mR-2&W-DUd}*ZP~vF}m;K zQN+sLVsCdLRywv#Y~1^S?X?~Zk$-1Cle6$kuGO_>1W%Fu^#EmdNJo6>CPvT4G=|ZB z@H-{m)Cn^UNCrCJ2ygQ*E!AI*t=F4LlG5poinX}o1IR2%sgg`col4P_B~dEP)2w!( z%N8jV(c)~5C^my^TR`WJT-zrCzkVr$fVcHVQ3cPUa<}ot^dJ44)U^ZtR5tlOaTYgllr7(;?D;r$H4gDBtOk9>F5Z^sEHUVM#Zi__|LbZ{iFon9%D*w)iGfAud0_3pNEOx#}rH4 zO4}fRHfN8JtH#9!u))CnA;?LFhmd;h)M0weh4%7|mwm*0ZKOZ{96W9&D>ovt`_j6w zY|j4k*MMD64ZHq)76%+wfY2@+RcXR}c53v+f`&T3ieM}F;VA`H!1K(O%D3G`0|Hv( z<7F47=qFhgPXxOC#T|UVMJCoa-U|fNrGeB-C|Fl%Tf~cgG`Fn3;|KW%)pgT}Qw&KQ zz-V!yIHKIeY+(U`ErOls4W?j@T_Q4aYN~pgFckWJ0;;IT{rfM;ZuQ%>>Vqd zE7i4Nvw<=aX?r#Jc0P~A-zKAR;>zAB#`AE3`Iku$>&fEUuJP^+fMcylvD@-ccvgYi zNaBf6Q5^JhMXQm{_d+=b@Qy_{@&>&yQh( zYUVCdm|6~GK22v(b@1G0q7`GDUIQ2xaUJJW!gul5U+*o@=mh8Zus3#8;9}1r57)0; zdBOCiq0}+l*_Eoth-a-(j}6IviLwcDVGL8%mn4Jf$9IK(FE_eks3V0o)D82k)uAZi zng$W5A9jZNpkvDQ4e(-o?7*U|>;&cfK+GxgzmrdS3H~JG_k+>37`#Vm`~7*hBdht^ zKG~!FJ7fofVF}s_>M^AfZbR-)XLim#+if-Uo>W~R@cd-}fHCv+Ny}t^G_djWYa_>S zh@<~ManqL?BFQ6BPRLvO513}|34sJgP=!%TA$k2 z7-asFhQ6b5YT7Bf@ffI&ZhTED-^9RM@7HWxEy<5#@wGM{-81n0Qq@Aak0ECUV z=ql2h%#lE4K8*z4hW%@i3f_(lW|UE|>F~w07sowt3$3eq2{~8Ax6Rv4mW>gT zuG#^3EA21a?o^#i3MO_aGwRX%eMa$hX4R-M9(z2b8NmLF6)t6DMsW2Thqh#xXXg# zRQjOW>et;LYv-ncW5Gtvgi%HjTE*?<-P=^iHZaaV(lf@~Is=Cuo)j4{?>(gD?Y>6b zhyHSXAN5;e0Yz|drtoTho=mFqMv9D^t4U920k!LxOr}=E@KPqFFDp?*ZihZ z6HGEm49{pMAtP|3ml7oIifPYe<0CJzJiEiYWTPcAQ!B}98aAc9!S_dE5Om2GBv|I1 zJ6KEMk0>+%DZ~ac#~sfpGB~day4G2)?$$G6mEE0~Kcc%11)P)hoHlTx%Z;SqnIT7%fa1tlohT{g0G5DJsa3D)nmJF%RI$=N|*6$v&_6r zHm2Of4+7>}+qd|P=d}O`CfAA05S}lbsyEF&8b|+D$0T|TZ>rWtYQ3IUj{W>1DAtAhCL)z}|T-wR# z-*0Tp_-@Dg)s0ocI^x!+TH@i`a?+Hnkwb?+tPJt%I`n z!R1~#N$iAXrSkW%xm8kHMb9nk@}(OV3%bgu1cm_D(EMFFj>IIn5g3+uDaB1Q%O2t2 z`q#a%Uf4-+|CC9(6wTJuKxKL`yOmosshgp-3Qp-5<_>AQ@!x1$m%1JVM~E;Up`YQ) zR2lxLYyo47>v@gj^u;5^Gn}bVS#w8CN9%@MqOKlb$WA%FHuRvyUuG|Tn2%8HDB6qD zlO?3Gp3_R?wI0xzD8^`OLsHnkzbn3ovBQ0w5BN6NA7o$6!2yId>1NGE82ro!JWqDy>|p8l zI3VYYhbBA1TwLKVRE4-H>n;t%aW^3qZb)6W3OESKW)}ss4+wRr)A0egb8WeCJq_WZ z1?{~fv~T33k^lu0)gAX?b9{b2sIwWpEa$JYoY3J?#k6Yo7T*v??uwlE3_(cSzpu=} zgOE>U?jr71YI7MLbln&{aOfhO;vSDE&#*-{^B7t9z8d|oYi&ZS1L~=4B=7oXLQ9oB zoLQHKBc&x37NCdGdmF&A>kr#Y+vHP+)K{R2z6ok*Y6LX%LX((AcvaLm?Rdrq-UG|6 z>0!FY+`fIQ2gQwikxPrfFS5wp5+4$)@d6FQAKLUH^r+hf6o`s6+xmJtS3{-X-ffNY z9hc-4)`mek02^`lpUaz&OmX9vMI+`r0?Cp9%v3jo!HjzHiL{NNBAb9<`Oc+s%kPXw~EZ+z0 zo`*y0T5XY?i1ySp*pnS^j=f>?(^WAj;O5lGZDz$FUY>#+_78xReB0%PWr9>c0+YiSnS7!AM|-8OVgT*51d*M;0 zZiVa<%=aGSR}&}iAd?K^YLAhz$2Q%$&?~Vn*lGXy2hD7RD7-M=0`-)^@k1N|7U^#t zZ^$En0022ijgNqS14DrKfzHg9|9eqVD9BfV5IeQxP+oksVoTajh|kM|9^ORr`oq+$ zVfKkHa_nUL@Jc5;U$vHAMm=&31{No2$Fh_#QtX$T1(Ia21s2|sMzkIyXLu^93-u^A z%R1U#o=K;%2*KuwhjUNSMHV!B8=cu22V8^cat%FOa29Z0ex@V#$ZHUE)k_5|x+ z_}&%rB@8vK0Kr+$bhpX2xYTkE>KUhACdhH_p7`^c0bzonwD84TH=Vd2A0M?hs~`M; ze+Gjqx+=KigWp_;Aa}Uugt}lIe<*GT|7Y3dX~k8rEBs+}H#g-3=gyanPqlvq8(lo; zM~kU?C(21Rs~5?Z5ZTPNJl?Ao53w4U@_D}~oRvExX7T;z3jA?ZgoHV@ z#+4P)?Uw4j03B5F?$^t=q50m}+YhWiGvT9Q!XUX?YwGs?gFNX`%n9?mL=oAgkq2tm zkle7o0Pwlu8~bntv;y7b-4ZK*=Fp#A(v`!8<@@&B86g#=y9zEn4_?DM-HWAo%v@m- z)@ne6Q;g8~3@3P{yI=qS000000000000(Fw2rJ|00nhp9`>qDWNHV{-{i@Vl$lgF? zlW*LG*ebawU~KXFa~HH#)YJ9D;_~P(bU3w421l!Lz>ks_;JjNnhH|NZ)(Pp5KXWQ2 z!wt)q1uhGP=*&nCf$842dpr8;(d JSOb6n005%lHR%8V literal 0 HcmV?d00001 diff --git a/assets/images/onboarding_2.webp b/assets/images/onboarding_2.webp new file mode 100644 index 0000000000000000000000000000000000000000..b03a5327e18c25f9a4a5f8da89cf1980a86c82f1 GIT binary patch literal 67586 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� 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 Gfc^(%5ze~+ literal 0 HcmV?d00001 diff --git a/assets/images/onboarding_3.webp b/assets/images/onboarding_3.webp new file mode 100644 index 0000000000000000000000000000000000000000..c327332e90832037f86535fe326adf5a71d61469 GIT binary patch literal 48796 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 z zn;J|29i$de+KewW8cHpTVJg?ZZ?YYF>ws#FiP;0aDHl)@_@v_5Opjke zWWVDzt%>N=IZ*~P0x$ky=`&8qn*?|ePpKHHbOvo59A#eic$h!(d#0AR10>@@8e3E2 z{}_&5c@;CN$F`qliy*(p?QBcPP`L4P?-AYw0Pu0DoCLa970}t~Z8DsKxmDUi)}VCy!d7ykeSk$?aI;(U>9 zrSB0*ET##_yKc0R9v%lFa^i&6e)oz46}zU@>UhS;5&{y!)&DSxZTy%30DF`H+`MyH z8B*W^4+Y+H=hz&zL(k2$Z~;tN9_ec@H0nR^7YTeg0014jZzla(!i&$KoNpNjX6RMT zB9>a`xBxsOk5YgD05g%r+WqVp^7~2XUA~jzAVMSK2)#Q}K{{XxTw2&54fOT5m;eAL z*|R@vQiA)RXFSiTNM6u+^ayqleBLcE00e1300AYzQ#c@detrs#ibS + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..46b44c7 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,614 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..87131a0 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1d275bded9df7579552c0a87098d45ecc55619 GIT binary patch literal 31074 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..db92b1b6e06d32db8c70fae384293bdccbd6ec95 GIT binary patch literal 624 zcmV-$0+0QPP)_ybtT#!kuSiYPWVJ|beLBvGbw zrctw*H|E{fGm~Gv-0MB({kr#d?>XK8;0903o7e(eyaf5eDOfBPq1|o^@^X*I1L1J^ z+h;fhQ4S@=;_pwf*t`V!!dp--mqR9#p>{5pgUMt97K;U9u^1$iNw{1t;tI-SGTJIo zWV6|jpkA+sNF)NOR7!loPX>blc)ea$;qEXKY&M%TtvKZ@VJ6t^b|H~SfWzTn6_Q{k zcsw3ynteVWjV3FYZZjx`>+tCWB@zjJwpuM(hf1ZAMOcD~;O+L2l=pf)kV>WCbUImt zC76yNuET!6PwS8sOh*vG^%sxFS%f8c3*t$E`QmoFrGBMS0gXmO?d$c*H#~pA^Z5+X zX!PD6jYePkeEI*`jL^IU`NApacDn_8ImYIy7&!$yozAQ5{EmkNv)L@2x8-sf6bc1x z$m{hQ{C+=7r&Cz1R&=VEOeUDm=kyzuN=4`M;cx(h!2tXH9!{r|FoNUpm=aPH3 zx7#U6MS)N#1nG1d%w{v#Y&Ni3tx&7gAP@+UP_y zCCp|sYGaasqlX0)j+9obh2d~W_jEcPlu9LPquirK)I);xdYvw$(P-Si$8;YrWVhQv zp-{Nr!|VpDJ>-#*`<38t;QPh7>EG_69WTA$bg|o9)(hhJO`d3 z-*0bkn4O))?d`4D zych!m1M=~WU<*b!F)>l5gwxa0I=fbA6}+^xgxcC#R8>{^TX0lVlzh+6&!eWMMg)6> z7Qr7Mf750sCnwn7-$zkV5mHi8aC38`qx(;2|67`yn?r7Ht~{A1Cnt4xuU{~SbyHK5 z4C`Mbm@vX#p!K0ePESv ztFjs4aQno>1g@^GoObDmZ;3D~3VdH`XJg0H#f_+6-x3Pev&54yU#MDWYY3$n7Zkd~H)!NEbHHEsmI?T+>h#emvFZJQ4rzf?~;o%{Qi;MC6{46%N9~~V@Iw%kb;Pv&@ zk*|&gGb*g;v;28+aUpFKOPhi$SXQ~byhKh;j%w@e?G+(ILqn>K#kS<+WM%U_Wo2a& z@$h8eS8yztX`18X%NFh+G z)zTchLe^&~j;(Pzos?^z=_xdm$$T5j<#N)6-Mj+}yaG-;~hG%1WfBrsDYc*tBDwBq1RI_xJbc>+5s7j47cmmkUm( z6KiX0rk(R7X=!PwsHiYiMvqaup@rHFE!1vkp`N0qrUspzo&5Lf>nn0{a`;X(H8r8N zwG|y59T*rGkm`qYp`oFnNK8!R$p(>^mxtx$E-o&xx3`DF!a_J44!pm=t1`_f>$(KB zYC}T<^7HeRcVA^)mms0__4Oz(FSno2pIKa7=)u7OU%#UAjZ5fIirvsc?S>X=H?+{- z(bCd_>+5S7zPL?PR1{WLR!o&KEws0{SMPZHGM0tX0-9n$k&%&DUtj+=PjYfH-rnAD zd3kBo++Sl^XlZFFheQGc1BK9xj10ua#)^<;W@aWHA0PSn4sA^kNl8hZk3uUH%#MkP z;YB*_!-qadh68&^I?Xqpht?RMr>7_E?(TAom!OKF)_i_`7I~<`j*gC4yj3g<+rGE=)ji2#KZ(&p1`L*Fa7=f(tg{ggv!LUP@0jXr>D#C#ck*~ z0DYIuU`puZ9+s? literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4f7238bb5606377ac43d9f5bcb1dff5906e88a04 GIT binary patch literal 1475 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 C^g#&# literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f521af2bbd7cd74f84790c4f43f4742d38548926 GIT binary patch literal 1974 zcmZ`)X)qh=8nz{9?Q1NxwkTE95~{=+Rr^vQ2Th4cjw7UvQcG;LOEp}}wYFOAK}GE} zS|^+ojXl=dQmTp;)fOf6=FXjS=l0H=AK&-Qyz|X7@B6&ZGf#%Avz_1x*%KTb9D??j zZQR*!)V~iOkbRpVjm9`Qc;oDCEIp$*Kb67I5`Lgmh~cjv10=>zCQlpgE{tkP+FH7u zyWfxnUQh9^PtusS6caTBYo-U-@;GE`Q@Ju_Dbpe`oU}~n!WVt|CKAdY|q%fV; zUs`4|puZX$thO3kqNY++Ig%@d2S|juQQ!TJxZ$a5qFE#_>3H{qnjIkTVN(Bp%9o^B zD|G347t*+At=Ax9`EV?$si|pYsLYg5s)<2Q)a1WgU5z0q3KAWZ%yRp7y+C z;uKooC!oK<|EnxSWU4t8_px!S0%(~*yM8aCuf88D+c=n?oAX^8d0>r<`TAjWXJ^I1 zWql27ki=jxsvHW>yFai>xp1g!hB{__-#I#r?A>Zbk9NmSRbI*0ET3S6p?P|_#b=-2 z`lLyt(JW!KNHk9%!2`c>^lby?7-<&Hw2&+vu)sFI%gq(TEWV6GE+%ktBPVLET6*b; zpm}D4HC{%4yMkSOsa^L=o6)RU%&tMhgtkzVl`3eO*E@K)oX7{2-&}Y>DTTzFr`G_0 z`3TeCp;D5JKFX$b)Tx$vnx>FU?YOxba15ks!N>wNnTZyv)0lh?e=o#UTf96O-cl2L zxI4JD4geAnF|3w573OglRX{q{N-}bFP!N2sfyfNW<_XN8$D->wZxa3XE^V&bzA#dGO!mg*O z?`>)W007RZ*D+`wN{j!=&el@H5HF-0&KsaE`WZUP5!PI(&dE%%)3i_p{TV_HTYPDV zYxkqvLdoIUQG>-hYYg?S8fiX*B)WtBoul-g(Aic)uoWC${B@0CclVU(dk?|nM5wNY zj*#{C$C)P8+4LSwWBYXVNfpUuT_SS_t`oJl={JDvWXr>$4&K80-5)W+=llr3jc54y z_~_w^WMrvIB(H32^iZh@Y3F0THik!CMH(^Yhd1Fvm3LdK8oP<4vH4QS=qbAxky`=| z1Nv%h-4`uI3jm`+G5loD>fGB#s1&H~^A9$ZweIfj%ksc`11E?~2!@*8vrEG~9pO7Z z_!i>m_5E;fi&9`KZyvRMABjR0%%sVsV2;FyOm&y?%Uy&cvGWkzl8tbPxB{9-Yv}Kt z^_TMhYq-z0x);b=4f_#Jv7()Ehr5ts{VJAetms@@*kaLl_t)_om8`zlTD_lK%AdlN zHT<=&C1mQ|&Ip7b9xMYhf;vPkp|?dQAze_U~sYl*p~)|TmPpPqS@gHX7L z*Ldu^{EFygQYzk2y|=Y^4GUNA;v*swA}D>a%cr?5j-N+t3_Je5%P6b*L z+}udN&9#r>AX0IPX3?Ilp|dD#YHyBW;n`&Wl|K@>FW^78c0_KK3&?CZn!ov;s4BECnOAsVw2?EdekyM?uA_AtLU2nv%xr_I%4weK5-0)^| zyTSFa1e%2t%T_EI=e?-6?t)#md`X-VO_2R&=Uk(>EVkYn6>R6Z^1aGD5R@|l^@B#3 zR?37o)c8lbn$VMW{(|@(=ie4OXIKXs0r;L&L8p^8sTB0c%90vY}={oyBs7fQ<5A+vH(;>Sv&(^<-y_l zZ^ecG9B&BhmF>V*r;)_EG24&hQiA+cSBNA!G6LCyGXa&h4=S&_F%s z7QxwB*~FFr(IWA99NO(R42MHltyV|%4u^y4r9!kwB9Q=-$pra)o<#h9KP82akB?M; zdwUCdy`ENx$o>62Y&ILHR4SlWtHEx!(;nB`+Z)x#Vli6Ri~J+#W10aMx)Y;Os7-2;{ub(gyaP9uev}W0I#pF zbZ$1AX}eTlHk*+MVl*1z>goy%27}n8} literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b7e6c7e34d7397de7b7d81a7344bb62bdd0d6c GIT binary patch literal 1541 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f521af2bbd7cd74f84790c4f43f4742d38548926 GIT binary patch literal 1974 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 za-®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 JmoPWve*i2;8q@#) literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..fc3b1524ed523e7cf8e412191be67721285fa100 GIT binary patch literal 1231 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 yH4b^fbH(01qs;+Kbiz literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..a75afdb720c1505d335e612ee414528da43fa7b3 GIT binary patch literal 1323 zcmY*ZTTl`R6vccjif@c16_l`4)D?RuX!$OXP|IhvFv`%Dm7|txpgZQ4f~2KssXbgP zQ@30cvRH7T2bjVbYK0QDmb#ioQc4!4f-XDzV>9R8b3g8!nKSpyJ+nIwXJh4T1pokS zV(`%kMkfAOKnr7+*6r~D0L(tcL`NjiO+M7W^eIepdQ`{3-i@pti%5XW4*<^`DA-fx z1>dIqM_e?@2(oj8@1|?rH$+Zio8;B!^YKjiIEVMX!L|L`%rboHWA4!+0$(_TeG%+7 z@4Ljl-@n!LSDL+k>p_tzI4>Wi=$4u0>xee1Ra z1^MKIii-ns!Mf#TTR%TP!W+rx#MG3}tF(!4WmZcHKy!0*rYIJph+tt-o_NP{> zHSzTH6g+%b`sGVrRH;|7kh{28z+$n^H_U(j9G;R=n|bxqr{m5)lF5wO*_{732BLAe z;>(xUi9{kb z@RG~rITi1Gt~fA<{%&sG(Ar6b?;;YNBq!I*sRjp~nwpy#(?F8kl6W@NBRC~y}j6rGba(nVI$tnKU+ zH;qjP?{3aHcFZI-HTBIHJ|hL%(2AK}A&pGg&?uLF=jy)b_4>EG#>Vwt z-riLWM{k7okX3zseSFRsgD?0RczpGpSIEc+f7O2TC_J`hyI(_{>f$6FB=CL}nv+4K1PKOFiwjb&&}`J?9@ zot@aBiM;e1_8=zy&>_#fX?Fo^IX!B&x7Uh9CO`XnEv)F4*w#%b6gID?hKB>{>+7E; zkkZrL<^BE71xA;C05=#+JUV*axwPetcc(~XEf$MA0=7ZZ($X9m^X2n89f3pnMX|7e znCo%)B2Mc=DvUrDdbD^Z`hdFsxDm{Qdo7pjmu@0LWl4Je=OH1h!gsZLHR4 zGJ^pyx~b`jiR(}j+W^$OJun3B&JX4l6&0>8)n;o{Z0 zB>|0lq5U;yE$iKVBC61$3Gtbm0jK5bqk2b2RF QjZY8|vm-9LJu?0DzaqqR+yDRo literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..be2d56e53c404bbcc79cef8e0c36e158e68bbb62 GIT binary patch literal 2593 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 Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You 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. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..c4376bc --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Nekoya + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Nekoya + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..44fd267 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,241 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/gestures.dart'; + +import 'package:url_launcher/url_launcher.dart'; + +void main() { + runApp(const Main()); +} + +class Main extends StatelessWidget { + const Main({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Nekoya', + theme: ThemeData( + colorScheme: ColorScheme.fromSeed( + seedColor: const Color(0xff8B0000), brightness: Brightness.light), + useMaterial3: true, + ), + darkTheme: ThemeData( + colorScheme: ColorScheme.fromSeed( + primary: const Color(0xff212226), + seedColor: const Color(0xff8B0000), + brightness: Brightness.dark), + useMaterial3: true, + ), + themeMode: ThemeMode.system, + home: const LandingPage(), + debugShowCheckedModeBanner: false, + ); + } +} + +class LandingPage extends StatefulWidget { + const LandingPage({super.key}); + + @override + State createState() => _LandingPageState(); +} + +class _LandingPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: ListView(children: [ + Container( + width: double.infinity, + height: MediaQuery.of(context).size.height, + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.primary, + ), + padding: const EdgeInsets.only(left: 100, right: 100), + child: MediaQuery.of(context).size.width > 800 + ? Row(children: [ + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Nekoya', style: TextStyle(fontSize: 80)), + const Text('Easily Buy Sneakers anywhere, anytime.', + style: TextStyle(fontSize: 30)), + const SizedBox( + height: 40, + ), + ElevatedButton.icon( + onPressed: () { + launchUrl(Uri.parse( + 'https://github.com/Nekoya-Site/App/releases')); + }, + icon: const Icon( + Icons.android, + color: Colors.white, + ), + label: const Text( + 'Download', + style: TextStyle( + color: Colors.white, fontSize: 20), + ), + style: const ButtonStyle( + padding: MaterialStatePropertyAll( + EdgeInsets.only( + top: 20, + bottom: 20, + left: 30, + right: 30)), + backgroundColor: MaterialStatePropertyAll( + Color(0xff8B0000)))) + ])), + Container( + width: 300, + decoration: const BoxDecoration( + image: DecorationImage( + image: + AssetImage('assets/images/featured.webp')))) + ]) + : Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Text( + 'Nekoya', + style: TextStyle(fontSize: 50), + textAlign: TextAlign.center, + ), + const Text( + 'Easily Buy Sneakers anywhere, anytime.', + style: TextStyle(fontSize: 20), + textAlign: TextAlign.center, + ), + const SizedBox( + height: 20, + ), + ElevatedButton.icon( + onPressed: () { + launchUrl(Uri.parse( + 'https://github.com/Nekoya-Site/App/releases')); + }, + icon: const Icon( + Icons.android, + color: Colors.white, + ), + label: const Text( + 'Download', + style: + TextStyle(color: Colors.white, fontSize: 20), + ), + style: const ButtonStyle( + padding: MaterialStatePropertyAll( + EdgeInsets.only( + top: 20, + bottom: 20, + left: 30, + right: 30)), + backgroundColor: MaterialStatePropertyAll( + Color(0xff8B0000)))) + ])), + Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.secondary, + ), + padding: const EdgeInsets.only( + left: 50, right: 50, top: 100, bottom: 100), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + height: 250, + margin: const EdgeInsets.all(25), + decoration: const BoxDecoration( + image: DecorationImage( + image: + AssetImage('assets/images/onboarding.webp'))), + ), + const Text( + 'Discover and extensive collection of sneakers from all the top brands, conveniently gathered in one place', + style: TextStyle(fontSize: 20, color: Colors.black), + textAlign: TextAlign.center) + ])), + Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.primary, + ), + padding: const EdgeInsets.only( + left: 50, right: 50, top: 100, bottom: 100), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + height: 250, + margin: const EdgeInsets.all(25), + decoration: const BoxDecoration( + image: DecorationImage( + image: + AssetImage('assets/images/onboarding_2.webp'))), + ), + const Text( + 'Choose sizes based on your preferences', + style: TextStyle(fontSize: 20), + textAlign: TextAlign.center, + ) + ])), + Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.secondary, + ), + padding: const EdgeInsets.only( + left: 50, right: 50, top: 100, bottom: 100), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + height: 250, + margin: const EdgeInsets.all(25), + decoration: const BoxDecoration( + image: DecorationImage( + image: + AssetImage('assets/images/onboarding_3.webp'))), + ), + const Text( + 'Experience seamless and hassle-free purchasing with our one-click checkout', + style: TextStyle(fontSize: 20, color: Colors.black), + textAlign: TextAlign.center) + ])), + Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.primary, + ), + padding: + const EdgeInsets.only(left: 30, right: 30, top: 50, bottom: 40), + child: RichText( + text: TextSpan( + text: 'Copyright 2023 ', + style: const TextStyle(color: Colors.white), + children: [ + TextSpan( + text: 'Nekoya Team', + style: TextStyle( + fontSize: 15, + color: Theme.of(context).colorScheme.secondary), + recognizer: TapGestureRecognizer() + ..onTap = () { + launchUrl( + Uri.parse('https://github.com/Nekoya-Site')); + }), + const TextSpan( + text: ', All rights Reserved.', + style: TextStyle(fontSize: 15, color: Colors.white), + ) + ]), + textAlign: TextAlign.center, + )) + ]), + ); + } +} diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt new file mode 100644 index 0000000..b9d905d --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,145 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "Nekoya") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.nekoya_landing") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..f6f23bf --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); +} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..f16b4c3 --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + url_launcher_linux +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/linux/main.cc b/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/linux/my_application.cc b/linux/my_application.cc new file mode 100644 index 0000000..cd3bd6f --- /dev/null +++ b/linux/my_application.cc @@ -0,0 +1,104 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "nekoya_landing"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "nekoya_landing"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/linux/my_application.h b/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/macos/.gitignore b/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..8236f57 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,12 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import url_launcher_macos + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..4ac2871 --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,695 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* nekoya_landing.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "nekoya_landing.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* nekoya_landing.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* nekoya_landing.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1430; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/nekoya_landing.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/nekoya_landing"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/nekoya_landing.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/nekoya_landing"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/nekoya_landing.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/nekoya_landing"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..2e1068e --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..d53ef64 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..96d3fee --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "info": { + "version": 1, + "author": "xcode" + }, + "images": [ + { + "size": "16x16", + "idiom": "mac", + "filename": "app_icon_16.png", + "scale": "1x" + }, + { + "size": "16x16", + "idiom": "mac", + "filename": "app_icon_32.png", + "scale": "2x" + }, + { + "size": "32x32", + "idiom": "mac", + "filename": "app_icon_32.png", + "scale": "1x" + }, + { + "size": "32x32", + "idiom": "mac", + "filename": "app_icon_64.png", + "scale": "2x" + }, + { + "size": "128x128", + "idiom": "mac", + "filename": "app_icon_128.png", + "scale": "1x" + }, + { + "size": "128x128", + "idiom": "mac", + "filename": "app_icon_256.png", + "scale": "2x" + }, + { + "size": "256x256", + "idiom": "mac", + "filename": "app_icon_256.png", + "scale": "1x" + }, + { + "size": "256x256", + "idiom": "mac", + "filename": "app_icon_512.png", + "scale": "2x" + }, + { + "size": "512x512", + "idiom": "mac", + "filename": "app_icon_512.png", + "scale": "1x" + }, + { + "size": "512x512", + "idiom": "mac", + "filename": "app_icon_1024.png", + "scale": "2x" + } + ] +} \ No newline at end of file diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1d275bded9df7579552c0a87098d45ecc55619 GIT binary patch literal 31074 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..bc8dcb1b64865f0c9afa13a6fa4d1d3441057600 GIT binary patch literal 299 zcmV+`0o4A9P)2L5GgMVxDIdMR5%v z%Q6hZfTn5Kw(WWXq9jS+c^=xf{SJ_28G;}{6h+qo<2Yj9cf@gwX_~GBnx>(9p66#F z|9OnMuK#KvHLsuT4bb;J9UJMr>pEDLg>_x&yCg{vMUkGF35e1(1;=r8Ez1Hy5U6n& x1}KX1Bjp=_m`v0B7+qD>XAKijRTZOiwjQ`SRPXJDu@nFR002ovPDHLkV1fh{eP;jw literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..ff649bd0ae99e1e790c79d692236699bda827ba2 GIT binary patch literal 4956 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 Hu0mjfTesw7 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000000000000000000000000000000000000..d33aeb30ec1ea9e62cd1afaba53e1ca5504b2709 GIT binary patch literal 11786 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..f5de711b85dd8dc90f5717b7a9491f533d8ecc7b GIT binary patch literal 1055 zcmV+)1mOFLP)wiF5r$|HHd6HylID6hPq zdDHLrZ>D?ykHuVb=Xd|z`PAgzbLW`feCC|rnK@@H0KVYHSfm4x#uOkOfHbB6=>VkB zEFd^I81?n_&WPp5bar;)@bFMm9nAs)0s?Sxae=O`F0ECaN<~Elf`WpaFMxP?dBOet zy(3kf#`E*DL-ouYART}-rU2;xq%j3Z2Oy0pz{rCY6coVE&yPRf+}vP#dRqO>-`^kk z`T0DakByBP7L%a@=vFl%B7#3ZJUk#YG!*ae@BE$0dwP0sdU}e;$VkIt66pf3udmz^ z5)%`#wzj60dw6&l9*dy@zP^6VzHMx5AU!=D+1c540wge0fO3Tw7Z+JTW@aYZ+uMx{ z;SWT*z{<)BK0ZE>nwkoW#iHf`2}A_Y2(YuWgM@?xBqb%W5Gh0iP%fCCpJxGid3o+9 zfS^23TU(3V++4J_wn~K|Ct!Jb8K0k@+y#7me5AsV6L5WfjosZ{#KgpKGQ7IF5{X0f zS%C6DY-}uYa&j;{JS-A}r~t|XH8nNJ%F1#N0m_}A!qUxWEggccL8Zk0n!0TV+xQCKpInkbO6$r z0vxGST3X5vFs=kGr_q9oRvZ%0-`|gpjt)nvI*sb;YKQ8XT|hbjX>=2?u&{vg@^X}w zm7%%0`JemIZ%s{2dL8!1=q6x)f1ejSy}Z2Cvckeb#Kpy7VqyYYTU%V_?d^?}loXx= z*xcOYGFm9j$jHF<_BJLbC%KFg?ZChQ|LyDRPgpw6v%K=pBOOmBD zmj9p22_Sx-^rWl2x3_1v_D8ST(n-+UA;-tZYCYOKJw4U^sMU0Lck_s&K+&$JH|G`?T2-78b^dm8Q%Ts3qyWlI*g> z;L*_$cL8VPvI3046ri;NC7`INC_|d3R%qnVie>>PCnt7e`2UXC1*8Lz#uOkOfHZC| Z;2V#baipB}(u)89002ovPDHLkV1gTw_CEjs literal 0 HcmV?d00001 diff --git a/macos/Runner/Base.lproj/MainMenu.xib b/macos/Runner/Base.lproj/MainMenu.xib new file mode 100644 index 0000000..80e867a --- /dev/null +++ b/macos/Runner/Base.lproj/MainMenu.xib @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..14b260f --- /dev/null +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = Nekoya + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.nekoyaLanding + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2023 com.example. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..5418c9f --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import FlutterMacOS +import Cocoa +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..e31dd0e --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,386 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + archive: + dependency: transitive + description: + name: archive + sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b" + url: "https://pub.dev" + source: hosted + version: "3.4.9" + args: + dependency: transitive + description: + name: args + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + url: "https://pub.dev" + source: hosted + version: "2.4.2" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7 + url: "https://pub.dev" + source: hosted + version: "0.4.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.dev" + source: hosted + version: "1.0.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + url: "https://pub.dev" + source: hosted + version: "0.13.1" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + image: + dependency: transitive + description: + name: image + sha256: "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271" + url: "https://pub.dev" + source: hosted + version: "4.1.3" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + url: "https://pub.dev" + source: hosted + version: "4.8.1" + lints: + dependency: transitive + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + url: "https://pub.dev" + source: hosted + version: "0.12.16" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + meta: + dependency: transitive + description: + name: meta + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + url: "https://pub.dev" + source: hosted + version: "1.10.0" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" + source: hosted + version: "1.8.3" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8 + url: "https://pub.dev" + source: hosted + version: "2.1.7" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + url: "https://pub.dev" + source: hosted + version: "3.7.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + url: "https://pub.dev" + source: hosted + version: "0.6.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: b1c9e98774adf8820c96fbc7ae3601231d324a7d5ebd8babe27b6dfac91357ba + url: "https://pub.dev" + source: hosted + version: "6.2.1" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" + url: "https://pub.dev" + source: hosted + version: "6.2.0" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 + url: "https://pub.dev" + source: hosted + version: "6.2.1" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 + url: "https://pub.dev" + source: hosted + version: "3.1.0" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "138bd45b3a456dcfafc46d1a146787424f8d2edfbf2809c9324361e58f851cf7" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + url: "https://pub.dev" + source: hosted + version: "0.3.0" + xml: + dependency: transitive + description: + name: xml + sha256: af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556 + url: "https://pub.dev" + source: hosted + version: "6.4.2" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.2.0 <4.0.0" + flutter: ">=3.16.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..b8dae39 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,109 @@ +name: nekoya_landing +description: "Easily Buy Sneakers anywhere, anytime." +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.2.0 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + url_launcher: ^6.2.1 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 + flutter_launcher_icons: "^0.13.1" + +flutter_launcher_icons: + android: "launcher_icon" + ios: true + image_path: "assets/images/logo.webp" + min_sdk_android: 21 + web: + generate: true + image_path: "assets/images/logo.webp" + background_color: "#000000" + theme_color: "#000000" + windows: + generate: true + image_path: "assets/images/logo.webp" + icon_size: 48 + macos: + generate: true + image_path: "assets/images/logo.webp" + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - assets/images/ + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..bc8dcb1b64865f0c9afa13a6fa4d1d3441057600 GIT binary patch literal 299 zcmV+`0o4A9P)2L5GgMVxDIdMR5%v z%Q6hZfTn5Kw(WWXq9jS+c^=xf{SJ_28G;}{6h+qo<2Yj9cf@gwX_~GBnx>(9p66#F z|9OnMuK#KvHLsuT4bb;J9UJMr>pEDLg>_x&yCg{vMUkGF35e1(1;=r8Ez1Hy5U6n& x1}KX1Bjp=_m`v0B7+qD>XAKijRTZOiwjQ`SRPXJDu@nFR002ovPDHLkV1fh{eP;jw literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..8c166e7acdc427b296577a4ad1adbb4034334b5c GIT binary patch literal 3409 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 ynl7~?`?^3aM-CNw0g=59rR*ILT`q6ZFoO5q!HT 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..8c166e7acdc427b296577a4ad1adbb4034334b5c GIT binary patch literal 3409 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 ynl7~?`?^3aM-CNw0g=59rR*ILT`q6ZFoO5q!HT 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 literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..8cf9a68 --- /dev/null +++ b/web/index.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + Nekoya + + + + + + + + + + + + \ No newline at end of file diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..05f9de3 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "nekoya_landing", + "short_name": "nekoya_landing", + "start_url": ".", + "display": "standalone", + "background_color": "#000000", + "theme_color": "#000000", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} \ No newline at end of file diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..f8e831d --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(nekoya_landing LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "nekoya_landing") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..903f489 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + ${FLUTTER_TARGET_PLATFORM} $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..4f78848 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); +} diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..88b22e5 --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + url_launcher_windows +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..1e011f4 --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "nekoya_landing" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "nekoya_landing" "\0" + VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "nekoya_landing.exe" "\0" + VALUE "ProductName", "nekoya_landing" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..bf6618c --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"Nekoya", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c4b3019a7215e2cd5bf0f8a6c6d79905f1ad07e7 GIT binary patch literal 758 zcmVE`0%wR1T+uPgdcDs0eeVw^rJeW)- zxLhtI5{X~$_DT@pjxdWpU<=34-XGfDwXD6fOvU%fx%$F#>U1-Komj* z`u#qxuCADXXoL;oN~MBGB*LPq$OtY(U@#bDJ&160yGXTFE80Z7KQM| z9L0mJtu6F=Jt5DRT;T2P4efS&l&1C1Fp$wTsgYcO7H#8DJP`RtL){N3jVhots({jP z3xq-;e0+R}EXxSmj?&9r9=HXf(Wv@vR0LBA?CU-?jc+s>N9n!2J=knE#9}ct8Vz2L}g8rBbNZ>+%Tvg!=5=-5owZKUsQdX^Cy@hl~%%hldB&g0#pZd_EtZpP#Y1 zx;jT_?QXZ5bt@v1$w05yPY8@p04pmi>=^`oI2r%1ECRJ!Z6Zyz zO2?4f+uMojg+gH>eRg)nDu8%=d}PP8C^8H2&hb2O3wXU=SwHge!X=Q)+K+Z_WG)XxHyUxBvhE07*qoM6N<$f_xre0RR91 literal 0 HcmV?d00001 diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..a42ea76 --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..b2b0873 --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length <= 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_