From 2937d484cd16fb80bbefacd85068c4640b7007e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maty=C3=A1=C5=A1=20Caras?= Date: Thu, 23 May 2024 19:14:08 +0200 Subject: [PATCH] feat: create base project --- .flutter | 1 + .gitignore | 43 + .gitmodules | 4 + .metadata | 45 + CONTRIBUTING.md | 7 + LICENSE.md | 660 ++++++++++ README.md | 25 + analysis_options.yaml | 30 + android/.gitignore | 13 + android/app/build.gradle | 58 + android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 64 + .../app/src/main/ic_launcher-playstore.png | Bin 0 -> 43292 bytes .../kotlin/wtf/caras/ocarina/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3452 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 4975 bytes .../mipmap-hdpi/ic_launcher_monochrome.png | Bin 0 -> 1998 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2160 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 3092 bytes .../mipmap-mdpi/ic_launcher_monochrome.png | Bin 0 -> 1445 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4878 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 6951 bytes .../mipmap-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 2502 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7995 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 11178 bytes .../mipmap-xxhdpi/ic_launcher_monochrome.png | Bin 0 -> 3370 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 11472 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 16112 bytes .../mipmap-xxxhdpi/ic_launcher_monochrome.png | Bin 0 -> 4561 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/colors.xml | 4 + android/app/src/main/res/values/styles.xml | 18 + .../main/res/xml/network_security_config.xml | 6 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 18 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 25 + assets/icon/ic_foreground.png | Bin 0 -> 44253 bytes assets/icon/ic_full.png | Bin 0 -> 107257 bytes assets/icon/ic_full_bg.png | Bin 0 -> 115958 bytes assets/icon/ic_monochrome.png | Bin 0 -> 13766 bytes bruno/Subsonic API/Ping.bru | 11 + bruno/Subsonic API/bruno.json | 13 + bruno/Subsonic API/collection.bru | 14 + bruno/Subsonic API/environments/dev.bru | 9 + bruno/Subsonic API/getCoverArt.bru | 15 + bruno/Subsonic API/getIndexes.bru | 11 + bruno/Subsonic API/getMusicDirectory.bru | 15 + bruno/Subsonic API/getMusicFolders.bru | 11 + flutterw | 113 ++ icons_launcher.yaml | 22 + ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 616 ++++++++++ .../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 -> 113419 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 930 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1715 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 2686 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1249 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 2567 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 4230 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1715 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 3768 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 6295 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 6295 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 10484 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 3533 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 8343 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 9447 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/api/audio/audioplayer_service.dart | 56 + lib/api/cache_manager.dart | 0 lib/api/login_manager.dart | 29 + lib/api/subsonic/album.dart | 38 + lib/api/subsonic/album.g.dart | 34 + lib/api/subsonic/artist.dart | 37 + lib/api/subsonic/artist.g.dart | 23 + lib/api/subsonic/artistindex.dart | 27 + lib/api/subsonic/artistindex.g.dart | 20 + lib/api/subsonic/song.dart | 45 + lib/api/subsonic/song.g.dart | 37 + lib/api/subsonic/subsonic.dart | 143 +++ lib/main.dart | 60 + lib/util/util.dart | 22 + lib/views/album_view.dart | 74 ++ lib/views/artist_view.dart | 87 ++ lib/views/home_view.dart | 132 ++ lib/views/login_view.dart | 103 ++ lib/widgets/hero_banner.dart | 70 ++ lib/widgets/image_cover.dart | 72 ++ lib/widgets/player.dart | 46 + lib/widgets/song_row.dart | 30 + linux/.gitignore | 1 + linux/CMakeLists.txt | 145 +++ linux/flutter/CMakeLists.txt | 88 ++ linux/flutter/generated_plugin_registrant.cc | 19 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 25 + linux/main.cc | 6 + linux/my_application.cc | 124 ++ linux/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 24 + macos/Runner.xcodeproj/project.pbxproj | 705 +++++++++++ .../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 -> 121101 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 6933 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 855 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 16661 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1456 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 43292 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 3024 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 | 1066 +++++++++++++++++ pubspec.yaml | 111 ++ snap/gui/app_icon.desktop | 8 + snap/gui/app_icon.png | Bin 0 -> 16661 bytes test/widget_test.dart | 30 + windows/.gitignore | 17 + windows/CMakeLists.txt | 108 ++ windows/flutter/CMakeLists.txt | 109 ++ .../flutter/generated_plugin_registrant.cc | 17 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 25 + 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 -> 37234 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 ++ 176 files changed, 7779 insertions(+) create mode 160000 .flutter create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 .metadata create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE.md 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/ic_launcher-playstore.png create mode 100644 android/app/src/main/kotlin/wtf/caras/ocarina/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-anydpi-v26/ic_launcher.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/colors.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/main/res/xml/network_security_config.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/icon/ic_foreground.png create mode 100644 assets/icon/ic_full.png create mode 100644 assets/icon/ic_full_bg.png create mode 100644 assets/icon/ic_monochrome.png create mode 100644 bruno/Subsonic API/Ping.bru create mode 100644 bruno/Subsonic API/bruno.json create mode 100644 bruno/Subsonic API/collection.bru create mode 100644 bruno/Subsonic API/environments/dev.bru create mode 100644 bruno/Subsonic API/getCoverArt.bru create mode 100644 bruno/Subsonic API/getIndexes.bru create mode 100644 bruno/Subsonic API/getMusicDirectory.bru create mode 100644 bruno/Subsonic API/getMusicFolders.bru create mode 100755 flutterw create mode 100644 icons_launcher.yaml 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-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-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/api/audio/audioplayer_service.dart create mode 100644 lib/api/cache_manager.dart create mode 100644 lib/api/login_manager.dart create mode 100644 lib/api/subsonic/album.dart create mode 100644 lib/api/subsonic/album.g.dart create mode 100644 lib/api/subsonic/artist.dart create mode 100644 lib/api/subsonic/artist.g.dart create mode 100644 lib/api/subsonic/artistindex.dart create mode 100644 lib/api/subsonic/artistindex.g.dart create mode 100644 lib/api/subsonic/song.dart create mode 100644 lib/api/subsonic/song.g.dart create mode 100644 lib/api/subsonic/subsonic.dart create mode 100644 lib/main.dart create mode 100644 lib/util/util.dart create mode 100644 lib/views/album_view.dart create mode 100644 lib/views/artist_view.dart create mode 100644 lib/views/home_view.dart create mode 100644 lib/views/login_view.dart create mode 100644 lib/widgets/hero_banner.dart create mode 100644 lib/widgets/image_cover.dart create mode 100644 lib/widgets/player.dart create mode 100644 lib/widgets/song_row.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 snap/gui/app_icon.desktop create mode 100644 snap/gui/app_icon.png create mode 100644 test/widget_test.dart 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/.flutter b/.flutter new file mode 160000 index 0000000..87b6524 --- /dev/null +++ b/.flutter @@ -0,0 +1 @@ +Subproject commit 87b652410dbf20003c437ab6512118622d95770f 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/.gitmodules b/.gitmodules new file mode 100644 index 0000000..61e4ce5 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule ".flutter"] + path = .flutter + url = https://github.com/flutter/flutter.git + branch = beta diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..8ca14df --- /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: "5dcb86f68f239346676ceb1ed1ea385bd215fba1" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: android + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: ios + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: linux + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: macos + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: web + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: windows + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + + # 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/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6bbd6c5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# Contributing to Ocarina2 +This document describes the steps to contribute to this project and how the contributor should behave. +Please read this document carefully + +## Contributing code + +All code must be made by humans. The use of AI assistans that generate code for you (included, but not limited to ChatGPT, GitHub Copilot etc.) is strictly prohibited and you won't be allowed to contribute code again if you are found using such software in your code contributions. \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..c6f01c6 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,660 @@ +# GNU AFFERO GENERAL PUBLIC LICENSE + +Version 3, 19 November 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +## Preamble + +The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains +free software for all its users. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + +A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + +The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + +An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing +under this license. + +The precise terms and conditions for copying, distribution and +modification follow. + +## TERMS AND CONDITIONS + +### 0. Definitions. + +"This License" refers to version 3 of the GNU Affero General Public +License. + +"Copyright" also means copyright-like laws that apply to other kinds +of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of +an exact copy. The resulting work is called a "modified version" of +the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user +through a computer network, with no transfer of a copy, is not +conveying. + +An interactive user interface displays "Appropriate Legal Notices" to +the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +### 1. Source Code. + +The "source code" for a work means the preferred form of the work for +making modifications to it. "Object code" means any non-source form of +a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can +regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same +work. + +### 2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, +without conditions so long as your license otherwise remains in force. +You may convey covered works to others for the sole purpose of having +them make modifications exclusively for you, or provide you with +facilities for running those works, provided that you comply with the +terms of this License in conveying all material for which you do not +control copyright. Those thus making or running the covered works for +you must do so exclusively on your behalf, under your direction and +control, on terms that prohibit them from making any copies of your +copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes +it unnecessary. + +### 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such +circumvention is effected by exercising rights under this License with +respect to the covered work, and you disclaim any intention to limit +operation or modification of the work as a means of enforcing, against +the work's users, your or third parties' legal rights to forbid +circumvention of technological measures. + +### 4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +### 5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these +conditions: + +- a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. +- b) The work must carry prominent notices stating that it is + released under this License and any conditions added under + section 7. This requirement modifies the requirement in section 4 + to "keep intact all notices". +- c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. +- d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +### 6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of +sections 4 and 5, provided that you also convey the machine-readable +Corresponding Source under the terms of this License, in one of these +ways: + +- a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. +- b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the Corresponding + Source from a network server at no charge. +- c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. +- d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. +- e) Convey the object code using peer-to-peer transmission, + provided you inform other peers where the object code and + Corresponding Source of the work are being offered to the general + public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product is a +consumer product, doubtful cases shall be resolved in favor of +coverage. For a particular product received by a particular user, +"normally used" refers to a typical or common use of that class of +product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected +to use, the product. A product is a consumer product regardless of +whether the product has substantial commercial, industrial or +non-consumer uses, unless such uses represent the only significant +mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to +install and execute modified versions of a covered work in that User +Product from a modified version of its Corresponding Source. The +information must suffice to ensure that the continued functioning of +the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or +updates for a work that has been modified or installed by the +recipient, or for the User Product in which it has been modified or +installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network +or violates the rules and protocols for communication across the +network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +### 7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders +of that material) supplement the terms of this License with terms: + +- a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or +- b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or +- c) Prohibiting misrepresentation of the origin of that material, + or requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or +- d) Limiting the use for publicity purposes of names of licensors + or authors of the material; or +- e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or +- f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions + of it) with contractual assumptions of liability to the recipient, + for any liability that these contractual assumptions directly + impose on those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; the +above requirements apply either way. + +### 8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +### 9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run +a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +### 10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +### 11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned +or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on +the non-exercise of one or more of the rights that are specifically +granted under this License. You may not convey a covered work if you +are a party to an arrangement with a third party that is in the +business of distributing software, under which you make payment to the +third party based on the extent of your activity of conveying the +work, and under which the third party grants, to any of the parties +who would receive the covered work from you, a discriminatory patent +license (a) in connection with copies of the covered work conveyed by +you (or copies made from those copies), or (b) primarily for and in +connection with specific products or compilations that contain the +covered work, unless you entered into that arrangement, or that patent +license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +### 12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under +this License and any other pertinent obligations, then as a +consequence you may not convey it at all. For example, if you agree to +terms that obligate you to collect a royalty for further conveying +from those to whom you convey the Program, the only way you could +satisfy both those terms and this License would be to refrain entirely +from conveying the Program. + +### 13. Remote Network Interaction; Use with the GNU General Public License. + +Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your +version supports such interaction) an opportunity to receive the +Corresponding Source of your version by providing access to the +Corresponding Source from a network server at no charge, through some +standard or customary means of facilitating copying of software. This +Corresponding Source shall include the Corresponding Source for any +work covered by version 3 of the GNU General Public License that is +incorporated pursuant to the following paragraph. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + +### 14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU Affero General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever +published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions +of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +### 15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +### 16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR +CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT +NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR +LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM +TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +### 17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +## How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively state +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper +mail. + +If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for +the specific requirements. + +You should also get your employer (if you work as a programmer) or +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. For more information on this, and how to apply and follow +the GNU AGPL, see . diff --git a/README.md b/README.md new file mode 100644 index 0000000..3ebc526 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Ocarina2 +![Wakapi Project Stats](https://wt.mnau.xyz/api/badge/hernik/interval:any/project:Ocarina2?label=Ocarina2%20Stats) [![made by humans badge](https://img.shields.io/badge/made_by-humans-blue)]() + +A Navidrome (or other subsonic-API-compatible server) client/player built with Flutter for people who just want to enjoy their music. Currently being built for **Android**, soon^tm^ to be cross-platform. + +## Building +TODO + +## License +``` +Ocarina2 - The open-source client for Subsonic-compatible servers +Copyright (C) 2024 Matyáš Caras + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License version 3 as +published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +``` \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..6d940d0 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,30 @@ +# 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:very_good_analysis/analysis_options.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 + prefer_single_quotes: false + flutter_style_todos: false + +# 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..15eda0c --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,58 @@ +plugins { + id "com.android.application" + id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + 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 = "wtf.caras.ocarina" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "wtf.caras.ocarina" + // 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. + minSdk = flutter.minSdkVersion + targetSdk = 34 + 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 = "../.." +} 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..8d52805 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/ic_launcher-playstore.png b/android/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..113d6e9ae60cbad8a9b9522c494ec306eb0982a9 GIT binary patch literal 43292 zcmeFYbyr*6_dS~6g#ty21Sc)hB8A`^CutWq*uMLgPB5nRD<~iP8RX zj3(O@@ehd%qZ@oR&?jnImG1i0)j{*W-Tel7gnDw1?f|Y{E^j@ODKY8P@B4gQ78AWu z%-%=8h2)bmBCcp~SyVLNVP)r?GXNMK$85A*->D@HpJ|R@v`n3oC;S zOAC8w(RcMAb?TTxu9!l+gx&X0ppq7~l9n!uCjfh(ej5B0Hy?Y63#iBh z`0vUC);+*~=dS@;gtGtLi4!FO`0r^-*(snV_B<6(NEZCRw>|p5SNz{x{9j)D-x~S< z@xnJJi4pcAFANJ0Z%w9vL?S|$X0s@{(Co16rdwxUaRYH%adGjdUoEhZQ){b9$l7%5 zy}|*D&E^wd*!tNkf#X4JbH%wC*8=O2c6TGTKMr_|1sqTzne4IY)C!UP@yaK6-Ep9} zq$vbIfpWLm%*4+~gK+J9&bD`B9-{vYA0#fnT81QA)IrmmTVfcQn$>vm+^mtML!Br@<09SY%|t^8|bhNxy`$??AhiF@$Dt z%+^CpPt}D?XF<(7K~*<8dYN#w}I394yMFdM0AOEx2>%gIf@8)+KC{#cU(nRUn6t+My>;b`wA#edP*C-MY{K;vc;d#CR*8_H^opB3akfaK5{bC;aWVx|=C z_WfAuza4}4zgyQvF@{InqB|z!G}d?-5Awm)3?furwm@rKYrTKX|9y09K3UgxxN-(P zKzXGC!GGVHz!B2G7bfYAGbfZi0Ter%lr0B{jZog5-QfCd-n|`X6F2#F4K>RFXh_Ox zrKZ(rj(~p-t#uBb*gcZvl-@%dx^}ZA+``mPef(vOq2F*?y0L>iTQ6D5yg@;biN6~H zqmH1_`bbxSI|$c9X<1u0ypnPOu?C>rk*7aY#o)y{UR?(Y#xx6alZ4NdS%8&`6cShbd^<5jXph^Dia^CzAE zzWS5Nqw7=L$uS4w4_l-haQ`>dB{bu;g~IZmdW=4C@=|27*eOThQtRrbdz90@lC2Z* zbwMPTRL28Y6U%t^B6)3{n=QY6ZK5bh;)xD8+dU7Q6D(OR%It}gnylGXK+lSgCplILP{+4E{?In%55}=VckVuaulS`rK)b9i z!z%1}aa|G=1}N9sqaEH+(Epb}{B5iE;(!7!dB-L5EAQBemDrafG%2UvF@|fFJCD>w z*t1_2%yuyKCj(OnoZdLRXwKf*ydXFpQ2Kx)0SF*Jwca><{5va*l3GeZtyg_VY>OGR zwfPZxX3=vGDY{}tc{F2|67(i-t0W(Hji`3@sOF>Yqtj2lY3{rq#4@-b!K6}IetAQ_ zTxBe}cyZ%WOoYY=?IRVmH`%ubwUwIKSoSawFd%)3z8(OcfF8}c<4yc%rEs#5B8={;~E~2RIu;LwU8Ug^r=7Wq7*= zHYUNfna6KWa|=*~ejqR9t<8U~nB2V97ioDe8kAMm1iBVIJD#tP+)FCN zNTuEo7&iyc0j=?xIK#3O|E*3MWOzVDNtc*vx3P)uyEfJn%lJ%zF!%yMPKCM2| z5qmkO?<4Go(Dc9X1Hr1$M@mNv$ATZraF1Iczt@A}8^79@BU^Qko1ZRC)~q7i9dMX% z_{fUDT@faqiJR23pA{@V+j|w^p9%CN(51)X13$?mJS|$WZ%A~GDuL(p!RZS&@pVQ; zP$TR7bg0ds?h~?{#)Pgd4b6aMSRJtBn_xh0_KPAS^#?8!k3`APS=kKLqL13Sx%Mfl z1Q3urp^p_~s3sQr31`FO730I@?<;3ud(^UeLU>~R@%)E3xX8%<+&t7>J8$8l!n*L| zKMzbd_($+PaGE5;-t=)XR0hg^kHd0J;iG|}$R#Mhe0kX0Am+8V&)L{7*<&Hdvhh&iaz33)8jb_= zqaGT~kJ+Ei(k^v*sV*u8fU zANVG`$WO{%E6*g6$AdUSz|1;WooWQ{fFj@Fs;qh(0KxZbpZQ<3j0ur{xP=97)YT8Z zGjhHY90)u?JfEY6zmicdI`wt?6d!eQAXi+1dounZO5`W2s0-mWEKw_fHR1k1Ul=h* z#lIe(Ci-F7XpZqEzML|_^2<+!Qy`6>F-T|?T0L|;3SI3_Hvv)j8-RvD3 zJ3Idng9K;4U$4hthOZwsm}$Pj@l<3A9wUi|D!5GlHP!?8rv=cIM4M4_s*F+tD6JR) zFMvr9PRi&x)sSpW9ySc`xU5vPi#7vg5$+J#vQmo`2{8)((<)>!du8YF0{@u9pX}0l zl!0IGp|*4qSjC`|yp+po)qfPS9MB74$HHu!bdCn-DSwVeWGb?s`g2Qes$Idxrnn(X zS4Tq|T!2CI9Z0L3?7w^#`m}81^kxf@t>StmKy0C)jK`Jwk`L`WN=+^3a%w9UooZA< z!Wiz-w~HUv;tgJ0G`qnqWLijGu4QUATq)!t3$dj<=jR^H0)TOy1UE@D1bbF`E(xl2 zzh>b-?(`{?AW1v5SxxK~$vM66w=bruDm}M7mbPFCIy_08?_DAB=V)q+OTpzKaf#F9 z{J0k;0m!2DT3inG#L0O7oMoEUU3bgb`t5;xNsy!jz#w%~(Z&z%#_%wc8^@ZWCz>FP z!H^=kcR6_UqAIx+{q%+K!_)xSN&6>&^PjjreTd}~WqPw5O3i0$^p4D4MUYrU&f39y zXV6XP(Te}Z*W4Frq60hdPu9|19Lp|Kxi%i%aJ_G;VMg8L`3EJ6W$pU0JQQ@sATyLc~p z3$$^FPnP3yyJ4^AvbuNtBfr;3bACdyX=uRLu9j|kjbKL)I{CH<-G9{H(bzdCeD#er zvR@*q_spzWcF~T!7Coz97DM(#iX`q|0QuY0#40aYZbScYsY$0p%n?`GVkwBFQd5+@ z@j2l;Vc^eQ4U*edabii(=mVe#o*hzy>3>_q^W^0^sP6~m%d<%rYmQZ+hKv?;;Upj- zhk%PlFiI23sQ~HD2lQm&d0k>O|#Y7DI z&YM{xwnJ1%s#^F=IdW_P5(6X7dzNApI(9BYO3V~8BYZaVV429N@9?`TM!mAzC6vz7 zHCy4w2cpI(@Dd;Ny%2g&FN;6jUaj)^=QVb!gLm60PGy&&Iz<)5JNs&ebkE+8fpwdp<(e9hflws~;z z;oJL-L3f;t>y0n~)BVYwv35WCf1&m1pRg}Avutmx{gz?$tE8rk>mgJ*<9W!|cAbrw zB4K`puqZw!hn9*@bYs$@hiXdx;!jF{^&z!y-BQtUiy6djbuJMsOB1SIb1koTU0|k#&6f0qS2Z@Z!P`h$%LlI~!PYmNsN-kE5DQAxQF_nce@2^JA7)Q* zu0PT#xf|ge&{~C52SWD%Q&0v=zjOu8nTUjk7lh|lLD$uE zR|JZ!UTiJoy2(HUe@h|lgS`{+PvO(bxnN^hE4l>Om)ffcS22H!hj{Kp+EEl`Fz9qj%+b)`g!LsZ=};I0%H1_7NXw ztaf!ybDi8*9Xq=p+mBGrO7@!yI*$v`VKlky4PzIW;irMHXv{^-H8=@ez7iw3ah4~+ zAlhj%{m8?E-XlyPqn^A_T)6QyJ!4gYCS!=rj#r;Iv$9qk-0W1`EwPf#`;dfM?6G2e z((oKqB9Ld_MJh$^AuKwuj3lk(e-(>OM!Bnl46Yd*=WxoNIynnL zy9I2!-tsv*8Fw%NdKj3svnY9=G@C}nzj2!!F+x8-osl8j{_cfi1E70)$2<)*{druU zUG_VxU%BVa;hFc)cDu2DC?X3wctN)|c?{`6>0Gwm&g>b=SM@F{4!&wt2^GF!ihM+2 zfk+j9EU0$QLm5O?Q_J8zwE|CgpH4gs!Js~u+jUCgev zwJ~1JufkO^4N*8wHLxxu=aMB>}qZDdXY zE98rx+6=bwCL;Q?c(pE;C5 z1m)zy>+Nt0RBVbYs(-_{OLN^p`rVl3IQ-wMsHPN>7xB@IB-RiY+lUZlmY6q^fV+0> zypV)7#icy=F8xR(s3gKCK6vq`k{TdERygh6ApuvNtVrw%(BEvUIM>gRkeW%r^We6H?8x~uo{dh^yCkUh zJM!WwQgi}c^O^L}N?O@r7g64raW3A^MoQ7}`n~C$Tk+3=7M=y4`NAX`KpW#SG?k+X zuZ37rY(!cM!7hf4r5``}g%zae6r58BT9!h-33Uy&iKtkhs|`I;xT||0SaHB8iksA!_`Q zKj@QMlmO&+J4ycnzar7_nm9^L)Bm0OIsVe!@m^s7AFYE6&+vk3gBT-Wc7W3`pr4m= z%!6YjsO6R3+jYG{_P$Re6|d$$0p8*Eat4|C;m|D=ZdVj@#%T0eU?auh zT>MKyhR?%MIIncHM^(YuHi}{({!T?3?zTW2YX0Ob`Ik=L;(l&-*eae(yc639{kw~Q z{OiS3u zu=tktKbqMcJi&hpXo9!8(Fa>@Yk}zHUHurZ8~insiCwo0StChP=(VMs@GMJja(8IC_tjI=wKXbf+P(7Bu>hfmot?&w-F ze{DydQ29>iW|>Bef8L}Y#x>z@#5j6LxOt$`#0S+}n?_%}y; zi1B?T@y;XOGF(YOVs`A+20tn1Y01DY$Xnso+z}UOkv54k6ZrG~3hKY-?^~btAVvP& zzkFSIo#52x=NDgVTx{|E-zYicwojEtWqwv4^<_Pmzi5~&2n3HFIzuqWtYOG9_f7JT zkDq0i?;Polf^PDtw?O*}%iQd(sABq7NM_8C1c=JROgs!lY|YOl>9pCG9x=l$T`G0{ z<%jql01sCJa1e!IY#=71$_2A5FlA`@HvsT8nYk-xKp3H>pn?E$SUg0P$(}mS^Q=#hCrzisS>(4H0PT0IFgk&L2hjxc1ksR z#rwdgNKxqR^2<3Evv;`VkMp+xa2}(KUK@12zgQg{F#YS4<`6qjr@*Z1#eQvv)li0Z zl?E2YxQQ3wfatrq62u84pd7S9F=CqKjNF->>co`p+xuidts__6|LCzT3|)_2numobzr zaS;k$4|#vi(u}0_sLtLA)h1SD`N6kO%Ur%X8RYa`#BhzN#hkekhBFb4RRk(sFaHf| zm#?@Vu{Wbu_fn<*LDHBtgs4G@M>3Vv>qevPBmNXhtssyOP}t` zC1o=d+a#0Y+mhJI2VNB?i1Cc*V9h44v!QM4F?EOLRE)@mr#q@Ig6&hk~l=!J-U=@;s1l{|MY=6<}9F;oNU@=Gk85}Z3 zi;5wbGp6po^%!S{EDVw7DfXBI2ENO$EqEuH-Egn8-O2rN^Ly&xLqJ*jY;O^LFbE4x z)vNt|wg8Zn1a4b%IzRR4fXFptc#YZQqunJV+Sbfk0|Z56w<>-UiKboV1D|A48>HOc z6rnYby*gTQ&`KV>j%OJtsy7i@P(8Fz9T8W)-`PD(2vMNi>;Oo-A5oU=m}57_YJe*EL&fI1{+yY#Uv~O)SdNc%n9AvWgoaThfvSCF!R&T!@ zoR+-M)<4FkNpzvug7s@7TnY zlS5>GY+!$N2bohIsNtU%AMoKQZ|=pfgDB43jld6w1>LWO=q<<-R_eXjf{vxuPmN=} zj)Y>p#IjgEuZZrP#t+5MG{JKJ&cBx^#l)ucS`T#Eh%8RPjf!@&s#yG4HtWANpS3eG zdfR5W0{&cf*4a|45U!~v8gk|fo)`Z_o2Xy~B4%R%q0!j>H*SSql|dl-7$P zGxZ16y)KXv#&%mGbfv-NYBt&l`Zu%f|#kkMG!}Y`ZqV(e4p=wO(O>-VtxjYF^EolFGb{6QulSq&nv`mb{%XcInJ zzJ_e-c=N9BQRa$hiD&<6q+!eGxB07%$tV=FDCkz`k~+SSmE03N9hllleVRb@!)ivl z&VflXSqv>>zT|%}d+>!Go^`{2`Xw#D`=xJd>UOCnh(6fj_0u#K{OPsQjj{Wu_AlO2 zJj5oW$bB^#V6u1T_?!BzMlwm`)h5U30*ZaQZeiM{DE2RiDTSu$`JqA7rns4PZtWxWVZlwsH9?5X33%L9vi$`mrj;{q7H1n)w&>i3h4F5!bW{kT} z=UPy14K^G>;sYpro$0JPE^}!!3tPC3e+ZvKw6bG*6gdu!^_2*Nf!(g=IH`_=`tkFinN_804oBOc?O{k#uSA}&RnK+NF1Rz=iVReK20SvE z8Sv^$Y>$i(g~v|SpnmB8v5RH(<)OQN-ckrPju`jCX#Db&CV)B3Yt%h~hRo1fjijs6 za*beFm+3~yJaexE@PG^@(MucoHaDf0OJ*P9c^#z)-C_isk%~Pw{R#Z!=5FUHn#ybb z=yii!)W>IwccSnU@aEC0DJYMIbN^ zynyVHc%}LS{;>6Z#$2$U7x!fTLZkq4K zTCNgEtc9^EL)0XN#Mv9_qkAIQ`K!R3zdpDfAq_03~&^*Ig8sj%j@I8)m$o6%YF-y{rXy0a9l zv^T#4H(6HX72|;Wd9g^MV8f9-QFXvmLke}YqC!_3s$@r#jzRHeS~R2c`~mR{R5W40 z&AB*tZKc_rlZ;u)2CYhHI`Ww}O1X%Rj!ss_5h(d}->`oiEzDwNq+HfMU zX;;1uaMogPv?+nbZfGR4wAsI%h-@!MZF6T^TRA;F+RKBv(6b%H#^$e-ZA5&0Jl9ZsE_}Jg^LfY3-t)yK*WSAik9~UN zmI(x3###%!a)mD&1B)eQ41>aj(6(^V#J8sq#b`x_2p11geIL| z@cK)Z>`d3m+4qGU?XTXP&Cq;~GP$c9pn-HhTIyHQzkRg7TQe>@!weZ78h|2UWoIK} zq2)zLI!^H9R7_9k2p8#c`B>DmG)luQZ}t_@KkX#tb)Cv?7+YUs|MnJW@TALJateRePz)L6!b)9ieKxdgC}QQ!vX% z&76&nMd=33?*~|Y3R#^LOrQLHM$XtE+*>YS$zm*$48IxF7`>D$4m^AS$5*~^baWI8 zx)U4Em5vo%_Q7rSMv4q{)Ym^we%VKNyS=?l%bD`a)Y1|U0)hOs#BF0qvh@bpg6u`s zYiKaM2j*;O0RB}9f5{r`172YE-uT#wC6#2cs|bpe z=mziDn*E=Wth4QiUC~Wl`r-TBLze2}P{%71QdoBlf-POi)eo<^jJ*E}Dll$^UMA-t z_WT2JvsR-Sp$i=R3^W#aUm##A_3`aFkXXYhLwRuMvttxXdXzuXwl(T&8EVV;p$N_Z zgX*i|wLSzz8e+`rP|NOSS~TiAnaN)c_wEgRp)iF{#(`T+Kd2a2}Wzl z9ng317quv!@5NrASr@nEX z&kg-_J4=$Hcyy_HJAoFjJp`EFs)IPwDwYZSG{cORW% zm7zb&R*iMG4*XZS&#KvLBj ztonQUoaYb&gZ39=emQ=Jz`XJ4m1fKs!Km_-<5H!R(YMFRIVu!~(g`o>QB<;fP)ui*cdyISC@&c^sqP=CUpfJoQ@oAPpc( z%JrJ&4Vj1Ftg~DZVurUiXfs*OyK@ouE6SM~Lvz!VtH7ZJH?vbUZVlRC)%6pb-G(Nh zwMuj*G2eqF0K@V=WtKNLloe)$THj44-nfV@pB+4incRpP#y7r>7*}8OO&!2)mws^v zKb*CEeDD({w5pE$V0fM0NMr2{%p4-fT1JpWwum{lKd!*!p#+eJu=p*v!%D}J7_kTY z{KCRm=Te(5RU!+ta<6%{1T4ET_O;`$v<~%VXdpprKy($a{Z%&m73sl22dB_fT>3}p z`lsvz-(W2A*%QtVN=9+7|EQf!?kYBU&CuniI&Sln&2;hkQO(7IMWL}hb%Y%Ae19lb z{X_Pg+vXr+eblV$sD>_AL% zpDD@sTfTW!pSojZZR$l`5;PcBE{OXm@WaE{xld8?o4spZeY2Wec@`##6}D15YEmit z!AS2(Pn);brJpqfo`U>3;1;hI?9Fa?DXS`_j5*sfu0`ECW822B8DBdzFv21DI~&T*{CU603g-9lb6T)ek))n%qLqq*BuFR)vn1zmYe^47DRzH;(I zLC$Ed4a(#!2|*>l#q&C~vvgk`@JP0B=gvpE7krk(&BJm1u*Ab%T83v^?y~_X_N6hx z;t=ot{HE2&8(=iQ)hKuEV#Iaso!@B^%K9?3>}7YBNU+uc zgpAVa0CgK&mrHU%Bf5(3B^;Q}F0#bqI~C=^%Mz2(YgE)uaB`T#Z_vZM-%WMCRgH}^ ziuWu5$04sUXUJzt_pxhfgc-n98&;N3mP~_Hiw~VaOd5GI{dWO>KP-~qhhc3nwJ?RJ z@ZXfi5)X3MsscHo!n9wzJ5f)}TNCIMSXMe#=$2gETietryt9AE|8zEupAmST{ze;2 zxs=H2j%5F%2UXBw1fp{weBJYRVfF_jgpT}}rw$w{#DR@TM~mT8hMfv~y9=c?yoyYG*o> z*QOg?lnK98j{P~#6Lam!Zd}0q{ZI8EVpxwDpWgE{xlO~l-BJ(R=(P(YZqAGm9kg5o+lPG&ORKeuEkiK z`C#&eZ6W6T)5zT}9b^ylumR}eh?Sa%w{@`+b~HksI8_d0muE+?4QVO_btazU(G} z$bn1^1OwqxC12RZT+~3T*iz=1$*bme;s1E@ygRSI-)doZ4y;7^TAZu#eZp+E5Eh;`6a_S;}hxoY8C;-bw+W_EX_I7~@rPiD}Oq+9Vsp`3NP4A?#4ib>q9 zkLbSI+QdHISB9Bo=J|sct+I~51hQK3WAyzk9Rq_xO;g0=D{Bf3N}I>HEAx&&Q5%Hg z?~4#lx7%I|8J`{WmDQMz7z07!u*77FjqHvSVYd|w#dzQ3Jcj29cmRV&onB@Nxu36H zI`zfZT9(*;!XY*ffSfMY&U6MtJj!GcKPWv+VVrT*Ny(4Na4KDQo{%F7pXGQkmJP-$ zzpTMj=Je>__`#eRv}Z*t(eopVU|LZ|GyDsw7% znMLsRs~Ao=MKn9oNO5gorQ-C9#s(rn3ItcaV+pz{h`#an^NZ86E;dHsLvq1g$iY7V zP7*G@^Cj<{|Ni}T$D{kFvJPlH&uYxDfq3om_HnzRn*ct)OG9WGGN6d~q= zvL#pgYhv8F$zgrv>w^Q$uibBhUf9JO6lJG(oIKv)W`<{nb=hEQfTf#D@)Q)J zVxcfZE-im@!V9&Bw@*O*T-yeB_g3CnpLM#YrOC#Q{V+;x3?$LLs4SFV-F_-qib6bn z?grr+8p{_t|J`^3YsVa~^>QpBenR)rqj)}Gzwgna++94u>4EuFvhBbl>U^I^BRGr< z74lLxgX}WhP!s zL;6LaRDbrwjpzi%d`7TL$(kd%6^!2Bcvw7fLF^VyDy$VZ6 zAe&4b+R0Kc8*4IE8wN&Ohtd6W|MdpN*VlL`>b|W7&X_cRD6?ff7N$f>nqaW?C09#fP7Bz3ju^tQ6Bb7t7QUqzpQC?^N#(fb+q+mXRHhw0lK6}1~0%li$Y!EXnz zZ=r>KwQ;{jdBhWbodfD(Q<-7p!F*@~Tx@N6*EP@B=ssas7Qj0*$yXD+Xwde?hr&jO z-T-ol2$#u5!p1s5W_f-VPGN3M;x4A9fONhOJwFT^Rc|_fW<1>c6xD4rZ!U2SHb18t zT$T%%(b8TKjVLLZ{Q9g?*=}wM{q)IBCO(?8Dcs46JS72XTV)K5+P}J!#M<9R%>nx#4}a<3w4e&%>huD2L)%a_OcfAI z4}!2R#MtvUvpj&b!_O{&J2^1IPh#@k1F%a}J>7woErSZy%7l(LH=i&|`2@4T?LBHrXln*WAvFcMF`1^3GIf zz5ftrtH@ZWDW%2M+1K&VH*nL_?Q8AM0Y2DcyL2tYma>}hp@C%IELU{|i93%>pW3?@Bu<(9${58dBWtJT^B!2n04wYffL5y30Y_KR5>}t{<34*&Fokw<3uh=}lh4^BmgPz4m@%1(cRgz~pQ6cDl~p27gQlo+JkPkx4*zqcZ}#UUhJh zc-cgz{D8(eR}I;%nl2?%zdT}pMwG=~-fOtf&7Hs3-?QJxmD8gb^J9*Tk*ya(LSYD* z+lTPmg_Ywm(UsM?I@n*)`=?nHN7C_E1!pg#fv+xeT_*3H__sg|6p&hR>1~*m{nF}b zVMb#?^{1EuF~9_`~nkuJO1Qb=mgZ45`Ejudsdti_I06Bhi6tBGGy$2Q`eK z82=tx+kCZbr1X4DCb*f~@)lWmyc?01375CfSR?pM+3c#5j;;{EE`qgQoSh0FDdpmAqt33a3Wg38oBw z!@1b*-*}^rv7uzMyFkiBO!;FTka9w09TtKNA;vIU3*tFNf4}56BJ(oAe~U{P1biJq z%QsAv{t0ZgQ|zoU5Ty-kXW6}3e-8KL97d6muXYW^QP0z~$B2GKcV74xtD|wEmsH|e zQy$+NKqtBD`^IkHq3n5IE-Arx9C78|d^T2bs? z=Z<~ejI!n{wtevyf2^~FX4a5ZG#RNf`)DEbV@7U^I~ZsDqH~BJg?k5Hkq_`h&bRYQ zbe2NaiU~WsTE-0LEjn_3Yd&IgdedK$;Iy-^Cy1fEfxJDxSS6HDlLtV|e6Xs#5qI_P zt%{0@>+Pi@)pgy!L|eEuH~>uWWXfGO4&y4o2uqT<5KZkxD0qX>8dunzU1^bH0$4Q{o4o;6{BwO4ycW>E z$OZQ2Z%4-8@NNTsv%&=FHvpPc!Pq4}4Db-qN5b4$c5a(bkY@;}CP%R-nI4c{m2%cAOEHND4_~@!d~LxH!!nJ^d1Zh&?%9@*;v<&e+acwdAdw{u))LV^ zV7#?}%FYqeZj2yy*7Ek#@bkffGBOESqR#8L$j-t3SlSaTXZ>c6E*S87(ibd}eM^YV zHzBQh0ak_r?d&2?N9j_XWdF-92M>?EEkK`k)N79=7jz?~Rh|gb{o3Yf`oG_@Sz51s z7ZrufLFbg_cj6toj4X;L*TDgdwc2D)=E7d?(O27P>%Fs-TG<`*Ep$W=-tbq$Aeg?#<@IG*|W5V7MJNUJPPBPZ8M>122qKLDyIeTQBy*c~t+}->A zyS~4_;NI`o`}ul2AJ510@q8XD8HlnqpFqk^E7qSsyf6{gx1i+iHDiEUQ#C$p`2PKV z7QxxJ5Yb&3WvdQRJlMTaq}}d@=mL+{`pec)8(X|L2|s+aAAgux{e~4~)NmQ=VlRlF z%*^r=Gj6 z`5CXO;QfI3RwnndL(zweDbi^gy6#RrJ}ZJtd9Os^!9}l;JLIvptnAi|V%DI7jah%u zEE(C0#wF@EZ@R=j7Z(?|^E#Jtg}i(3YAL`^lSUo7^Ws60D^XA*)JZsE`&{7^^$n`V z-;yZKw%|wqExddLcZR%sw5k5|{>>t_{3#pRi+&xv$eVB_*^A%J>6}WY{P`)$PA$FZ zeJ(nZL-jRZx%!Ft(`D*+Q&P4aWoiKPeanR53**2zcf^T1r8j~IjM;1{DVG#fe7E}q4uc`U>=r$~vW}~V28DpSg7|;v;6DB7_{ov8_A0r1n#TE&du}QO?5q0c zA_3stRl>6(IeCby2j|e-$LF*IjSDnUe5sNJ0&j2qoXKE(QRxyp+sKx!uU=1(BqQ74 zrd`$#EawB>DLmODDJAOd6IBb*J6`5nQ?TBEYOlb4&8@7~N~W=v$l=&Zi|Lln2p%b? zI&hWi1BqAmh_D1Qg{kITr?jD5^unn7+nPDtg|K|xfS7>@y#@;>OzQd#OU);dYy0#E zE<_uP#mCSI5^#_J{nwPUw6vVy1}8tis_jRZcy%w_xaf_GQyJ(=6E_hr@+`OU=a_F~ zjXMm^6l_c&w({2ufIGi(71YRy~bCuNzQ2&sEQ+Noc)dOqw5c_-^td)u>U?xU59nx#uY{`!9Ld zORYtSvc0Qp0p#Ynujtpx(Mw;yp=4-$1vSYDVul9_&AF(q0O=p33~`JI6n%H*N@lF2 zcQi#y*w6djYJRgpo%h1sJ^-u50Z&D-JkE`&78n@2nq%hW_NQN0o(^;W=&nEe@Dsyn z7@$yAKV)+dCz~sktFZjv#+7`J+JrpPfZ<9OZ)%uhpa*e^x#T3L!6+hS+O)Cu2KEF% zK=16I>1GK$30E~SU;1Qk6!SlNh>gqTAyFHW&BdCPG$%Mrdm8??OoA}>`zvS68F>VO zGVuBHTnkNAx>kjSt5je4S~FYSxV9WIJ6m49U%-`g=*{;)HTJ>8?xiH5PVqVgq)rDO zeK`v8aO0lk#)4uOx}(3R2gT+7RmAVcD8BB2<3;o zrR-}#R?umd7~hSgeSbmoS0Y6AIqJ0OKF7%pP{cp--LLqpw;yFA*I#_T5#r1rzUiZ^wL?B??SOo!Icb} zahiJACURIR#SdECk%Pgk0=HU+3e-ntW^5)YgaR-Bme+K2bo?WB zM-dpfJl7P=3MC%IB%asUHGAZSS%Jmbta;);+4>pJDOgBXq$zrw5*r%$--sTyYO&+*Y6-JfJ05MpE5C>1m<2 zBNTzbC$9u2864$zCs0#o?xuQP79I@>jt*Vo~t~?Nlzni z42dA;Y?lTm3=AzQ#mIHVkJx(<2};THHup%XibaTARk;vbX^2J} z!q5hCkJ>j~^A`yc$nLhOx{fV}l6tS6IQ$oxON-W7)-+;WcD=3m9$@gJB=eHIIJs%B z!HB-~xHmj;`P^8Uo=VA+WAY;$aU~SX$-g4DhI7*GpDO_;SEs>_Bf&ZdAD7u5Bn!D8 zX!zOT)4}tH=0#|SM6o-C*CD9M&yV`A(+dY)o@Qz-Yn#f${q8{&0C3$UY?E&1Fc=Lf8S_Qz7DrI6D{+nmmO z2Wr5E@jSZMdKd>^>o+7j--WT8wB*scju&V8*Q>>91bITY3GfTNBv$QIFkXxN5CUJF z--&3#dS_%4Ji)#TufH+3ZWhpnRSv=nvt$W0l8l|kkbXL^BeJ?y0C-)kjwogw1CW6t z;MkXHjEf!3Coi?jcy%&d@ZXVAUqRuHjcl&JE`o{DC1rkx~ z=$HNHukXvW&x##EL0-kiPcKuW=k*?KmQWWyNP)ZjrN`rN((1=h)%eHY6HY;NqynD# zHsy;+PDxzHIJ60nD0&XEBrL3Dg|_lict-Ixx`t;AM((ZM&ZW)!pqVnKdO^R#&VYN^ zlh#Qpa-NKy0pm4QE>LNL(sv>M)hD89&7S`)b_NUHQ5ms6-R5$pa&RHl9X};@8?PX0 zo;Taow9YB|Qw8spA#eN*gxS2jdH!uG;R3`c-0I_8)@d|3(wY}pqRc5QWA2(e7zvex zGM@SV#*9~5atV&VIV&w;k?s_aVUPm*dI zzpkT7Z&%|3+R|lLSk;d<$fHu1Bch1~$&xI$59-cm{8%+;%7DsKDC=jEk3Jcgw;8nk zpE11TwZ2qzm2=<07BQlsK$*-y8aB5dCwo0sdpX7qO^XGeogAAyOaUij^z%bl$#Z;h zxHjdKYM*yTp5r(fUS`M60QWa%vSsC>AF#0a;M%9ea=p)UnE8HR@j^Ua-US=d7A~`4 z_CDDMsl3X*$LoXA zqrj0jhY49UzO#Hnr#D9K^}g$ikly*^r8!{T^^zyr+Z!lbyOh(5N%a_q66@SrXn*VAwQ8uxR?XMsGAqS@9FcnU&?WJ_o>#uO8 zdj5sYM5^r93M3LYy4Q?<)d5yIAi3y8+`cISFLgNV-6$u%)JP?%?Dh!qf`zh#yJnOB zECZ+U!IBGd4{0kdD}{(e3{acRrOkrt%GEq%Az`k=Q*wc*_r(}pO4UcIHD5%p&czLGOXWex zC^SLt*($TBQGH)_PR5YM5J89pg(RlmJ0g&_N*);b=#DdL!6HU{kHSS)QA=evV}-w! zBCX9Qxyz>Fl;8?GQ1MLgSA4@TO3Ae@nY=J?94~y{Ocm3nJUALaUb1;$$p$ zR$AoWVemR;bH((jK~jj^rlr_XI~ zUSM=0g>Wt8av9K#xDs~inF#p&d=82&{pkh@nEZjJe7djPx12f1igGQ_LDwC+NQF*U z^E<4OA!KbY(?grA_bUEA798 zcMoI!^Hf7_$!G_G&|E>KfzY;_heNVE31*W@ch>EPbozC}?XYA!~m2mOnF zV@m^>-eJ02alHgEwYLP-jv9LZ8QNIfaNLCwU)d#u-cpN>rk@IMtbhulXNY=}2LV30?VqH-K@F?U(OyGT8f0Bs`3f60~>LTzTDXp_! z`2Hdlwb$D_Y#SD7Y*djH)bD_Prk%q>ioaDI@wfEJ`Z?zE_*LccnW?g?$M>i z6qa*$p^rmQj1Q0V0HFu$nUic7p&q2S5m-UY=+7?x$)VFQ&>X|#x6R9u2AcFGOFX7`}4g z;H*`)F1Qd*pQyb-F5%uR!*%B*oS0=5AjNL{C%}9~lA}$%_9Gy_@Q$BLd(i#lj*CeW zZ0poowIeE2UhedtH>6@OK{@!}#bI$7gH^E|JJ?@7@+z~i<)4C9KvI7O?umZXBcSj~ zFy?L+t=JKQ`{d3AQe?e-=EVz`NpV(QP3UKgjNBVJ^{Dm(4o(5PIEBM;)XIzGpO;B+sg2rv zsm%PB_qhlyUVDcPHf>n zMMn5<^Q^Jduk>$&Y{|@^&EXqMBjW`5@kqbj&iK zNO6}$zK8XEu-T}r!Bnyb)^I7zO}Y9I)TlnhVp|LoN9JCb34_>->0tJYC`j`KOVCe- z$dNQ|zk>KBRX#YH)xH|AO1m!FbuHKU6 zRz9_K{YMRc)>@yk?XWI=e-dwSrxX)<=16x6r;1c=sAiSvt!?mRg!qh0cl@!W{}Cu0 zj{R_%cmZ$nhs}FS(;u|K^XJRoi*)~;@~3z^Nv4BnR~sNXa7&pV?7s;-dz*C6-GNx? zPLv_HzIfm;ZX&m8&MFb+zfZpTT>p}??g43xX7&V&SvzURge7gA%qOHCnhHcvjnv=! zw2f6`f1bd>LjQ-?i)z6zRhqX#zOILLL3@3&p(piBL{@pc{S-CN?EzK3kIyIaD(`oGNFXDuGCL;V(*kxb^mfKEW|c4g8qHM`m3Xs_ z>zyh)NbsZ1utr(ivv03*FTy_-Yu`)eCDpWE&h3H5c%e-`*1Sv__=7A`IpZ8!mCJB3 z2;?T2{o%{sa#)oGt@x5(aISrO-IOL&f6PXn|K!~$7087=dhj2W!XfjPI{HcgNoKXP zSc(NoDZ0ISY`c8X?u0q35X!zHAKgyY5R(s4rs>5?xTaUnvBFti!zRgA_UE#ahk2-1 zj^bSi%qOlg5`Rn0YWVv%70}>QBfndiS5%EoY$(|EH5&H=8!Y&6C}1-Q=KRlU(I3YT z8m6Mx{M?@s(9=OPH} zCYGjW;+I4?1&MAfYliP@>3z;qPQJj?PTZi3?79-B;gR=6lcwv#>wSvfnt#6m1oW_C zuLNvRuD9R?CFjm**E40+ zFwrCM@}E129~hOc$GNzg^E4*RjZ5++zQ@mXuw1K`Euw|Sv?+Ifw2|K5dEV zS!jOMzLHnJg+d2uB1mxP|ECu9mi4R^bc^xo?wWw?6&kYMlP)JjGYa-Kud1r%rp9n((OQmHvsV#+B>p1}RFct`_+$csutS zz(|^a=(53>Z^JS`6G7L9Op0j>g`X$Db(gv}*qcqK7Jtb`^6#*AXQY)I!)Ob>Pfu#l zcU!-Uo2kC~aNly(1^VT5u%;E)0TkLCqvo4qf9H>mb>Hk*Sut|hAk6GyWyxIf9m8-V z@`&T#gGU9!^$3_=Jlg&)$R2@Iyqf8>d+?&OlY+kC`-AFhbqj(wncz=ljGzjsectXU z0g-SFJ7YCs@(&J~q;UHcanI+5L}tLxQYHo$wGiv0cY45c_S`14<36t*aLLn$c*$%R z8MT{z!4cQdixv?b8Za#QW|E*DVUUT4zPx$KGyDM?o|lF3ULfA z1%wo35IuPyn0I;x&X2eJ?_cI7@2U-Btlx+0-D4thHdHQ5EjYdhmI!H4O_^iAzISM*G+u( zGLHBsz1qA&;@GmQx98?};g;hJ;_d3ljOAr%y}zm;gZj4X`1@E}+*mb5MQ*lcH zuY$ZD$tO8A&kc~ec|^})cjy|;kKb&XfSjiBiay0g zUas0hS!Lf#HnK-B_d$3sMg|?=!i;Zur1wbZ?+=d5^$XXiGA_A;FPbJF2*XS2zShzy z@q_sC^o-_H{v_5fRwBp!%2bvlP6FP?zcZk9ml2Us`>!-Pq+)4~UC~=he*|pO?0?JsoGb2T_Xw2t#y_Dx05HIbob|W_Djl z{M25q^-&PhN0z{MQDub>f83&S@_cX|ey!em(ReQIcpa5_c~K|48=K6(N0rUx61;TX zv?I5iexReTj3g747Y8Lleo2Vv!y-&+eEXP|9mjDDl&CF zX%QDTl0nWRn5mst)489Ee&D{xk zxXN&LO7k@aVS%>1x2P92XWA)fTAKJH4s3=R+!7_vch|3I7#b}v36L3sp`6eIKW~U%K%|Mqk^sx)^Id|G?9JqKfTbI=yy&{ zXKTTkzmEj2N|VC77dOI$xRJVW$UX2u9_bi*f2)6k&9|IXWVnu|+n@CLVklQz^7%#X zwYQh&+{Au9QR3Qv_N5JdRaGJ7KlL5ohRN)|4vR0kQHq<7G~m)iD-(cz_CBvskHI7+ zWkE}h@G<`h91#BcT{j#08sr=pM%>{hpIO_EChd9=`q3~2Bo3YgwwV3i7?;~khH7sA zW&Kh1vMP&o_%5i_@;!KQH;>5xKf5DcSHorw!RxZFUp&wJBK%&MI5UqJH zKRV|d;oRMhHhAcDBO;{eBpw^p(kjYHF1{o3dYMs7Z%E+57q}m#xODo&V3yXFleBHZ zEIa)}f+Q(?MPf$Y?RK#^_=CbE+ulVt7`aw??gG-tL8fQSa*0N>i|j?z4yzlut9M+Q zUKu%f-&x+c3Wkh_;VmY#oJ4kU&W221uQh4Hz7m@PECRDx~_7D{-uYyoFg(b!Pch zC8YH=MAK$VuP6^Ss#@pb^P&;pf<#aLR^Le)SYmk#1XMfGn}_T$sX;0>>UQ@kG-K~D zV~k7^`22p0!ku?HF5>BcshtSNh9&=bpX8kgu{Thk=v8papJtF65!4cF~KANK-nz?hkj121v9$m}&rV#3y>hosXvzoJD19#%a;+Jbe z<>G+Pm4|tjv%+H0=$=Fn$&k)me5!MehyP>qxR!82V9QA!A z9W%Kzsa-sV>x}q`54RGwp>|+bEu9VBSdgIq50M?Z5Zx@x0Af~gu5J^^5|Yd1aZWNU zg>V_qgJ#PO=+^#@vr8t3ot+x&JtOMm` zD3p=^vt!>VXAshoN1m_jn^cCa|L*cM<#&rg z;2E4SaAr)eckywY1^m4^r35ub6LSvgrRi=aMMmARA|ne$n`uB%J-nYI_4hr@nS9uqXnOF8;rdI%H!d1@u(bIbwc35vt0L1&1Ce4B z5E)1{HST%VV(O2;)_o18PbCC>cL;S{A+($nJjLa3SKiB@Sn$WbaZ$P_&0%H!@V(alg3r<|oJRC1-v4Th>I?nn z&@bm)iolL2mAmhK2g=A5mWU*USvXZA7BvdbJP$O^^!N?_riSFi5>2;L>IazZdVyLj z!XvF73m#G4(5)A>+u7wkaOsY0KHaRb?E5VDkS9W0bt~Iwahv84De@7G@Y-=1s+zi!85bVIZ&(uvci*p7hS9WVE!{VP1c0$#6Ow@_6+^^u#a! z9z-sbB|`Ghs1$leWWn=}lev;g%VK#*6cJASb7GouL}cjU5V1B zTjt}bUQ$%;y*UzQy?+|M>e{t9l+Lf>Cp=H#xyW8!s8AJbml$;c5mSmCU&Cg=3ggtz zx7uze6vRJ2zh$w3j-OXDn+c1MEZTdSi?WB7V&1n>L%KOc;VvK_j*!duz$|I5#%a$QR299KE|~+} z|M4J;R7W%&Lr7+WEf@=}`+P-4Cl^FU-~tQdBGfV*N=*yFtpzU_G)I*q%KAW$>2H)3 zQ=fjZ1fgt1&*L+40z%*L(v>jwoDMwuwV#{(^g51^Hs8T?|E{ndc8Hgd5dN;> zZnK0^rAT|wPJ#MpkJJ|emA#D^bxD;lsl z2A?Uq;Gy4-*CG+1|0uNG0a_Rq%sVt1uv!=)7PVecs46x1H^+Wm)~8|{Z@HeM2c2lT zzDCfP~~hH0POo{{km{tmK;i}FWa#am(!wMd%Jb5k*t za^$rruZ`udz#J2uMg;M8zVVu`V5h*!n&La-IO|#bl)kfheB+l0u}64H7YL(E%UHfEVdRTz(jmjIu(ae;v!%2k1uB z7+PTC^kNzJrXm)8ZXdHqG!!nV&o{itWL_FLj1P2-Y_xHZv z`jC5&A=s5&NNhXHTrnBcKVvDucbR6_J+h;pK{WDuiwPBGJisznMEDc30cNBUpR9gyk3Xe~3)Zr>~wOgu<7+oiPKSQ{%Tu0Z7EE zYz-5E6!FZ+^!)Dg&tQCFRpAYZ&4sP4?n_=(e1$KuLy)r-Vh$!q_zy2EE$H zGf!oo)OJ*bZM{D2K9?2o+q>(rAfy!dghkNf7(t(CS;<&tZzT7o<;>Ap?u|*=l8J`i zS5;W^OK(r*>P+R#EJz7{T~Ju{FuMA{Uj?C_{kA6s+Rt{4 zRQ#!#P<>b6uWyOmOq?5UL}Q8y0A@TdpCtLnU$&b1k~7F^L~@-R9T=Kmk43}`N(D*p zSQ)xh5fP&V@bt2%<>$y)>F)CDbN5LnAx7#)C`?B|=qr0?>8tZ^b9EJVd^~i2?=V|n zK<@WwKtz;)>hMsld{rloGUO2ZCB8vnJD#F_NnYY!8#hTKT8V)&E6bZZDw5}|7p3j= zF<5-7Lr~;7a82}Hf57)(<)Oc@irq`GZ-9Lx8}zHdBBqX5)m~zb=rQ7FI#K(@V7XvU z-P>N69Ppu+wK57?Mf9UB8gk*H?Y>BcZvjbWU_R20z$?9V_x)dcRyzwB`@^^OeQPi- zytow}`JPdW(@Z<6Kto?FBJwAjtN$wP(HqvxCKBdAG?_{Mks6y>?#WJc)H^$ekD2CJ z?uV{5SHjoARU;(1k9lpcnQAz)AS{P`M&L`kR%;!tNt*Q_r9U=;#peYhh0;cLaVml2 zec_qZLj&hrzBgFa>rjLWoWsNi;FEfGtta4*g$auz$!Ph32L6E(Y2Nrd`EMN|wM|-p zLXSqX$STMkojXEKOFq=d+@^}}r)%S&DET{$GyHq8#c~|CY6OJ|@aNK~6jY|uhxJM3 zE@=Gxg9e|S%qB3Uo_Am7c|H3LLxw{?D0D_WRtF0?`c&uZO0L#^v%=)J?0t?O317ca z8pr0jqm`e1@d|o1w_iVBEn&4NqTs0_QMJNf^>ehrXnB0L5hDD9sW;!x9VTBFM0)|R zC0CTa#6WBZqL`{ABHp2Nqjmd2`fBAx(S$FbtPQk#Nw43D4Kw(My(ik7Vg1R_)kjpA zRXe_P^uQVZ?WKU2AZc-R-Vx z2;XC;dSmlKC)=L-O9s6}4%f|u;m@fN9!nk%Pi)!;lm2_Ozaj0#pcjI{=XSGGr?kyJ zwtBP8XKRTbf}7dC6JU5kVuuuDx(Y@;uQhFOeeIB3W=;#}4;V%S-*qPKFC_bCVGUK_ z6??L6aq?%}O{v5^*p&>SPdb@`&;Q%3g$Ca=0P=B&Siduc3I+0&y4AXi2m=QIRr;S` zxw^!uDQkzoPspcWGr%r4x*&ePS;jv_Q0u8Vx1X)bjZ#XAhkJD0y30V zS}=Ym*>868S^QP()WealoRXu~sLaWsn87{$)H%(?c+_DkCbikCzru!|N4}ZQ`j!(0 zb(_8&+l})6RElgv_KS&Dd?}^(6f3mWK zf2b}?$ORW}=HnT9iO5L8ZsA+(wE`mk=*{M(Vgd=yszD^Xi5Jbt^yV%v@qYO_)H@=V zRGtLrObfdDOn<-`Wp}n(G)Z5RNP;!)zv6P!cLn98-UB0)c!d;8$&DNr>e*cH;|pci0NzxbNueMh5Q^ zmdSksV56u3a<)NLN?M4+Rn~pARhL#E;BP+EFcUi>4|P3An_e6zeIHAZQ3a?P+3oFpEB?I*Q%eIU@PfmZRI@1x zt1i{f2Hs?mvY`*uzt!;VT3kzbsy|c|b@2SMRSCguBIk<1&BSD(2=3q57M#C&;Gie^oZ-LaHfTEs%A>t_k|E- z;@T@I)o1;O7=L0iUy49VXH8o%S#e7fXDowWC0UYca0D+2hl1CT#a-tgf33s21Rhu( zdr@>&Ykwv93_mohZ7K|!eUk$1@s`O(Mm92=zd`cgX2*n~FcR%hXE=_DV=akz&?UJ= zFxq?#Eg-$a^ByUye3zqW9ihIvPgg_-Q6)A&sp{^U8q9tfGZfEhTAHAN+-Sbpol9vH z9m#%^m4&%QPapX8e_Bjc2=@Y8qFv5{pDw2>yK>vq588Z}Sc0GzgQ4ur0T zP;2b@*!yn&yT1uqkb^=#l4MuJE~=qW^Ealt3es6+K^j}^gy)ZeTh^*bD|LV+tnPm7 z*i62lz!F#w6UF7gD;Am=jrpRZ@s+A0B7RcJz3wuTr2e~%=c7-h9Qq%> zHx@HcUSRoNi!K}@{zBJS6F+QNtR-q5!C*T3GvO+xEwR`Wquv?i4nuAC@~FbIjaI?6 zaL_i5Ah+r>Z2#}mQaZyc3E=G$#zg=l`+TK|;K2GMZeE!)GuOnJcZ1UlULroDwPpRP zecm=fHla>FZm#pmYPmqA(sf)FHQRy_vvn;)VzFo6`P9BD(<92LkXZwUkiYE&W=vBd zuIuBAqQok;&f%KHS#0qA=$!T>vNT_LPKHztF!L|&zw3Vt$ZGfRRIb%7q!!R7ao~!e zoc*+xUuM5$WCgu<4w|YKw)PNs6otsw>3c?oi;~s*mpOr@A>-m0oF3a zl6!{1jo6G2SS#qh2{7q?Rs0|}0Qw5+bV*@{N-y4~Zf zF@L@mSyT(;h=EEk01c&#OR9LfHlw592QHcXB)6K5uCUe7oMDf>YGte zZGe`Afdj&KZTKuF99|FkNkGb~cM@nFu!SSF$hZ6q6jlCVjaI5VR*qMQEU}_nuJudw zORn85Z1N!A5RM;bbYye2li^+>+^1K?jQtBRK!tD3L2Wy6%x(4eprE?vqfLD`P}`YP z#U)t#y_Zbc%t^Dm&lqo*wB^ESeV$*iyDsuA?Gs@{(ei_{pKxV#whl-mdagHKA0L{^ z&8PS}T(;PnNU1b~afP+cUpzwXdC+y)G7}DiU43}>+sQTHd|Uw5k(z1cJh&`H;g0E9 zKu`MHmaC*XM*ALeO#i!5abv?(@O-MTXQX>qQbW*k>{J`s0gs(5n){@cE7SCcD!-%o zLuB7(UZO7Nn*00-?GF&BR-fqzsXA z+3g>^3;49rR zRfp}LD;z7UlLL?SU*MVHHrSJ9fSW%=uFsTA%<#X>R8?c6STZNxJ^i$&KU6Lc{;+Y{ zhsW-&pgVFyKlValZ^d>z7k4IG$HP@-ccvXNssh?$r>xnM7RJru7qxN+oJ4mJxTW}upF?8n9mLa7)F(E>m2PWSq-YD>_MzG z?)M^A$<;1A$cWWzvWL%<#+cX0pVkdEt!s?S`UW#M_oRyz;7#ujoJ2 zq-aU!J6{2y55O}MDo6g;Bt$c1Qy9eWLaXj;px>tYqZ8_LX!BQF_NQf%HhyRLaHo9| zPuj~2I@$k3guw@kYoapwamT~j;uF=@G>(INUu{iwa!i=;cn^p-ZEiPWYvUI-^Ko!l z`>yh^Rn&yk&#>8P4z0CwJ_Fh3fcWw?{t@Otz38uKQ>~$A9+#jDv4Nn*c?7bG=UZQG z{j0eSv_ZzH81Waw74U~Y%=4{-HQb($j~hA2XF8s&=ec*m)+73cW@0ax}%sUSTGS9JKcDQzz0a zMR6fiA>4(uun@Yr{NUkO3eL9hu}lM<>+=hEiH4;)fQu;hqJY~sD_G+-k^TD{G`i=| z9T)tDT$C2Z3dv4k)KJV2?;y1g!$Q%Nx={->)kDY$iV+weYh!KKs~N|5>UzJ$-a8>cr^-v7&FkOW{F#OP*X6(>hn!VZLYhYDX|PdeI=5AQ%K z+Q;O`G;;FEd!4hT?$`4Rs%%FO4)}4F=^5FJuVkXh3e9`Zig!A>TZS%$2=0!B4s=`d zasOYd8*Vu=6wEM%CXn(ft!$#Nz=}{zq+Anr22)-om_WLZMCwr;FL^~ZG}61CRgQ-G z3L3NznIs)Wr$$$@DukaAD)+H*e7maLWGeMqjzV)Kh8s!%`G>VM3Br^9lxObynb`Q; zP(`z*&7`X9_Cf55dRNh)hKlL*v>`68l@9BLkD|F5Z&-Ruo-N@qk#He*%vZLVhYBdIV}f z^UU|SHt$N5cn_+`rcJBDvE%WRn?{Gg_IKeQRB>g8q>~4&` zqxl}v64HHpq$Z~Mz1{Ew&xk5?P0GullO)*Z9z@Nx7#5Fn)7#M!Hb^K)%v&}njcOKS zCsCecLF?e;WZq3H4sm|APuGH!V-A&d{(G4g$|aYC#8xo;7j(0+k9aC!F)JLF@YjHhE3 zX$NE?qN@^>m}7zoPB4eOo>lpsFn1`Py_YV>y>l z6~T8_l5pp9XZU5e;qw=cHqO9MbNUiWV}dbhEoy`z5j1j(L!#qhJ7)g!autHckl|?| znQt_$Mv5^ zfZ1#`(E;Y%j-R>FdylmO3#RTE`8WL#ZR=L~oifx@A|E!oF-0J?$jiU3hH}{ACbdw= z#Z?K^BIcRYrJh>}q^=g7uZoq{Lj9_|-y@)8SL&9LGBRxV4JdxBtP(`NiHzC*80qiPOxn5wT1!I)-vGAqB zIb>6FlzlmK#|Ozf%d2W@eTu(<<5yTtrG%?{`K$Vdil0b;QmOCdkRN|B8=hNnHsEVv zc!CD_%a6LcI;%mz(BDH=feZLv_Eq|}iG`+3h1toUo!NH~Sz+PnF5&Zcm z+&B#xU3li|9`709(oGJjc5+CuxB#wZS0VPSO`l+x?{}TY2+~i#)uel{#e()yzZU*H zbRlYKIis!&Z(G;GmDCr|+VpLY4_J_MNd0vwr6NIp_N~e1G|z^E%J-{NZ)Z>-oCpaqoTH`@GNl z)VIA>VsSl&8$BI`-+T!N7OKsV3fh|Ato|gYFq8|C!z01Kk1i^ zK$upTJ9%YTaF4lRu~(J~Pg}w+JDc|i5(EYRQ=lY$z(|S<9RPD^KYjkIwfDF>YV(21 zs1={xo%z;3F-3EC)j6IEDx_=QHgY+VFBQ4NS*MJ%9zk&F^M1X3yYJ}MEV7^CTd)2a z#K)^pN;YYgQ%-`gFoc&K})VYTd9RG8e zubuoDkTYVA5}W(O|KPO|RDOT+h|2CPHu|rygl}A~SRNYSlbX?fe`f{scrO<;F5vc$ zDc-K`T1(6IYkvaTAW!)U?t($c%vsCNtY;qh_wZ9$QtVp$iKlc|Z0u8X(a6u?rSn0T z=HIu7Gcm={(=3>Siecdwu0A*wKbi`lIr$%}n=;2}E;)mWgPhF^FMrN7KRwQ2Ox?J; zTNd!`bFDyopJfx9#lc~0N3`bVEKfWX3hK@uCk0I+PY7AZ@`h-Kp=y|8fq&5CFe|mu z!(;%9Xb?Cd3@mO%XK@Wl?iys0*vXXK0CRU||I0K+*TaZyes&s+O*#FPZly`C-1(d~ zc}#Me*g)6w`fiL6h&DnHyc$5B`{gtcm8&p(BOXbQ5+A>NCwE5BVQ87yh9$@CLYw}f zik+fN6^KBPDe(78uL8_E zj)U*=rPK#Gm8sBmV{5=iK z`O)jY3kSk|9R|)aoP6e!ue&(+A-)ZhVJE~P7&=Pt{3k&E%ZDt$gc{y%c$uch*YCO? zJRaTSlOZUJ85!g&UI}KlYjvBP8;$$fjgltf89`1`-Mze#QTlT|)rHB6RcRz@tnf+E}qgQ@d44_j#%AGy2$5VKk zmWL0}Q#e}158Z!o`1#O`j0Buezotc(OE2p9K^r5~IfHS3#MhyqfEmwf#5be~ zxlRtx8#@)foj18JN(TNuwGAKf3v5jF`gjVKn>WFFj4bMqG@0*H3bB697Qp}2|Fg_V zAT7bc=ugi8xHb?Sd~oBDfUm^i9%|24O6wn3yJ2hWTGcC-_&L3wjf@t)qE6*^`c=Pu ze!qS(GO${d5+Mu(Xq7X|O#$CK-`T-5gUe@!lMwRIoNXkyM^r-LOkNh-$ogMwizkUk zH_D`IO7UBfjVYpi`!;9s4{CUMDII{KH ze?4ZI%v?wowg7OWo;rqJQp8bYy~X|1bZwuG{M-iJiV&U}Tay|SF4Z1|EiDGYZomFH zFFo<-Va#v6U%jm#-B*8bL0iQJteaxOF@hGWE6&FA=tS{f~fe z|1qSbdL&t+PW&aI#a^0rc_H_9nXm(QdxAMm=x>+pc-mW3P01ic3Rrw=pLxNCE&#l; zxn4FXL0!)X!F{cIR3QOg>`cJ2uj_#NsJzd8sMUBzP7aP6v_#Bhi>(wRC$5Ya(M#PW z>^IrABI7@3jGB!JiJyCQWU0tuNlCDi6&NQUc!Bgc4~UhJxFaTAz9`-qr4S=gS|ej_ z35Pd@iDP~h3ptM;Omc$0hX8yP@uZAw;;XcsFnBXviZL^<#JqdPs&iI754*PLC^0FeyRYDUu@ZJ zza_<_ERkU{FveI1CB8is3zoJ7QRIppx&5~E z50ep{o?21ceU`scy$jnC3UhuRBH9?XNL(W%3fyQc8PT!1J#mTG8XIBO%AX@m%ZwPj^9RK-u%twq?C$&*i+ouI04hqOBkemg0b;wxof!%0{cmSj|JGj180(2K zBONm?uZqyM*r=UP{&U&5OB2F(-!I~Ap((CwciR$^n51?qBFppc;-H(9@;!k67DDP0 z?4i~RN1fq$XVH`qG?>vDhA z{7kt0@3V5fJg&T=f3JlalqlDSf}XDZ{os5hKXmbnkD-#gx>uX2$?}rVj4e}v4kjagP!5NrSQJa&U?Z%XLIeL z7&Vo)LqiuSQ1N_X^Bqu8K6}>YJ1$h=`?HsldRHr6-*Nac{T)eRsb`@7O|pC@O0sEt z&j-{hRJ;D z#V|`p4@|Wb3(I`@Z$PuMT-G~`a|SjXI63bo`{n@MX!O4q-qN|7^=P6S?gn+#N zYR|$T%f2aqyKJx+)5>m%qt%*Z2+xgH(+hTuTY8=19*AmD~$K#eCvlP#o@@u{YE; z$lklY=RAmmz!o=RN9c)vZzd&_vJp9;e|5nDtq;xejKAuFUyay-69% z&l~$RfXzWKPEHLNJHpI?+2`xjIs%RO2a6}#bis$=GhY5StLdLowA9#AN}&gzZ39Er zqjcQQoPO=&MjpU;M*`ZI{@))+!7}cvE+Cu`zJZUlP;p{4uOlBosxG>7&Yt-NS_r~=@61OXG%vV49K63deLC7i53^vhw5)1QOD+QyY(UeE- z}i3Z(kT zXh$`N;E0!l*g4y|K*;)G=bDv1KzoA7Ek_BnlDSe&*bFXh_;%-*BfXE+i*^cPK*P4| z?-a{pp<``$kR_|Bo9DEd2FJT*&?{IE6p>k0XwOs*xLOsDI(M=Ov6Miee6k=qJIq-7 z!$T)9Wd9wXmv0Xmy7=ym{c3~P0u#vkZ0i%Y>}5RHUgrk@hq|@VaN~Z#C4qOOvXFs< zWWIq(esa>onqO_g-1z%XFJ@>s0DhQHzjgm!H)o3xMwnh{_8kk5{EyV#aQq8 zVVix1v=EI9&Xa78Q>98ty)$cgcyqA*Sx*g_`ZTu{Hhl&xiezy1e{r#p-)l3eP!{iH z1alu?TwVzq$iRX3qn^YOZ?h|17oGR^Q&gBpu{9`g^t@ojhq++K&Nr&&_^8&$Fi=_Q z9_3M9J^T8{U5^{S)*55V?oX6byxp0_A8JSu?&x;3W$J-+?n_ITS0*pAllVOp$GWw5 z$u7{U?M8oZg0}Ss#OKrJSx&Jq4MnL6`vaLh`l1-xqBdeJqd;x%Meh5AqihtBxMt_; z3&3B+>?+VX&xz{+P)zk^2^LuV4uRWBj`6tr4}_1RJx}yN%CFl*!H1*nx+SI-{_yD& zvz2*}3@nerWTbZZ5`Agsd-G%tdMA~ATMq=;cA!vYvw2@az}rP_bm@p|6q)F&%&3h>}&ZJ!@YGF7hK>_6z| z1&uNOh}ePItwLAsm%hslRGny5f$ZQpCNK=%XW*)EVv3p5OFx#K63W4rsVj1bs~Oja_<+jf1}%vY3Fwe@`pTd&skA z%$^M<#3IA1q|YnwK8(cRaxb107o=2dw_56)n@^IYEihbslEZtn^F^c(M88&Ha=KMQCIvM8${9Wh8yE_>5DNQbDf>U4zyz^jG z79XPEaK%ct`4l|WjpVUm5xLLWFXop^#&-?i-QHVO`k@T`@oL;V{!+MwcDu`@HSYwh zxk&giF{4#$OX*bkF=WBZ3wmNY5S(VNhi>%K{9WJN9_rZhca140KAM|5}4a5``lM=5{y-GIs5^b_FtC z^q^N3_g7zE-@`Am6O>>Bz7ZQeehLgQ$9Z0JL{9o5GhjH1!TIJoqrG9I{hNtD+lCtN zcCUVw^pp>rY&Z@SF!fS@xkPI{NPsL%w%gpU4>3s?0j(~4IjYor$j>TbEpPWpczQ=u92}?oOn$+x!64GgSGnJAABf1>5S%;xmfT8&W^yDwE^s^f$d|a#;L`Dh zi?mW6v6Wchh25>^BAs<&GPXk6X73A>Y_)#g@BL2sYpcHlvHn*SNVX?ns@haTkLcQ8 z()_f*eR>bY%e~-gN4>a6#Oebh`Fn3k!T zY3g_x*p1r}@SLx0y~sukA8V{?20p5RDek}*deHWt&b%6(W~I08YO-)h)3oSIE0~Xd z(|A5b;fNu0;|JVicE=r5*K=ej>d=FwMwv3XmtEJ~l;0h7h53P$A>0k9Dz1 zVsP%O?)Fna!)1=v{l>|x@gnu!lel;w@xiUdBqt)t1UUXD(_N?iJA-4hP^m$^^tebS0Stt)dP+{TmN?2^&Crd-Ds0&*dEW^TAy33#x7x= zV-Ypp6nTN8wX(n15Is1Sntc>{P~MLG9>ECBUBNumDHoirexSAS_k{a@Kc*ADKN(Q5 z`vi{BS8UHdQJ_vXp8$ z>4x93rPtgEDKlf1IDJrVP2GQ8sNJglMrhdV>fY9A9 zDo!W(;B)s6(RTCM(1B!hWu@?5+Hr({%x8$r?N4Hqm}vx^u-4ATfU@`&e8TFBfq*|j#-E0ZkJ}ZGA8goB!Ur5 zs%oWXj(cPR`MdU29OrYQDxu)Latoqd8N4+!?AY$a+Sfk$*|e;!&Lwb41`PGB|Hfbe zIko?jqD?%8m#Sxj(Ay<>0=mF;|ld^!LCGs@q)iNRjwH8Alwq%dF;dPBTon%K_h>4So$*R-$&wwz z?n^4ag!@}_h3<=_Cp(J#q4p$JXdpzLG<#5&XzRVaf-2L5j>>sTeY=ydsnDmptu7c1 zT`*d}3GCIJ`3U@*2*V9OZ!pVuw~W6vq1F-mR4@$1a7LoO5t- zmRs~XE|VQrjgVyaJNEmb9kH`R3sI7T!;h8IMc1y1MixoX8OH%%M|WevpM)rNu}e`+ znx`93V3X|mk%v?Jrp zo+}e=69=ByCwvz~jz)*O@*pA^I7Ox~YUp~?8h&HKxyTw70mmE+xoOm(aqdJdW>cbO zhV8cZsZvBeY9mq7JSyXY)yR)8I>D=!^OytJ_82lB$=@~&T;GDxM=t0C-}4Kzj+wNB z>{#UBZVR9C?U_IjM_p8Xwwm$~q2N0uVzI?d6=~NkO_!c%TYmlJZ>Jkpxu2@1&xG)& zN!BvM&Ao+X*VQ*bt6JxDLbAo`C3gvbA7aQo^N6~0zo)Z-VPo3pCiXqwo(c+q@;pyu zZ0&i9j?%FoGJPimqn}RMNa&6r-~+PaK%E+11^MRWGwX4bxA>mMgEd*8V2~7GBYuW1 zA%IN@zTJbL4V}^F@h5FGMDI~D*c-Imx!h;5H+bC7O4vWOIa^CJnXp9wRW{l_M^j_W z0VFwHLqx?yRJCIir0mfpZ9DP3wJqzEdHFrX!Bw)W;nnd&Rj7t3-t?5yDMo-7Ftj|B z9N{tRRK1jV6k*+F!_hy351;YHH^Kt=-3e?Ydv}YjJTUuxNNp{WK{uUjx?*u~_n~Mc zuQ;7?N^~;tmyZTzs#E7cv|+!KdE~@7 z14#F5RO7B^2@?8{oQ4-@M8Ur2t3RUDtx%dlHkonS5okXwTZfL9sMW4$i?zQpo(R3> z3iH%!%g)oCQ@b&SdBMpT?lU%+vE;=*K;HicBLxEdU1;KZq#LhlYMs1AJDbu-qk$(K za{Swl>3PvryA|+3^(L-frSn&hR?;}^!g4GOIzar~1Ts0KvDe9$aTzQ#kJxEK?QTMa zXU2vd^_+&nYri3Nk>AW@)W;kBib%KF2!JC-R^90f4m1u2yv``hD9-p5RO@dtFEq`J zH}*~)6KP@!W}9PMCfq80>o=gkhcR;+Alk2@Ep_Iuf;4`g(B=CX1M+phhBZc~$_=Cg zinEez=waAoFaCPQceYZW@@{rv)DzwJOX@5-^4Lzt^Nk)WnbfCoUtRahM5qR3aYfc7 zGXOpSGow?ZGk|FsU*PjS=KoGV#QH?tW9N*Cd6r)zgG^6ra6r;xCXm&4JY}9UVNG%QY1R^P=zv zn&1LeLg|V{rLALZYSiC!WsQszx}5V;fY6)=I$OjxPE(La# zp1Dh}yHdG-PC-Z2j#M8m^AyIU9=AFPLxkbqJub0Vu-}B~kX`HbQXQy0XX_DP>GNVq3RwvfZO5$4a#A99$D# z@)E3x0MN%U0EQ)=+~y^Y$ctNuwLBLWKb6#={L{p6_VUq9u;+C9L<=r2-6A!76BWe} z+4ewzOSb$O2Yl;%^XV+Ix8C0C$f9lX0a6Trk!#=civY#neaRGB&zlPs-{v{lU$L)` zw-4~wvsvB#JNr~+PHO~8)m7$=*_DQbg$jXm>S^&o_|BMeI@ZXHqZUEUighuDDkyD$ zNU!MHbtP!DFbEefui}|Odd!YCXFE{_7Ym(gYs>|@_UpG}dV_J1^=wL+xZaP9v#k0@ z{?Qh2c`>rSv8YX<})L08y||@!ti8e8|acYnmul?ynd2NliGP zid+L$QFOS8;&2;@-43T*9-@EG!2>w5_g45;bvV*{;U8a;^)+NUJtM4K@TX=}9119c z|GSidZRQ0+XYJC8&LjW$Xs-^_=~f#9_9R|RmP1ee3Y!xiirHP>*8$|;0Y;ALMlwZO z-UR{xy3xh}0Kk}=l{T_U&;bBqdQ!Bh)LRAsAd=w&ZTen}hc@!u`M;O{Pa6N9ut5=x YV;D3zGRZWhArWxT@WGu5edp-^0isV<5dZ)H literal 0 HcmV?d00001 diff --git a/android/app/src/main/kotlin/wtf/caras/ocarina/MainActivity.kt b/android/app/src/main/kotlin/wtf/caras/ocarina/MainActivity.kt new file mode 100644 index 0000000..bfa8971 --- /dev/null +++ b/android/app/src/main/kotlin/wtf/caras/ocarina/MainActivity.kt @@ -0,0 +1,5 @@ +package wtf.caras.ocarina + +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-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..7154733 --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + 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..e2ba1aee81277bf57064b6fbcbbe99760bb9ca9f GIT binary patch literal 3452 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 mf{l=YU?XH8*a#U2HvR#+^?4lJ)Bvmi0000WUv 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6bf5b02bc20780e4ae4d7f66ff094bb1e9770e GIT binary patch literal 6951 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..1a77951097a95467efce3260ed0f8ee9ad1863e2 GIT binary patch literal 2502 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 L4b*B??4te;Pzf=8 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..82df0b31962d4f9d1e814c2c466c19df27d8b8fa GIT binary patch literal 11178 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 V$~Zw&PXGN_O-Wm^=G}+z{{gkwc;^5B literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9776dab7ea3362dd1c82c8b5bd046389686775 GIT binary patch literal 3370 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 A^#A|> 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..f81912ea01850db9dbb2c6c3d49c4d5d570cca31 GIT binary patch literal 11472 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%0DEwR5N28LJ~yaBDHPI` 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 XA=7)O>trPOCjfDE_He2?hP(71z&W6A literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..0f38676 --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #FFFFFFFF + \ No newline at end of file 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/main/res/xml/network_security_config.xml b/android/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..eb5f25b --- /dev/null +++ b/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,6 @@ + + + + 127.0.0.1 + + \ No newline at end of file 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..d2ffbff --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,18 @@ +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..3b5b324 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError +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..e1ca574 --- /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.6.3-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..536165d --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,25 @@ +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 + }() + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false +} + +include ":app" diff --git a/assets/icon/ic_foreground.png b/assets/icon/ic_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f9b0a2ff045a9bc2e366158c024929e5f86bbf GIT binary patch literal 44253 zcmeFX^v2p5XKQd%vJF*@2 z8LNhmuee@#|KwW#$zqk1XZy#%mytZYS`9z{{cEusXlSx9<1o8_md^Il-^)Q>)GwxFKV z{3D%eFH_8K`u!MhDsubwhw$g=wrxhR8b}^p)5hcAlOnJF#keCr z9KqJzE3_S(Y^j`3Idr(^SK{F25bD>e*wV+?i|U8jt6s&d#EOy*C9B?>)k!|x7Jpct z(R6(yOmp%xN2KQ~rb1QKu7-h7xTIeq?$DVtucFU8mWI^VmDW`udMaqNLx0fTEl)4Q zV}Z1=+v#aNVq+bAf5GM@09Q_UX*#Pb0OtGRs+JD;iP@_&yliY&*>oP=Hx3+Koe27n zLkSYvBhhds0|5|v0(kE|XJ z5&3o9T$tV8=lLtnPj6*{)>?ne-St1OGw8USb;eM*Nw3~HGCc&-qe5iN6raNx6*kh*j6_4Vy=B{e2*|+Z)YT0Z|jvXO=e@q z50yyPN>KYe+o6-G<1OEoYWs;4Vt$D2s4v^#LbotNv29Y2?+-YcimEDV*_2k#dYYHi2`aCuA`AO3)1tx3D%)m5)mD??}YS>E`t&r%uri< zX$hSe@gPvL!@sZWY-j%-3Ur;(@zCBfL(+Xw*aZ`5Y%ol|Ynk>{Sm_K)O{Jcky($1C zhS=92j8JOZ4uZRlCgLQ8gYLFX>XgY>ev z>|=G#2nUJm<{e=>zQ`u56Q>dF7H`IS78||NS26 z-ec6j7Cw2lM`Yx)tC7FW>4(&AVUkXndfSNYJ*W%aH3f2nDad7ys z*@?_q#FfbDT|b-=ciu({ z9jn8%L?tp=Vr@5IyWfuRLzP1Xsv;561moq;o_lpUsk7f1QaFSas#t~(x89QryBhLIymKL68?EoXvhnDFQriMDRK0Dck!7}fX2>Aksm@jvY@#Ot zX1!~ha&*~yDcSaC!+s|++$I!iUK)u`Yqg^MO5wMGBGV1ZJ}FUh%=yB?<~Z-ygX+md zFAH5ck?B7h-pib}2){k-LC}W=)^r3f3EnK75(pHY+hy=6lS@8~lS_nk6zYDCRBJ5e z(fSgW40@dW93*!}BKL=V+P)w}JXU;>`1o0CoiI=vD{Z!QBYa}{(zDbJ>-uYI z_?J60dM+b!Lp>Ga{6`-pc(D$-D##3y?s~ts%3kA{mr(y{Hdd49f7%8CwrBxYi!@$YR_ zwO_>K**IjV5|~e7qw#0dp%BHc=#nm&Zb#K=kdkUB^e$c(2isFvV0m~)93$4m5SwdC1+`9e}&pMDbCL2PclFUq?=zWAu1##+23PiD(tLPxny zy*R$DqHa(}l7z8IL=32o_smy06@6ld)i6uy`1=wt>TXlr0 zK0V`kd~BximwKX;UuXzYpmC^&C@+SsJi}Vg2z0A~1=dhG(I6B?m?@zn$RD|LLnk&* z{3Gw+A)u_QUWF+!-g1ju-GFs@=dBh7$-~VXyJwr?bBi4kR=9WsGm&VXN%g&(8V8bQwZ||?JVmqhsiuH zg!kTt4()Kgp=PNgch?`n+{co;caMl)G;pNmiV;F!qB}8@-HxUhNG@Nae+UwhFy#M`P&IB=HtZpK_q*s47=Z zN=n;uHro9#V=gM)`;y%mj0HGU18gKV+^R_^Y7M*ErjWo=DZm(q0D4v_mO(sg)R=xc!k_enqEz?zwyyj$97YymuIQ zn4%7S6ugk6TfQ7>%dqKN!N6xG@+;k-jRQmCRvE_jyn-F3v9Wn5B64?im&YVk-@~BU zS@!NeeXbiUq*ty*`M1G}!=!o^jc2&#%boVBi%Q1A3_ifGwxJh9 zPR7OC271oz+;RTBH#Sr$%(AvYqYrBRyL9Q9#^urei2elw=kH~ogB`^mJClD;jB`Zv zV+T&xb^s^NscyXvx4^7^$idFsYmZ(6nlQN>x~F78Wgs$ZLoCKr3gsnIC?Zrb9gS2> z2Q5JDSoQ1o^5BVe@YcF;0C3lEADHfdb6-(q<>U$5`o#}g z$36kTGy-ZYfyZQ9!w}a*d-xP{3D?rUkf&Y0qz)T?C+o-V9Ge#~n@WZV>9L0OmISCC z`=x4$`{Vij6S=N00}ACsdV7@Oxcd$r5(xLR&?l(5yGtzkWz^QCH!Kaw-i1p7C3T8} z+@DXIIBj~-@Uw{#4j1{sC>D};B}3cQ$!a-FY2Xh=5;3nNdw17+IZ$!$` z7Er4^?4R;9Mt(9;ee5he2O#%S4Npcd&y5*zrLNqY?c30ls`}R?YfnZ5SU74*%}>@` zErVH!%}?%j{O%>n$Svn9D#|vDy)DmZhwPOo^M!qA)OzLg?Uk^SC^Z?@PB&A#P~EzXxhxpv8(Eq-0@ST4 z3{~rnu$si$?fp zK&fOxL1NZ`L9Za#wWXoLvtDeCe=;%NN>E!_Bg42@DOBrD`tK(S_B>-ZhSbwbwQ67* zH>z-;41N+=eKD_uLkFKslz=!>qoc~msZa>(CoiDqY?f)Ap#Zfm#8S8c`hIS0qqn6B zyL_cs{L9dR@LO%`?>Lp;A^X_xRn>egy0!{QuFL0O@XYPo2j7t;u9`?$i91*3VJVgA zv_CS=UgT7VkKje(@5PO)!IE9=i~2}N&Ju2Xry{VWps(mtoLG%`*U@l5U5^BudAMIk z+^7%Yci6y$*1w1ozQHZtqLe%8qc=(;X#+5B#;jDel{s&w?Hm$wRh z0FfW=cQvkYitKu)T^1=@cln6t}c*8+Le~>Mp+EpO-$7}x#Yd@LwWBly9a(VP0Ckv2mge* zsx(6Upg}5YKnH<6y0`41t^ZV^x)WA5D?TpQyP`834+#KMiFw?B{KR;2->MeW=(XS# zriZB@^;xsv-gevN!@-CthxY}9qGs#JtN|U@6=G*78Q=ALAxz@bDKP?;9M06NOP~wE zc5_%x@`1s5mmuYRK{wkVIU{;u&-YX=@v&2?T7GCf&AF0hpo|rn>#VGxOvcAQBpHOT zGGHVX^1SR$){A{Lro~BV2`3Rb~F0GimZg%wzPqBZ2%dHto zm~e5|SovNq#EH5YB^$WTpX}4MChy1ur8yb*;dQpOk=&WrL9*SYZtMDls~g=@+i;Dp zb}CUGdjeAyZ`Khb+w^C3K$4zqQ$&O`vY)d zL_%pUWi)0f<8C_f_Y%1$v-Mwp;gV2@I3v5q(QDdknLEm;G(BW{<-1E>m197y6(v_? zKh)GFSazVZ(pb()u56|mP|rHb%Ct&&8IOrXzNL7FY=!_wSuhRVzPu3TqfQc&Ym7V4 zX0E1UOCnTL)OpI!V`RBf3}SxZba$q{dYwYk;-9y8+$4CyN@v1~VG~|G{;6-YwrT`o z$&>Fto-&u`0Vc)Z2R<*_1c%qjfscIe-k52G=@Nrz`F%wW-I%4)@9vj=Q7|KYUY@|b zBC6!{KoaR9JV#FADOWZ07)f*qgIKDb$+?X7&>bAh00cnaXqm)7B|}`*by&t`DBtX& zoVi*8bIE=QxBI{p%?vgbWZ9YGH?`WHdu^VX2RN__wZB--cLlD9)zZjF6mD8HF5q9+ zVKu}#&iYi9R78ki^aFjOYq~0bPYV3FSQ?6m!ZsfjB+)L1#317Jr$& z2CB0)2D{v{)LQ=|LkI;ATi^S0`_m-aNroB$Gws$=oG&g#4r;%Tk9P1a8`09xNFD5V z8{H1+Bl_K3g9kXwVrYg2o;4K+`|6hZfYl~R1nrbEg@Y9kETa}5Ozpf-b82U6ge=H< z)~&{@sqhSgHiP!IQ}?5xx|%IASk@mulf06Ze#iJ)OS2KCHj4Yf4V$C`n#tYsKsqDS z1=!OR1i+x`kVt!n)Sl_u!y-AQ|1E)94&Zr;;H$ zXve#e7!n!R)F8~d)fO*rb$B?XIqK`;u6*H4RjzWIY$9ena3<+WvPnTP&1g-f|L7*8 zDi2Fb!srTnzW6gJsB=g0C5+YlC7I|dKly)}u6$awyAQ>BA;}Rrf_43VgZe@ z(Fj;Oyxx~jPBw6yiUVbqsiOwR*PSk4hxcf`EB8SW1G!}0Sm*EcpK9xBGd)3*p+-%d z2O6#|Q=fpP=SAIj25a>)^6;5+_dx@@{D#&=7UMvT{Ep^X`(d1{?7bGno>kDkSWJQ_ z)Ts~5>R-e$(S53Z7I0#LeBlzpK5%OqVX)P{!ItjI+pX1?E=hf2BNU~WJpZRndkcGR zkbgn5N(Hv2{5hU~U6=N^jzIL$vrG%Xqz}s%T^COqnKM}_crys7P7B8R4drbhZR>}$IkM_R4gBY zrDe2sH>C+^dn$!hnlsrWLJpRQ#3L$2sXv5S9UG6DllzPXymrRZogh^A#ufwwl_0E| z;MUIW^4r9>*~kM0q2bWF&OK83^ZrVX%h}xGTFt1J&h`Xx%@(7IlC7FIwcXE`+)SZi zvI~MtE(`dqPkx+6IZ<{^BEZL>{u9uSIka}8rPVrkBWa;zMI|Ef?P=5QTmwV2YQ{c! zbLZJ(rM7%|ZrKCpSGw(LTdKU{x?JOP-+0s#`ae`M zU3`}dCICQ@o$F3B^wl)_V32c(uV;%_BYr=zMP}z#p*#(R2-~B*aN9E%&?&cTc4W3j z_S9uG-qt{3IDRo;y2Di%zO>3~%h@rh*5XxbdbGccF8!_E`I^bh$+W?wjC`j`OnN%F zm#=2Nt9SXn%tT|4!&0=2^U@@fkb_|O*pU+R2#ocrK4Q>DmOWpo=Ut(k^Fkwe3X+>A8+EKPLb=q@F4qoqjmXdq zlEP?0p6|Reg#p2cocq!C0ZWl_TXnVvW`k zx#YraCc167m@CI;JH#*+oV)lT7Z{wcpmlo%-P0ErE?7%RFXTXG*U}XxNuurh&+6-x*0Q5ll z-T?$pIm`Hs8^=2+cD?s>4!mx!*p`>&v;9`E{D*uZ9|v+(n;^mh3>mPTY;nel^=}&< zoe|xIBdj15rSZhUU4CSlu4|}D@klYOi{xGjHeSma5A?xuoXRWTpt5AJ3utY2{uh7m zsaJc1{2QVV@0j*MHPUM9KBt3HpKuutMdVb?7hzHJvzQCMfV%wmp4xZ&wt5QYPaybf zJ|!2_s{1qtOT*+0;5Igc1C+5yj0OCE?*b5_j4E47!tM#pH)a*}jRa`5Z!XQQ{*ctz zs_}*3lYC`r>UOBz({+9FG9en^nY#i+C=08e;N7c-NfOQ41r`Ta(ZA`^60J;ab zwvPyiH;WqaJZ|<3^3(+E#ohI^gaX~CpZS>$C3O-@GMQb=jfje=-(G{{P$#`74Mf#f#1@t+&MbpP9sTM`Oe_Ad2z3Y48e1C56a)tJvo zhFz}1Dz!l&-W?m1Jztc?{1C!32=GSI3~0YHQuqG$I0M4S$elPsHz@>W*cz7`e@h|< z0E?>K9(tuD-Loj^_*^$XVZ`tINC*BL#G~I2xIMeX0i5x5BimLkv&iOV9>*_?5^3%plSbwI9G*~Yb?eM>M zajLT3Kv(%|DiV*FaRD7H$;dS-O|BH*Y&W(Q=15*kS)x`4@UZmR0(0`aTH$!_%D1pwaLrie;BTokx@}&n$ zMZ7Hs)W6XOXrN=gAX#=%%K5Lg?f@VD*4&?nw?-Cl=9n@y8fw65E5+E{g)0bE{g5}| zAQ@}{!+M=CgmGL0^nNP(ooWJoM1EqJk|*wtS8=u+%y!GYl%@|Dz|AD)lje2i6JQ9_ z+r);O*SqTu4W%nYm0~|)(os4J%4sfy!H<*_&V4>#GbD4_iZn(lsXIqAf}z|FoYZGj zw=_%|jVLT+*<$NyDj0I}@j!d46a`8bvQSP2YDiphO@E~J0q4x}{pEqgA~h=TVXaBx z_a5!{fHL>{r(ApQ73!A<)0LtQ?E*$QL;hnnu|$Nl;G9U(_trwm?qXrPsh)a-L@a#5 z<5^*Xor^SJ^L@aPvX{mKA)~6E`tjGBTKBxJjJ6(YVPP2;#1+SNqOQ*%rbvKN`P&>C zVP&mPB2V>WmEv+%gh1)Q)H1XaD;Mf66n#G60G)2_CkS&4@%~L9R%xWI(@T7J1$FPp z#v6m`AK=!Doxb~u?hLyvXSrSWu{KbIY9uq4W-QeALz8g3Q5Heu@+Ea9)s<2GGwQy- zXjdpHRT!#o#0*|{CvQ)F21Xy|l%ppy4OtH=?UBImw%=+ZR|53fS4&lgk#IHQww^x; zfL$^OnBj6`#HTX-S&~L>U)0G>3hiD(P${zJ7J)`Hc`MHYP#5Mokn|W~d>ZDo{~dlG1+0E~ zRj53;hS?x*bp=o=ZisEaI>#GE;+O@)P7ghWDzO1_QbnG#oOeeEp=N5`*oxx*>%y$- zrFUA*z;v6cw*8aS%L>y6*i+5xfwwaz0H;bGzj=7S{Q=+6#RS4mk*0=-Zep#T=&Mv>8Q`Hp-!jXJ4;#kXlM2O?~O7h(bORY=}Rx;_*^ z?#XE1s?x}qbH>Fd=HWF?FYw!qTDV?vWBDTiAI203(j~m}eCSv&%&p@AkyBi6grV^6 z2IZ6VeLv&E0%KtM_G!%EtD&m%)y%X2U0t};O5qqh)`j8eb&EshfV&A;IH=2j{tjjtIxIy-Re#MC*=dGrIPnC;uBS73m%|9$BQn=KN`Z0(1D0&}bH6)&c*;C}r6ea{mU`OY zicW3EO3kQ`jz-4pUQ1b-D{pHvBdF3RjAsbE){h}b=GI7# zi_$CHH|cR$-DJmeKXHapspHZQnfY-N-8)!DBc7a8+L|H#{`&UzwzBWy6AT7ZR$Ghe z37wZ)qR14=!mUt=OKAl8XKDK7%l>zVO4KU#%f-Ur^{8 zqjvQw%y^~Dz<6eblDkgGc5KBw1p@@+bAnv*1o~esd*iyx^19)2;vA-^RxniN(NI2K z30HqJQeZwt_OVIsB|gsrU1{&hLNH)AzPy^j#Z2@??_09VsCm0XzOCY<1~RQ={a0wR z!7UL>t2KT{m}gPkuNXcpMghs&47r(=fyDWvlM+2e3rDpOd!umgJ)08;W7B|?2zBpv zJ%fyji|VOI%|RHN?Mq$x^8wcMm5>g;qV$8nI66x{-fW!Q=KxqsAWS6>wBu?)UB>tP z+c46>hcvBwnV5`VLjnW?|Gjb>tCTu*>QvC;*Qm1ZUL)#X3gklwh&$kI?4+PZB-f@+|Af^vsEeDkfX(B06bS5}dE8rL}zuzi}#vQa72A=801# z5C}`YD#{_dZvLyo@eug35p}Nx6jsC1S3cbipoKp2p^irKEElr=GbVaGvEoKoYZWC| z913_@2x_H#*S`YSwAM5aMg|AVThpT!w1%z10Au>xuyK2@=$DIY@i7`^ibb{E|5kta z#;GN*OF;7Qwdu^%nI!>)G6S&K;Jblz}4GGCBzd9m?p+@p4NX14LT1zGTESAhl^GjMWM@3=!DSBqHlXDRX>zWawa#2 zpvDyMB-lkT$M^N}2&&sI%TxqWelXNhwOUm5@V*KV;{maQ`ZcP{F#AB&s_0TxO$DX<;_Xe)6*Qt@x)o?)WV?u z>p9)Xn)s#909L_Qj=8hoQ|&Fn~t%t!L7nc1Xy$GM6%QAu~IQ=qP$OHPj3G6>fsEjz7N{`{F!P&P$VcB zGi@7E62!ZEUA*Hnjihtur}Eq%eH9;7x!@rV!U)0{Far!LM#0qmV9x!nTQ98f%5I5{ zK8L?mHz)2dXwiXEmw>>foWs@-VAfuIe~egZ>%h<{u|BK2@jk45MC;a9iUYZX%V{}} zl~$ohdLh`Tq_J!wu?8S^dI}&t6B?#d$u_E=_Gb(E>Nkp~W=u*+3+6oHm4e!L>ZIoS z=Z$BKQmZL9_|$z7z#3?LV~lIL77a{ofQ_RN!kS#}S_5_kVcT-~5JBr6lYoRP;H`-% zH1LWGTS>k%GW1%TOpbW3poLWh38S&AYl;rNn{fni$ZGbU%{DAQVDGT!`=F0;i*wo; z@pPJkFx`{z3@SNJEns9yO-EEzbn6vY=vDk)3_iuW&fk%M0UrcE=oR;IBO{}lh0KsG zE@lI$wUjYhI!8b=eFZ~Se@J|OVU#NlVx_@q=RujXO32VVT{c6fmU3X^-5>H@M1QeV zy)tpvBLC{F&H4eII~p1JXnL-%N3}$;RGne$8U9Q^O&RrcuEu^~4bt^~aeAbm;qiV~ z+tSJ(P#GcaX5JhOGB73kpjm50f?OB4hC7Eg@>fW8iQVY(pE+fBuui|(uG0lx}>TrOZe9lW36 z5IRF)zZ7e*B9o~*!I)CjV#j&}%cv(5l>`N}T?Nl{I!BgvsT}N7hK3)Y2C^U+n5@5- zJ4c%z@ZM6}aspKEC!B>k9L&xDQiTc0N^aQ9wg_8=l#!btIjpS!WW(H=5;`rdLkqOu zI}WEz9LRt(SMGjlYip|*|if`%_bleBlw za%?vbFo)!-Q~^cHGeZE2ZTTIoZI~V*$KgK{m+ZlEKW*8U(P~I$zL^nV96aCjUA9p= z@HA_z^XGR%Wxnt}j(2hKu}rJV8?8{NL0bOUOjW5M`MAFwUv$s)aM?=5WoMdHZKn2(-YM<+UL87TRgW> z!@YzKmWn|$9tBU*-PpyTHAVbHm!Df-x!^Y`#1PMQpvuR?XlsB5q12YHN(Kw3w}$n+7m(e{cG>F4RsYu#$DiapdRkZ1^>p=*>y;k= zY2~)mA8@sWPCB=0v|Mz?pO#pyvg;E56^3Ouqb0OoA3bC@`HKB7+vOKz+<*h0;nTmq9aAi+xS#|&5rS^1R1V#{U5aO_WGXGZ_9K~Ekuo`#EMDhU z6d!HcZ+1p_+-We}ofI|yE$DQOk~DVi!>H+lxUkEGm3(sN#l}bZB;g(_kx%5m{k9<| zJo;+Q0aE9*oC2SDdY2(Ok}WfX9*gVFi-3<;Sz+8$F8N<7$HXs2g(VJ0X1u8#vL8^i zeKg}Uxl$5pd@V}J|6^zLkTz=oe=kJ(lw$O<(`IRgXu#@)PHo9O+1ZGb8~p5-6rHS3 zP1Rm}VC~xA^EWf5J8!e4^y>tLlzDsFFXbmVCI0B})brek3%A^_6uvdRDHfB=r#0y? z5WWi^XBq|a#wL+ZUrkW}X@3`aeEgd5ms8i?RNEUKmD94%4Kp8nE9o(LPEz&Ji@EtR z;vasj=DZfP0UvfwU2b6n=HlWKxSXH2H_eOJmb@t8(oFZaw6cP|c=3Fq)~|nP$Y=5I zH76&hTR~Xx>yb^zUwGl+mHl<&FADta+2swPwx{p|^0om*UpBMxZzpiq%?CBc@O9~f zFGhVfn%PsBM8q$C{3|p#D^II8q487NtuR)F>5Hmxkeu%BN6!RRD!UW-#txbZjV>X^ znoO$XZJSc%*PnpoN*U^J1H$URPtn!W?Mv-sCLd+BK8TLAJz75Pe<|x_QSC+I+8<`Q zXJlAO@r3m_(V*s7MZ#m%D)Uz*7rKY95~+ip;N z2DcN)5>1naGd9W*BZF_Tp^a|$WoC|q>Cf0`Jf5Ooqw9(Nt?73wUEC_ND3AQeue6og z6B^0MulU5uDh7tSka|HLoZxl$gQG<#eMTs+t}e|pY&$Jo#qT|n$$alPHF7(1ujZxs zFS0{8%(i&+zVCLzqajf2#5f<%mh0N@cZ1JU=6FJlzCB2yk5p}nvcD9IyqO+$N_{*| zI%i>5-b5p~NJu@5&(ShR)pR;f^qurr_yjS6uTY9Hg~{_`r)lH2Z={#gdWQ^%HN4ZE zw}~5$C*d3?WUQks2v5fEUM@#iiZ)~SMROIxoX&$(g9u(FvT}hDyid6wev(+y`}y>F zkDGS#+}i&OO2Kc9*B5QjqUJW%{TSncfU~7_ya@7T(`~yCUaJfi{!xkXl+D-=gV)RzKEAP3Jt1WgVKO9}*I3voALe~NAoTXlGXL3Q z{fmiIZP$MxJYjnad)ep*;JEW#EysUKH@*9#dz^kUVD{vQoM!@~j+J-W@Fo*DzBBRU zX!?Z z+u!udKC5oLI`ogjyZG(d^MBu-ePEnM_=P@UEl zIB)Xe(~6RL4}G9{xp&*$9|;ZX_-+##w)`6Z==a;cxqhLBH!)K*Ae4(5qt!|gu>9`D zv{|ac0REz`PSD;4w=pA0+@Ex_u89pn)XNGy*=lRFL~aY*Hlr6>~{7lO>ej@RkVMxeyWg1 zTCh=d>!eDur0Vw_GI=8(0)IbI7f|lMX1TnwB4K#CWEN^!35LVfB}|L{=|T6;*9DN~ z>D2AeHCL#;o!x6UMJs_DFDz0%>U~!+I}hKO8FttEv10k%h5yG`tpw3%Jgxeb5B2EC zLr}vKC>F8#Pe9o{V6w_9SV*)!P}zU1?~B(cn2;XT-uX$rl7sa7++UN5wc*=gUzTH;r+uZ8J4|QUgxeEg-4zJFJ3+^Mt?j}a2b6}`mjX!^x$XJkuNRO z{!1>tXWNGZJT9^KXwW3%H1=;o)HaXmB}cx)qKX0~T7s^4Kiy|hTgHQFPDUG62z)N2SAaVzJ^Tlvwt z$1O*5pS->DR!?j*s^oL6C*t&8+6YB?WJBi7e*hvY7$kIr@88{xTMdSkEG76#e8=ay z*1F>2j~qgwpAK3FD5*h!39lxOE?n-n0RLcIAnXB}==)s`F!8wyRANw`cqUrrkEhqO@86K-18bLfm0j%{$Itp2}sLP}F33 zrCMT#>@;0pOP!?HYnTZZd}`MFIHA~DHzf0kHU-UU(X(l|bLd$L=K|lGvk$cI@jiH0 z7tZnFFzBepVM%n4>KG2L%B4;|3js0YGcqy)x*i(>s|DHLON6|Ux&RpfR_&dfFtR~% zmJvVg1(UCfEzb@5B<(F z*qgY_K7PSdCI2a%>~5-fQwZU71>wS@aL0T5BuOdY_};}&fE@f!ysGtHJioGcra^-o zbZYUSHq#W{vj9p1yw!qnALf18)YD2H| zxhQj^fBeV4j$u#KN90Uk!ozRT%T|1DmHxIvRTGt5wXa@T487L{8#kR~%g&GaTdQ?E zpt#9n?J%L5MRW`0n#+kOSo2t~1g+TM->C*3$`H^0i$=jAswb|9-sBMjf_J#~?1OOy zr*N}y=T~b--G^>rN=jlYD-{Pzp*;mAh355vcS=^KYdr>{$Zm=qzkacmVs|fx?5^7O zWUBj=5IuxZcj}a$OO4<OmA3QV$=fluvo8P;jFnh&v+iA#b6#KF}b?r7SqBQXeZl zJhz%S=4C*Nc(BzSxn0|2t``#R8H{}5$~(`fraY6VNNd!K{gS>~jF;b3H&z5>;eC39 z%x60JSnS#Up-Y#HLi)c_4Wwk)(*>v#vEpK$SqpOEVfKNoFhezB=C3woTncXd6{Xh7*|y0+c2a}78fvH{4b7*dbYrJnm2UXS>|(}v>F z>A%(hD6NU?POgAI(Kvp-)?>q7P{Y^s&slBgC-&^aTh)(Y5o!*~QpEA~pN&v*F{L1E@Ut>~h#Pa8-D zbIzFCZv3aqm%E{Ja(gpFh3hXZiYJDngF8{d)m?%fh4~q+1#3C3{Jl2C4-Ce5qyt-RB;fq7>b~N;TVKQGuT)!_{6*?)?z~@c! z85rJ2tBv^kFM4H9uj~pO>Izi%A2a-o<(j#~zWn>uF?iAZR`DBCH{n`u{@$Iq^Oj}o zjq;>Ar3=Ntv=@O+doX8Ih2Rtw+t4hT5(qwI+}6`jcyveJh6`6&l(T*cGs@OrYT=~mb7 zHnKIoMqND5rJ>jL5Pdw!k$(VsrSn}gz!+wb-#@a?7T@@>67xp&y=#}V`9;&LSk%Wl zZPlQyP%3pTTgx_Fs;eE>SwUdPsxI_lSsD`TIxL$-BE-dU&#)udnYod0~sHw&V*u>4~Vu z0Qp~mnOe6J?SP)FXYQ{!l#eKz!IXG+&MsR%oZw}0{niV)^Kh!}dis$!mUYK>+;YAC zahPldUWc$Q|BQpP*Wr$3zgb?;EQ)MBQn%p)>;L1I{t$$k5sT@E7h2xXG03~%GfTwMcfcTd=%=zm^ zE-)N@+#(Yo(fcB71wEN?X_di3=m& zz)`TIuFZGsUt4hZe7pR!BoxnCRDQi>nV0xkE=~1>Us3%w*Pq+RNp!70gX+3D&T>vg zNrvy2_)L!%mZUC@3S5f6`}RUw8#?d^i;g>4X(M<0!P5tIczxfUh+&|yP2HM3R&Ke7 zGqJifX@FgN48A4?jExs<@uk1=32Zd`%Pleh+6d>_xOkuB^S^XtP9K^)rV<_%o~6{S znf)|L2HHLP(>40h^{NbI-z!nk(I>9Qx4z~e2jH((hf-xZ&RqG&#oFLnsLz=&uQ=&C z=QN#`DO|aG?YFwsdb?Qoz~9J$zUYx3>gR+)k13y{}kVL5NXx7Pv3U`FfWo4WA^-K>96k({s04k z+e9{?VD7B`WiZZU?X2Rq`HZJ_dj!^00*!9uuy*5YF|+T(`2NXzoq-jK{x4VbK+ehN5WS7` z*XOUJ*k0CP_8gb8d1W%@JEU>wgBMR7;LGf{w4#If6$1Tjg~DNWJ8qcue5gp73%|eK z!Z?=&;hw|JncotMGtV>({8^w+Ao^kEB3tbzY3UrRi<);M&lQT)&)>Hj(|F)ZD^Kyi zbc3hixYq4X8a+F1@WtG8Zu66x>67_1`ysC$fj7?z`V%=XUpmU<_PY4LWC_k44ta$? z9G3CChPDQJLDMiRwaNYZ_0{8;ixY}pT#Gl=;zBjzX6~LE!y-U5Y+d4Lwp0JMklq zCH>=L-SH}a+W`gpH@7zGZ%cj9K7Hf-je1{oCwK167LZT{TZiaoq|6M26ZpwSHq=}O zj`cKd;QR49dl6GOzf(Q??b{D+fi^4JH$6?LbzMHysWdmgNtn4Qre0UUP_!lbZHQ`l zNegl)L6;{!p7qVVdsM%5;D0+NUURnoH^3Ua`ELeIm%Y+Tt$d3O)3sjQaasPv{*e zO^`WzcD7Rkh#Ol(aO`AR#RwAl=;{AV{O6NOyO)NOyyDcPrgU$E7db zec|#Q^!NV1nLBf5VCJ0j#NK`Yx|9Zs6xzng*}HftG%D%d}UH zQj3u@pPkF!IF_D}M`l44mzlG{rl-@JqBGZ@_2ZQ?AL2C6l#ZC_(&5`MJQK1d^RdK2 zskH1-0~4}rKr z@4yRU!f6at)9TrN~$}gUD!AetXBLq(?? zxZU1Rs_VE?U1A^4*q#L!70q$KG^TBq+AeNC3b-U=V7hZ%-vs~}+@%ry6tN0z9`z5N zLmog4Pwx*ZYb~Z}e|$*ZIkFttzHkEothu!{%RV>)6{B`|5dsVZoZ)giq}kDPddilf zQ20>Q;z<(c6oaMnL>QMj3IN$wa2CQxJq}ZzaO`lbef^l$$4|>~!+=7j@&&#)Ow^Gj zXsl>`WkIdC3;8!&E*IgMc4Q(;*^UzMIgHLUd~(jkXtl$3*5NkI71g(LvEZ4r#t`Q4 zW6YoI(D`$u?j9`m#PBeAusdSR;IfBxDEP$QjpOoPI_Ox3ne**f5cY^@jsv?zMn``i zH5~+B{Q6wIG!|}F`$c6N?wo}4VW zgmNRK@OgMzV)n4>tF9wR06Ws$|MWa6Fv;eZveKHqa7=44iH#$SFjts88a>FzfXlO& z6IduFyzZ~&zpeLvSs&5XeG@cQjIX0^g>3RJGOaytDcnX@)SKh-Ww_NXth*EFCtmrb zqT5eKO`=5b|D*6XdE9s%IkC*5I63n{}7ZjR21hwyKgEk$jC^rZy z^iH{Z+5F}96JO>G2sRo#bwq+YLbB4j<)d<)szr4+b$P-sroF*?BwA3Xd&#sY}y zS?>Pjwbyfqw8<%IaG5)$VPHU^r>7@*ML4Iu2@wKnJ3wXB?V2$++{me^sndmhGQ~qM z{>G;Qt(tR|LvOU9v#`i$zjw&)zE$9>xBZcGenzXE$-QYDY6fT zc#BMU8Y>1KEPV05+9zXN_9S@M+c0@V*a9-+RR1Rt*mb7D-22sbea$W&vVn((9~l{m z9W)N@-<-cL_jyZSker!GOB|JmKY4)N^g9?BDUY8x+G`5`K%es zecQwh)J_B@@BAAUAf?_2{)k7p&mfqRY+RiVB0atmYFmf>V`w1jg5uiMvCvs)f(Jy7 zK#jK|pmmewEMN|m`Xzq0&i;{GP!OcWETyMMHfer2o7H0$(eefd<*TKoytl8oxOm&$ zPMRlV31kYuw*2Wm-i)f1=G4?8?}SCnM^tAo5-Ivf^@~?G{2DUr3c8}L&AE&Xox@o~ z)EDJXzQjC8O0s$|0{%1nK8S5RkP~18lK9DTgvzq?D1{+S*#2 zXqgFK=fQ~H#6k@U|Jqzwzq2(MPb%pC;}LQ*JvYZ)UX5Zt;4lXcg<|>r;@Qnuw^B=>Pg2$k(3wuji3k5Y3tP z_p5 z0=U)EDNkI2PBqD^(d+J48$yNnLvIma1-aEcubj#!J3{!K$-v9q*~;z~_FedE5QGex zALzmV*grBm#4ascX4-yDT(aO^A^6*S0Jqa54dd543Z{*|u%5owNIhd=wDDt^4 zdftj0W;+wFct3H^f z=(gt%7vm1+Te5w9eLIeyccz^FcpWx|R(NB1Oukc)?`g(@8FEm$qw#ic%eTc4HEKG{ zNwOO!V{S=a9(TjIRraN({$Caod&s5qFDS$nftP%R(C&Ih1%w;3LC3?jp9q8Q-0vH& zZ%fc1ljDVNiO+2SAZK4}QamLC?GfJeXwlmR5M}kAEP$kqxLgeTzMA|9GIT~1$m)?F zKjvr6p-%^fiJ{-qZi_eLQuU{G41iB_e#1W|0YV_U284JS7 zwO43H5JR?8=0o#DqUR$6N+&R0Cp|}Oc|9PS0|Ek!YlSWQw^~>LqPZ3W-Hn+CWS$cB zpAQ^t3XwADEqVqt&@LrFPzA2$%AIK$b&cAjHh0PqUjSMi+oZ)!}pl|D8d&ye+2JL#3EYQEs48hPksa;>zAP>C~v+A zkw13A$o9$tDp$Hg$iyJKTsn+q7xo&fABit3Jk>vVF1D;4Y?uOhE!tY2``!u@1H*oA z>W#Lxwl&E_{cKZ(JYNQF((vTmT>oF*bT?|V;im5vvslN56ZK2zdK?f~-tF3vqssFT zY?!gO8GiD3Zck~r^SGSfPH*xM#H^EfhrRn)gb8;7!wSzpg!R9YvvKYDTCobVy>{NW z!{^D{6J!RUNy(M458>l?vPdUT}qiNU$}=i`+?o) z3&K$sDh}Sgf8Pg4P2lmYEFB)CvS@ND%){L4&8PH1x6M(-$PdNY`*gyPM#!m>6fk_JH>aE2iIv5+EB4c&O-@ zm=5=s7W!US8WsBO+Sl-$sY#z3oN$+}u{YA3aX&p~N2X$(_{`)85(x7LB@v55l!*3L zrMGK&l9bhM2Q`P?uo%_|PoLn_-qHSdzq_d}g=$zYN5>y7t8O7JEqufzB%mi=0|plT zwt>NTx@VpS$cxF-@U@9$lpRoZoK_#A)^Z&wxzMZ_@KC=z#->@(M5fv-ySkA4`n+Wm z7!zm-*<;v|&ciFVdiX-*)KWKuAc+V%P~G>o+nsMgTp1!v49pXYpJ$AV-aR2M3!& z2}~x!gkJ{Tdq|vdKY5c^1ob@+f!&NY)cpZayLi}w%=|D6YPtvgynUb_ec0q zx$0{gTaPLc3Z>BNbW0ElV}lu8isjq)fN;69-6{Q2j{&?Bo(;OgG&cP2LGR)aFyQ!+ zO(!D;(A_aO!0%1lG8aKmwa@J_hFo=@wcZncDAx72j=>=NIpiw`+l(!U;^tm}7* zKp%|$G(Q%+3W6tuyT-vwAWi57B+$P$h8^kD>=o^=t0#k~M&&;Kx8hke4N$wDBPN<; zG&|fOrtF$&*A%-t@Qc{4hq@=eId9<@~=H z`wXpx5j8R8vbix_)FKo7$s1pNJWNz-UKH~*B+Yz_ob=K?gNcqG zym`m*h3B#8v@%mNMxWsd`4ft)acj=ybJ0-w!EbQyB)Lo5$ZwhQ2_}{X%Cf9#^8yCeNCRByn z>V{&fb)SxQ*6pUf3H}ZQbe;V$!`3x)(~Tua&1OB_og_m!$)Qbl4dL_)P_uzp`|H2a zfcg}uVynNggK%eplqval9#^>OF~o-tOyJc^j~Z3|Nm=F zp?eaVr(MLM<9hr?%x&jKE}!=`3Sk#hEt9An$wWI7^;;ZVFX#sViUY_6V^w(*Lc=7!)oB_PI|0VzbbRWuB>eN-(w^S3V-fY}#sjZ;`*RnlK+}PTGqKtyrdhA9f z4yT+`1PM0URfz%2VM2FSt7d*Qer8Kt?wRg)v88+hPlwjBRd6KUrPC#9sMRO)-&7LP zVj(%hWx;-A4-wp*4W>gbUsT99qy8w5B-Qr*_9RYw#JoJvfpS&;jvmwvD5y0Y=9O$W zO($DtQi!%J8NYBn^8AY7;HnX(>H4u+aV6{d1h!iGdiJH z$6ep7`;jI6TiFyxwDhn54Y^iU`-wB%BSp4O$M4vrBSuc~I|xG7#$-0xY|Ja&3`+{r zp^V6amS#tX;8f-VY-4Rey&)(shkC%+FXOOPmz7Fc3 zE4N=%(UuHRt=HI2U9!v0K>CI*mOF}TR zne26Kz9#pSG@eyviqlEUduw%Zo+6$qzSgKl`oEo`^Yg_ltU=~u?N-gc6n*&BL_hM) z@#{8YeA9;j?INP*b}eZ?x+J)sY?u#7G7ye#gVM?tHmUZ3#rW%H}JMs<};c-kJkm{J; ztv8 zBVumB3i#}-)_*e0eyWZj)s6EC9m|(vrxWoTz&WJIi zqshP+(9C=2OYv}bW8gkcBq6ivc?>671RH(sOJk=Fb3+9SdAp~2f<)i-8;FBBTs4*R z3Z=q@e{Hcv&ngH$B>`r#`7plcUTSLzSsCMPJvT|82CeMzJQL5{_$K~&w%5a;(Vux3 zcXzz=l(n;Hbd{!A>Fc3SBa5_E-+H*NBs?f6YrgVJ@z_f@5XLTkTY^gcAT)S&eZO9Uu=__`WntYyfDN8vM*pz z2rrAk1->+KtKe_ByX0Pf+=m@;iox+-W8X+~`O;^(_Ui34P^OqBBlVW9q29arYjpi~ z_sX#g7mZuv3g+SYXFF@fm7yTiz2@7Ye#w8EVJS zP3rlbx26BU=YGg&qTtDo02zDoe4ju342PP~25oGCFG#Y;$u|)ngwQ17v8Zc}z{X?R zwlZ!lVyjj6zL}~X!jDZG9JSu|>4$MigBh+b8=rXGP0gYHGrMmDUc(b!l}pt3S)ZhU zIg3us`WSQt6|a8*dVB*t0Y~*ag zyu2pvr)HwkX863&*JgeDfbj@l5IZ6D7ZH#AJ>&`7W{c6?)D?-!0v*);Ok9>R9KA_{d{qIMJ}+6hm0~{#HIY%>6TB;G*Uji%ZhV zw*=(L#nC)_j^ac0i345D;tXw}0O9vC>wknEEf2t6eR$Yft zPYQzPdJ6K4Z@gk2{J@ml?b!sAt**$gDqk-zhGCbM-)6eQ9N`1AoZ<#-1TQeiHx-QE zuN`o*p6QL22jDizVfG$ubhYceao%(QLUKd{6^}P%h)jp!q1qA;qn&UhGe(z%E}g)a z;2Vb^|; zobjX(=9Pu^7}eN#69@`*Wh9?YFLq@S(Y1ZX1-kcgbBb3|6>JxIow>I6Z!hP&dNPtu za*x<}+{7}N0`TE-AJC6>PN%*UAJPnsYJS@x?V@OncDP~=%B#$w3mz(wS9zVx`y?c~ z?fhx+xtqfKY2*1Tro2nqOx)c{Hf)NGojKwZH;b;$6aJ&3xSf1fIo8Kqlv;m|5uhcY z%O|$Jq56P^#7OKahbj#Q(F)sT+|I@r2KNB&4@QEq{z|o7VWnfbC;SX~mO}!pjtCc1 z3f^Jbnw{=7`9z8KHuoVEuo8wacR*H(SZnjp492OTqfmsyBiyrq>o>hk`bM&936L6K zVsH+HSyS4-qH(nfg{(9o_p%(fe(J^e5{OIajL=&=5>1~V5Ag5a6k^dRgU$=hS=l(Z zi`J&;Jp7l=$G={ph8VQu6%`_meRp4HYEq*KAspq_ohM+C@7C%h*~ zvdDb~&~OoyOl(4K{HbF#97Su|!Ooh#G(ERMUre$7&obkQ65F5FIVbIzdRt>Fo~t}7&3Y{CA~fiCzB zXc+XMZ2^cVqb!!1L5`A*hUVkF6rG|uPc+A?C!%g%e~SF5yDl3w`)R3B z;c+Q>4hAuBbGFk3@@|c{2l(vC%%tnAADyT*d44dRuz@^W0#wDd#O`5P!Q_D2JZP+7 zp#6^YIBh&8*%U|drTSI6jy);p=2(KR zwUsWt^~J+7y1psgktvh6r_CjC5U$MzM!NX;4?UjK*WFXsU%Daz(N1hR%@`3t-9I_f z8)3(B4*6qLKFD*yL)K$(7obLEJI;}|3|>_)pVJRqZ@Bt<`a)VD`TgX`-d3Zhi(xUI zG#Sf1@I(~mjUF@W8r7I=gJTjXs`g2F~7onLGXY?c`4Rj=UvSvVe9%siQ4BNg41bh^I7Wbp}?b4BEA= zdplAxRaV>x(AA%-+!CAhP!(vf9MXxSFj7k7z9M| zUva8By8+e*koV+ECrqWotbI~#`|SaHh+J8hb>CMME+;?yid$JXT<%kA-LloTM8%CL z18MLuS~X)*HwlFVfxU){H6xcF_aB3Vn4{>ZM*A}kU_VqFj=L39y0HWRcfae%b2Y6msg5JQo^2>PPb_$<00r!0=-jFk(a6aMizz>`w{g+Jrl11?5UmWKD@dg)0E!4&h zw2)~&G;D=dsm}thk)lX?;&Hj$75(H_hPm|vM zVD6NqX+KAN#4l`Fkf^LWx$mZ(m(Y_&+)cz2bFuG}H9Q#&2SUoE)|zE8dEWicUe3@L zIEafVKO1bAcy;GEKUdC+I6^|$%g$F9%U!8I)>-SDj-Q|cTm)0kl)>eQ?>3&hE6!wV zhIlOD98eo>Q^FQ(_4gnuyJCqwzc;s@pvpr+L*HIMvDU6H$9MnV7K?^uhWDnJ|8QTf z*rV)|vOA8iJ2U~5Q-74B;>$kDQ2(=64> z`z#5&!ySF>h|RhdRJZ?rc*boDi5}TjN%E}(+7LuUg8$8<(Ob&mMJP>GalV39CvvSN z{`wgC;m&W9w~E{fXw>Ol0KePueAH$Gd?h1^Z*1>eH8A|K!wqTo*$-9R8XJ4HuHK5u zR5m!&_I4An-R$in9~qxHaNI7){!qIU1mBWF|Im*maPWi}h#K&!9>=lZ)P3;4AQV|F z0i?<2a}QW(LvZim#$n14$QBxb+$T3h#r&Lk47mH|~8dm450By6_vb7SSN zlG(V>Use05!}^kj61iH6M_ADsDFES~m-oUgZ-*{o_h6*4x-Hai`>RYGjv7 z%?7^doc{+@dwI+;B`t&+v< zF}}P>W!vG%Cc)Bf^FOUY`q_Y2PgL3eRWBU7oZ$p7k4x*V9#%<@FL`C}*Khq*y*HD? z@_EYw`t}G3S)!xTXF}zZ)_xCzjr8fRxEYzj=k6tDW`LI8we;L_`?r~b2;c$j1NP52 z;&pCN=KZ@#CrqQ+KS_cdU$t_w%TrCpFQB&YwK;E-jVi=MUqFyeX;iOqTsTqzcSIz1 zxQ1S{6`;PfTD}B~=Ab|a;VcZ(F^6eD8+oX47AYvC*X4_zcEOwR$z8^Pk@Y9Kuz3yn zcWYfZAdabXMd(gZ{NEh^F8ab0S#Qs=USNsrbp6BN4?0_~-H7>1#0!JA(a;&gUzPz> zU*%L4_3|PYUzOP!D;cO0P9m6!lSmmiXk=7G%c@Z0{Z`;Kxl&jw9wm6TofqL>>M+84tC}VzCRwuFL7{G2ow=B?^+L86)LYh;mQ#u*`XL;3^ z;cr7fbhN7zj!zEFuU^Y4BhcN&u)%SRvi@2B=&fNN2`V|XB1HViDS9|)@cU3pM%rj{`8|yk&%2Nd4tC}=88G8W0m;vu<--~NDiUpi9rPq*fzFs+84*ut@_xpUJn%YJ|;*0cJnHa4Mj+mZzymkEf$;r^NA8 zmn(1HkwXipHR777NL&C!Kj(bu2I`{TNKLy&d>E~(x=ZyxLh&2 zyEm0dqw6Ahb3*2LQJ$4_@B2?;EPhyG%!C1J5tA`kmjbK|L?l;M^YU|8M=O3rr7261 z#TH-Y>I_+I<=IL*5(b8>=B@Myx!!7=>aYdYpIHF95Wq`$Sz)!X^bjKiqfu19>Z+X4s$PJk zQ32nuuH6Rju${Q%k_otz-9}8;cK2NN-H91Wm1h}e-XKI#SdT6F!^T3pZCZE z=nkca4b#(c`2^j0QrN5s1pTF*&#;JG78V2t;!y!)5u(X z^hCfo*2*cpvn7(l3Wv4ilh5@rr_A??43EL@ z)tgVK@;`_u8O=MZ@SJyp#!nfRYK$edP~~%fvoXhEA^X3E!J+Ye(M0gd1LQD1CO9o9 z=;bn(&<|p*F~u~0ajBrG;WF+mj2*CQb!e<%q5&RZ&3bxr>!Xi3qGFs2&FuyiMQz}m z-C_*jeE3|$VIwkt_&@{v*pOHBI_4AHRo1Ocbz6IqPgArt<M$jq4CtIIW zaIx?$N2KR1I3f*`TSWxZO-g2ItNcyPwnfdX*b{l_%tAVw?%Jq?S0S zr)$HGqX;*pkfII&iLf<8Ch<7dX#R|Ej-F?fqEY=H>svD^k?i#%COC?=-SB zf$UZyCFJ%QD+bjrtQvG{7AbJc@uTtRt+o0kz7;zbHUTo_RwVi#Z zNWzLoT>-ylwAp>2Qph`$bT(u0XUi+Y#@dgC5d2CV`$QBxBL zb_E^BbhL~KVM8;Yd0m?o^vS6@ZOdXX39&&C*xw`3AC00naO?`C zbjxuQn2crRv~+#*CzJXkY#v`Hgb4KxNc+UyA7QF2wm|w&z!o88^%5QLC)09I6 zKNd;87ghvsF*!zeNxb%%s=b!=(s&_+ygc;?)+j8; znQZV<$MBBb?}m8bjKOZ)^Vm5V_ok=2x<)SQ38PSoAa4yjY!O7`zM_jbxsof9^PH0| z_BvII^tw!4KB_xI%_?xK=X5sEj;2yWf&3$h2?HaZEv1j0VtMJG~ zJ4I2Q)yc~Xc)ar;W$g-lK7Imw1{^%du_jw+nlfYLId?}OT7|6U)c_}7wXP&TX}@WG z)HkxF_oV?vBH!=7BAp7u`5+SNJM9p!h+cIof8albm0P+lYsVp$l(0)VpC9{teTTS| zq)WUc=e8s?)M`zomr19Pxvz&6A^*d9`PXgb13{$Eex=H4gV`GRH92`v8yIH$E&t$V z^5J35!4U#f94R_1xQ`I>05Unm%_{P~kq(n?C^PW!%iP%(LFV1-!Q0zVSLMQdBq1WN zDNABAFnq(X}Qqt(*BxMqs^68TSx zTb_a=504rJ-tggHS9ZDfCgSg3Mttr4;c`g#bC&+7Eok=9CwK?9Q{MUBNvz0DubcU2 z)Q1-E=AUEFWDy@*bAI=~t@T&5J>;7;)I66+5JcPNu zVN>JluSQ{stLP9y_pR{{?RRwaHcRpXZP4}??l_4T>9Gxi#16($pTwqikHW(#yxW`u zz8%|FgCA~(w!Xpp%@t7M7l@_nIkTSahK)SUS#W zJApaVvgz}Y+-59@vyvzn>Jv1oHyYx%$!WWIwXuk0S0Yv;Anm?~w@`o^SfUn~@S?}# ztwS_bu05Gl1C9+yy6xt5f?%WCiihuhM}Yc?YoM#~XDSmk-Jg1+(?F9~0(AJqFH;e4P$ahkKtdFfHzrX?-b*_^^XeAY5%GMcj0 z-p>>IE~owc*n`q8#oUu*Tdz^2`B8NL#^?K@AO+L)XX&#(?Q=58AB`tpE{mRs5oBnU zr@S9g7DGCe`P{-iy}x_99hW~P+9$YvBPn>>T0-g?3oLb>^Nn=Gne9qB8uti&Jr=TT zyrV^`qXn_plV-5lG&sWKD8?&@&ByI+NGco@@AjnHo<+80wUgErm8OK191cpo#!a8v zTYl`WQ?3U2-Pt=3BBaBtc`WMCM9-p1ysG3h=QrxKfC($6)W9jfszpU(B{mR&l|;KW zTq}`4tm+h6yc8uE4y;sAlaQ1^OHi>k=#-ViraYE)9DDJlSfc0vNRKW0HI+XP6{BWY zh!hYgI2u2>|6nS}@NXTN)FgbWx&C0lUk@MX9Dg|ULYq#XlJ}l!p%i$#UL{{y3T7t4?=DwoK^*0NC5p}X-XJ(M`jd31wE>1yM z#t&NO4t`w|hMZ=EZB*6fkB8-;{Ed5LJFhLTNAY;Nx977spT0!5)ywQk!naf4kEIRg zb0qDO`h;!GM;HTs+j963SkNKjCD`^y>c2Iovw?M5i|?W?#mr;>!T9I+5jo)z$%7Q8 zKP;qiS%r=l$k|ej_ZCZsVz0M8sd5>lP};EGKwv3{Ws1h9g)Y&{PaZJpUR6Rm#JJNt z(I03}f3E9(Hx^0Ck1~nOwS-t#e^U8@FHKf#WU#Jog65DSH!#`Rw*;*amre^kYRVKTzsR=^6=6(LWsJQXk{A8OB z9@$k344QQK=h6kKFOtC!me)%CG@P^JTjU359+o^we>2hMJ^HDppQU!5zV~TS38`oH zJl*QBoQpcuPmBP_cs=Yh>e&(aM*gKUT0&YsxWsjJC zJ}WQ5Z$TRW9x}7oL(mK6maufigZ#I|mFkd(bwS&KX{bk&vOsv)#yiy#IlR^<-2=KU z2Detx+2l7iEU_-c0nLLg<(eF!_aF^=We^+$H?W%;sG>|8bz9!9v4nD)Q<4ob4;tzT1 z6h~GX`YpgK#N*%UQR;Ol$SlGy*LDLZS&cAeaq-CeSv&(i!Zq%cpay=ZL?*VX=Ynbv^<3FX6eS( z{C+F{LUT8rUk*|r{6-iGM>E&1C;+?TXQLAN!K2%jMfM$lD*H6y8{mg-&PbM}%IUX@&kx4M~K!1E3!-}o(QzBt; zY4i;J2zc+dGKy?kTfIb$Z8h)~n$U6m%s8&Zy>woMO|&O6nv4y|99;on!8P+~TGx%2 z*Ei5iN3v@t@bMj`|CWgy$uBD}*{fq8hRkM3+-P4+ST)_8yqM+qQwt1> zbox0CmoLuaSsI4}H zxVokne^_FJ<=i65X%}17rF2XUWM=9}dJ{{F)i1Hls9GY1*Dq0Tv~ka-YSnaeam20u zejG(MqO4h@!7(MaAtLS7VI}Rhx3aYMHjA}g zd>n#cyt`Z%R=!#jSHC8sAzzSFuUK`Z6x<4ArqpXuXb?~wK-Bn#5ty&&zQ;K_mz4_~ zns6Dl>m(WLM0xnKR+jYs-yHznorF4yb1VtU4&M?XG#d@jII{S#9#>laH~hbgRh zG4D_pEhL>RG}qc|#;|a=$t-jSK_6H8(79>!vr)LJ0&umO=@&U%vmHgy4ek^Tuw=by zb@gZCRy5~c^>VKH;pv@9BLdyX;~Xb1sB_}3KY|pKd&UlR@P~%()V<~^j zt8=289FWMGa+8qoN&U6W6hT7(fX*v+?Mlz2%d39(^m{m?bHa?lFB7^{`DD3^SleXW z*fU6TaYA*8gRjhFE7FS`HeP6l_=tc9S)E8$gD4&!($E5T;O@4BKG)4ca^dpTyv4wk779WbPb z9b(mWkHtxxvQzH0CKWV#S%kM9E3q9v(=sNn)968-boCG+DGN^>iXJxwyd;L0W>Vw$dE+y?)ic>g;fnD67dgad=4N^K+O=K=*}+_(wDfGc|n zgq2*km+qO;N1{CGx~{V&UprB{Z#yuk+}ZuXGRV<8d>!+VH<WM>fIxhI@51VsZn z@&PF}(6RBJ2b0topPy6kLSObI(NmbdTzvv+C55`)~@!U-Lo0u=T8IY3Y zGnmN(>{(6Dn_yGS~zUSSr$#Cva`H}^1EQ2nsRb+D}BvhJ~-fBgst-+fa zWRObPY@42-Ns;HYYf+;~apdO2!>ok!iq66WMSUOUPc)e%-+x|!<9pc+Z!4GG(OTLq zUN;B7GIk)b(euq==Gte1flzzr77PISxVAG+BPeQ4yXPZoA@ZgVx@Xkq**k?B$Un{! zzX<>EP7>*6CJ21bbGD06VC8Y&Q1{HeX0UUMT@+`4lGE(!KU*>vGny<*pJB*mM2Ubev~xHH86 zMKc#mXrAQrHT$Om4M888QB_C2MjX#&PUKk!HM_tH>U=UhyLn>I5C@sHqef9$OnV=v z{mP*IBK&ml!<}qGXV{S?%V@9h327j{Blx29T)yADQHL`V%1BKCi2(SN>*kBgI>p&! zx{OYl0lomQ!)-S{GmPr=y^20`u4oa>NZzu(gf9t_U*NZIe`yWbr*b@}@%wu!af zZp})T-IbL~mrn2}!sG;ppYDd>_AYt9FUX$X0dKNi-z!k7yCF4XJ~^A(kDYcsLP^ZJ z>-7t|XcXUN9_4W14&V1^3Azv#eQ#*XzpeRVTgA#uPv?&0Lx8y9NFL&2RmPE?`+FS~SuxlTc^TXiheh4Zy%_=ZQzA=D* z`&#mQ{!5l?Jeeu3=8)U~$j@Fk&UdT5YY(fr9}19N1ko&sK3N8h4Qe7s-MzHi=v}5c z5?7AnPV%sC6WE*ZyaK|#f9}SqK4~zO$ynYY&{*)J0YS#%^lygm%@+YL!IW4vk+bVy za{(xRjl3B$lVzs+Y)*0dliC^u?912U-}4o_P+Ms9(%QRzBH2sxTNmDUDP!MQ)GfBc zxtB=80yT2>ots07?HwnHDXK<|nD;T38zx_vSuKI=7#Su1#lH3p&&`^WsFeF24HK(( zTAZ|Z^w6;m62a)jj|q!c9%Gt2E%J*<7v3S9lm?kaUf1*)z2mX%_dGc(S_ej8-`*}8 zco6K^CL!0~8f&e!)SP(s6_>x5)YErrH?c#gguX&#IZxgld5Z}R_>eFy1&YWl27U}^ zTX|i9p?70{>bQ@7)C)S1bUDo&(1)-L7a0_KgQ){hc7d^DxD|=c>eA??`ol)4P;YIG z;-7E3eJ`oy?7U`0j;EXTOoML{sUCmu=sJO^)dzlg`*~~FNv`;ISk82Qab(&~JEkID zS_GMWWF(-Tb^pF%f4Y;*{b8s%@?bb=DpB6!p|)g=XHmrEdnvX^uFEt2VQN8^uV0^r z*CqY1$1b_EX(ta(+Lu+;(NfrdbnWl(-3<^fAG>~X$4mF>gqGG*rQbBOyI@bqxASTZ z48AHFG-I^_9>5@-ArWMtT!qe?qsJVFX<4~^Es$SC5FLNiQV#~U4KJl7?qbxj_eDxK zm;W$_SgRx-wOmK_wv+S%0`m*Phi@1zZ z=FZ{Pb_28B-gslZcjrOp5W3-%meIcF$h3RFG4>7L&DkimZKX90iBf)$Sn{{P2`BP` zp-qc1M?8%g#x&o(z``AFppxf%U#S@wqhYJrMg6bdf2LJkks8lbB4Z@#vfLSt>WPX1ad86}{l}35z(T zOe$U<|E)`sd{zNeS!G6Wzi+>v4IHbA`qZ1h_#eWS4HBEAv36Q;Gxm4=W_gmB`2-=S zi}qN$;`cB9K>hQj&4>$-)jn*uT<}s-EJF`0qq7%?QyYRlOXzDyDi5cj0dy$vn{D2f z*disTri@vUxgdltUpkYn)3b#jL?3a?IpA*2m(I51pU`k};Ok8?ry?4&FD}uWw<5Uf z6#*8BiJ|!YoJJdu7h`QC1Zsj@%|}cgpOpA807~O%7hc8=I+_rgC&9kkV9rphoc26q z3fw~rOvsF)5=MNG2fASw!T;2T)y~i1w07d99oBtsau?YElu|9-mgU}#BpA(b(h+r@ z89;J@S>ffPvg)M+lAg25)FnsGz^~b%a`Pyex6E`#Bp$oyqZ-^3r%4)*%jB2xzGgGd zsE@WC_N6^_TEp}MxE+twKX80gk0be_y@zplM%C&^u`VT}CIq?#@O)Lw7y>n7kgPzp z!)7}!pmHSY{b)FB=}5y-RsY5tDo1h=|FNRN{kP2x4Xm-XE_>&F+j{jENsX7TcqWbys|PPo?&d_{6R zIIvEeob=?Zv|*aF>p`(k~3|aCNj?~fJRi6i`C(!$-a3p$YUHr z61aJfd^Ul6cKx`;LGWHmhE*f9@kmccyp5jrXAIU%@cSK#p;k;4;>R21b2PV)j%Efa zKo-IN{&5n)dctFrpfKXh0vsKm!7tTeTc8*e>V5;&5O-*SsM)9ObwSopSs$@Hp3)+GNG8NI#gl;F)|0 z2IUdvIHRU@|9b$6v0%L6Wle*Y@))e&1&WWk!?^qVWLdFMl&b-gu|)D*wOszWg1^F8<%XMUs)EjD6pd>`V60V4_5ph>*31EDeJaAsK{-v1Ch@ z$5O~zmTZ}foiKK?k7X>we2;vt?_cow>2p1E-Pc_6%iMGBbD#5mzqXlaq+2jR70<{J zs~NYn-Iu{84uT`hl?e8&QC3KJXOAUc-~mW94mc*9@Ky`kE=`a8^5*sEhB4ZHd#(rZSrZz zpLAxH#80#O32p)5D52SO!2oPnV33Tf^L1xvaNI1`rQ9&TBbJ!CSF|&)`%MvNfg^-K zeVS|d`v0~P>?1broNdQX9uSrxJr3kzg+uz;r758y0pT{pS`Ko#zMol5+pL%{`wmd~ zf{8%+&7}HSu`QJB(2n(M-$~6KO6Us(lmrGPX}xy0d+X`mO=uPR+Ub1yK$*sOi zku_ey;sL|y-~w>^IM?CaQ^9Wh+`bBiF39rWGIK0E7}w`BpXWSzEWO{cK$B+mP_$~& z*m1}mI7j_5aYjD=G+eS zJcb8@iVd<~Vn!thGRGOjNm=wh%~D11uc5g$All3&1SiJDlBf%-CJ1~^FKh`9`}GPY z4#*1;Hryk@%=<5!DUVUwCdKfEWjj$?Xvl3BYqfkHmjsM)f@Jrvnmxe|R$BpE^vj%q zPY(cHr$&=CP^-Xt>3Udzo_W&hzG~`LC*5Gd=6H7XOd6sqBm3mc{sbXjV_VMZLiaCc zeZF>?BPVEo6ir4=->aXT4vm;1#nw&uQ1&ZU8wE*aNp~cWkiC$Fe^^ znxa0_`aR5*Ggz94HL02N=tOuz_wF^I1jCG?-JXPRw{KO(HfkSq5}xf}OMuHF5ijh+ zMxkUv^=W?#U(V-t;Wmw8wRG8JTBRiM^&(VNxG)oJd-ZDeKZ&5KzYdyZ7aq{FP}#h^ zkGiF$#mS_%UUR(rzkQ6M;(%*QyweU`TlKrt z!+9tS4bG@AA$!^d5clY$g1Q#v%AQnZ##Vbx-4)A>z!p_!e;?2&YJxS^(gFR zmn&nDKqnz6KFgRW^RSVaVOo2HobHvN99ic|?9?9M5%p8k9K8qJ*B9bTGnBe-xegdV zGY2J&t`b;cJp?ZO!tbI4XSd96P6Wp6g61e>D-gW;YVpyRPALV2iSuO4^VekqsRdxcfVN$^9s@aTk-C z85X64{F^qx&xxJX->3Tv3;)1t3@V?hZ@vjKTO-L11krw6Yls=OhKkOoGn=^B(}Em? z^hhVg&&?}7=zS$SyYhvFH`UrpaTs|0Ru*qstUF(!8SVLQt%s3r0can*Y&v^`*0W?MM^&Xz9)db3yI&5@A3CzB+ zpq8;+Mw}K49f%-E#$66b8jM@GX-hntqiW4_E<_GUb5dlsv}X|`sK1iT5z5Bv2aRg}QGKMY=VrGw!8+|S-vv$t5K*fwZ72N{qh5W|VpQD_=>&9c|7h|l06F~Z+p6W}lQqyAoCB~Zx38vB|ZQR>>vx#+$osR11`^6`GT$l7>oZY{QN|5wHb z??sV#(^8f^<5Hy}y)gpo`qvcvDl`)qIi1P`(}^I%vYdKm>!rzqi~Lu<12JQTe`%XK z{#t}SkbVF4${q6l$sXzynlG$dpsMlYT9?4;-{SN!I3=I+mlWlph2w|nKu2`olW=F} zw*|7*UG861DB+O>R?t8{FK(_&d|a2t`aS(sRCHH+nBfzRHvThjT=Q^2H=t1ByO;No^>uDG_~w=Xm|{V-Bb@Zd0K>-8^>_)>9Hn!3i} z$I^HkmCw60NKy%nH0|XqXDWiM*F;y?-~M>%tz7HviTmc9znY0`LyuQuL;)7c*B`Xx?-v6bN_Y;Tt_>D~nqNwwU25PILxA^wvFa|6 zvZfYtPASZd|k*g6Zt2U~rGA>#ainNd&OEkcn+dWo)`i9Q{Z`m61CKk~)M3Pl1D^Zk z*tmY2+w*#RGW+7?AoT34m_r0wkbl)i-7LbsWdA(`(H+dG5Pj#ggjDvBAHg0V2Y3o= zw7CpgwC+cWvS}h*P%LjyzBdHf7ChENM*M*Cnf@fCex*}Cc z30M25p@U)HY`U&`awviL`5Zo5-x?^ekK*SE4cfbHrbojMjpPG`AV+LSvOseG_~}P) zPd_*ODWgBz-mlNI2fwVI`zByFs4TqWP+x|oKGK%wij=pBKXH83Ir#on=hIi&up0HF zKg3Pmw@wZ*e|Z~rQSwkysUpIyNnU&KAQgKSsHDII5>!M$E*Z||gY30Yuo|S*YAc~h zow{M1=?_zI|0(y@^`rA=*}KF2=lGz^QZGZGB-W&nz!xSi&=rqdxpKVeB5ufS*ijMY zGsXM1P&-#NcMa<|eV&EIEu@L-Yogc0=5>G=D|K#8Doz*Of3hY^?~;J>KtJ*vXSei8 z06`6Kvz5Ff>&k8}{HmBORh=ls=w}X>Z!&Hu=uo!ghx8r4GCXy8rg?QfKcT*8x%#y7 zXmv8%44Q>pXa@Fg7FIIJy40AL-+>;4_Q>G5M(tl%&BI?Aw63fbm?07Lfsm(K%Ae|? zo9mdcsVkT)PNV2xiKP69y2G9Hu7O&^2CeoEWhQ)&L0PGaq1@&V;Tv3Z`q6a*{GO60 zm`4qNx#OX&`tezK`Q4y}24Qk0dv$M_AwZ9lQ;flWt z=P(`(%NZ#~<*%QuTtE2nZ;iS}fFI)oAlkqkJ?bBdKAMXWa3(x$@qZ5%CcAJ_g|Y98 zfQ=uPr#`N(P-rk2(HeJrC(jgH5pfUc@op2umPX58R4d&=R}MOUJVdBAPP-b>jl&&Q z6Fu0D{=^gPOP`sEvWKchMQX4Mse0PHx@bt@cUg32~Ko*Chly(>A^mu{S0{LI zsEEdm_LyzsT9L2dGb_PDriwZBL)hc0;1GYGG>6T9s_cHx(|=fJT5}((WZxjpCU+}aH80N zrs?Y*mHTa>COlm5{E_vC8> zfic<7kmUDd(oWYjr($L!L!B->-Bx79lsNO)N9LaKhvdA+aQ0G4v9QU6>88wWh%OUDcPF) zq8rlE<)f4Dj&THwl=K{xvgl42ZKSR)9sEaNLyBfV?Z~RqB+q>d?s~81v%_0CKWqiX zf8H1+Sfy?5Y6F~n29iE9N%kl(fnR?#(CxgCzN@$L1_!P&_hRjrXNh*xL4MM^h9r^C z%1~Y@$MrR@k{HgOinrU{b^zZbq#<9p*(LoeYkUv=Vi%vOv{h=-EklCgYMbbz9tX@v z+>Fop*>Qrve?oNT@Jvxhi(_|>loM$7Yvi5lb}s@=8{iYo&kSV*Bl$FOf%i4qa?1K& zrL~eOJESuBGE}sXOZ;{&7qC6tXnh7*;kH~=%FB5LXk&8Nr10Nfw2d6hym)`-`UA#2 z;h}OR5zI~W-ubLDz{TOCU(@}4o;&+@U#oqinR*VCz+y*DED!$`tYQ9543~iFzRdo1 zjXnM01JOD1MKYmUJEF>lMAX^Ug)&Q!1!HQKiQzA{W@I!K_a==s?R~b5;d^D+5Av}E z<2!UGa=NH_)cPmVzC0$n%$Wy58okG_>iw=~lU*NBIpiE~R^Mea?qDZrPs%RH3=v7Y z$Do6u)T-gvm**B+jIZ=nY{gHPo}65{sQkm>7+m}Yx>s>qe1ym*%5Ho+c%!d{j}<+R z%*XNbWTf*eBElSeqf}g2Mt|*VdA9G@1$|>u7Q7}Y1qCj|f z&a*)mxpr}%XjYb?f*G9QC;{=y;3Cd8TMBeuL1unKXgvS;FmVjczcZK)qCXk5Ytxou zOY3GOCWkK@VMjd?uY`QhF~_ppS*F=>jdKjk(LqB(l^r<1W?dML_Cb^6Mp{`>dCTxC z!TD!BF;_G4oR4?kj|Y3~3mW`Y`K+CaXmmqKXZE(5E)5pwX)AjQ0B&LieKdrmJcqr!MlZ#^5oC8dFO|j}u==F@jHhO~UE6cosKPyp)?dBxhpqq_}E1J zzB*MPlY&NX;?apk{Y9NC{%>i1(b$s|nn8U`iCYL=y-~an3rUUydF8dhSJ(#1mN5cY z(2=gq+5@5>>T3q&EgX#2_0Bb5`Q4RxOtpt%EiW2|q6KuSw#6k1!Dx6^&tY>Gi_rP4 z*d5;r&R^{93;7*jt}{~jGcv@J$~|!i#&Mh~{bgFm+in|VWDEiN+8SnW;42d9%qn_i zuj^-GUz}pLgHIF$%3$Wbb6(e^Wl?8>g5LW7P%}{8g@0X=oCe%fPcTzW(+Udc1M5Hp zPt?S*)>K4ttF5&psYm4!(%B+_FsVhz&_ZiqCBOTB(swR}kk<`xXEa(-ZPbXAFKvaj zDrzDED(dsyGwH=mSESTw>&R6mnC6m+!-l7rpnKV!ZJ2>bv%y{)8blU*S*ymtj5D-X z!h};)ba9U1ZKsK7L))B8%T@Sg)}e^V=_SXY1gFq zd>5913PyYtXN`4nW}k~@E&VD@R{d?Fyqzfw(j_vV)Oc2fDe!&v{{4h(Rs?7J{~yE3 z^4d|;kB|&wx4O)+$kAc+DX=%bwsbM|47Qj$G?&3BH?Qt4^@=t zo{G-Hs+zSS@RqJvP@HU=9(kTF5&5w5|DM_FYOe{}oA+WtxpG0egEQcmTr4Ml`1*J=cv(aE*0k0a|F_eRFqFC94I_`NDQdz`+8 z{+0#|kfswfKX-8f+y#*9wf#f0Bhe%m^}f)i%3LbHn!Nm0Z<7Rh60nY$Ly|+~YeVbi zPCg1aw^-&+WX(;x9ydrLxS^2rYW$L=xT(*5l4L6qU(qD~?=aI!v4=C}U(l#dM57#N z7S$~>c}nJ|ln3b$zEKZaT@{@hW%7X>AlTe|5D*nGD+cKr!jL75KbZJlKYKb`mNPrg zD5`1qE_=zhVhMJ*K@Wdu!#9kE(N+A4jORKlCiJWhUsb+HQgO!YDnpI+5GVnF()ODR zWE#QsNldtkrf-~!mq<2jYj@?tf?4;tT5sV$@%-lgpFusXMgD-?*}5NcrOsMIolJ#H zMHB7gZskL=-3 zNMyReVbL`kQFm?50U-064w)u z>ZId%LGQef`Xd1zGe@CE*he3tIG06K_rAwE+(haZv0qWVY#hPfwH9&sljhYsWj1EO zF8t^Sj9($Ly)>W?K6YE0~9)#InC-b63P-l82tDyz@v zB00N0AHTofc6}B8Xd;pAz4w~~*{Z57HAB$rI{`_J$IhL56LrzKIJCa5xUMRkSk7b~ zYt8cQc)|yZ1-9kXGd=AGz%TIG(W(mve$KqovGQYKk-TyAJr;xl2LcD#{B;c;vdy35 zy})u_rjcC=nmxbjY7TpIL zWPyw`4}!qgpb!3D)Q`8UhJ$m@tFxT=%v=5McAF1a`#7+G|9$>vf&W?He-`+k1^)kG zf%diYEE9WvP0WxWdaQdzdrXDp1Eikk4$W9fyNfSn9iTZpLaN_4*z^*t!~>; zMy%SJh@yGpt_uc>Qvo@bHE`4BAXdfnBc4<1${?#dSt0*31gM$|_i zYltuZ@Fwg+%ML1sLzj|)bXlW6+}kea76eXYIVP|@mqoPV9E0iF#AiO*FL6$% z5AFNBh4(XZCfZ&%N?|d1Pgj&8Fx|&OEwFdO;Pi9wgc~++wrFh!s zidHBFb9fCrr&$>XD=WPQT;MhTbCnZ6ctJffBk^?dmDWRzzNW{!6T`HC_fqggBT>8x3xF+JUG;7RpdEcKM3Y zLjmASz_T2dHYz_(GSD8P%<$;Ry((Pyjt;aqHTJXAN(*#JwC711hZh};@S}dPG1RoY#2YE6D_Pyib+j(bV#GF_HzIg^ z$L_&@T<(~_58jP*fz}^Pek+;k!|PO#(^C*W`BS)?y{9bfYh~1!!a)tlA@`AA@Lp(A z!8gfL`J+_=_sl9SFW*neIfV2b-lBr>$+cWg3WwJsJTXOi(w=p09p$PY9H7Fk*@0e4 z$Nqatp{H(BJf!CkGIVXld%&CkZqM8xz4Jrc9b~qb#|)ScGHb_mBq0N?{~S5fai!Np z$r+^zgGm#GLz@xK&2^cxlr)EM>s|YNy92d_cl4-H)de&@R6hUG5U}g&>TIiBEuNAj z=z&!Hfjj4dkyG`4ddrT~N&3B0>ro!h$C8WUBK0!nO)ZPJeSjMP+w>#v97R<(Tnd|c zi1lz~nq|=%H=z5_fVzgf$GZxrHvK~&6+Hg8j0^XWvqTx!?#9G5 z%zu}K8zx2#)s+(7w>P&UItz^R#t*qs@-F=WmbMD{`u1Gd0rB^J^JUO; z8R8-DhzX;x`1aSlq~lhc3tA&MhU=bRcA$O8F3s8D2mk}QKrQw9`vKZOtQj*Sr$f3G zZa|z|!7&CNNcQT1+BzJsfh$K&&z}eY{(Sz|F_nCi$|a`v&Hb$S1I73BsK(5N9RrO9 zl8#qdRQf>RTch3?6IMmd|GTu{gHhzZyY6A6N5QC9Sm;*LDSztj(k6F%|I(%g=Ylfs zL&z=nf1nyiLHz^y@s`gIihxPKFU^s2A>oP{O^}e05GFLMiUue08=?w6EmV}J>qhG# zX7$~kIV!y~TAL`|o*1)KJZFmZy>!8#__UAup<|#Rp_*mz`O@!sv zIhN{))%~JhVf}j0mJVn{u(jxxp14ifwokA~Pu{X!Kv+YKkZq*HcJ*p}{t!bW3X&(9P@B8&GI0`~H@;xw^{u5STt!prI6IxgB55CmxQURHhM?It(1gJnLz>uQSCc5jH3MK`q;N-qRo=VNh1zOB0Pj+UnkN zv0e%^!Ns5grNg;hiL9#0dXDqI-V`I^M5bU?!&@$HNZ*O&-Byap2$BTPS^8a^2tKG- zZ*W;}LEGBj9&q1Ti-q)JlQiwnH7XE4c){*wMe0wT?As`OX}Ps%4ko0+gMkfC=P2}l zlgQUepKj~6?922B-*uSw`E!Q4WWe^i_=d*>cjLsCugp7WL|}*&Mqn+aJ?xxPxTG?u z-?Z*d1OIlN-XHl1$p$M8;xy%2{d8^pQrKD7hjtAY5=|9WPHmni#!#ol$hL}H^6%&? z>)QeK7w#fGZz#t}NlpJQoPlC@2G45jd-4Pwc}m&2dDmh(Lpo=|XQd{=_7)GUW-S&+ z&4dsbO{R?u{i1ojalPy(`R-^mPwFE#FK z(D%VRUwG&%2;njZw7Kayiq5RpQGOwZ75i&UManSEG z?GIH@EJeqz$V%1=X{zy`!k-S=38DaI3DCJ zP721nfTQo$8T$nm%x$Vq&Lf%^OtS4^OU^W^CW_bl<)#v^Wy1EZSsxdUKoh|!@4xeB z*~Sr~58juM&ypKrzJnZ+GrrHC*!;G^z!P?yfbz}I$*#A7NO=d_!-v^lGxkG6w5wrR zs*^N7LH(rNV9v?BHQUr!nTo+pZbH9w+|L7?U(XZ?8B!K3psr34Vo@V;d@ipF5fOAH zj!1yNBfH<+ACI3nG=$gQ0AK6kfhlHeMb732` z@VjzhGTGnfX0H@aGO{n^Ks31_PEN2%b;PprP?8FumfJS#YW;K!E6d;MtVJ*D_bXls zwfH^`I|sK+&5de5{Xz2|rax8!Gjr#7_l{A!Br2omJkMN@;w zkrVj!XFjYW!Je3Umm1*sshENLCJ;S5s(A>3TNc3tHknp1OnQHExe@HKilK$C;5U0? z!GRqN?!M?C$4YUVg-kI)SF0&}kk8L}D9iSJN{v^4#ol`s+wt?MbwBHecN)|_z6lFy zk&dMq36U1(q+gPMHIAsS6ZeDsp-sM?|ZC;J*m;gQ5-U1tYA!z52|a@I;0SDwj8+4%zwiZf+8K<9vRnb%WX;y^R?km=|*VbY(%gdj=H&yC>q!br+GDb9=r%UhT+ z?(Nb;e5bH$gT;HK3P_9>wHG77USv!dahVAmae$qbu&?WS-qvi; zEXU!O7Kblte*ZNPcsbT?ybLEb%zxX4FxW$YcrW7_+Cwi5HTY=xir~*L^5l{|0}iB> z8llM900z+$pG@||3OEk8CLCIOgREFtCanL|x~7l3V6FOgsj_Nd<#1(%VL&+ycB7q!oOpw^=(fI))a-iSqtYa;ngbn-IO4Z0{O)HWhqCu&)YzJytOy&%h%0BB zmz}NjbIA5fyYc9t3!h%}cz222j|f^jKZTd6n09DA1NtE^*dwo<;3?;~7-$OWO7+V< zbCZ;DbALp?-pYL8s38%Tc-^I~aiXE~?@ zLm5!skTT_v(My@JEB7|NzE}1-{W&v-{!L=O^VZxMKJ=U4d~vDz$)4g;+vvVB5yxb~ytWBNos!UWdV+!#j$8U1mVx+HDrgZr1 zk71sFYwZT=@OZxlMJ^SHT-Bg?Yn8HwYT*OEKzO*9oa>?>qDbD8Rjwr@q+!1PT3c3= z%UXRHH|uV~_Eu9TW&vF~7XSY?`r|vnwpRSH1^0fq;>KTaG)-5GFf=}&X|4y7`4pGU@ zL#pGUSPXO0a^$&o?{lM(S9*;_7mXuh5)w8>8ZHif--DJGdP`s2s0i)p|BRU-cZWhZufECx6Ya=r zVbeiH@Z8EO4Rm0b&H2zifM>iS3N=KDq>5!GuB?vmp}n|=#1U<_j*1qy+2Vxkr#3>#H()b-MAPv zsM))u-@9bnxJ0sF+p8RD5~#YI`nX7R{9dgDq`zUNA$@~gEm~%T!?|D8S=lI2py5|Y zd0~LP*gyqO|EP-FQh7*@ZK6=PIJ6K$rt}vIj|Xdl+~|{6}=U_DO;i0P#L>oC5&`#3KO8D zCp!BUNoDb@H)I3M3!FY`SvhVjDOEwxlZ^z6rVHLqZ!)h|zw8Opdp{%JiT+cbm@s;tbJ+az>r+;e07Hx&21XfpKE)mB!N81 zlVLnd8$<4h5MfzYcgtT=hIk*t?sUXXz42UwZ8E8kabO8AFZ8G_raK%O(6M0bmOaLt zoflLn>TbP|iCJ(R33W4(`3&g~Pm~CD;pBfEc}_^})T(EN0j_eImSeJv+uBsdFr~>g z)2^W4qBLZljNdhfRDUNJ)=$m8o3Fj$W3hZX_Q-d6V+umx*VC4R|KS(DS5M!NJK@@Z zW8bA_H?No?1~oBQ(!|5l8th4$Wy#oKb^~XbzKKPgB>c6XiG4S{W8F&9Vr%x4)6V1r zHGH|C!Hh^92AYLYR5VslHB$g5Vs<*dq}aE1sPsA-gc}+pq0fAHLxJP^o+l67T&Y^ybtRvf z7Z(&eN(f@i$EkQRis)An)gg5mvkHz%YGcRU)$i?OE+-(S&yEg?5-9Q zcJ#$Ue65N;A$@1n8%y>UBTXUwFbEKFuyssQ=e-?+NFe(R2K8)#hC0TH0~7v*gtZJ?um-Zdu?k zzp~U_>Gb@O%9@lWHt!lWB+%^dY%nYt%VVyGsEyb3BejC^up@sef0=m`w8Cll{^~Ju zC@D*jk}ED=5U)1=8RUgtpf8t2e*J`GFEdR`8CUt!v*~ps*DPQmP{%N7)4#dtXwDcje+hZ8ThwST-;M zbLa!N`K_lE{PhuAq_*r_1u$b(RHJokLRWTy`}Tt2G1XS|4f0jpB&w~Ao<^ID?yR6H%0>}U6*&~#{(SL( zTny_G*jM;k>;Ht;=FAskp zj8IllVOP2oMUcEhvoIzaquum-w+&QrFgany)bDk>Rp(!?V2-_Yq34QnLY80Q^?8aS4U)A)+3cA2?ti~hY`jMvjv+qlVl?p~VYqa+SDG%$HN8UXanXy`vo`Qdw zaNv0H5E?w+Ne4>M8^==+w)Wk;C|Tv@v$NVZ>k*}p{%I1-`zE+v=&SOfJ>>y(xl#Y$ z!$ZMi`wM*P?1Ltbil$$(u#GCEkbvlv<|z{cC38PnEGmPf^{;_rapcA)%&PQQWb}VXVX}2)q_CwSoA&-QO7|<8 zL$XWi&1Aq9GGHW;qst|*bS)b{HmH+rp6_m>nWbhlB%mFF_gfmIh|P3ohADo+M^|&I zCD7;<1P;g|0;tyan~W{(AJf-`v_f{d^vbA_8PSW`qmtdk={9w@f3(%v8u!%4VXB1~ zU6`mKRsc41c2Ua;vS+cjZD{^mPiTCxH+C6*Bk>YpLceo3ITb(4uh*f>mF8!X%H7A` z$#{PxajwOV1=+yMJ@*YCkuHx-T>a9Y2faK1d!e1I7wqNOAfG7C<{La>KI#;NWcaRU zs4mg|Wc>BoUE>&j%jl(07AI{r0yFI;2Jg76C#WLmn${9LLxJ}fQH3SgMeOQfyE!A* z+_HDD=NZqzk}-WTYrr=1G17&-%+FOZ8WLFd$T*+GKcBs0NgT}dpm&#Tr-u^!*npG; zJwp}Em&dg`F?jnZNOoSpnPYiQ-9XEK`p}omfc?!o=Ob0?KIDc$;R=jT*Km7PHSh0= z4oTYDzOpa~yvIw)MZ$J`Z%c_}G??3M4W?(cMn{;s!ghWMsm26!O?81SNb|1ReNA0+ zDESP2$#?#L@f@@AvO#*2^`yVcS^--DFMh@q!gi>QxI*o98>aarTw5KQHt8T) zq#12f-WN0b=L#VhTV7Yqs|tfx1>cyASh+wx-x|IK^U)1+V*V`ylJ011jJ-R$h{xn# zuV;gM)=BUiU!^1m(?Mu8RpWq7TgZqh44yN$Zq~a5n7p9Re%PcUeh6PpgIy*PC!Id( zEw@qTpwj8yYqrM$XlADsB0<832`ygCoFk8W)=cl&_O?Z(ZlF_tT6*Ec!7sg_53l&k zdKnCw2+_KnQHkW~D0#c>6CxH$!C9h=l=O64K=n2W*n2!k%}!0QaErCi58iQc4c?NL z94`wh%}B1!6~>T%YfC-HFU-+=9-jQ$AGyAX`ivm&X8gi-ooR_2cDCrs@;PRD^6LuQm(|K(H_5s69bB3p(7CeVWK3wgF$^^VpSL7o}PG{`jfk2NY z%$LJvR}7jbSw{A|giSYi+(d4~w4vIp%(|65%o$W=FJ^1!S8uKmj9OigGOsZ*m{-f; z-;dPowPQ?6Pez>t2y0!Yf%u5vrk1Yu+I8uG6OHr~)gCEsNy7n75sbF!4qZ%AtFF!E z?9cYXLFuo z)`Kl?8S<_>mdk72RH@-w9M>WO!PX>ZXc6c5js%#eHD-I{<#TPR^^0 zRH0QI+qXXNg&iZf_&yY}*qi}0BJY3b+LbOU0al0B;RD5j$x9hVAF9|k+jB89D9@`` zyhTZHH)h`=CS##*0O&j{MBf+$bb~mDd_Kd$85Clh{uq;7*$S^H`Hg0THWCKqo{oJW z4lbr`9|Nq$^{aDBG7DcDK|?Rk+l*0V95Tf@iABlZWCtHNy52F1v?(y~<~s>7;kolw zz7o3pQ_{!8g|U`wYtYrb=Z*2(BF`EB~i)N~6q3>HrZwbm4Ijn6g=2d5}?uC&r@ ztmoht9CE*&`#UX?0)Ba&cth@ovYJX6=kPT~JnSQ69T;(i%S; zYIA0|gDO;G8-88>iVY;}ZhVN3iq%LoOy^m3Z1@DF21vmm!$bqdOw|^k2|lSjYzPZ~ zW-yKmyYUsff6c-{+vCMTVO|tY;a=~WXJ|3a$-Z-^6gRF8uXoZLnO@rbl-eg3BY^-b zn+5D?4gy*A?i1NjlYBA6V6##uk;o%y!~<}l^rnv|BSNW#qpF}hii?m};t>NmcMK-V zKSGbZvUSUic6_3dl_VDEnL!-5<5GE|&|Y*vwQIICxR+_4lQSn1qgjZpnRnwm2`Zuu z))5!ovqm6+MDcCSnhoEFM9HmNq1}}rclz)IcB>}U4PBy;ut3+c=5wsi+CLDgvS;x@ht1pb-;dGsKCk^dCedIk5xiRw6Ud>_yJt(U zfefd8r(hiRbbHsEUzEu&DvU~u(RVV@cFXrZ5E-ZfmgX4WBbnxvx&z>2hg?>Xe`(L{ zUeo+F&(N*CJoUPpeTz!cb@4T_AN&YPCE+jS8BZO2t5c)-(t5Y|CKq%pZjjT{D-)d& zwg5m#7325p+OgF;i3Xb~sFu`i@D`(Xf3`PO6CUn9ot}D%snqD@a#OC)3#N{Bv8^y_ z=H;6G*k`CZyvubs%r;c|U7pvH{qn`F(oxh3I;2rCZjVGVU72cGY=C?((-ey|3BOH$ zKUAs`XlU^}+L2Uc&>waSd__EMsoib+#tt=e`3%Ug5S_{(k1__uitk5{IoHHUH=>VMN0LcU2-O}@|tZ%RwlxfXmnp6ywM$!=5i~uoR@iRUQz!&?RYi9ukXGm7IoBcMyAk z^zbEL&=c62E^lz(Zr-7>-}ZMt5d^)*yotQe(72j)NOJ4=Q?xVw28dX#OWwkZd$5}} zmtom~l0Ykz9wICOfNl!L=$w;ZdM56hi_=rDvbSm{5VIkg=bl9$!mj-bLdH=P3ZE&N-Hhrz|n+Ol9 zvrQlz1k|14K`OD>*&0)KtuJ@;^>LSP56sI#5s!ut&&kR)|z3zSvVcjYC6b*Sn zkr99E)&;PwD%IfmBkDc`2iWHA1q7+_{0XCo^%8GzH}39{o7!jpW=|8 zk|Ew>SU5rjz!m#oPl(lgmvEjI02-NlFKry}eqM}Q zzU95=ofPfYJ5mPc(#`nF+Ud_JC+HtzWAU)cH81R=v|1O5>;?ajzSG+I~_g zwU66?vkYfxQ=Qp|s5|}S8;v{;S^ndVyjr{8x1~)hVAs9)O1J3XkK`vV76yIyM9bzp z#X?Hg=5)MpB25)8%$7W6cW#^qHRMUV^W^wJk>C2mtJq&RfQGaeprq^1gnX~IAd^>T z{TW~6rT;DFHurOXUYjaj!0U#oX!i9wrW$zQC22GOpkGC06B%XGvg(p?F)S)(ua+7% zcjv3k_u4mmuWo`zOCS05+trnR+WN_LYir`(6%xL@SWW88Jak{z-@d!Swi8wV+I8sKFAe{6D7R*p~jfbNxrCkXGZ;E@}$&nu%yr%^v5d)ZIjfl;jt|XXitve*;n~1~aOnN_{ zy}Ff4oUP)Hy~Uo#HuUikfMUq_t$H!|;jLOV<$ZO}4Ta?Th`aEHE*nf@p4g6=`PqrM zCf+8CI(^th@GaSpv;`YMMDnBb9oueZ<-7WMJ!gl7vopIx1HC+|HZX3+Gv+s_Z1=si z6)_TSb`f4K;jpE|Y=zmLort~T=TrANx+CU|+zF1^pIb<*y$w$oJbP}+vbU{t!BVK0 z7kHeMldEkg#2PRh#M{xgXX^;hz6(aq@v=k4y8T<6ek(}P+kIQmsgq`2FxRFwLYDrYZl&sEmt! z!q|ewWZCFYJ}DiMs>6a9S$!LO9g!m)(D4Fey%1ShwR%~`arrv-v%8p0rsXiZ)urg0 zpwPkm1e~UtxmTi9zY-;VIVyb#4K&#n&hl_`pOf^Mm}P%C$+Nhr1 zR%L5!do}L4Ib=clCDAJbP-Ep9UI0ChT-;KvFu013d6gCGowH~m!m^`c{xQiKoB0cxok{F-=g3;LvYR)xVp(N;l6xICn%c+0!# zDnZLschK6g!NgLkNNk2a8?}(YIw&Fq0quMEl}p8X&JKqZ8cU$)CIBrq_j8p^FxPW! zC}GG#uJzNC!!2UUYt8b-YufZDr_7XsQMK|Vx!+OCkVO`+@qA{0>8G>RAQQMJlF;R+4XO-H_FA zlr{b0fJw=~)F_mp{#psqH*D@qax7nL0~RGUi@770$vhFdm0l+HX}8a~@>-dE`K?Dl zwGdJE4K`XFv~>)Wlpvs91b{Xy!gbjNMBmN0A*T$dm~RUvSZ@4TJ$tj$y*O|G8=ARm z$Vo;&KF~3joiM5U2=n8#URe7?-OZ#I`*T~nplcb@w!A}8D#YorHBGUQq1T=Y6=JJF z9b(P>u%i}*C%BT41Y=$!98bXeVlf>fvldB#SskjgMVEeg*J`|K(Gq;CSrT>K5$+Y* zMT~=FHB^rLLFQqI4p=o+Gr!%(^ff(fyp$xWHhH1Dwq|&7>*Z7>=2v|v$prI9o&zzO zn(Ou=&a`tK+a6E^HjzoipocLON;lD7d;%C1VWg}#&=Qxq1GPwt{pr(<&Cwa>z4P%M z(<^@>&H-G8P1?dn1N`rs1{0FkexOL|`GOt7l*#1Y1A5zM+lltXngipiw7KL*lLb6O zdM82rr=7E2-h0AHEt3BjGd<-?=&P+$M(RoeE(-x2+|H;sv$SmurgGsT)yTax`};Z0 zRn9>7@jOu4Ym{Yd){=y~-M{xdwxczweLS}JxuBF}I-<7jB3+ONo1xNBO=+p^Fn)+H z<)%X?4=b9N635V%8}+zbdCGhLv#gRhb6pK7rMKhzG87YOuF3!`Ok%D_pb@kJKes5z z>is5LDl`NN-ww?ZeAZuuF)6bb>mf>f%BnYkZQ2h0jI(ZndojCQ03_pbgc}u>rYx-; z#sg|L=o?vX9DCM!gL{}_=)ZB;582I63rcMB6_w2z_ATiL46(~Y)jhSJ;!xPxgR8_9 zQtNt9%cJZkueP??XvzjBX?x6Di({MO|4(h_;;@RSwunFH^vVXid;*>~!w-m-hFp-i zymdea=;F{=xxBOICgoURGR^C2wKOk?GqSLIRT^DKypxz$w_zoy%)?umC@D1%BxQFE z7-)Ko#Yb{dU28mxFWp`@{Bv7){~wzbwde_NrTS^TvomBQIg8#{u%H^#VXjg+jkmKp zx&L{Teb;*=8+L1oWS1loFmIbm=0H_~*w+3So{)9f=gx%dZ#J&p5 zFUcf5|Fn8$#o+xvgW}jCDMRkqaI-5bm=UI7Z`p)sLGo6^n*9#JlvFnk>fZ66I0IU@ zjQsTn^Kb6Peyq5{3RQPtKSN95D8w5qyHX3* zfYJn+CuHw`P4JW$6qj{(c~gxR4zK$W-ZWghree3{*<)zm&G0bFm13GeT*(9M!RYp2 zM45uzilfx|jHRLjrwTl|KYsjBuP;kU-r4QAQsdo5zc=ZzX3K`XBtg8`^hDdV&)&|2 zIVnx3@V@R@o(=Eo>3ItQ(x1A6xEubsHhANQrg45G5jAtU@uZ2-IKNI%m(kWt2WjY! zzT^r=9DdTS-YVrqs>==xB0+kZN#F?ZOq$1Ef@n*XAFMGdtM>LP780~%MWhCg8Vx?r znB7`*tNmIIY>Izij*`?(-QFn^`iMLIV6q7v#65El%UIwqPuO*eQQ2_9w3;G|crO>YP)62m+jLBd9RStD?oi_222Ab$`Ucx$&b9znvHpZaXV77!OW22aVIBv zWLv{8lF>|FsBeP6k^cG$UyJ3M%3Q-G67{ej7*k)${+u9i0fA5&;AO#h;;vm#gEd@Y zY?tJoTMj4$@cA9dLVhOo4aNfea;GKS0=8Ke;0gv;3NHa%509_T+LN)lYgWuN=hCN} ztJF#OjIF_S0niXr#xInKS^;hPnG`!EjHYNdls^vXADak#A1G!xD%l?6b=0ZDccJ1T zy>U*K%$iGt{)dapW*qz$GF7Fru7_DX$I}s;jK-H7YXivCHi+9oMVMWuA^-zL8jAwQ z%?Yzx6$-S%meAj2&L8%(hpdD|^F^6}cFVrO;i_83(ZK{)h1xk3r700YDg+ApY0G6n zWx3Qn50)&gD>Ol}Y8Lr?qlisqRC8TZe5<_9Lu%w60mzVSubo0-0m**hf3 zCbw0vWRrkX$n2q@#)8Da zYeZjVWn*2RNnPYmGtUylC_!gh&lT$@}ctCixcZ z0YWwU1O#!qwk?<>HJ?5s12mYQY1A@0^W-{(( zCU51=`AFIu@8wj+8|rjW&J#=%s#b^|*3D{BO?jE!$;EjSHe|ykz!4wrg`r1C7Q6Y1 zqO`6fR2P-lo^dv>@6|H{3H+O|-$<#)I|s&ag{aWBszQ#?)R7Fv)XScNv+u`kAY(4e zx69*X7w#2(Wrv_jQn4vnXf@@5-M_^c`-888(O`7Q0m#k%;Nj#FFrq!OzGh5zY1^FC z43V{{wiUl4$(`Q6y8~KcUh4P_aGyn3ps`()I2Yy4L`3Ygh!_#9)h5p0{g;uXXVUT;a!9QMrxG_n){+cNc_GEUsA&GQB4E#VF=yN+KXm?i%iWgYO zO-bTsX3kK(VOOTvqeGl8Ibf0?eb^+k!X;urfWxtdSPIaaqniCXnhcQQ8|j<7p&OnA z$&Q^mBSOB=xSynMs#_+5=x3Epv6!t7OOH-Vib+IpjYUeHgTvtPK0_}Id8=mG1R9it5`24jU z#!`Q1&Bs1i9DmU5bT|AC_S50xq1ELlVWFuIwLbbSZ?xM1PoUY#eduBg>UZV+5=^y( z15Nj#E6;GFEENC9rn_=$Hjla9uZsP|b!(^0&t9u%xkVwxBx#0tTuMN+v7G0q0Va_32CNn5f zTn?v4n1lE0%)<{33$%d3A>q#DpeyG#)JJ`@&ma)Y95VB3RH6jdWa>&U9v9m81d9(o z&i*jCk!${vj}*~peY@atpIb19^2h5WEO+a@-2XAUUujp`DYyk{%Ba}FUx1|lv0EHL zBQ}2O^e&BU0b(|Lu#iQVPExMt zb+dnLP#Dqx457qdrj(+eY_K@=3`(2X{JisQbtLu}`Xk5zUC91w@=e`dkLM}ZwyYZM zjPse887I3eyT-ywn@~)0I1I90-DIN{XazF#ShBL$36@0itUnZzAAeHGXjsq4GZzBU zI%9Iz_oHmR|8dw{g6b=M$Xqrc>bVnAD3y_WdO_Q75!e?#*}F>>m|?IheFIdnyT-s| z9coO@B;8m3yf8a_>6ezVr2~MNJ==baWCLVx$M@^206&DoowVUoLMIRkvu(+^Vjh#> zE$&}PKg8^m8sSCExa|~S=8jKSvuAy`hI+R#umluRy@yfo`t``6(%&K(jk< z*C4FKOqtmfSz6_ryP@+fkCjjbJ_vhzl_4D=u3r<29{7zC8{)pF&0r);)pHRNxYIip zrJqmn1lIhJd{L549^?q;{OaQO-2AFKQ4CwKQt&bDWyp^S@{~eSmYlb0+{hJkjwO$` zREN*p;`6r0(!`%`posUP^+cXe37fN7E=Rkj!@lkZKaQ%2lfpr%dczkXiQ06D@M$^BtUl$Gt2&fkwZDuH|o9Glds<`dcA3ThDYg> zV9pbllSqq9q{{j~{`=Dhw+!CK=?sAo_pSBE3v_jEu}-aA{oPhvAPE<$35lkrE6wfM zCqCjj@ik6*TC(e_zDdE~intQpkKK3w(&T(~E{eE2c>M_O&MXf7#aoi9{MyS~QDInh zUhiI1=zmS+E&G6z^EK!~lq-j0c~2p4+mL$s55l7_gsZt`!lIBTC?zFbFR#nUx0^RF zyO=lp2vL*kJaZaeeP0PZV}}SXA0j9e{d2B6GtQ3iZ&+52<8D5ZQcz^a-+KxE6 z;i49LqD*LOU0%NdfvzgW)-2xOdWeIXmMJV=_KCXE?#O9w)AcaCGrE6ZRX21>9rP~$ zpA&_pUF=EX|Bk7imd1+)s=W=Gy!L_SdBFAA-ocy078NIoA3t{Mst!?oXUJ*PbfuKa zJ0TZ}^***ayt4LVziM@ek<1nxxS5+}i+c2B{Q|^^%WgtL(Iud`F}zR9g5dG^*I>UqZMLd;=Qqa44c*N1Wc00XgNd z>Noz2-Z~jHn#gm@w7RaXO^KnB>huk9cV2EJpIE@U>T|QZyzbb%>#5zo-l(I{Vg+oI zG}th>l_LXv4V$~%e?XDSA-`>I{jmCIc&Zm;S!lCd2Y5t0b<*$QghmNm=jg&*0_dTDj z++%~0Y@w4whF14o{~JYtwR%YHbBWN;2h#)hi<;ZX%#F-(KF3~)X^;QM6wbSCnAZcE zZPG^aPQRrey$-+VICaw6HIdDnDS2;Rs6~KrpyDuIH59LvE_o;MQSh;~ktQ9byoCgEltjuVB9gcpL@el?x6S9;wj5S9FP z+bpH@EFtUEl)uCsH;QmA?DqPm+a)^;houFdz}y-;PrdKi;=Ui)K&j!oH@Bo`do zR~E^2m}dQ}|JI72+iqv>eHgtxWf5hXcCM{(f9D_n;Sb(2R!r@@a96~qn(zwgNIm(I zDxAsnajgC|k9Kwc`M`46 z2Fd;SnJ@Q@ZJ7S6=`aiTvtJ(Eq6}VJyj;eQBy}9`YYVV)=fZd@p3RKgVwDbCXVpLd zEb)CQ;$;XZy3(xZT8ZPMLS{|L$?mXs5<0UhDT;)CwC4@EhJc*u?3f_arMfKBfQPX$ z7se!;zvR7000C|0zHwi+PZeB_x?_Va$G3&HuRB{j&bE~r?L@AX^j-ct^xvcLpk6Rgnb+QRi+m(r6M`N2kFZ3EgR(l5X8 zV40`DUse7dJdm4y+XUz57Ii8P!e(0@=;1#xcJ_>(?a5`MliuME$+I8`m#IBR?|#+L zH`OjJR&^^)z)9l%ZRfsB3`t}}?iMj34Nii==I!T(o<8TuOt62ztV=-KQJ-ipi`b+> z_6K6`v*Zp>^gcwMjII3yl-NKD?2<>+g^r3A?v6hjy6<9cB!*XemT}l5b{Na7Ff^e))Wrcf;__iKk{?f*G{>v>;t+FU}KkBMqe*3xED-3nGJqIscsdi}p(j>7B&W8glnE)*Z{_=QZlV?|9dwFRD<_nA#2uz?S-c>Jl z|5;g5b7((a&jl9ZKd;DGE0ivWoa$RO^~s4Pfm=(&%VXy2+RqW^2t^0d8c$vaSFn!X;!cK?H+mHI>wRJR>R|9v<(|sG6staaL*cExaLr}xiVMR`7HZ{*r-?^5|2!<7)Yi<~y|Lk81& z_o}o*m;3e4WSbf~i5lbtJC=e<+GFoshYN%Qh68pOgx(oNTfmfqCSz-8Yp}8B=niZBA(SpChGxnVEremygQ+1)n2Cc4V_l7v81vN`Pj-gA)A=rGxL;SglbJ0$uUGcpl+5s(4@pkhU=~v z*-}cgm75Lv^e}nKnnG2?d8>YK0$xKx&0=?pGkgEk8Q|mrfe1p|>lrs&pMS*E>COaR zA#VyL+@wQAF0$iplZ*Iv_~Ta{=MLpq!|h1(m!v!d`d@k1Acdq^ne6VOObU>1kB4&d z8z!!Wdm0baKRj|GgR@O7s1sEPxta`M_JTtgAZ155UkZq81gplx=ex5hnG@%)n>@86 zR*X`uZ|Qu8vN}pGZohx#JW0@N@5QX9K{DclUg>mkso-0C`i>&l-fA$($r~Dt}G8ZaRm6 z$7S0Cd2Bbzfq)0C`&?D_lX?yhIfdmPHu5je=#NOo!-pq}thEW?HQ~06&TM@6-N7;O zVirmJ6uMukQiQ+u^l)~<_k3{l?bc@&@2UtrW(Zoe@gwV?QR@1hlR=wNl*N+!Qee&zie?0?=l~m*Xk7tF1A{WEUNWQP(D$bAhxf@1${Jby(cs8`dbKp>?h?YMD#SfD>_1h#lB^u9KlUbp^Jc zR98AyO$02BW`(QZ5N~tzgPTVv*==2tFms>LW)0f2D#4#R*B7O)3ls?+?NL=o^2p;5 zn_^p3Pn4d+2n6#vUkh$fXQJJ2()tAtx%xr1fV@9!f^I$aZi=PKpMh>|QOe_((4z{m z)k=4GIY{}TzZ;=N8MhE5_NAkl!tRmdEyHyEApHwxz2fV0bZ~aJ&nq53Kd5MPLqKi7 zXxex$V~aXr;pa8~+%1+EDXvHx^L{xS+(-dfzthN^q$88fDQ+s4is`a&2^%d7zcg%( z2K>E#5Y7vDv#!6CN|=E>!fFd_QCg5AdMf_frgK||kY!-i4WX6PMP$)ZQh&MWlvx(aeb$DnL@~GS7)3gt+zm^Hr%AN40+$;BR(xaO{{0~kOqjT-3Kx^ z547`Om8s(QLSrxv8(W_HImhW%8-!`_x zb50?4S%D>+R^cR#dC-;^+z_7}?_&L)g}`V(z3OhTyK5^u_!#hiSp zV(aTECDhn=f3m4gvC)5>nvn z#Jy0v^@ise2cKu*CJryX)DL$MkuBb%UXMJeHHv$v(8<%qm(U)H|2&%T$r#AF%OV!* zhy2U~bfJ2Cgd4I0!)XTCOeFf}^U^N*vbc0(n{_Je&itj>=ARe@SnZ}TCa&FZ~Rnn*@g zY@(0#jedOF^uf_!Hmy*2t5fjp>J0${!GgXLl}%CIU^lWS=x+8R+b|lxep4~KXZ}-{ zB*w6b;-mm|yPuTLb!wTrqF__k6&rhw+EE!sROHp15cyg9NzuoZbO!3S(S38pSOr6` z13war_fJWTG0hkY+hc?)3H;R{GWM5I+vp#G!bo9Tv3d5^+4EWXZN5oM_m57taame(mtXkQHAlcuxb>IR#~-!51ePYYd-!pJK8@E?npi?b0Sl-md#F| z-0bk9HYM%XuK9M-zFp0<#&R~37WvE3>1O)sFLO!ye!RytzJuR=*xiNJ<|tZ;e<+!& z*=L-w_7b$^s?=G`k9JvoDLAu#kROlw#*oHga77lPPfwRkF>l3rMh{&>(3IkkPr0_G zq(ABmCc|_C^e(?6H1qOpepiB%kCzJNL%l>8b^hW~9tLt|F0pSUYjr}@s4Qsvh(3~G zgU@7r*6wGgTFCq7goXIi%c2pt#wYCEm3W2R8;e=tZ6-iR=-Y0cl5X%~omqkRoDg%^ z{AhRP5Idl!*EwuC*5ITnf3vLM_CjIv@lM4sceHUWRMTAYB^F(PCj46(Rlr}d zIvm7S!}M!ipVk=NMid|B7l^n>OzEhHU0y9pS+l6Ry9P5*Th|e(TM-em^gha1_e(Bc z2GJjL$59_Sg=M^!4x5u$;nFM>!EslV@v=xi;WKyG*S_44`Wh&O%&HddejM=4iX8NY zbV~Y9pzfYo;_b-&5|6iB92H6GBX&X^#H>5Hl+J!XOu942yA5fOVj*K3w~=UD#TfpA zmO(wl*kxgh->`>C{gx0<{zOtsWX-(|@GKm1tLB_F3w}K0u6^3&~gW-o6w67m&r}m zL}dM@kXCw7fK8|&FGO@%xv$)A#P z9dx?9KM0&ja$?rBDQH2E*fdx{IJR87LMs>~YVK9Kh$a*)-_VVHqibM1CBAC5_4m0; z-`)Gf9$go@1bzD6Ahlpx-9?prP^S7uzxpTe@cVLWw~NEBVo>;8us1a__hi-P`&1PI za-af@4M}pPLhWCL)@$@5qx{-wVjmj+FwiH`FYg{gdpc@eBizr(Hlj|^3?GqdTp6J6 zwXnH6>$w=;;%6&R&ur52e3dy|qzJrpS=DbgOWubo=@#&yws!DC%BI}z8Lo=_J@}t? zXD*i`GU0iHspru;O@TSdohcwU=xX7Wz=?5}U>&sZ;+uMV2;pugh8-$zrL#*M&>kM& zYqNED!4L8`!}K=^4-MF2Yb%fjihwzxx71CYNRH6xy$jyNwP)TE?-Qa+`f}hhuICF< zkJl?i=wy2~RKIW6;)x)_Bm*!t3p(Lw$tm6S)*$H__XN#Eag<@TDbU007(S2hP8^mm zBkhF&8-4YmF}zb(YK5K(Rml&0m+~K4Yu)x_=yC>@KhbF;MW%9zx{Q1 zYivOxA=4vLVM;#w9?`+BR)*?Fqetjh7MkC#p4LfCE-PGLl7k^sEIM2NobmtOe?OBy z(+rRmpQmM>AR`n=o4*_;JpF#4v!%&-BZceo>_kJ3|cyLWrK)oL>t_E zL09+Yy%SfPR$LjFi}bP(E&ogC-2s{7X?Bx$nB&uKC7mGNZ*BX)34IiXDdB^`*?GQi zrtd+^2>VLsG{u-llq8pbx(Gh4NoilCbyyd1=eM}V6sx!`J?+Ffn7u0VLDHxcYYtTkxywEyiYm?S})cW)SE&NJ~d<55egR8fKORv7sNXJKb;zIE;ntX{6t9Hi^4CSW)=6{6t6tN)ZV z_$26WZS2?0d-|{teKS7T?bU9&BuwqblCnV@+=#}bV_ZU=XdHg`KsIr&1ehOyYz8h~ zG+GW;(MrE$vw2n8NQa6bTZ|hc8SEphg#C)4IASY(!{P7sHFs1mf;S{;{W#aSP zEykcmPsccI3ZSh+r2g5}h@H>YttHVgi#MZcy;*7n3k)fLUIK+8xx(rzkj$rhUke~i zLQQQNS}_9bNU;syqt{etWu*$?BX3=91?Zjw<|U4l}vnh@bHjs)S*oq`q^mSsN?A9*y+@4)~vV6 zE2{L_`fuN{kSlo&zfoq;oO4L|UOh*GxBOe3U+)-N#!}6@v{s;U3+HVt4y#5<#CZl% z!|7B7YEXAr5!DCvcGJ#R|g z4lleAjUp>43sBTGVplr9D;Y+4>NVq@cr#nqm)OWBwRWkhD zJPzlR3ahc!XHK6v5ct`%?QB5NcqKJEn*L!^scX$so|#9 zk^InWF{KS&+K|m7ZGI=(jGqbs7W#RBV@k>YL^uG3n2!2)j!MN>wtuoF52Fkf3l#e) zTCQH8T0Z{$<0pRp0?i5)hPUH7_1es5zIpdPm>n+s-|Don`)^BDmw2Qv7yhn9*&Q8G zCfJBHZynF3%Xy^#zO_ATB}+;bpN9V+=eO;rsIc}tov@z$76rX&!=ks-VB`CXg>$BoEB$jWimHg>yCME$i-bjBO@ zt-#vYb6KLnp6f>)>MR$Eg)%kFPmDV<5RYG0s23OdsfT+eZ!{PRgIj67F|=8V+<|OS z(TmBX#|Y1@Sh@-+L_biO)(-Kx3F9~`ToO(9Vt)7LQ;GkGb-u_(BU|Mwad#mCkbTX;*xAj?E0yN z^|e4XaCmOm>xLw?-l?Bi+E&gsF{B~63DaiW$RKM~D!%j{9MKm5!gtiK3$wbmzTLF6 zoq4M;xnRbs4h)v7UnrXRu3R%``SD%Dk}YEjx-n5fvPqqG{1|XuNt{)qZ0Xd-!$YPW z2v!_Wb=qOM3V)@KVgedLxkN1#b~LpU2)?0YP89y=%hc5W114A#V885mRGo6%dT|W& zX!E)!0lKz?8n%%kAa!xVin3NN?~0E-dsT~KTDl&9_^S&WO?&lMfW34&jAbm~Ug7kw zVoPq%JPpBq4L5=Vfr(y5bm%vE{?hb)QBjx^9h|U%u_-h;hck6aD-ChSBhV&4#M7lZ zgmvbX2M^}9Hw$lVGZnuJI_en8Seje75`6xmcqmei^ zrh(KT0#NX`?VU@$k!$=t_GGvXm}oZ;9K2~Uq~q{0@V9O%5($}xZ|I;z$49BGCCeqr zO|S7%>fy3DvfI$lN(D>p71M2PD0<*LE~DK4w94UvIn`tfw%mo@ZSoH9kPKf7a0JPI?3D?nY;Qs&{L?qAhS>aR0 z(9KQqb6|rTlR72eYQ*fdZTl0YWnJ^tDTk@R`HOmWlkrSRYi=#XTpj3ko=ogN2%I1Z)= zVq4GFgU@05Da+m3`^tV&3QGqlg=|l;a@-ANP30&qKG{%wTHx{C0g*4)adJIU>EqTaqQjf)>&(-;}g}-tXiF;Dj zJ)YhFDbNE9Yhrg9FG4^%7F2*F2t|@yM%mjiB9(Qc+slgDfbv;0Hx~yq7Aq_IH@CM7 zOG~Ei?rCmdg*F4jVCUkueMG54wD&%_daNMi+w#a|k(YZV;9q1CmwA6;!G#b{d!(*{7KnCfzO6Acoyc6HRnTsP z-+RTUp571ew03z;vI6h4G82vH7bhfQtSa%=2UdgPP?ov#Xq*5@D#U-=dyZ4sr9EUa z7p{7~?q{wP>Gu0!Qvv$<1?8gQU8V=u4b?FXjm^nYknIY z&3e52%%2=igig=xS<;EJD%mFx4!y?eZpJ>lQHA|BrzBBz!!tMF@JY9qcl8x#z+! zU#eCz^+DyWar8Z|=*k*GrzMYvRjsC5$F0d>lS`IZ7%ZW!0&BOqL92a(+!`~Yw8TCf zv&h~e&0oH6G#CZCxWqN|?y8ivc(T3BH429Z%0angds*`M7!?w=X)$CEth^%ssy#_2s9Kmm+ z>2XbIZCn^_U*>7winqEjqGMI~0&M>Y+Y3t59CU}WeE}#Xh;xVt+4_j&T@2c@$&ad! zXM+mHX=)A+938+9vt@}HG}6K?Un&Qt|NY`8ZG(G;m>$Dxx5m@%FX_7yv=K;fjcO2p z?!1>n4TuMi5yZ#LzfWyec#t}_-3Z$K2`%H*jJQnRA%n8y9&NPU=9dyrJrW60&-|L?r-WrejJ9iWf_r*N82{q1k zxrC7ECEdZ_3Abnir*1Xjle6jMYwaDcRf6;sdSFyOYC=xIdQX=zt5U*ur;?v3~b8@Dx^hwzK@kGw)IroYg94n;i~1zx}6t96Q7 zLKePBJ*E9NtY)MyN^>A}^2seg@Y~=NHPUXJT3@WQe9e*QPiChTWxW>HpF!1)=Rg+0 zJ@)LtJ5g8vm+YX}d)CzgC$u@-I|ciD7NtP7lKJZ~UH1Ykh)}T~g!nAozH!#Brn-qs#3az8!+cgsR(=lK%lFMmltYqU4D z3)5tD4DpoIYDe2(_sZF1XLj}G)ehM5X61gsnQyH=HRfBRlk0Idk6L z{8zNRix-x97+a$p-u#JpKzkzEXAPw$`awGTiZ2l;f$h}IduRRf!}Kg(IV9kl+FbfN z>)ayUuUi)yP`u$Xai9CJnR_LPGzgCSs2Th+U#QIO5IZlXx>kjTP89)gIOfA0;v-BQ*uP|ri^CtYh6dV2cooE%3#ztNo? z+N6OHh9B)cO|qtgldsQO5!=D2YB`yIi*an#idIZQuFA&leZ(nx`_5Q=pSxxcDG=FK z9QXY4c0v9`2{#_&#^`1#l1NBbQIPyB*q)Pk(NHs$L3IRcYA9dLpL0e9defQ+o0W{f z;>l|T=0&n21#ONHTt1r%zdyI{%ouNR1p93ss{5aC5DOZA^uu5Fz7-(BiSq`82XJ~- z`aKz@-@gT@pc*l(32O?T$G`^ezUoxvRG>%T18%xB4}%tZ#mCu8pveJJTHUNAevy_( z#&o`@PIt3nz4;j5)Xz|mEiD@i(xn9Y7H@qll+(oVnP>oRyVxK7kp4_NurE>@9QCFH zT;c8HW&0gVV@;eFD<|34`Z3%Spqn)(iRiyrfM^$MayELeb3))(x&8+*2XYesAE{VA z-k0Y;wsZGT=V7ym{ajOeaqZF5f)z?*yb2z(DaDk*B`zR5^l!ICN`*<{*)>c$@ny3^ zE=57)9I87liE-3~B5Qg{J6sz@>{_hEq2J?cE*Qf-V2)x4(a=(CXWQWWK4G%MuKEg z6dt^-ye)~^1Q(WhmaU7QQcJ(CqMs+CigD}>;?rKRq|DpmH@N*Gc!@Hb zrvyyMKA}y=@FsT|pL>!C|7XMbe|o$hub(P<;uo&X5$O7ER*g|C%2Y{~mb;_*(-)NA z5?jWBC%+&6Y!%^uQ9L1M_$d2`5v1H_*cd~6`{fIJD;4Wp9nJhfti(`pO@et_|HLd^ zuM`cTY}Lvx?<%TSlHAF#gllo+oN$jd`6jnpwo6;!;Lc7agZe}$x&Au>PZ{!T2bdLJZsQMyxYad)tX0&b~R;n{x`s@g?Z) z$RZW;%(fY2C<7G8&J^Y_XdxTIsL)v9jMaoyW7&+=VeaKzjp1cCmdLmrs9dwc`aRjJ zPVan}nqmK~FM23KE)-DFz|VQ)f=*P}-lAW53GwG(5)u+dOBS*jzrUp{kyTg_lTdsf zw8hk?Zr*3OQx* zU!T_tyyzT@n$Ru&F!8;Yk%oF1Ag$fcY9>X99cxI7s6vK z&r=sNO266m6Q3=VGB<|fGV&7-xZR3GO51unrA;(IwKF_Ky2Uaj4 zUSqu^rJg&7y!fwV=e&E5>0RqE@F7oxqF8{J3FO!85=YGwN%=pwXd>A$Nhg!|p$|S2 zA#1*JX@xo(;EC)creS1>VhcMgb1HPr3P~_8`aF-oPIPgQo{^;f=4g5CF8vD)keeoU z>v_$pBl`P+YQ0sP*$Gf>6$4`oHmNAz%t$O;lp^Hy~&ZhV% zznoEZSH-pu!tIu4asE7_4zSr%9mL!ISzcQ7@Di+W*g>;4s4iUUH?f)##;sMU#-Khy zx|^XhXbyy445x72cqx^DQ+xgGG7H#^B}QXBIeM#i5t`I$bDu36x>!qaDgGdhk66{w z#vtv4Pcj)+M+N2_7HZ`}T+z);m3H(}-P-g^zW|kmH zE{e5DffB_dk|v57zfj2&5$1Fjv@_n+%7o~!0D;c511fv0%XLqW2Ib}g#GZq#EZOhL zZgjb$*@{S=izJ^lmOQ}yo3i$auGKtt!QJvG1+DD+B?T*9UMwdUx~-KGUz#*H@5(ooqNj?|v(y`|b+lh`d@7t|S)d@5qQ zxLMHV85+rH$S8(;!c{RTuFEC<^k3t-5P9DeWqb*fS%a*0VC`YwG@*XMIGn~%0)%On zklTXe&x*LK?V^e1_F=u_wKq*0#^#~g=A~iJ>uR9wh%K7Kb+#9R%6_nFTwDzGwXg_J zV>5Jeap~#o?BwUE(yVApv-VS)eKbu8f~g;@+JS(=FIz0uW>9KSqsEx>cgG269VYi( zfX-jf(9r(_oe)y@>a1z4>ojTE3AoN9RARe`_&{8uIsyhOK-`k*z&epuz+^gs6ff*h zl1zcZ$I?rm*7%cSDp%5!E79TH&Fu^t1J~yJ?I9iZM?VMOxKz_L?=~YW68oWf6WgR; zjKSBHf1G)jP@&6Y^dYwP5^bP}Da$@75boN8c3p@&G>Upa%0POyPM>9aF)o$L8H8rJ zoHCk5Gx$rJfSOH&{^Gm4flIt@ut&{e7ZWcKlVSWTKsU2QwB)ODWTF?6c{N9u1V3<= zxd*h!j}`!@O2~eR-XCoHYnP?Ah_d+3dPK*~zL0j7DDeiPz)2s@5xXF`wL$waW1Nx9 zU9%Ng6)EJ#N8NxY`?2r2Wv7#_+V{gqc;4$GmM$8IsU=cAiiv0%Q+{_)&w%Ii;+UwV zV~rLN??q^)n+=QTM3GH=o&Iv}z<&4^0dItTBDLXZEykFMWY2uL`!#>Mik8=yz5VO7 zllh`2C?RIPA@xDW|GO}bqu_`Tk1&ZU?)j_J)m4q*Z^fJxrYT+9=rl?2t2WWB8g=F3 zCl-M&7&1YTn)5r^W}H;*{FKeYz^7L)rwPf?Q2Ww5HQuVqk|&FljI1hV9guyqk`5#0 z&H!*%uFk>x-GV5ZAe=Xw>D1hMBE?1!by%p!It8FrKEBRN!IqViG_%RM(jRL>)7Ey& zBMU_sKu#_VHLCs1xSU-jIlRBC)Ii`lX;$T>Ew4NIGrG@|X|>Zg^-H*y8Gk9jSnJKa zN&r_{*68)u9ItC+m6_Of^VnzT*lIfqUv3GA_t7MT-uqB>2vm~R%R%-rT#fo#jly|vnMsufu(1fxgMH) zc?j#yzS=ruV^H}cDO`Bis00j?JkvTtLw5F+B5-$zwo}7tpX>^7qu;eD6OY=s8 za*U@+)IN0oLd%J+0O6!a0z0O$i9Hgx&=JF6B!FN3kJ)gx0n5*%Qa;C zT8G@VIyFD86L?oAgHpluRWuXtu9vB&ggp@lW6nK3G(!gtlAgnV<%%a4nORYTy!}OhZ)9Z+12%t^>9Wt7MV<2Df!1K0XJ;I6rRfGfCNU>?RIH=i!;xDR)|v;kG|w1+8f9 zS;_g;_`>f4tH(Crnk?&mnkck-LZZ*YUXL>|gJ#bER?>%?9*}X!S~M$aiHCT@>$u2s z^N#)Bs04xzooSbsFt7bE8(&yfM>%8;(d|8Aw3ZSIo7pgzcaY1_8SjRP`p24mOUxbQ zB9)_R*6LckE zaj^zsV1fGJ;HBwW*2r&MW!m`NpR83C`n>1j*tgrGkgs@4!Ve{asvP6t&&RU6a%zGi zB`EQ1zvcQPc*k<5100<=5!j=h+-|@P_t$dos%Ag)xWnuelK4RXwUs9ju3S*OhWpHR zx&m{jJz;LFb9T6(A!4`rUiE5er>@*Xv9H6v({FANq8GNyF~L1)rxAWIrNk3HxA~L- z5rfr=Y<=rCH~E?wtE1D?%MsqSvt!WO#Xo;m+}BhpW`J^R-OW=4$^Pnba8TVymo@~T znsRl<(`&GIZvX!Nhv3eD0kbX_{wG}4Q~y`9ELp;?YcXJIULH`6hnf*ZZKTG~W!dIL z&rW9kd*97#GWAB<=hye>{92+&e2-R1%jf> zw7(tXIS*7DxO;-4)3y9Vy3Cp|$?d(Ieb6&)Jp1F39 z=#SPPaDp$fgfGgXKJd!?(oftU&v+iG+t+?Pay}-7%h5qNBytex*}XW7_yo@VJ$v@p zrodV}jbfy?qM*L+Y)JKK4j7R7M}V<556dn|;YL}*fW%B(FObFSP(*gGbBiRyrrO z%QrSCN6atX>nsm2I6o~Vx{qC=2Enb}$|Rb#H7m2GeISU^GccGuye4{$9Nlk95Y;;u z-|kP8Ltqy(f`v00?hnh*+%`Ng%af|l5kmt!RBSv^#OBK>NY_48syD{rGhhhD8L6HrRL!O#+2CS^R1-rw zl_FhuL7+v5lKG?oMGm+z$e28cw8S-{_eb<>8)40)SQ?P-9k||rxr=jHQRmR+^6AOc) zM2$D`9kt<-DtYmOW+@F0v40U%F=nl936S#hME1f=mg!G&@bn+MHle`RK02-vwmGNY zdZ>Og(H`!J@t&vL&&DMjyz^R09sz@w0v_<#b7zDMolIVTNC?D`|JdK-Y&8%=^y; zSIIQ0z=2p}B=PMEho~ocW-{d?YSKw|p+ajHvpG$0EIX7ClAzbx38ddgvzd;BZnJr_ z6bxEDI->~L=GWE?rAo=j$m&2KslthTb;hcN!|*`7nFj`fC~M7?OEZo(5UAgXeI2k0 z>+9=pUvD3EJ7xIkt?R+ocO?1@Du24go?$_xv~+Q=li7Yce|fYrT~VrHdcz?ox7B-< z%5^Vfa}m*;!9HfrLCEKQ8?>|JkFEbGHYq?jw{uS&Ow6T#8>43&Zc@}_qf0m!-U?$n8s^JR-fX5U5K!?iM!!a)= zfh%$goIH~WTMpm*o_Nn^Ig|td6V37{=`wL1^R(o8IIfD3V}4Zot=+GyYqxUQOQXu8 zP@*Ul1+`l{V)@taX+A80(tlL=#)}toI3Ics=?7fCs?Sb(4Q7=+CM>wjtIKhp-_aYL zIHoQlr*n(a1ZIj#C!O=A7t?1***s}RufF8R0#^ZozXEupsNuMeOSz=c7y_Y`@@)Vjh%!=4v0y@Dn4XvA_$ zYxs(!HEt|MLU7?e*=(8`2*f+xU<_PG60yg4&G+sZ5QKkVSAsRZ0A1KQaFn;tS+4>V z2B0qCH{s~OrO8U+M8w5;*S{o=INk{(ZdCOE*XxPzCg7Q?4I=xa^&Su?m? z`;mCwr`cuBT?d=In?t-nbL8g1GGTPt*^QLV6F5V(gi?SsAiq6lP)u8eFuJjd;bbD| znWbCEaVob2Ba}$9j~MmC5pUY)ouW9Dp)sJEqBNiGlt($tzCy{`&z*S_=J~Gt5ALoH zM<1QsK>14#-|Rc%v16ye3?&&!UwNqf?=eEtNa9xgjJQfQMI5B{KR>_!H!JML2`7{i zdrkJ~MajKpel)#Zp9L8Bp@^d8;P_P+UVWOsMdVWt&j7^mn$XOrX-~2fvY%uxb}8nE z)@sX%mxVZ>63r+t>tq#)VS=J?TYj!wc>JMp+heC2=hk=1P+h+mhdqh}tv|892X zy>yM1UI@3#nUqrZ|6ehd3BJOoB7>nBkH`U)0LjrEf{)vHj$1-Ku%?LX@@@{VMwyN+ zOi^kRls$ zz4V9pzgYm|yRwdZ3g6jeA%GF8GvW{KaKiPPIFe0hG7~hnx0|yQVSh=`of4vsuTDO+ zc4IvP2FaF1cZT-FzRq7b1?T%lKwjSX9ijpj$8ZZY_-6d)-)cu3OTz|Lb88N~c+VR) zU{0CJ65>a1OTFT3Tujk?>EU$4rSg;NAXIgPZzJthos$_hS7V#y`om>htdu`mswGkWi;;59UVQ!kxxFn$V zm6?nIB1v@Rd9(80j5eQo^xyvKgy&1h`;2K@nmm4Yrg*zI63&&*@jQj(17%Tzgz%xG zX`&wz`riorgI$2>mrY*z7g_oAMA%{QwQrtP;~+rVJf0r7*$mtDURr_l3&2$XtF5!y zYx`VyN%0c+h8Ohq+uPf@lM^Tu`goc5vVFV+dW{_HYX49VM=u*lSkQ$F+~FXL*amxN ze~WKW6~j6^-pgsw9?hz`?Vgev(9O=)LEbpZ4q=-Di6B8IaJfhlqQNvdY6bOq5!Guz zIK20DwKpqWtkOEHVTCKPkKEB$OC2MHu8$Bu_#!Cln_DSxH9!}uMNc;-;H<$zf$_$e z+_YA20Zf*{;XKSwyq1Z8Etv&PFJaMwj+)#_=qkQ+sf`Rm%&5utTX7reu-H5?7l8E>Aw( zJiHPh{`?VgnR}TmGrHsS@!gx7o143vCHuKBhc%zeHvohLaFlQ!J!%lj&a@vPFhH}n z9~KPtY|vqmEW~Lui1TX06m8ZsuqcV^-*WYTNP<6*4ZNVO5o8dpX0Y-68N?WI*}|&% z&jd7(ys0=v$7V~OF#g=<*v`PWY`hBJRg*qvlVd#PBgWZ6caq&QeBuu*8pjg`M=*(= z_|-=rwQ1>#dJ0Co%Rdn_ixu6j7H2;%Kh}mPowg z3DPppGIa$C`wj^rU8>)uM`R?yJk93RG>)6?>+ncmw#uB7hS+tdos(=8=@Upd&UF3N z9kFHi(ElQ&xo@Q75)7_zNbpk0@?)h}pO&fyRi(C5YW0l`yv9^KG#|#3M$64|fQM^l zzKmC%-Av(Nz?cG@DgVgEhwDRbQUB`${Qmy_Q{qlr#0C2L8#iDD5r7S9Or%<+Sw3TB z9SK(b;nk*CI`wnu7~p&Vipwb`(kN}vpu(ZamYIB!UmJ9FImFht6_^6y0+RqWr<d;%~CCaz-0GX1@e>gkaKj|;Phf={RL4=1Y^+qmL zN|+0@((UIYy=4U0Xp1_Ysqh$V`_wE;h_{}@oWCa;HfhC0Ci)ot_K$3oy;!`|&g6Ib zQp|zfk$%1zUGRwjueC#aPiBNt;va!fG{*+xF?z(|+Tde@4l@T7dnex>>C=0@uG~Dn z4qzVt-!a@=B+-6_FlS!k=O1Q;pg{d1!Y53F0VD4;A`z(qp|5a#Ov;%+c6;C&t;9R* z*wCbKrwtCZio01a7RaE1S9XE6h{EqK@D%dmmt${Gr8##3ReF=|k2*PJx+KBM9m|w9 z1T3~Q;F1EeJ5&tb^fh3ZTW>Y>j}$RQ@-b;D&k+2Y?Xy0?BYj4yxfUxr1ja@GqA9b@ zsf1ptJSnybVszyBE8zjX?$E;en;Ubgk~M27kAfj`;mzR~njH*=7g z7NBkQl5)AJzj02FQ$9p0+gq}l(v&UzGAzZ9S*iWy z2x>ZQ6?Or|W_6`|bWYd_$jYQD$0@!HO9?ZgsfvTv_7`&>xV~=< zP!706WMisK;W+UJ7}Zr-Ck~U^h2?&xD9%IKjr_gF9UaAt-SXi&K7tTVe+D%}o%l%mfrd$~Tpic|$wNB|{hx2<--L^s*Dvg9 zS7{pZR$>U)nvRLLhcNJBTQY$)ewh?kA1M|mWVVwTX}SONedD8o?vve#vS-e@l zGz0V$Bg4}qR`51YKAevb|Mvg+COhccJMXJEqsk~uWGFlo`=)KvyXJZKnd&l?BaBdL z{g^x~mBZpy_T(|937I(iWb71vx5D7YDY0#IR2Y-jG0D>?;U9_ekC%cvhs&1?(jyzf zTdpklj6Yl!2iG&rre^}$v&EWH92;Jb`mQ7I6$iA-LhMM)fBj52`#w z4~PNGSf%&~zf`V2R{z%YTl(XupXMVRXS+lKy_GDi^E?_I9o@V3T3%i@TH-mpeqgfp zCIs!;bOq|Ebi4fwVwiIcZLN#bur*0Ld^d^ltx^vMJlj{zQzxr&yv}+wa*CU^*I0ux zDx<5o!#{FFZm>Umk`?!ER7$JtufLb0RbJuumx=t^uXK%gD)RV$mTl-;_LAP!2X<+~K30&q zBM+7W1F?fO@eiqYhi`q4#27n>O%UV`^5HiL4RD`1a0-6}!yvUM0xc&c2PSjzlJ; z>1Nt43P*2$s#8dj_&=t;JD%$I{XZl!v$8j3MUlN_gpe(}h>*Sa9+{;i9GmQwdF+ww zbFw*h#<8V?WBc9e{rNtA=h2^foY%Qu*L~g3>-l_M*L?@O@S%)Cwu6HHW;GvDH!({t z(^8aqHpre|6f zB1vx&Zf$_Il3ZC=glFS%Z z7@(h(e^i=gB~sDtu$6UEeAi4JXqKEhkVtTWUVA<(%-YtDkH1jznK}U}>3XGV4bzOB z26Vy$Q2PUGN2n7Cs4)>I`(JUfjT-0J*6J`k{CD*8VrDM)QWdO{){5#XRYCd~y;AeN zngh+b@uWY^LLH=O=dR*$%4dy6-bpIYouB@KE8i3Tp39x1Nh!LyQU2-V*t^-Fx_OsP z83oz9J*vX8j0-jW5L>Rf%y5iyJ31HbE_t!&gIf`#Te!~qQN^UkLae+fOPXG6($1E& zAbzK{JZHeb^Go4^nWVn*r_}qfr)w7e0Vzc0QWMok;)QmVpW`U(Mw#CjA_@s}CmZOv z*niv4=qY+sVc#EbO|a&LF*~-~*~|JYRzqCu!OPeX_jbklb$a=b*xEf1fQxX_^RSMUHm;012P<~FHoMVHMc5;8+*{R!i z4pa%^CDS3@97H+gmmvS3CJggQ$9xnLy#)w(Ybz8cPCmcwo?$7;&=}oHaKPJitr3Mh z)+qdd;l|3Ei!8m9E^Ld%fZ*9BL`+KxMEe@tR_IfT@g|i61liQ|bhc^5sBNuK^_r5B z5*;1g&$mK=(=;=~J}$A8fnvBUpkMGNrx_od_`zJD=N32Sz6pNuWtVS>D_rM-a_pEV z+f9MIng4D^OxWdhpyQPhuSE|th=d+2Y?03ookRaE zfpuBwkV$sj66_~+-XTGpmeUp2>lq>N`hk(|FW(zDiU8Ntb0^`&Td2nbg3;mrm}{dO zp8$gb`g4SZg$W{`{8)ZeJ-v;O**Fyhb;5tnAzKyQg2rp|4l-HjDt|1fLteX|R$U#V z>yYQVrVzFjKr2wAl9Px_UH)N!Q}ZhJ_~42ONw!l=SCL7gi8tqAfBRxK+P?X6wQkKe zb7D85vXbU(YR6*s=#jcTF}Iq)L#N9;^*g8McPcc84Url5hmjozKbBc!PF+{tJ_Y`v zljDWLlZWXR3pB#kx$ep96GzPTyE|Wf94v3l_4f9bZf}Hq2|g8UoNMvHfwif~c+y1z zq6pA(a}L#QZE&#tMWm#x0MiZdWR<~V)LJ0UV3O8TP7vgSRssN}&p9NcP_9yb$L#hXzyGIya{$3*(fAPU@fyNjO zE5^Lq9OOa*S}KWb%<&dLSrbZoL`Sr7=wl2nZF6zytZ2LJ2SETBwC-2?3Uf0G z(07NwluCaD3wf7}RdESI((kI;_D0T; zkMRApa=vFc)O(}x!-o&Ujy#Ypw_!ixnjn93zVL&JoIIAW_HR7KllfrFJJer0#X%PU zaEgPtc+T~zT6~Vekld*}(b+c3?G2`(@L8bxE-J7y9 ziEIh_l9ZS{I1tR7=fQH+ntO|Mm$&QvV@>wV_qJc@Zcc^s>t*K{IiuLa(lpc-cAX}L zU%$F&m!oSeK?e)iD9_P-O( zR>a9$+nCc}Hb_XIa& zJeQg;;IKdW&Z?M)yS}F;IahszRVK!U9B!CBYcpNWh>T9!9i>9|<}#1@3UDT=OLOcp z6|0q=N;x1Y)GZjBMxKdl{=psiK~*2P^r&k8YOagB4Ks9D&gh zA9gvW=MNQPGbFDBC8ctPmg*8`tStZL&UH~4A88XA&tUqjUp?MYxTazlSny$S6M#P{*G0xC3R;g9eXE-Fu<_{-e~O(jA1Wc9s^)LZ_=amQOnwN5HqRgPpEkm=(Us*7Y&j$Nx>VvnVC-e<>8rDW^XS*M8`jJu_$G;5yvK!My4s zT0FjKwR^s}xcHH(_HSLnkuMaq>&>7^{$XJCxr*c#myZ>0y=g@X90^QFsQqQ7`L;kf zU)y;nh!G%pPrv=~s){L^K|tFmDE$d}@$=$WJ8c~{48I;9Ij5e9l(9mNR3Sg4SoD92 zu6-^eT>Q@XP5PjR`<>eZETfRIl{7!K)N{)JUjmbEGmG$Q7BNFJha>!n5`$lueTwvU!cigB%d-3B+JoXE!)Xftz zCO3L$Va|<|)XopzH>gICqV-!79*od0i3AnzyX?l^-YmhE-?Fc%w{~j1smS>$GjH;4 zC^_Okyh(k*Kqs^J)>B(1Fxcb8gWov1!>akDwT5w4)liIsmX;Pmh_%DciwsY41$j+* zx*j&=5c?T;-MD0oCVoiJzSkf)Wv#8P{mzd+eEdiTmP(^y(&90VKXtOl%&?QGJqUGY z;?|y><_?>db{jV*4+ITO^f)<9h6eYUS=&7gzWy#j7s2qKff>Z|RUyCe44{~wla*Hf zyiZB>zh{g$)7_u+Jn5E)e-W}0|MjOdr5EamwM(5C-;FbcDf6c1<=42&sHXvEVTu0o zw)Gx`M{RHtAB{*LKhi~#ubdmnt3O_@*+%aV+dH$pP@d3}-Znj6Sr{q`-@z%zuUlusgbV5PFGtud= zy}Zrv%focpZGLf^;nk!eE+2871g|`#6TbCLXsCmG z-~lSue&(N<8}O%KWjZ=A0Gki;ssTO}ehNTyG0wbHyqy<{4YKtCjZmG#_ zSV$@n4MypgFKD<-G@guu8;Ulz+A&{RFa{*}9%HGWv3t}O`QP3>3ApAzqPN z3Xu2Nb=+qq!0ZU0n(j{Agy|dvEE8rMB|YFv;Lz(BkWM(;xtrY(%Are=pIUzDVQR6* z@G5Bwk+~?#V`m}Cuo5F8-qbrm!evYrj$zv(KXmJkWRiDa%LnFErKmLw4_8KOG`7R7 z^&wWmwUqrF?@Y-g0Urc{!A6AmZsD7_=&qW6f8rlWDrxGl2)0~a7pL%4!k3Z@vumFh zXO-&f&2rLb7P2kI<^I2=;go}Ccm`(%35j`>rFWj@e(Ao=>|~M*Kz{Y~3Lrv(Il{x! z6R^gB4S9R!xJPI?zI^D@QuG~(I#EkHHY&}rMn4b;Gb+;qkfyx6+zY)+e|5Qc1#7$9 zYWrqb7PWl5Z-fZH(KC8Wx0@>mMT6|l{B3&4*BrX{8_|Qn-4(S=kv_<-p)WPYxaNUq zqKr3Qe9DlA2ESo27eoVAXwlvD*JE^5iQ2Xw_1m+T6&k9JOz-~EP`CYc?l4WNev%%I z@XM{B|2c}+@S2s5xCC|UY>^P0{hsJM^;HRTQ#l`e#VE}3mEo;NpmfhVLY~@4=2XXNr?Vw-r8Ta`ntBTcTa~bzr&)N>?-sXma zBGAbpg=nUYbztZv1(z6E>qPLc6XAeJ``=tqb5FKI_pZwv@l%p|_gItC&0@5kVKsJV zUB{4xuBY>-Fb+9IDf#U9dRGYpzUNyM-&-B7F2qd97n4Z3@m5sD_S*-RTTiT;a{=b5 zaH65V@LC;+^3zOE`od9r|2s0p;*5s6)XfSStF7JO+wOhqeAtjy{Z{LItljQ-N%8Vh z3b2!7wt~^!Eah954(3B#eVXJX5zLz8{=bec%VbW?V6$hfa6c*J`8fo=w}1lnM0E{~ z4UZaYE9lr`otDM}tfq0JBSSGE(m! z=&CCZ5TJip6B@4qMdNrS4yr7@)=zptW%dxa8~95N2I1c_Q1<1{%XeN*NBMndXpDgz z)V!OhAs*;pygJ6k*DUSY#n4-RPTQetYXHp=8lLejilgLK+u2z3@?q_CE0)McHQr1S zt*fZD^Cb=Nm^d+!(RU6bnCx98hkn^ScMZfS5$!FD6)QS0WLDINYYdm|AlDrvSpSPC zBg4132g`!LF$!J9!8L_pkbV(7L+49UIVgUEK>FaGWR6i zHKVc4NP!TK&a#f}pc%CbsYY6O?|*gaU1pPP zWY2uQ`TPx{U_{*wNr8wG9WGGJ>6IuH>2#u+uSg1xd_N84SSP)nsT1ze#sQREE(b!S zc42nb3BZCg^xicj`12R~fYiQF$OL=v9F~Y>nj*e7+TatNVWXbb2RrhvkoM;jZoPS>L#sfFg_I zO<%-@wEm3&Wr3z{Jw}V0xIJCGlkN(VW}RF*05pc_v-Kw_|6#Yxjx~;b`3O5OB6`wO zNTm*U4Ip|be@+cnckz)6$K)Lcb;o;;iGPb#94acdrok~7x3YCu`=*TJ^{K6E;x{+X+^^k+C}WJ0*>(qpYeBM0 z^;ep}$|9-YZs)65guJ$7Woky$Tn)n07J*VQPzm$MU zC^XmNIEc_EK{6Tt8kCj0KqHGgc}h~;qfyK+oQ7axnUrB9lRpVso^ z$75-0@KvYD(QASNz;LQ5vfgQ4>PNX}WeH*Ft3wZ0q~=w|*tlewm{DEK?`WEzo`!6- zCfhEA;$|$oJMYKP&zEQ@lnU7*L_!|MwMSb#WqB(1l++}je8WD-2YxT;-(V;(7$_%ekw!3=j7I~C*-b3pfF}`-+%wsS75{LiBa2{uNhRei zldw#+fKE{_0BvnR_!5zpM*jL00ye)?z?a{)bn<-%A0Rw|k zQ0JLezwL9+)f<2Di$dA-s+hxBzK6Ts?Jy~RyysPIWidN^UbVkKU>TILZcmV?+u|YX z;+;0rXGCrJ(#5YrXmO^u^j7fB`bWG6O8rc7iV)G1cQ$r(+ux;h=P>_n;)#?wIjB*b!~fl+t~=AZT|h}PSUNT z4%%k@t61M-Ne566l!faSzL}~tF(G{XvogF#d}wRlW|^Uz1B3tIot}VvWytvBA;kbv zPh6hh-lQr+KBxFgjJ@9)4QCa#eJ}FM&7Ms2)UNuS^w46|h0EC7B*B~^#hvWp8h;;L z!HrBw(XUawX1AjZAH2ULScQKm!R9isVUl~(C3HXX_aB23Oct|_;(3p>>+?Lcn*JM= z$dZpwbGAVT*W_r=ih92B+e?cBOV9%ciR8Ade70oV*1C&Cl#AQx&@p3WT7qFW2OpMc zaVKYH2esGl9&!4ton!7G0zxw+i64!-{ui7H#T+J4@L)f@jmV82f{{J{e5wd$Fc)Rt zD;DWZ9-{yTY`n|CopfjX^fH6G7+W@It1+$ke3EFr?e#5Ba57C#Q~x7?VofW0oJ7DP zOJ-0TTdl0#%{Ca;g~Mo@mjl21@87@X!iKO)YsU5J@zSE_j~D`In1R1 zTfqt4HEv|0oNSg--E;@{<&&ygtBpcrJd>5hY9@~s0^_RDGzIQqCgm@^y~92}5rOHy zpGl|bohDjQF{ld#T3Rvm6K&*MiZabhOsIh3DgKzxJA%)J=HYl)_H4YaXBcL-+b9N0k8j_9Gct!Ky1ht@Q$_v2buZUVCuZdk9ssg*sgeS0)}O+Eh=o|JT~ZjR!(wBwtH!4%;I z$V^}T;bjpksZ4;pK~n_4k`r5kfG%R|3#FS%(h7Uo>(lbX-NYEwaLxBIkj``h>FU%( zk!f5feSNpD7ZvPyzyQ3eGKU&V%`;kv;#P!l>@Wdhgeb7x_e2Ab7t1xZF*PRT8+Arl zYYAA;IxOgzOcnJ~_si4f6m8b~Nyj z{X$(U?-SXV8=_tVw=|eXQeMjFi!R^MEo6$J(0Tvkl>!D=yxXBfOx3p$1L2wBG=rii zZAp9^`DUN@iyNll0iJxe3v$`9my=Z@0@wlh7GHS3sP z9)^EY5%KN%v?Ir1Wj+hH`Z-BYs@Q+BCAI&=pM>%pKJAB$d5qTUqHcT4LA?2vEv8^P z7O?V_>TyqO9a?$JIzzx>R#ST}pq=S(Cf%l?_-xk7`zq%r)x1qtm zt#cn^s)gHGemYfVBbhcnZTY-@;CT;qd;fQ;rPDh))7-DDxRf(tuJ0UPGG=ij+p>BV zzHYdO6anl5zz;wFsa#M-UQ9)1=L!2y#U?0H>uK9nbYKC6KNwq-HpG!UkmmKc2fDz? zD_}5CybgNg*_10sRK_Q7Zg^fzjN5iw@-G4Cea)TJJ1)2Yu?HO9xx=^%XhupHhNca3 z>KRQX4Nk+3#r0b4Gy|pgrM)qNP{;4~bMj8P6%{c&f+W2+7GXhNV+yc{-jh3DpN#nh zMW6FwZOAbJAm9I3}1CY zM{Jb7mawCR-;lIRyP{#bDAzs%=J1D9PQV%ku(hb91mC_feRk)jbUSZ>98EpPkA zYEry0y`?pwWpu=hTd(pDJALNo*PhaclkodN_Lc|2Q%A5_X!IoF4(~+#4l%#aCsK;Y z-r59X*unM*$Vv&C14ZB-TLy@A63T3J8I!(+CKWmL-+9UC5?=KpD{?)hn#ZAxa64ya zcF(_vrsoj=A0V{=Q3nV>T1E2tTGN&}(l>(yWQaq|msbK7rjL3;P&~`$AY8!sB>1%; z29iApm+I-*L!S#TT~~3OaC-Ut;M(e#>MO;x_MMjR_Vml!E#HeD*D%lC%S62IqfCCy z+KlPpE-XmLZLu0Nm2}IwOl?GhDJ9`U38#x-W24;aqLi zxH~(5Q7VhoxbG$f_S3*%2;nIDlAu;)0mYA)IL+)Xb`Q=RwF}}w0VMIaDjQ}jq>}Uv zxJ{Q;vLR68YL|f{(x}QQJif%H4Ah_FRt<6mV%Wp0fg|UEZ$dqcFJ$4nc2p5SD+Zk7 zH5{93@;vVeJjcl$j{4ip=HJ{e+NhiSi|AEB+}v!B4de1|VC0O{gf6OvlKSAND1gOR-(cc4_cdfHf%(iQ*ct02#t0K|agVuO4`nshyxsrj`%VG9yP zcqF{GNsNCYY4@j+B5=Zu5FFsdza6;wSDPQMRON4#9r{r?E|&n6kciOy>co&|cj1nQ zWE>uMTaf5e{KsTpioDj}mqJw4!pmOHvPcro`QDWb)m=bqssNihU_ul~oaroPjzR~2 z@h=O4C34+Cr`rc|e6kMIPGpnU{0IItfflNl5e8hzN{?CUWXAp@T zok`SM92UT!^BuGh7%gND3z9CR2mLzt^?`-u;kZoWYL;;@I}hP-(k(6mrw|ID?4=Ms zwenB2VH9QDn3x==qc{afpKaJ-q(}gIx-z*%MD}vp{DncCM;xV1Orr^6nB?VZV|ik- z#{qg4vRm$CJQuL%C1yA%MB$oit&HSgmsRxHmH6{vNlPDI-HgKNfR2r$4ihbf*fug) z&L|6~@6?*gkUHAU5&tBy^*>lU7yY^H;X40+@#E8-U9wJ{=NZiHwqh8JqgXx{?gq>w zJa>8S;se%54p#!+M47ixri0H6TJ>IRohJhhGEkLVffjuV=9XL|Cn>*05J%0v==ij> zw78EKxwW ze*Pmz-DLb^!tiNe5&eR8{hK6e0H4_!CP#JbI>LSt(aOVoseS1k`Z&=6T?F)Qy}G;ki%~I zmIKS=E=s&Q+Wl6GGhN`XuuFC(NxNG3>}J6z=S4u~z*~C<> zGW9n_O^|pX33r!>8vxJlLF~LqU+N-huL0ZoY&$w~sVgVOl1_#bwwz6;p%{gn zoB?!UBpVM$xXP;)TSb1*%jPSlwX=pP*k~EUX^m&XoSC_~f;*xG&ey%eRKSp$D4(5`$kP7`&~1MpaOiU}D46 z>}R|F+G6p1<3`i2TV0Y{DElDA^oGnTS8@M{VDHl|V*R#Wd{7VDxwrSf z@@mrUc8G%`EjT8?Z6~#NoV>Gg#oGaAB9^WNtlN`YMmC47TWbsoB%nrZd;tOYi{icR zP-GW#i>adpE_$n?&A|!=x>}Zp((v0o+%t~U@zKYbPG*;^yO(yeYs?;HaVF*9EHD>m z8XP>)4s+wd51x;b&2}BFzm)qmdhUP{d&Dp2`8AJXw^vD#+p6XZi-7rjvO160S z&Y{rJyy~^y49c^MJttuPv}-ariT2p6Ga(CqZE0!gMjW(81SxT!WcAyPlh;6D1QMe$(d*dQiC%MO z+Jd`ES&5O$rCNxUM+P6C;eaOgrxE(S&cthEQC;?(-VlZsa+q`$_Xc+?C*;5Kt-|zn zW3<$b00sS@wCj3k7UEdrm>htOfuIlUaCqUJ_v3fb7cDOaUw{l=-C*AcwRYH#=>{cQ zO)#o7{Q{7)06?yxPFOpjKjRVV44NFQ{qEP=hv|8g=P}lN2U^6pqG~`K@lJf8NC=2E zf1g>KjjhT-n%Lj6QeKf;hqS=yvOUDrR-{1AOuRn9@hL1&0j5;gOd>j z-Q;X+xgedJXGpc4`47uX^4%^S1@{<;5nsIaVO#e=`*Pb6XQ~$fV+xqT4UB(UMF&ik zEn8~=lf(YBuInnCVAd%xegU`B{~5ooW#`7mU#F+1`?Ej?8wfY1)+~RiOKWgQG`|%% zj9S~#_gQN;?&_y_+>5_ow3G}SS09G=v=i4kY6r_CVO+@RFGpBIYRgo$rp%PuD{fEu zp|VHnnt;|YeA1lczT%)XD~Kq&u*XAwbW0chKL$c$Y2;?hvXq*1;Jfm#*3?A|K6fun zqjTOY`vG?a@PvCbwe&p<{0ZxHl=0D%Y}25)C}*Ap=wfoq+1ndxVCP5(5%ff!Z>A`CCwD zdr*%3Z5wbae=ZbXP9m20I;gx*SW5=oU~MB5bB|0e>k}|lf$??s%QnzOJ_~VD0|d*U z*8f)O3$N{Qe)bnj0xBPbYZI*oJO;eUH)Vf&xgt;SawdM*GMLw!F4iSDi&tE$ zXX*m5GQShRs9kR}5bSF&I6v4N8Y{F4MaG2I)cWIhuZ?-B|G*f@B-4oG%vyLOqVda~ z-&LqwNKw4*$`fzX;^1EM|7}r?ZCm!O)wEpC*@_@~rXDPS;(j0cr|&hIR@@E=dPwjt zXMNsbxBVWmBte%3%cPVrndBMm9pJl!zQg0gFqX74(~A|xx(ps831(2?(*3zz(8c}mDt zRHB~fEVAn3)0YX+=U8=(Q3Tj+Jr(lJVE<;E@08)*W$%8!{a>I1yb|g*g58?NyBl{f zwUqH1QED%NiAiwF8A1o}0)uNn8yu8- z-av)|gTer{3a~slhn__df`BP#Wsw#!p)>5Bt0fTh9c1yHMkJ_u)qok4=~hR{MGC!*Fa z;Fqzd-*|yKWdP)>QjutegPrh$ooh`P{X+1@yTsdEw?~^%6#S;Si4W6p7W58{^^qT^ zzj)1#mhF6`z4rX{)$NVZ%$*!D9CKcXsJ1yQ{tp|FwfUsv(wlo~iDVYwpNIB6=d67c zn>J+iNhLon?d-|3xo<+~rl3nvY4LRRYho2-@AJvP3raAm5!eR#>4?BDOjsVvD5?yd zvSGG;Q0jw&Uexdc4xHWA_VU`wes}p+%j<9JeZ##7ks+P4u{X2n@t}4jglXR95{!t! z(U;f1-#bqY+yaJg31I>j4Y($f(hBhOt4#8rSh03Z|0QxqIcAW^l@mk}UW!=)!;GIS z>I}=iJi7-7I1djGA@z0Q@Pnoo>w$ad*GYg-qE6@moFmc_&G_xjyU5h?EP3 z3GjnYqcnv3oysdoJBE|O=S_7Bb+wK~J`BL>l4vQ#LT&s3xaE`?1?k&e@`SPKu+|^> zpw97*vAvQ5q|`d*+M)kjZTUa2PH9EjABS2Z^`p!4K_HQV#pX#KC=<(B5R4sw%*^oX7pnp}r zAn4**S|h1@6ng!@K2$x4o!*~*6qVI-&feSeQ*}}YmXdHWl%E(|>q!(1+Rf<9CrPZ{ zaaEn2GYlS#BLAuJvwWxZ|B~K92C3U)RYu9lx&ix@)B!BSY}Z4}T0?uQAJr2FJj55w z_Pf)2bpTkczxd&!Cu&xv2M+#gtH{-*U#Rj2Qr(#)-Tq?C{9Z?ru@&Hj(~6T+Cg!j}n5lJnV@)xWDndR=@w z&Q5kcJRkae0LMOH!mYIT{TR6`LR4q(=-~PnPF)MelV*Xd@W4v}fMzql7fRB65f_!O ziYVM;zP1240((m?OvI6HJq6|WqP_-yK<96gW9UVy_<-phc;-hwSpGrf8JYP`QaAOk`%(TeyZ#o5Z*ZoR8-JVS z7;VVaE#jqNxZb%5ps8)`>CK;e;Bxk}Q=gWvz=mxFSn_-EV3G_r;8MWi0`~iQwXcpG zuj*{-i9;4YEYej1^!@IQ8+gM@nNGkLxYhi<$g^^Quv89v$>*yr*hQ8#*kW)im~Kur zOt)doi6N2(R)1?<1>T@U0@?<-k=4vDVlsrhwYSq%>fC*~OwyD%zg&H{2gugQt_C2P zzZ8B2*-zFQ%~=kUbIOfhnWA0uP2bblK$cDIe$@d8L;e)=nWMF1V;Ok6*nm8o>tNdN z%(gaXVb2xBGI(qd*nY>qg8}09`*jLR1|CA>kpDKo* zL$H}t6GHwM7!gTXo|}|!^rvi2p~POG6!*ny+&ddYx`Or%!2g0CMc(8t_qn0jV}B;e z5?ICL7NJ+dUrV=@O1`OaGN|(jhGdM~K?_tnKp31}T!P}#NN9?olN(4ORpO4n<1Z=aW2Be1TRMyO z>@1AagkaxK%M&g4}nZqWgr2|wGzjzAjqee zFN*L#mfQu8&9KfPSl}I`TN<>?97_#~kq^TjpTSdWi!E1AI0|!x!mh>2X8RcvI6$Z zipjyPJIpu#y4<63)@2_cwffZ#CE_hW9Z+QerUV_sug*0BPB-oYS(LFVpZ?C>PHyI6 z!td(%O?8oHrD@!hl5%g6T+>NC_|nz zp_;f)=!_;8-ORRnGG^PVrrl7Q``|`7a1|A7_-tDk&it=!P5gDrx_-N?51rKcsiOTK zc=e0@rpznT+=gu=|1xydrSC8M0MG-d4i9`<)LKt+`&`<&pR|OIOSI2RexLJ~-92mr z3i!)Ogh6*PSf}fw4Z#cPL6n)?!e9AOCW(3sph-RQW9b@OHM8;+sbFT-XMv~*qbARF z-a0{_qjPde&wz;CH!*|w|G~^*RN^xX|L}R}-dD=oB?rF5IYR_L_kLuvD~Eg{9r$+1 zn`bS6OyQgb(j0%vLpmaAf?I&hxfYax-4YyVyR1pvted_d#X6xE7I#}Z=X~E)d*UNM zrwOS41!G2ClQR%kijB`6)I6gQ6jk2r?yR>*wR0Xf5)6|Bmp@Qv-I^>s#FJx8EOV+> z!H`H34~&f0J&SU1hfll&r^?@Wgg?987+0Rj@bO@Qw9-pv)==*PW;oLIkd5F8UC&9A z`mQJ8(ymx1@DTmnLvH}W$wv}6)P#3XMoD*=YN+WPFiNT-$9=M`hlm570=>e+9rPqI z%|e6{1O$-Rn9*oSpFO|a(%OlkyvEn}ZhqbPgh!GPc*pA>dBE+(41K@xM0d0AO>Wp* zy}d9OfeZCGYCXIP97&i2F-c{CXZ;_zp*F>sgSD!SSY%-OKrl~Rm?c9|9MJ%+kJ~C_ zKW|4htKBy`c5klQpYoehE(z!o zHRc6_wYpHvZO&zRxFP0b<3e;q;DrNT@7lQyd_+QNRmQxGdzw|Qz)tp01`s`#5)AbX z1$9JuU8PI+yC)57h*oCfI)eV26lKbH1rqxR_ZtdK zW+EpGH_T^*ztq;5F5#%{~99$f*ybOlPd3woUOJePGn9JmA zW$SQh7U=|3vtKxzl~rbM7Cx-#{3Pp!*KBok0OilK3n_4S2k1m3 zSGekOzHo?5-8)P3MgjW(VA`&m;oDA7#K}{G=`oEN!k(a>G*r5-CwD9$6C`@I?~?dJ z-)UXLK?FbKJ_ofU-HdL7oT8nHT5=yNRVSzyzk{yiax1njJ8*vX$>_tzeV{u}Yk3eg z$(<)Qrza*N!q;{C->yMi&`V3wxU-8{h@s$Ca@JD3{z3u)ZewaOz51GMq$djhHY7mS zFo?@55J8*Jli*gbEmBYSTgBi|64IjY*gb7 z0G&X;o)>!dDC@bx_BQA&bT&J`U5`@HA4=nMqB%2Ir2##*_B&Sde=96I)dVflL@ElL zUZ*&MWEvP~YI&#SOCU2@wqx7E^5U8DSARgY8pmo5q?Bhk_R#I}UdxMQZZT(sjXD2U z6Mh)JdVXtNf0kxK;&@YD<=x&{W;;~NmMs6X?iAQFpo?-~V1V$8#yv7HxRVuHi%%b? zS85~T$gs$85#{+?61eWwT^W4~%9bR|#;z(J{jEz7ENt9QS?n<>%QT1aC{7zwc}Gi8 zO2Md_7DZgU!TW&drbzJBalC6-d%obt)_~qU|ZxejwS3>-88f^G< z-6!4PvC{%+R}1sW=s_!AU6cGo4lR~<^w2$OlHE%wW8xd7#T%caQ*Jz+wfL+U{pr&? zc`KIq1>ZpZBS;`lbF8%8ndU5of~KrKxxxvp)zhsxcBlC5Hy2sj7sb&TNYVK-w8Qw| ziIYg)xUI8?#}CkS4uCc|3I4qg33&2DS0Xm*(%n~{2@l0Jo*tP!_dOzpcUO|ax(FLd z2`KMsNmi^h(=eYs!aKFgtGx&fgmFdZgp_mi7pPM6-Hqri3Si))!@OD~I6b83H+$#( z;-qqgEe9m0FpE1n=iEObUbsiidsE5HuYa?0-sFi(JqWKMiraQh*3A#4GQ(6NYM&E4+w+=nEjb zpXn8?YIC?YV2SpKcfJkTGf}biMG`Euu{=|%-wk}3@G?RNwt%s~>I*mOm2K#U{`Vvy zB?V~q7E<>v9G&47^yDikDuNqeb^ek4>VGev5TGMUHWC%Sl}O-wz}|;iNR+&YKz!uu zJu-Xm!1!{q?$IH|GsCVa`5DCZi{nJjx9N+bPrf|Yg_$r1w$(JD7n@7%)8Z_5oBbmk zGndcGUiW%av?Am}mRe(S=Hq^u=IreJePhvoRQ<$EMOOCp6h-S9SvGW4d_TViH7B^x z1kA+&u>2tv0qAcTw5ne1g{m>xnA4P0HY)sCQMJvyh(~;^c)f5kA=QUaH_rVWtSJhj z^hF_~{eOaR1!=-x77kM63Ml*{=&wgA9WTj_+N#p^gk2a-(*Y_fgvZv_kQ z>HXBfh%}QIJ!7d~w&;=n9wo^Y^O$sxt!j?)T2VN-5Q$ zb-(?Q`4j$vn~;)6dLYg@wvF>%A%r^`uQ7+CUz%kdJ8><5+R;dctk6FyPoqE^OmJ~$ zZ^272+H4lRRgK0zT2~#pZ}tI%%qg<%{+zG+w<^^U;~q=*r&@$z|Drci1~+~Y&+kzi zXnij?7~`tGT72Ziq3S2qm2mc{OuN52b3fg+6WoSJavUxZKSTdUl8t|i?B zOkk@=|0&^pSbTJZ@)EyM7d%efr2g^1lx(IaxlwM2YT6`YtTNKxHQ1a)zjwpOo+WFG*(|kb zseFmR7{_$d^7sx4=Oce+X@uV=6p<6bIki_DoeTQcf{jtrf7|zTAcbRnoWLhCfzx@y z;LY2(4^O!D(;b zl?dKx*Zia{4;!_WKYr8MriMwsL z&P1xofHwtRy}T^3=|tVCYo{B>8B846P(pToLMzu+yY5>WU`6yn&{q0JU~C)X_sq=b zf4|c2eHL>6l|@udll1o33kxQ@S9l}#8QNP~E<^|J z|L9}?$y=tRgJPG~l}+#8Qupc-oOT3^&&VgGx;%MtceK9{Qu-(B9yZ6-)VG0jpg4Q8 z%f|P=rS+@Kga6ujsSl3}u8E)XkB~fu985drxZQNp^vjC={V?oS-*Cnn_F8}EzWs4{ zH))^k3H33VmS~$y$=bhf{5Hj1hUS&&4E^Y4$6WNpAG`XSy32vWtm~!V^v8-`BB}e+ zVmg2GXyX^MQH04`J4WTzW`uiyz8CRp^)GSz%TlciKiv6lUvPI;KKVjKsoUMwvga4Z zR@)Zsa!Hmrm&5TdPmEYzEa}2O(mbAgSVB7$X95DWFT?+d#{qWV5s8Nd&Wy2wejz7_ zl&yj%=lhG29h91|`}Hdlls2uoJ*3U77irj8i^s_!@c+Wds(jKpL1gG=lRsLPj-il>`JMI?tevq?mlbC1osH+zBlrt74Yv? zbPFiG0K}Q}sgBcq^M$?{DEq@FE9}Vir{Fh7eVAZ1Tv$|gq_{6J@dK$maASSOyb7=` zgO1Yqc3(+hfO)p*T&i?hf=3^0VLDcT1uOHu1pEDgwCvsi{XH9xPiqt0i zw<0^ZU5ywnadnCN#4Uqo@dh%S`3h_saLOolFrT2WHOT$h zE2xG*hEkNb&>~m;TYG!<@binDeQ{n~^iyf-6+iu^eJtoyH<4JlW&$5QuOSTIs{e|t z%RoticLF_v}aR7dI1O`lsBwC$)^hDwgo=O22 z)Y}XHxADNFKEItw=<eiL|r7uq2%oi=kOtJea+MGL)FUT+#09VQ&3`OkhwRRLWWIFlvO%U*2_fvnk)==HMq;Xu}C zRWOqYc3Xw-G;+WeS9lhGLQ$GT#~|aQ20l?D;BBiE+TU2Fp3Ggsbbphs4t!u?52hjW-mofN4oAO$8@qX@uj{8t3%jR%deir7qSP}FA*Uoeg97JfExG$Mx z))XhXJImUz5MIuchN_DIeaX%Ob_xIiQa|7x)n{i2eiG*`(uCoI+&g-jQJnSj>Wb$w z*i-Gj_3*o@h5Wlw{hakFjA?HtU@0`K_tY{!ZY1ab-of}9f-%H(P7~G<9eQIxcG|Cn zCFx)>*}w-Z!Z@eo9!ipjjR921Q4xiOlsDlL%}E|P;&<0xo~b`!Z|ukh+!HMx<-S0* zWUx=8Ug?QE%!sXNxRGxg6e@u~?_(M+SB2HGBlGTeVBL@& zivEbvnJCkB81^MD%L0DQBYa+xQSv>5I~2+-hy*Y`C&ymDO=ew$Doth~1(r!i(jAs1 zU7^B5n$Q`|S+2K@9C&X$bw163_n*rUO||Dc<}FvM;UHabRu{g|tG_awi|nL6q&;*| z%7W0Bl#2%x{MQ}?)+A&mzdPOI4PLwtYz}?1ysRO#JK4*Uo^1-7gQ$`014*X2py+wA zX9kPO%x8wHda|t_nA5z^%i~pdsLCn;_P`#Kj3Sn3A~|q>jPhsP+dE@Ls-5N#iKSAy za8#)s?g`3vu(pCt%#H{BBlC%E5mAF3;1UB{dw zx5n3=GPwtyQ=e`M;)cyhGR}x5`=a_w3v1ap-hSd25l%B}nqE;$?mzYBE&$4&|MzT^ zh`Ut0)1GKonhzBY5N?*pdt4-E+@auhLs}USe_%{};lyq;{Qiw4K!prTPM?$%>T^xB zLEn=7dkw$bof8{Q$qTh^)H@HpW_P@rolp6eSyi2ACEx>XS9d?pUON;t_}ah%+G}9t z`qQK+PfIn#8lZ#qJcMRkM=(tsaUAjtq3ILx{D}T< zM>696cqk#4JbO$2NwSI)Ir{BqGe6@LuodQur@!(#kI#ynxy;V~o?T?E9Vl(B5UMsX z;XJ(Sj_ff><`P}x=N4)|*~0ymT}8VxG*u7uU`H$knX9%;i0@n_d-E~uNG3a{GyGvY zR3`y$Fob6P%K9pR#?A@YQ2#syyF7)mpU$YNklUv&VE2@1Xm&GdgVn}^zP3JcKIrwu z8vgjT?ewVR?$E;qD5JZx3;99ZJR*b>uPTApOcQSEXc|(zo<6(mtmxb z%9O4`e&W>wnu;z>|k7_2?4`YvnAmx zyS^rd^A(kPz?(&DP!lc;BYgQO`QdDuFw|v=2YAJn6!Bf%mm6stUPhW3-^shXlt1eu z6)$kZig$4aFe?X(|A6rGG;XVnD{zuVQ&pn9AE{jc_-fa;JT$8!AUTYZSurnV4=B2U5)@?vh;nTQS3#c} zxKhmJ{p2-ZvGT(F;y%>f=i15q3J2u|a@*|zXsF>#0an}cvl(q9+TrY^Zhw5h5;Sph zb7V>l)~~GORbFf*7CsVxOe9>Y7x)#M1OP3{u$=H8Z1yvdb1=e1ddLL`WRdS3 z7`P8a4JGye#XVTsdty~g{A%4!X8kK?|D@EMJ2*QJS_C%q))=%kk}dpekyS%Fc*(XJ?|siA?ZW8~=wI-D<|6&B!j27z(4 zv84jfywi(^JszxO+SbzuGn)=Uze|eRb0sC1k~5qOlHY)V8OTqbR{RgbkN_>jX1Fnl z-2OHy%gf$KX&6#74G|iTheE@|&%BWpry-yJk^QYI=1_Tfd3mAjIBvP|;FI<6tbvty#A zp(doi>`%6H*~yZ5^a%PS>^R&)Ei?YGhsXLX^mt7Xv;3E1aoof|00U&aiR9$hTS_p&%t zu}@{0OUl#AM6BzL>jQc8MxBzA9qE%D=@QFbwCnp9J*gys&*@FHm-dLY`pD7i@9jdL_} zL%q7?GsJaWy<8%EWQIz5d-=l2ANgQWjNz|gxE;a=+SGf>Ssws=GV}H^$SLSUT?5?Z z8uCBTq65>mf?nawxZQA*5bBTS@Iu#sZ!pXS#Y?`IskzPeJmA=Zkvdk;DO_gMS<<{o zRyKm1I^48Eo>j7UgLEe;J!GYr-e8mMkq!;}r0!`y_BvSkmdBRLl8V~VV7=Pgb|R0@ zkkw0ZZDUT7u4Rk|wS)Hh4l3tX_qJcB4*i|+)g2*7HoW=x z@z3TAIA_LyB+^n=ils?(8M@ZySCx(xDA4;z4A5jMA)w6$oUdxe#SK3!ykC{BlIA~Z zdwBE6&PiIvaL#MP_`epxh{P2zf>N$uM~<=Y-*JEHU)tqUD&FwBy7Eb zxLWypGTluZw)}lIdKAOKsj9TLGF9(%21lB1G?rd;BaE4Ttm4mu$?hwG40r8hlxKDUWX|l08PG}_PCGwU-RH=!=)tCb` zwn`T$oE+_IfFSwHA2`heIm6R8QiCDoDyTmBM63V$e% zGMEXDa~fH;WsU?J!?Wl5?TtxK@mYTLqES=?w!c6B6eE&lXD@*E!aBv?+a*a<2jrUQl+pgK6z^ydxilWKY4;3mObAfPw zR@}*cWp;2yB(*mOwv!|BL2U!I5n_FbY0#dz%&5@l@=jjxktnK;25D3O`Vpn~Ck+w^ z`3aob#X<~I$JUbZ>1+R1ukX%NvZw7^Mc6uS{m13;1vfiNVbP)fppAU}s)K0)6~n&w z4Qluw>M;m4#qj=`s9)fkhjICwsk(hKwc&J6Zg<(XP!SAJAeNcw=Ew3Vt~G>V(hYN^ ze(lWSVp1SjU=xsPfemmzNGweQNa{l{4m4VwjE(oGUFBneB7kr-GnO_q$E4S8BvZA! zU%-B_0X;xJ6?n-Pcn#H|c?9?5*gcX@OlE`@-+rj0n5&U47;>KI(^wPG7N-Sy`LlBG zuFp6OmHDL33ts);()~+p1^19*8Y$+Z>A7oxD~sT&rZO450neb6x`*wYt}&Y;}Wiv=MMsEv6VxfmGyN|-vzL6(-3rJ8@+$LQD$q1zR9iofn&)t z$Dq8L#V@}#!czk?6%>*rMij|g%0C{b}xjxL?0}n zfa0b!TRXM>BYX~ZMPJJYor3Kj{s#DN_X&@6yw~`^qt;YP=~bS^<*J2cBbRSlf#R>? z=Q?hs+scAF_a?lL&iYq;@<`*Mspy%lM9)8flF4W=lNg6Z1DUSp<}1@u9q7F+9%^x? zWPI+lSCC0k`Uxcfj<~vsjwHwVR{kD8g`pB6<8~^zzx`G$?x7Q)p>7RL+`bF1Yv_ov zxOwt&waBls_J2Z-#&a!EFg9U`OYm)IT_Zh1#U6emu#`UldtzUzYhRKHfYU7jAAyFU zQ{dX6QOVM7JXtzZ&cMB&_D2Ga4h0mvN4YQ}!ze1Jx_#idIf5Vs!eO5N z@Ev~ezs{cX&P<9)<3y{s!mc#-kObU$);5#%P9%kWM%2z$Q903TxVC7v}4p1 z8Knz*OGcA<2H(5K5wuj^)g(hVZLDEf11NMa`@pP!8v!0+8%ykMZ2;i_@#|DCvvdM1E?Cz zG~-%MwGWxMsvJ}kaMy$#%yxD(-_^YA2!sQNgVrQAY@KqfPl!j?>aPtf4jbm1NAm4P z6Tl*To*{$0XtyQ9jW>Q6u?fuKR|~?OU4~M)SU3kmG0gTg6u!<$tTsgS#Uh?nVUOCh)exV@quVzncgS?01)}%wmv$H5%XeP)HI1)r_b;GP8b9Defq0u#7Z+uS( zgM6Ro<)Cm=YZVrN^5Y+0Sl1!%oqHS3+(6lAWvclv68(_$Y;UJkbLdu7`9d@GR4fKB zLa=%$r@{7h8W|2r{Hl$T(Y^7)%8W?Z(9$7D@rTo)6S2A zYanWFN2GmQT+t~RsRO*YUwOrbRb7^1JJ&IXUEqcVgn zCYeQAC!`4lGt5c^GDJ}TLF=#xJWgJ@VneJOAtuEAFH^_bpT&v~yR4tEj6{Z`ab9!F z&OUS8B`K0aIEH4$AJsly)Ap4vcLIHUs_PTQ+Rhc@AJePjNeM)l_@S9UIfe8Wz$b0W zj=Ub-FPt^rmPFGqYwvHuzE&91F1KZZ!hR5PrjfQpnSuwOkgJePSe(hUq{b>Igv z*50Uw@z*Ehf2Kj&#TbuIE1DSJCa)ZGqw;Q)e2>G7H+^_d4)@y|gpZV?Y;o}$d{gOc2;=Rg$qL*X6C8@vj^2v;D7gmlr_J4;>@w!l8RNuY=)A>rQua;U#}Mpz5zyUHH$kmfL#!2ggssF zxYYf`9Po;g6U`Tr&4DkM@a9DlLpjs#rUTY@yJhfpRs?owsylmZrE8eAGPv&P<1L0lE4xH)TWOk`He|l4tG}A9nqK|Z4 zs2JO2#xTey90eKI9Zw5-1xr#TEXW3O2GGpt!d6DQxAO_vV73N0+qpT>VtZ#j{IEh$ z7MVTf^4R99g0ye~X171@^c145fmaO{ zM_yty7wt|bw+zs6hb*^!iOT^SySOO9UqWwYJBuEHnxRuO9_s8i=WYo#9j&|+Lc?59WY{N~V%{D^t!LqDOIU+99=jKSvHQTF zUi*?h(StN)E`=a#sEW0DAYsTp-b45<4s=T0hvpiJ5jhWx;oFJHj7+G#N7}-6UibQw z&6qKZU8Ti%?2FM(n`vfi&5&DsQFadeD^I1FRsaK{^vQ~)SJc5P>VfAd8v~l|T+2QU;8s$_3^sLeP_)%;&J8xwV^=KDop&VEjttoo05M)y=7R zbPD~^9%*;JM*`QL)Y9;0qQh&7{q4+}$V?X6=> zdl4R)aS!=+eAqEvo~xO7_GTshL!abp`gMPb^(&!6xzxWNR*TI*l<41*{Q>hW)@f4j zsY}Qrli=pubI*N*@vZ$oco;;Oo6jnD4VqJ z;MK%!`s1(#a&yGx%c}aYNOSDG368k?$R8)HgZ(_L6`)cme~pEP=FL7bwSxtzjqoRM z+qe=V+lS81hGp;+`bW^8RIMYtcooKME!m4|l3m>ZhftLM-a+s|Qp2fbVSPZ6JK*!( z*>uDC_D+khLzkd3T65rg;!0-5LtjYdoH)Cj;>dSl48T$aIV}PsQRONQmG$(8->4pU z6?&5r_*9YqeVfLKY?6to@sI_u(3Dux{A|x~q~y*Opk;O+CiBsdL^ut_1q_|)Gjq|L zmjf2p8SiG_QxQ6iJIXmghLm0oyuc`cJX|-nX_eOM!doR=a$Ar&WH!Psgus8)Ka>Lf z5bpZ(*IfpEnWx>Ab}o>x^QY)e|MpE?aP4s49|8^mml3CP&0Piv>%xoxV6_hU(wC%n ztk^7~vBr=8|BhU?F#Xn0#aOWm#^_M+&UN9@f!$AjQtqg94>2iqdbc43lL1aROHnj= z&X*+oI=RdVu$BNz%(HcR{|fBoMr{l4@sHjy(J+M;NCbW8@W=SNFdzurDo;@iwR!ST zNH6e7-wCR7eQ-!x+-2G{fGBsDW{U-G7bPQ)p6M-09m|n`No+`|&W?J7M8n_ZnQxaB z8ki84+dsNq(_RRIli(~Y&l|6`HId^`?u%AP_L?Bk*?hEGr*mZU_(P|nP%pJjW1dyu z`x}mcthvrDDjgM+yAz}MZ(~ho*u)h8Lu2Y{gF@<>=0 zjlO43P4Q=mPw!#u?rYZoO1XEQan7-d1T@B2JH61mCF*F^9GDo z43OOa*_JBAe=$pv=@|r(i;Nz~*603<%>WMvn(Ju+X7}FHWWXrND$6Wq^+3}9nRn(B zzRsFKL6T7KD=3YrF$PU-~XVrSNs>zDjGZc{(wE?cx$R~Rcg@j z4f{rBo%e0lqf|(`hvH#!90LUAqF1tv*BuZf{NWY5wN+1?Un;O-QF$ET+s6?m-JS$! zt6%P>y6{#dVuVVe`;8pg>C;Caw8_@>%}zKpfd7VkX+H_x;+?~PE}+H;)Eb^L$Nd{Jm#V~1C{e&Cx?8w`{DuG~SfBDYEoZ>p z12Y1GfI=xUOA|rqL72#_VboP#ZV7ich4yn?^JN(GK}d-1YoITRY?Bu-jNbsiJpg>vE4 z@>hDio{>sA@$MlsZy2k8Lv#?#Ovaa|#BSR0!Dx;Za15Ss)qrHA@##NhEtYHHJFBr5 zR!FXCi4vXhAcGTf6w$kWQ@+5?G-+e;ksxQ%y1c(8dcu_K`qiaNai;@u}W1$}~i=lEM6&vMotV z^4X{-i)s|F7pgwcLNis^XV4D*$Tz)*+B1-w7@j7TPm%kkOP_aA>mLqoNWGZCWk7^5 z4_!6Gi&N)4j4yR21s{oNj7Xu2rAKU!T-Tm9wuBhXbUM?T$&$*38eUi?qu#&O)wA0Z zagXP!yv@0U#G20TqeKJ8lHjqY95>sTL1;D1d0rhDmke*>VIyf_&NW==C4xgsvLnlz z{$FV0oBFo!!!_<9yfY{!6bey+QMwK~ciPk#Iym9CGU=kMfLv@toPj~)b0ZCn%qSVx z!INmAWafRX4#i8H5aKeKK&d_xXiCHO;623dQQJyr&smi#7jR2rtQAR;myaehGFzKA z9ueP}L(s+K(^Hrz!EBzZ(jxaUKQtiPXui9`QKND%(X_FND?u67&emiPM~5e>7(ou# zuZMjll)eI_?eY2q|N6Q(pd|wD#C#U~*Rs46sh$5}B>PtSCju>QMRBbSO4RvB5KYC7 zh;oM#K4pyBTkM}Bb(US0LcEK+pYk!=#nI9yFInRHv(*`{x8Xc;4AmIn zV3WK0!Dd3Ry1;1rmY!!ld#t_FiFWC=Wb(|%CB&-VBPl=8gtV=iPNYbP>y5Y3Wq{Z_ z-5IzoAh<5JerfaPa@x~p3qPeEi5PyVQ#x5<@&HK0-HI?jt0e6+F}h2r+(B(S_uTuJ zKXXx4iD~u_B?U=q%`R8ro)?q+Mwgj6Ov%?sD?sGkeQI%+G3*arYZD{-F+Q?AJMr$xs41PU-Ysg%n+^`lx` z26|~i(4%<1EtN6|e?lZv{1Qgd#f8x5_3v~K{e{wObxT7C5BU!EGvs?8L63#@!ZwM1 z6WY}|WcUqvY>V5ze+a#@dl@HEnrY`xU=s_Hw5}dV3f<+j(%CmTv{-_ktY2{zxbx%HDNBr_0qv!3thvP?qc01bEz2vsRz)EW>g@}YYbO3BfSj^asq+A z6K*7HcG_sy+g_3W?^WPVpQAOfg%kMzN1ftKj+xKd&CVWB`w^%2?+_MXNI>9sxgS5k z3H!d?Ak*9Z#9%eu%1n@t=+(>8{I6&#X&TavlmSW9PJ4KtC?(e{W0b(Ln&cXkeFq_iNl-W6eP9ryiUel5wMn33F$=o%?m&VK^r z|C0660Hi8&L3=WaH%a+oLsnWmHY5&X1V*~MAUJ-Fbe|LJ{F9aGDHF9f5s(CMnprRV z)@lmNgXVTgOm_UFd`)%d6!W&9{)K?D-zi!$o8HW ztvM48?1u@vXrjtsf8|WVqpv*BX0_x=`SAmB4NZex2siXJz!#GCc_b%tX+J1!)=Mgq zX@vD$h7t&2dGQ>zr~gDdVmd>AhSe#qf?WUh*#ixX zhNNh85LO_zL_+t1F~U~SQD~7|RNXr-(Qz-O+{IFF@`nL;!#L0O{t66L9$!*nG2T*c z0C}d{xscful5|9}QRC(|; zX1l(5Y`_n)h^7Ie@DS!|6S?Jov#-`Ah+J`L%)pp(ol9=lUR6HC1FgAL!sEJ-`B}CZ zN#=P`W`o6k;YmINlZ|dlDuhjJUm@U9rd}%TP-RJF3!CtkOdp-tqQMuZgq403)hbj2=>sdM3`K8GNaB-@gwrmvtzC< zR`d)ny$BP)843NBr;a;aZw!E#(2Fvr`k_rR`#@Ds&WXS-J z{|oni^cO@wBWit4sqZQeAnPC}uuSMOh1rnans|jJkamruEy;G-x6l{ntG^(T1wI)k zHTc7T)W|4J$iZ8N3qk4rXd4%}B5I&~mf#%yFhIP~geZG!Z7b*KwDv7N8NGox6)5Si4VjNIcY+4|< z-bp>)#+(vksDl^y)Tcrox&sfNz|P@Tq%ibG_{O(@m-*jTXu#@amXVca&l}8LSP|gH z515VpEp^pZPJr@~QtlL$E%G_BNF~wZv1e@GG^Ww$*k^1qPjY5S1e}%e>u-j0d(7i% zyp{~K3tPn`G_kW`iPpvdu5!4PtrLy>{q_^25UtMha6^~Dt?x}Pei};s)mT8bC_vc( zq1oOch&|0?rOP@=(~7#U^rqm=_fq7)A3f4X`dxS*LIzR3&OBq%doS*ks{s%kMw`F;=C80*H0F(wP`ZW z>Sw)mP|`t(Ls^DA7|p)KK75&k(Tv6v*B*PNe3Wst;0XkNAh=ie z&*_iyE|siJkpEMTO5AfFIA{)a$Uj&iq~Jn+q^bfa+$l5F{uU*(cw}{bdkBaEI1lZb zg|(zySEaTIC7}nWPcP_b49oN{s)8+9^ZKT3><>A}7#n(3;f-+06Li<-Un*W)iO)pR z=_5W6<1l>B4k`!WI4s6DTPUx;C!@KX#CQX;qb~`2g_Fydx7?3m+`%$|0<`SfJaaKd zGE!d`p4_K)4na{mqqnhjP3nn5&9MI_REEZ}+C%DUrQ_Uhs0AR`ZZ%EgkIQdO{T%SrhAl~HN^}dom8GRL<@X zMog?8B9bu<4z0^`r8iz&yYBdEN@CrFqVMY z&n0Fu4+JrC9Vh=~T@D&7e!hHhf(j1BJXp2tMzm#=E^^YRWb0cpVs(uk^-1W#Y-?U0 z6vVppoY-5m@$} zVl}H*dBH&nrJJpQg~Nmd;hhKp+Pn8{w50V1(Te}jbj((JP@ ziMK(3#gNcRKEA*Ix3BO&xr;T%JutXj_wsX=SyP`5-16l2A3ZZ5{ol+c4xehYw7>kU zgc9IEtCq_z+B>naHu0+OQ!sqxU@f!UQGH{no7*#h(4iK`edBNX#xO=ENQJ}(<002s z#w6b;D{I-~N)LRxg8VsoD0X8DC7oGl*s)LhluDC@Xb)xW&LN0`j_ zmOC%_b0i56L&kF&CF&9 zIn)=`5%R9eE(Y^Iv@BGZv57NUcHQU-)PIv~wgZ?NtlmzPwGB*K?+~jMU*_Zs`N}M5 z95OHPtWL5-|62Pqk>J}s(gt_E5OMDPn}jC@iWq#7*OiB!?1Q0!{u3LsyN)0fRhw{+oTd`aMQMB#JHv<94OrO>O4aK0YM6Z!Tj|7~-_A)mq@UBq2?#{S0P*s9NIY;jFc2Mm zek4%ls_Wosn4x^FWjjwPp9~ClGCPPf)3gF6moMElQ&m3OjH<1SCAoHt$Fjmydec}Ac*xG}HANG#Fceb0I%FSz73%69iK#x1GBr2Ia6;e?gQh6jp90kvDZthp$ zw~^x^ivgqlgG0^|kdfe7AYQmuklnrNrk!CbaP6fE@qVIkhr)aP{Kw8$+anWfM^uaX-|7YYlUU*U0@*I^<7 z9XCCE6q{7lx{!DjTF*VxmN;Q45&~SltA{#HuEs{=?Ce0eJ8RjWP$27~v4$XxHeT}| z`yz4s>G+to(o6PT9xyD{?bsCCgBe)|#IJ5RhtNcwxPX-{=J7whG6PjwA3zSo7Zp`qz0AEWqGW;}^!j_~mhAiIi}xP?E$2ak zV5RiM;cO$%4mNblnue>8qb}pKF-F`gM8)-zsUBC3vGm@6G#K3&)CHy^jiBuY;8)xV z0&S6il{j=xY-bsS1z<3Ifv|=9MeiK`^XL)FkalY8E8Ih}muof^vlcw{s&6_LW&xEn zvD^vJT(us-?0ra|TYoXOR(;dJsq2YKa&!_t5`9r!F{do@>c_*-X49O%O1s205C3du zmPd@PAZmqFZuFigk$|GBM6CBE^~OMSN%=HPwD_QC&{|?|p_gyaoTo2jGY!nr`aXd- zX2;h9JhC$4Tb?al2aj0-su9#jVMgrR%UfI@wAy6JXn#1G%D*{wfHraaz4#FN_Q4H! z=}`?vKt!eXzatN+;$M^jSEqXk8rQM^47G{>u}9dwD|gab&kLBo+PT+S9cEWM8?5|0}GA)VRztU z5^I_7hO<>Z*#kppIlOTEniR=3K}3EGV4j;o`*LoWo%X^S{2RDW-6D+|`CSRyUYBkJ z$xfEWB{lfmO~2mRjLl4|DW@l_KZvd#p6fen&6Sxo5lK8y%AZWV-f%DiOn^H?e?eH( z>@AY)I5KKqZ|{uuJ3uQkllK378t~birmQd$tiejXz>0}9TL^kuWt?Rue0DcuNawHS zcmARLt;)Wc)pC1S?h}yZqsEpf@M8MuoCV%KDdk`0o?g`lHFB*TNgGvi!< zjSQHf83tw#hK&S~L<+F>r_2B`*GxrCMitiQUCVER2O;*q)c>ejKtgn2LHBL|ub2&x zPBEUqfFKNj`BDcMH+A_C9!qDPK?<{oDT-6-L}9+NtZ5*?xk2acKo6jj0W z7BoigWyIA9YOpdz8tvYc3DxnhyoaVduAky@6JC!A?)KAd?Q_e3=M&Q$R49ATTdLhP zlFOX{qhMt~vfE0Y%Cj?IC5HeQ0R;5eX&@h$PJo+Ln!VVVjh%$jfLTxaOGVr5H8a;s z7sBF|VJ4tV^}{fV^*-?=RGGFvkZsrw8_qyk%`-O;CFz~sMgh~lA4dxACcXYa*g4wB zTib)t&xn`f<)Z_Vj6ZmrQ$SjrP9`Sv!g-^k(^o-RG0mGUEv=xo`O>wKTRzkU8Rz+cVt zIQD$$jalj2*9wEzZ|Bk|RNRgKZtY!u7N{sBYJbaOpPMLgiI<}MJ(zCw=7b=A*#q}i9Q(XSaZ1J@%Owy-SYf|yvKO~vi`@idU|*t zDm>xX*J9INZ}~)p!Dhdyd2;+-g5SUNX-%8lXRes%E}C}BYlFxIqMrP2CV5Hk>AGb_ z6NyJyT@Fv;Kyv{YNd4yxTFAnQ$d!(ajO?ByJNqUbhq{hJ(K`5ij`X&DEv&P7{K1=g z*6k&-fQ#(&En5LeUR}*cQ*r&;%Gu_A zb5Zqum&Gy>lt+htXV`hrpf!+|#kUtWOph$nSNz_?wu$2X__i5L^tO3%`)Oi_UJdH z|8nuh44Lf}46P;<=7ibJZ8JSc{JVptBS3M%FKo|vIf52pg%eZps5-;-h612x>Q-l0 z6jY=wu&~h32l?1oSdzrql)PKQP|5!sQ+(h2?mIxCG!kEEH?1E8 z>4Yj{1RREU|AvFqz{EoF>zzo3{oi=w_}{g#Oq@vQbIoBLi8|Xc)S2kj=7(;Nb;X~F zL1f%-KC~69=;kp!Ub-@0lIXL+cNFV`DYhDX-8kSK-WEwQXTxyph}$x?Y!S(H#utC5 zf*(3~-ifihz7nv(;E#*!P$Zdi34Dk&_xrzXw@{dLef)%k;OxV#-%3ZuA%hrPrpRuB zb^Dy-0w^i(qf3P)vlY**6!a_x;{Y%4<79PsABPtaXz}dc8_ihG)Q^ODiO-9gp7+6u zrxzZ@Iuci-IeHUzDTL6y)aYN|p17gN&ejB71WnCa zr}zff1aG10<6fBG06$q09lMsY_?TXrt(5lXUy0qEMar$pWyI9?X2%USq(_KHV_204 z(v>yLGsNT#Uyrcw!NcFse(y@RYojeO_{QA#klK$<0h`NL4ndbOx7TAm5G5y~f8Qe6 z-)F(5^5wf=VDweWdfqos1k!peJYC2*xEEyZmX-rlWcT#SbJDDybkD64gIOc}dG76cyWVS?70t7>W!n8Nx6sV$0=Af=tnrb0*JIHZ z7c~C>pJ+Lwlm6}8?BcW5O^?tDppdfP^V856!|3uQNDW~k+Pv+(the_GPs70@*IA|V zy2#!fES4WYZf@X~PLgpQ2kez_x=6>9;6|t@6Za)JsO#D3=sYW>TY00F%JY#e;CSH? zPgdBVYfs-zaa4x=_YIDVUF{X1Vren=}I+JRN1v~H*Y z{N4KtlvwQhf4@W?Spwqh(-{TcBZltfFAqw`Uwl?c!x; zRn&c^CPG#vMxlf52R-C@ALLHwxCb;4$TxNgEE$;ujP=ApH2>j)Pr0{XrTW?XBu{)A zf7Og@losq@e_t)`<%KeeUXsmAq(3RQRy=8^Rs88`z-H}P5XzJK?TgBMWcy7ngUOaq zIM;^a|qQJZLeGAXnzUfz}9;0)V>p-IbtL>SnOHXR%9 z=1iFbH)dGdI9KMgtk`@Nvg3yA`me_d3eF*M8Qoo5rKFZiIz{+xR*lz$LuM|- zuFmkpDJ2z)FfT~q_^OdvU7ATsOmQl{t={C|&tJWwP285}A#Q6NHUg<($&NfiZ)qzwINU#}LWTo^4czyGtPkpnk2pz+_)=R>>zG+K~g3q7Sn?PuN zUy4Xo1PJ%X`emBNw0VTswRb_$6dRVeQs+w{-otEG4~#K*A3I$7bSBWjD1UlNcKZI` zx(@S*dov`BeWSi~`X)&%FP5xPWASL>rEFf1%<)Pdhs164 z+AirAd(t#AZ&JcES%t^X&wim|*Q|n7*b;eNfvG3R2ctJ#&%Fhm=6puA+5aC?UmX_Z z_I*zy-5}Ck(pS1s2~k>*Zj?q!I+c=;Mq0W+1+|XCn!(Be*BVuDwY{KO zeK`TCLCNs%mjhb?oEEu)HY9;uT+l4HuI{nYId>pCW^wH7^AxCCrZWK(Z61mpf|W~l zbn_EnIl)j@d6w76FL%;FSW`rw01`;XB)^HMxEnkXz|H;~l1zdFl?vTwsR&Z_bW;kr zh}b|LgJyOQ~%dT_%%sFVxBS49TH<8pd}Hv;tW8h|*Nr->v?V~mE%#OZ z9;N;JJ@Hjr37=OLt0m+Q(n(x|bNEgcK^X@IEoKDN$UR$9>@YuC!wwEP^+O(5-1wfovS z9AO^fr=(X-@Ngg+=9>NmMa`VTe5QNF_2;=b!t}>Ob@TW-lxNend>@jLiwDo=x-}ParQ; z4TNc{9-Sjwldn$2J*yqZ_AQxa(&P4&ASs#VX(aiBQgtuS`p+>+tCwPHOY1(6m+>Pd zjuPWGtMmsU3=tlnSD9Sn^;2Zta~wxaL(&Er=h)2v((Zuxq5%OV&$xUUzNAW;ytTLS zyZsp)tf=bvZ@Sv3>=uM2qcXWD|EJFEk~y)MquNOSV7IXJX=Lf{RYAaR!Z-isW`Bv< zN5vHNpo0$#HfQx=A1BL-qH4JDVqf4-nwkPBK_pP>`NGjWZYW;yEEOfZun!WvQC1EG z;{e5HR@nl}UkTA)?R7T2PQosRft@XfNZZ$y)YDo(IvwpjIgQ8BuNs;y;*Li3i?l7U zS1=_rWq$#gS=R*h5=jfut(Pdf`h)0X-lro6PtwUMrqSg44aRi8eb?M>l}DvqTwMCU zga4pYOu$mO%MUrAmk1vbb?WNow{dVmv|N9)4({3O7Ek?%VD zy=pC`mZ-A@rxu{yL=BF&{8p~!pL%U?k0KOW{@X6GSgJxxp^=DHW)xIKmF8-Bbyg~@ zD6C>y>o@1GU$kw$yghFHKW~ok_+HO=GtdP1`9D5$U_wlf*Rqs7EeLFD;Z2!H#nHY= zEc1&JNE@Pj$Y5EjoS|tUOrxb~uY+qB=>KaKlVAk%5tSlk>>?|VVm&MM(SY#P+UJXl z%#ii@(x)opQ9$MH5V@-~AAY$h!Ofz>UHwZtLI)pMv>-o(-V#?aKCK0>*OCqQtd-ao z^=2m)3a>0z3Hl{L!H-vxDJZ$iGUogo$^t{`*%voxrt)c~2q>7t_X_*ZFI`VKDNtp` z0yQpacL1LgA8N;Nl`405da0TdIxj2n=I}#{1(6NGk`rJdltXs{;n+DRU-XN0?EI+h z$ag1o@Z+4P!Tk1T-{q`olhNYcoBvYf9IXhfz8thXbO5gryp(TWEOjo%hR~^$h3ihQ zXLi2^9;Cd0faH5=1&{`DaI`*C3yF<$Y=%|GCw(&<9C;F2C!xso?4;0R)ai2$p?h-Z zbVyvA&>>!xU|$6chxv9)8C@-&OF&7x3RW?x@SE7Sv?EAWPoC9<*Of2rnlDr(oQA)`{?eUE7>n{q%lxLXvJNm%!t%ueJ-JZ_7&O3B_7+2fL1qaq8P zY*FxqIOPk1_Q(?}eJ5BdPQ?N#TCLc2V#xxt1AVg0W%dP3H?xdpa+(o}W!Mij>B-q)DJ6lIBO*St~@osGM$JDE?wQ8K4@U$^B!mV=3&C$xBl&6YKnF}TAN=~ z3@GQ5a%NdY3$w0?yncd1Bs&66EXNARSpz6jJAX8;TDIdki2NAi!ibs=z?=;BYfi!=|j>GkNv9!SQBFm zd(r~5B`{chlGUi?uyljJP;)#2Sxl$ycf-;AV)RP*o#DY20Pm#431uM___zLi)#FQ6 zhG`$w8JM|bb|DlZK%uZK!zmS@6c7+EFl!6GL|+TQll!^o>!o*$i|w9)c8f9T3&yCb z&{jh?m8P^9+5xb+5^wHx+uxi!$K^*>kh%e+uW>!JhBrCo+}i(f#{)S zsdc8w&SWIK>ZbqC5dLJL;Tl-)*(`C?BQBuM|DiJe=63^`J(HGT8Un8!Ntve`9J>g;bQvkV zvhxWz<{fL8YD=IMCMr}v`It@GnB|(4DX5<1zj)8Uivf%>v>x&DERPXLsmCpyn>Q>u zXsx2XK6~ZVBqj8QA&D|(*Qy_PlHpsH{q8<`#a8Jycit2bgt9CSvaz#9;xF+b_H$0O zKU+pDy2$LrvpyL6$94oN2HoJJ`hu%xESjf14ij?_WFj2F(Q^xTBf)TV(K{dDNd4cL zN=a*nj)&SaPV?P%2KZRT#b{M4H$_)4{baB4W%YXFj(&O*+)dMbEc8umY7^7xx`Ipd z9m#L%lqA_L;BI50$m2&ss;3qC<*SVEEM;@56-=I4Et9$~id9a4`?j)pP^N>(xhKc>!h2MLE0XEQ!|k z*SW>Q$Oe$(C8*G*Q=aa_<`LG@L!eo zpS#y1JgxBo6(3IB4oIbg84{r-TBqfxZT+_ySfBs!Nj!B9_(SntUfW!XtM_W~e0@gJ z{p(OyE2zm{lmxn=KEEC4k=?&7N9rOrKq!@@`KvW42LX9f6HH*o7k)6t+eDd}eHR7G z3MRS+3Mb>k?8yJ6Xwulw5o65E?BGN6&YnnB7u?WtAZ%@AMg%fs=kvws*CN7u(&CwU zhn|WFeA8>pWyZM)oHg*xh-FRT`#F7G8|dWy`tjj_@sfUHbL)ZmVPfT2ur|Qkm(k^V8w?w0(!@|wp7!%)<7$k6`QmC7;E9KR4l^u10m;Nu_(-wI~jQB z5|8LT6U%mS5m}}smjlMfmD4*>O@Wy+U4R1_7S8R_$Kn4@T~4?MT(M&h{YL!OF^+_c zu(W90=r=KN;x6#6>S4JDkwj-YyhTDg?LhDYCAb5dnQPX|me_#DAsJ;6!V1^z4h2hlN#?P!} z5$Z=`q8-Mo$4+0fkZ4q;^Kw6%@zGF+vr)g5yMcP7!H+skAM`E9HPu@@^2BI^AYi*?@~8d`nmV7*de_eV&)PS0j1VY4vdABM4qjm1kz>| zbxH7c87YhXWvMIA3TyWkXw^w%7%3Zt-P61=@ia}~Sx{7i>*4E4K7kx-71`1Jmn)q; zje^1;8Y{=6rlRL#^Zc@z4=utp#>~+HMHiE!G3w#G8i_RY--6JadLmZ!;S#jFw43K( z>s-2|c@P5{$9B3$;ObagV8Am$B2m4f%4~ilhbsXrV4Jy|JuQyCh?Cr435BbpW{=%L zU4M?8&9O9M&%_Dd30S=znGj?HWDSn<5Oh)M?XmFjDDd8VKOncbYw|ZpJ4Q$!g^63E=8{OH-F`s_qM&>_3)&1 zx{SZ%#NY8X-nH~C^Oo>^{f8#q!r|JP+;|S5Y7UHc>`WcLJdc-rT&Dm#a5Y3`2NQLi zxxEUxFM|H2iP|53oLh7REE5I0(^bce_8_NKYx+X8yq%u_19$?@xubMInGb;rGfc=A^Hf>}v`!83cf3^m z4Wj6D`JK#rdhpa3sC;&=o|O29GkCifGHT##V9gQdLx&)~Szf6NOd&_I*(49%-6NfU zLjvbm6Y1-2kx~6OXqhE6WCy66xB96LBC@q&z?sldp{eXbULPL7eeyjnLHZFf1iKP% zj_z3~Z09(;oJa(Hy8T>Sk#~JdsYLP-dIst%z#1TEz32KpYwxSl8DrR)Bdjhw>$8O% zMzZtXt3*uQ{8-?&dT{Luu#@NpJrv5^sdd_1R}hQ{9_o9 zLd%XPl?H&-W|hv1QjDF&tZd^SGb?}GZut)sTAFc@X!j@Jp9OeMCIYnb;YFeh@`1P& zj#lSDUl5<0ubE56Apb12lJS!d3(vCVgjWZCG{N5ex*1!lMb>J)aG$5o8sBylL+W~L z>Mj7Ep!y3+Cd=vygaL&UXh6vq+k4{MS}sYeET6nv703oFc|-0(^eURjM*N?b=@0;T z>pkh!$fa}JIggbKc*mO8y>bE5mGcrA74i~!0-TPo#FpX2^3ZTg9+e-|0adIC9N#YOF(&OnqRigMSQAX8ygLZ_pW<3 zMVoPgj(T%JCxK8Y0FL0kM@%OoBR%YIx_o2CcIKRbyuT%&3mpo>RgvOKuofF2Zr=iy zek4z5w${c$Zhy0cO%-HRY)86yHGN+rr7nPOk;_E)vE={WUp$17?TLdv$(}w5)MruF zKqQk>;9CWeUO9l7{o3YD;VmmV?rw*U9D2k})-SzYhQ=hW0ayR&`rG%;xZ;Q}5j~mM z5F3m4^&#yyXdYB_?69jGwvf*A^MdW zMzw0Al%XU2zk>-$)XvO?2Inwrp0NF)^>@j+CC#zr+wNAx`Sm3s!0H~ESh}oO2?Te0 z*I3T=+kSUulz8j|Nw)~XzJ74cctKp>L?Y7>ne$&<^2dfQfVoIQ$8X@#xTo#96*2jS zz$f|p5oGhzz1btifSvd`20v-7<_YgVUt>*m5dUossBzJgb>=)E^KF-k+aUv*w;1RB z1pq(KDQYwa55%Do$C@uc07pggAQu5x1}VVcBg2mlb(2Hxw+gpL)xI%C5x@#vVqV(Md44ihtXj+)w2q?}(NM`y zjJ(gG|4=jsh90b}U4h7Ppv@cH=5lXvGC%u-G64y-JZq|htKn=J_TO;%KamLw0eDbH z!19>@JeAi6E@wc-Zu>Sj|IuLCK6;yuaw@MD_qT5!e9*LbQsRGXbd5{zzF0FmjJm2F zY2yT8og!~@{h0<*jbyz)8X>1p(5KFJI9MSh_*d8}Qm&YTkLD%EcQQO#{h@DoL){>U zzs4yeMRC#v>ZVwH@6tNX(ysS8nt|qa*Y!`Ps$7c^9BOCI+ z7>aZHP|d;BPe@*Yd?|LR$%tP-;f6Hu6f5wA5FnWaX0<+UNYT3(Ad>`;v!;lh`FvaFKMn{_U5~ayzXPeSmV*_t&W#L{w(?qu3aA${Y?v-I|l(K?SgP# zGWg@%f;i^7ANswN;qM{^-rk7&2ghy4^(6@``VJ9n@=>J1I|Qg+J+D4r?3SbXnHXx? z`fPkwsxBQ+uMGy@^K7 z7-Y;i!hUPE7zCT#J)YlBZu^>zOjKyOdy27s8&(8De);FF`e#c7GrbO>Sfj8(c7$RL zEO(mm^L*p=@j6se=E+EW>zOWLv%!RHp_aWPoxe%A%u4HmSav&+1QR+)RSK2&_nVdMiQ2T?S5kjp1aFV1d==!MRs5Fw6B2~n zYn?0uMmKmC$Ja1?sN?H&O$d7XZodAtl+n@aBPlw5`7PscfXN96%OUCylA?>I@)8@+ zz@4*nU;GVBq+juOMnv>vcz1ys_ zlX$y^%z-}glC{!NF9oKmJwGvc3j<`^9nO@irJeOCum*8%$>`n_J>Io$)#)w$lp1Z? z@Y7lIN3RCUiU@y~tjaPZlDKRq7VB~F&PG?f+}OeU)dPU1IK<_USZiMaCTH^7+EB3r zu960Dd*hRl`JW=)uAAfTj$DHSmS2o^(04gH4v?6H;l}Ih>q|#jivgi80D?ca6ytz% zl}W-}mXQSdUD!^h`_y%~##}AV=*Va-z>Q$fDa$RFP4^Fv8{n3EH{W;Z(~YfDOuZ)a ze|O$QA;#$s%&YoHgs9E8AbSOaZK(c7)9>BwWw3GFjbqEGWztBTQ&s1gX3^dia7nC0_d;@?yP#O5@1{HKYo# zpE}QR9)X6WW-|^se39f+UER%QKozzWfbYwRt|^AlMS!7*Dv((gr8vANfKaN3KYZN* zcMHhVg*oz0qfwwAk@tkr&!?S15jE4Y7C~6@hvFqWfHLFKaE6#u8E-d>*d0;MzAuRM zU(Krdj?bevA{MIJwXbeEgI_`9S*13HHIv1ADF4|&n6G^JFhA#9KcP6CHLkM;BIbIH zFnvtz1pCYIc6dN*C~wO4@usj+kw;~ST>7PY`!>tZmRQxSpNv{S8(a`yr?$56x~0qpk+lUnT9Kh5on9_+`}1SYJ~ zfa`@URPak;3z=2mKMKnGYUKk2RETPKoyVHZTDv;RHyjju zRgY^=`b;7@xu|^3f{wP$JBoK!tO56&o>{#2EL&KFKQF#+O4v^91n&wHRu)U!D6~wc z0mWEsO$<+&H*7#VxfJv-OjYXV;Qn2NUa;^qFIdgBMQd#vlF z4+LE*lg2+%#QC?DiZho@Sjn3wdXw{_d6T*PTloX6H+~vo=}$gi>Mb$$)kLU!*VN_k zEsYs3wY!3XG_ReBJxK{rB#aO+PSB~F9Opma%00T`SEQprRBqrOGq)J)!&Vwc4Cnsz z{v~H%&_d}(Z@e5u(ni-W;bv*lUA}3P+?efCU_Ra1i-sAx27tPpF*bo>h#wNbWT$UN zcUs(;92w>hT-{<@(e`Z=0>s$7slPoi@}D-9ht88e<}AC zuWtN#%O0up{^o$`Loa|V(J*>>K3n<)vaZ29rS4ew=94a&w+Q=@$)!o;Bkf{E6KQri zIW8$FE-8udE8z;mbLstGgLIQ1ehE-(2h(?Ku`J7}XjpERMt2~XF=b2Jro6=>O))vg zQ3FV0!Bi@cy6jMNPZ>sio1y(HF%5d&^ciKXIbfL#l7>H5_Mn)x?1}bAd|ow$XDB=e&TyH20lT?=N@-d^ z=Oi$^cr@g)nh09yb$X2I*rTV`#oPCHbvV2|#}E5XK5fhHp|DN+*-z`SvW^m!dWHjq zhg(d}X*84q77&xAIkEjoW95ZDcS^vqWyoo}>G|38(l)`Kgr=?Ep~fc<|7O?tWVhZ+ z4JFP<*>}OaCYB578Rr}>%#muNpB6tMUK*q5Y-X>=8Ar{5B+w3X>pt20JKK|WP>{zp zW8Q=NV0u=w2&knRZE9VO$J#P=y-s|$BJd_F6{FE`$!F|6JR24P;hNJ{fx%`4hiiga z+x?>7bpkG6?%{Nyt&yKF?R#t!ZClRiD;r5NMz(|A#p%Qk(Rz**=u@S_e$|}vu1oa+ z(&+gI()%NAib(va_CFM-d>SZ*^Znu?(?ye#l$k1rnIL_E?i0VSqeq}|%gHawL=2nX zFlyYR=#X`>w03eVjAufCN_nSTV~UPz*GRX57_;b3nUpVm#2o3gp1c5^a}vmRnIw`} zO&+vKKTI$oPQLg>m-w4@&R40Uozo5GWm1>stXzEj9Yw@A}YZ^cAyG7`~tfmD3EC6dvE1^y$(NSuM@+XqRzPbw}Wp z%(A+gTet`c!CyE5b}EgQBBZ5*CtB~M)k6y+k9~%wftt@ek>OOJ!Q;Q2bGIvY(Hwo3z7A#F}w)5CqckyuADC@EcP@XmsLzkn;({}uy|g3puJJVt-bJ^(_fUW755qgqintF#*lxP#)W{}> zpdoA4#udzlI$U+j@tLFrzsYRY|L|Ac!*y!5T~mt@+_@c|^J9&Y{h*(8_5>S+pH=sS zp5003u2N-WO>06*MV^fBSb40vjLlI8H>$>c%^~~&3G!E5>FQoFvsgTGyE$*>hi82S zKE6ClGUER43mcliPjjpP-#Or(z3ntO)iOH;gZ+fbf@S-&{aV84z5uGlJTy8W+v591O%0 z3AiCD@rh+v+PHFFdduyLw-`|HlV2HQRX`?Duy3tPMG7()RV@q4`d4t{cRI;9H=Id47Ymjg%Wn}??qR&B-;q|>rtcK0wEb{H-QPLqYStyoy)pKK ze$SfSnw9^u+R?k*(eu);!SODULO*%k4pXnWTcE_sbzC=89lCYdlvWnRe)OxQE{`S9 zcyoYAV*I-o>5@qKvQ3cdqLbSWWB28N-zQUz`pr=KznWH(z$ixXeV{uXkm!H^)ofsw zCJhCkv|s>NBsv(roVa6nvHKsO0?65w!q(zLYeS%_cbCiPrtiwVdDA!)+uS26#B8_% z2PYS)RyJy^^-P{V8wNa^3l4Wq!adV0p}O@T5|?4=bU@I90WBoXkp21M{i~9=y$9*> z%sfd3S(Op)`tJZSJBMuE2XPZZIzR~5O6@(z;%c6_+`-xz^ehO0?~iyi>lc2|xkwc6 zMm>sQPhI!WVypo}Ai2@y2xIN~1*^GxX#lZuhzEFJEnCweZ=}e#a5aDm3wn+R;eYtu zk0DE2(;IUC46}29uIL^?bN-9K39i;Wq!$n|w*Wo|ftjh1FN)Ni7192Kub61_4FH$I zV05|d@Y6gtH!7|m5u@j+ju@7FFW>^jpl~IE?5EMNAwIa`AM`^gFN+L~G`x(j9ST5( z=N#uJTn~MG{Gr#gGNYEb9)CKk6!fwHYP2MXT`OqIEW)?}9CJR)V-T^tI8c2w)Ww)FUnN-cxNI5uU}`Mpvz= zZ7BTP<&24q6H3v2peo%a*{U}9Tcq}<`CQg~c+|cH=#BBg?o#gfR|^23C#rgn3pcTB z`73;RYtwV);?gJsv&QNHGzi?k0r%0#n`!MmcePkT@W7>cv(`&6-KaPDAwV;dxMqhj z7G8WT#Twi4GoRZ)`#`X7b8hyFk6(S5T4b%CI|izw^vuA8HG1Vphcr7s>BzH_+4-AH=Z!*VV_;Hd;=KWti5Ex-}n9syI1(>4|`vsJ0?x`!@km@^s zOF!S{rj}TpC%JRbZ~7E8lqdq)CjbE}I>Fg~^#!&Jx-U5nIc$;#|LlKnovTIhYqUP! z>BICY4y~ECWw4@Y8M_jy9u5hZ1IB}Cz&nz;`KKIx(F}-4U zfUHgHIR}SleHh=Y_mtOzDPT5Hw9Uhd>06+q zt-9LPw4(EOM{>lB^yE0R%ADJ)Xkgsi*rwvZNB^sW2Z?v_4sH=RT3rZ#?RR>c50+(~ z1Jpys%gj+YEU40m=`lAvFAZ1fh2deRoyU?BJ5!mf*%vU1_`ch~g^~85pi{15@vGN01(lKa=%IH= z1;bAVd?vCY!BvmvN~cb8G-WSKMI=|-@t=S`Aub7}>C_%(%bWZJ#One<-A#g)a!F`C z@ZQV!&?RQm9YNXbJD^kHmIB~9j)S@87XHQ70#g=%UP4l1|Avw&Y3>++**aaP1tP9C z0xOl$M>@oz$@LboC_56LXcmcriDm1b>&tnr&!K< z1ED?P&xJ_$zpBVf5i#2hW=lpKg@OPnXXf<(moiL~kG=r*;e4O(kH}qlgL*xCpzo}pdx+bkD~Uuc|Tqo?t@#zX5#t@ zZj$tySnDIJRLr(-LTuOAntN|6pt%NgP-7)?o&tDqUwkoSvp2|m))Vg@aGFacZCN2| zUhO?MnmYvIFws;Oy^ymYp^I2u0V+D5`RvDQ(nnSRfOd1L10wX?zF>d)wwp(IF2I!CuRF_{U&C{P9j z+hyr2)F$ELdzEP7EB8(GlCw`8zDfbdSU!KX`$)GcSM`b+TRdlIILI5SHMjB?7uq{A zADg*5{UA*3{VXF;(~DEWO3WmQ&_$_JPP!9{(+!t z1Ss=YdOT}@AF(tGj?Ieu5h$89#2ejYe22Hw;~xe~4<2t*hYNP|i@X_sqxp9<`A1Kr zfD8%x?3usHFp-Lpqfi{`KtBQj^f5w9HNCA%uG^(h3^o!_0P$o&wTEH^xiT zT>SDo;|)Py4|c4bjvk2~0=usqt6h`XoA~olkJ%_daFqD-<6Uib8UA6)(!pc)L2Iz`4Su-=$Kj4T!ONw)Wzq*U|A%yQzg2#O7iDa; zlvRZszf+w1tyQM#hXTm1));mCE>u8dlcl?g3W>O)IlSKvgX~R=>8M-Zxu4%5qi8-G z^`=wI0mvLz^w#{N&~iwT#p9MR;QzR zoZ-`c;oXN+dp7~vl6<5GTb;JL^-UuOjx4weFs5v2$8J@f_8d*2zMAgKGsn>}$E7j4 zC7U&p7Fb}nFEG=AB!tiA{jCZKRGwKHIueKwdh#!EM|o<1b^~Q`_d)aIVA^;Aw4X)o z?((!PC{U>*=?~8mmOQX|7h1}3A5#03mJYLMx|c^7v^t?9)>TfDJS#ojIT_|lpR{)W z{)yLqL$G;5FV1BB+*AYnk+!*hQ_f|{%%E0wz&=>GKOQyF&e?v!n3JNVMyCImf`j97 zug*1Lcs7ooflMq*&B$M>&o1j`2Zak27=Mkc=39FomWF)~h=Bg1S-&_@ z3Qd}k+y7$P`NO2M*Sp3I*v@r6=B-4;nK2}x0ykKe<8M@qSsGJG!G~FIHN6PhBnK0UX_Do9Z zP*}T_n7Necf->3T+q3f;UEt-IdVW);NKr{|vEG*|8GEW<8F8FP0RhGtpQOfDVwRkh z$SG^u2eT@?(`LRBK$_PGR)igT{J8z^X64?kP5$dAcs7P{Vq{3}YI$=Af&Pd;-JZ8C3#DFjD?}&uzv}ardLQmNOGo?cN0GBa_pVcO*bq&=sLB0=u?qo!t zPPDHOjSe!Q=hL})l$#oVuHVxzOW+)&4R7#1IQ-Zi);dkOa8~2HqrBGe(K96rU3Zl#kw03bS9eTofAn$FCsO4u`OS&kW7=osK4AHxjuX(8zC` zsZiz|0!llNc@=|U;+g786Eu4RmRK?4i>trXgnT&r=AGnq7vdtQ7cQ}+87-vKx9*Wz z{3*ZKPCt&{!JM5WrQz0{u5t>zQ@4cI>5-@Dj1ZLw{CiQ$KRxVVd`S8pTtApEkW>Ph z$fvuzUHd!8lZ%gJtCHsmQ}I)i$dlar>)m_lqv!drE<;nPboMg<{bY!NuRfY?#@Ot5 zvhXPUiKN(g-QLFLoctYj5nHMwg)c*!I#D`hKhgIWM|-w!^F$4k)xf?|6ny?^e$xH| zy0##d_8sC&UkeeKReTm9dtIH!$Guf6Tn5-0wKxp8#e>#>EKKg);ufb|3q^c^mstdQ z1MuX3|GAgfT}h*L?x1&en<6q(*;^<$%DB_y{&1Xr^X`&+gI>0cbyFZUA0JGXh zYD6|f-q!y-%3o}qyD`o6d$@>^hr)Y25E+x{#PBNp6;hBLuG~QlrC4f7VDPGM!t`t< zF5W*}k|%9%`|~?uptMntbIyr#b~3Ubo?5*8Ce*|H``c1wAh)?bXV}^2g4GG0y-P-S zSxR33qe2m%y*@5DlI(z09>c|}`qo75G0A`KwHsbyeZ~QC^vwI>9#HN z4@DV=YJ8FS9yj=i9pfcWLPYs^nV}OMBwf)BP-tN56r95c;MDbvK-T>KZ}V03y^&kQ zO9k*Emgyilj=|%?m z@qVS*pH@@NvF||e$h%AMjPsTni1*8IPk1Yq2F1RP>A`H%$j0WP3h>Sx&HY)^I;JbB zHQ(ogC@wZVA>ky)nr#KhzsSzc?v<{-rrIC+)*wc2sMwl}GUui<&{&ig)pUbP0(~JQ z{y%aJ`{pJlaqFCOLZM{O2lKQAD^&_$`fFS~^Y}VZ(z}%?P~)aN<%eq`!@Ier1>vqp zf;IXozga+N8PqY`U91ZWVCTcxqyOxCJR63irM*oK?`k{9(E z98x1MPP7{8$n^PXboTmY;x0cp0J&dbZ0h9^CCRQ$&NUjYX*WYMNRLJvGx{K!75yaO zzz+k9jC9>?@XXmhFYx#k)^$981(pFY#wn(FR4gy9EYiLuR=i~@{bEF1=!43TeZ$4^ z9u(yIsV6S+=cPEHoiqo`W`SWN#6%H*?TvOQVDxwXz%#kYX615)#rx>N;=D1zDf~6m zQM=3Q&|zJR05WfXAtbUzrb1dwAA2B7`J9UT!<{FG%L2?Q}E8 zAmrI@c2+T56CJKF7z#=N??DW}el_8B5uS({JcO-O)!9J175dVQU-if$iIGt#YWNou0lrk4)+zx@?U?DcGj=3+-7I96G1pBg-@)oPi-U-d6hjsFr%9tGfQTz@b^!YCV6WUXlv*# zFX*`2n6TG~d-W&efupp)lX#*G8X2^}XwACq_IJhQA#8l&vEQ_N#Db@4;Q1qQnf?Tb zfiYnHZn%;r;TpE~{zvmIrp}W)KcnxKp3~X#X%70F{qDWux@I=x@te0rKeDx-Zse|pa zz=Px$^^G*5#~`tlTBU&^Q(y!Im?ahA`h^zix_LzBUIT0=z{DFE+L5P_f5cWe%Rk9VEt>9j%Q_HDN!z5^nK3;Eb^n1DstOwzl76ymX0o zyFp~>`6`3ZLXKVUk{|v7V^T#969SyWJThq%iFTFwQ+Kny`ilSCW14K}{1Zw^OYMKU zZpzXdsgsM6c5<79Ge;Fyb2#_;FQwypZ1|l(32+7rf80rdW36F8!p+zWO4vJ$uC#d4 zrb%~t6fQv`{P?Bc7%+m}WP>l$QJ`?jTPs6+LqdyV+BBVA}Hum|4+n>_HRRfsh2?S^0mf_EC)L^e-1RO6X3Z*>BECk6at8 zXRkzshKV1P$Az@CUmF_)9>1>WU&e&3kl7uPHMWx=L!6OyH<++nYuE~#Q+q=Fa49M~ z$os*rQg`XEPd~mj%+0$`+8>JBXU!JN93JGrp5WS87V!SLGznWPVY?qUVZMQTbew+l zAY7DerzU1SA}^r1H6g4$2IE?#X!Y80rum$Jox4UM`Q8SUl4>{RM6EcolXC*DQb}rU zUG|1G5UPeFma0(eOcK5LmD1Z%b=faS zmoE9pc9KJ#HVHDFyXa%>h(Y97&=7J%R^X?Y)6V5pzTA?RXA2gF%qsl5ngL3%PYRl1 zLAPZiF4oo$v&p{1H?^}sYKI#5qoYJQ&;R%o<96PJC~tfX{B>w0B|FblEjAGF(|V+e z|MX8r&;~o9EoCO|Zh-1TjpW^j zvoA#%>||LeWf0bC_no5X0K$c zfP)Og=M-ZDIr;C+!Py&XqH6BuXO$Jt?~XO!no2gmr0V?LLr+g($Hol>*+zGMM<%G* zDsKFN()DUlhsgOpSkNb4@*J;m=vxUAW zNDQP$IQTAZbj0^|?1|rBFTm11IUsX*VikJ7LGMrb`;p#jJKi06id{VRb}B;9a$ZW5 z=j7+2DK=S|0r|@?E$WB>99w#6FQ$50&+|HzrYiWtpaFXK^!+Jq^VD5qD(u73BS$>I zMwg&r#wg#~H>&kb2`FJXn3aIzMtKrD`JEA+S@0|_kgaf%QlDYY)Q-I~i2LfNP5f$>=2KnlD2KIu-D_7R_-#@(oi_fuUIG{Pp*x{`bRgRG(H*sqy=G!8mI1YU0t|E_u;j!C*oB?|r_I z=BKspbn)6m7}cjloPRfH`EGE5py&;Ftd9ujBHOF7d&0>#MbbpI}V~s3-DFn}baN5>AhLeIy$X|?nh8rV^ zba|x1`rBhFEfd-d64YOOWj+aW<*6Eb7_LU{^z}<)``j&=_Yql;6#Mk$&0S2C=-SIl zzO-|1lBq+*N(zd5UyY@!S}axj!T;|azFk|_Bp9MT z@HoT$jNdHzY%TaVVK&3Q{x;H>>GekbzxLiLEXwu^A4NhykWT4F8WE5dkP?uPk{W5r z0fv$oT96O~2}zMsdg$(u7LbOayL*6v`M>!6zHjf-eX@`K9_V#>Df7BY0S#2lO@*s&F+e^ZArefi~}J)SHH`l|F+8J3(az zsh;Q|Gp`4in;AP03>C7qFpaXkk||`o4#h%H&!l^rEnm}Gv+;7I7{ZR6pr&C7tRMP5 zew01}3o6|P%)dXvI$JZ^u8|?h!}#hbO($1XyVr#irqhusP>Z){zu2M_c*|mL57s-O zHw_O0-1pyWbUB)u8P+);wfyn>+-~wSu-p50SMO@JX2uPEQssXg_`bgvPbLfkh$;Z3R%zqLLW_BbWoD3e;&{bFT5Ix)0R?JtwA2%vZ zz1&TS=&wPzGYXL1ZbP7;SEWsRdPcy|}V z`tgPgR^}fA%#DtYiOvov)ky}1O>%Mpqd=#513xVgZ5dU6Fy~=+1g=GI22_PJskXdT z?LM<{`s~fl0c*!8A||$X@D02k{(6;+{=& zZzq9PfE|lA*;ME?0oxP7k7!(^F~(DY)GaK`MJD zMvtyJh`NLg}t@ujpGPo;P=TzY*`@EiddSYnY&Ts97T+}XZoQYCHU zVUiq1)N;Qu>Q(>7sJ%3emPT0Zk=Q=+;q5NDnHSe`qw%lgj#-I~NA?=zT^ElJQOr!v zGQi3z`Wmbq#%JWf-qL^2kjK#@DdXwtz8_#qKGAggiRaopy%AW=eYozS*XJ#y_rY1o zyUA2v5^*ee)<=X!7j8bDUNQjN!aqqpGi9r>h->H-7SMCpFXpTEdG38mJ$-PCsS?rP zi;)Dz>6pCOdGYQd3rPLD`?2I$;t zijk^xna#`awih&bccx4b(-lP1r65hST+9|_6gzA#>?bNSIR38|pkD^xg2~oQ{My_R zwR>R+x|NuYl!>GDXBt1Lr1Kd**c1{_JolMtce_w#XkolQUg#Qh#4i~zJGH)03U_Q? zyYsO)4W7!QGOd*o$xlr_PCGO3+zk4>v#yXMP=cxSQ6K%VGxdXMh*i(Y<-3g!d z$GdRf9;zr(rMK;p$W;wK(TrgrBr}hs=;sC!7PT-B1`?!VHYEE(*RS5qB#C z{=%;V;`#He4CFHIQRaOt7E5ZA{Z7mmdq zj|ArZ2C_F;K}c@k%CL@~Z1}T^UE$Bp_E;D1QBB&Y?J9sRu9aAIRb0Ik0k1SE!+Od< zta!O^&tk!(vbZR?ek6n&=5tItw*N7*ZTCw5wL#`eGdo$`)bt4(R4|twv^ZqCWC~R` zc!k>)6wCisEQzspmV6__z4Q`|I`f=GTMT7CXWF&#)WhRHW0*D}zky#fTo#!7KXkAl zxhie?5JPzYH*1V+XDxHz?le#qa>*oMBs(1mVUp|ZqJsp8K9H7O!?@!F!R*YkADb(yi)!h8$yif5j5Lipo2hQ=3 ztwDl@sbCHh5G3%ld&mNKLs4&KnLzKF(RAn8kMWCV_$FJ}%X@%GCAC^Y)<>|Y!RWPrCR&rx2+yeGBU zQobDAoA4#S=wfa;ZP`(Z*#o_8E)3fTd8+2Te}vf)x-HIMhjH^4RM>vc!!Sf5AW>bF z-cu|5znYPvGoTyFQQ-dhA%T!K<0SYFKN)juJC;_8#a)=m%eO9PdsjsRV$xY*7bdsj z5M=8q7}moIEYLn)#p-RdaPTBdtu`lUC0J=15C(Rfbpi6hW_V}5&fj?t3d)ZZRT>d<8|{CWBc+b zB2v-oRaHaODah9ElB1jw#nUv@Bu^aN?bMVo!}_?|UwJ!w_Pc>LiUCEre~c;Pg&ph} z(p^_J$V%;IIZ-DTyZ!!ZmwPljAMnfo3wFF<^wK8n33B(Ix?w4p^zSf9TkP3D^rEe^a3&qUpLbhu z6G|LneIi#p55jBhu!!r(&-r^1W#Xi+>3V?_49=7{PT|swXAs#t0{}zdugVL)y}r%- z!m*%Tk-QJQn%3-HPN7NZV5nBHnOp0Aq2 z`qE?aAZC>&75ZBWoR_eU* z1nB+{eK*zitIT@;km-ib;rk(50cFW@Fd`$5A2Q9JGX}&^6`HaA=O~;C6qOG`$2%nk z7-=rWa=opQ(*ug5rMK`2OD?LCST=@l7N8c+2~~nAN1RCU1N(e@(G+b$rWJ~E!uGDN zfpF20KczIxO1OxCjIIo;oOjJQ84e;Z=ZV)bHJm?b>H~(CxyU}!2mEf$LLDjUrS$CP zqvntW_p91984tFhq*lylF>*+wMSm7sKyMw1xMt72qb&dNF6--sf+Z1Bn>&&4^uBO= zOhEUxqg$p^_OlT;{%!Ty{L}2#Cy^>bYK1I*UA7Ohx`79!2We~Y{Z!gOoFs*eOwXK~ z^0LY=$`fK+0Bg#N>GK*0n=p1)D5vs4pQWL)uFh(%hskaz++G`hA{Y2{hxHyE=>`q! zFkYD5u8M7q2&w!AyE8eK zqj@a(J}m#Hm!P?ZF#iY|IE+`F>%!fi*QlKi7l?rj0-LwiT{9Lkp0&^qiAAC#>7MZI z`2gEZGnGp($+m=1;qlu4e(|ASniE+sL^(!xxb!ksYOCm)itt@n<6X$J`f&BGzFVCb zV+D8B&sCT`&WqS0(bJ^?>@Ve|c8nwhGL?^~y-5JZ0BB3%wHtYd{4iVeUmkA0Nid4| zJj^jB1Np1ni`bkgz0`Jgos#wqp=8z&yT=sU&XfdJ6)&@r6uuCgBSJCT>HKA{fc12_ z2aR~PTs>EM{KZ|k#BKd@hPsP37D(Ty%xD*(EzyhMnvfGxVqjZwS(Qq+-odMN@^qa z4J}QKWu0P8c;H?(3&wqSH9CfGe<5J2`r-)A64wOCq!{9JYL$io3WES5Np$VR$Na^UHqLxUih7}V4ci-(IXQ8PfZ0i)Z$H(p%-$^9gaG}h#^G1SwXn`eV z#9nbdyYv%2Y4B?O^`9HR?Ij5$f<)Y}eU+q-*7p+E`cGO% z71AaJedX$=R_@9ADeRs7f|D8F_0ONlVNYhJfxzw-Letpw@YPZ9Yh)LV%AZWaeOEp| zmLW>5FJQwN)CZkmf4TManD2js^k2ps&6aEPEIQ(J{9X1lXhBJCY2DBI{gdpz6-Nii94V8;;bIjGT?MWR9Re{fz>ltSrJ$Y;<(mnhE(WS$+t^4Xne<3;@ z%lL^N&Dgg2jGu!)!>kOzEhvQ7h$piq@a`xlNU3{f=U=jf)WdKq8(7yrhM&ALu69C~RJkM(2m^ceoGPm$QO*`#kP$r=7 zZ+}@xN|`yjN461N>!g@3yzDF1HP}_Or zv<_!n8DrOK)xSa|-bMC1%HO%`GOw%Y6J=Oxbsu4ab`0)jr?YT@HfBb`1D09wg54yz z>LDg6jysc4%2IS2QP)%n?l0Ch165@sa~py{BHBOX(hD4?1c%o#I9+i>*CWBDrG|5| zB>iJNhI10hulV(be2(jF?H%K*Mc_3Oi4=%gO4-h%4B1(8N3Ncxs$?FP_oqQ_;@^Ob z_(MM8Bom+p+gIZR=$;E+BPu=PpBIL0?U`L+!_1*k^ZqZ&{X^z`LZrN29B)!r*KlN- z#5uh$l%-A8n{*|hz=Kr`_qaIBU_tN7fJ_7VWoasz@1?Qz;RsKcW`O4&HZaM%>_|7|$PnBtEn#S@L`{qN81*SYi& zT-d4RFhMHENr&s`GchRsh@DdqM~UHZ3f%hRe!ayFsIkQo~X?v zy4c#X$55Z3Y5dG9ZhdYIQ#_Bitx_S#SYBs|J7RM>2hO zq)u^>lw7FIzMu%#OZBC&1 ztd7s%zYN*3FR-ONcJVvbZwx~Qj^8_+zmv@4`5$Wjs9jCNr{WEq~fG`K}WlOtz6K!O8d5k~d1KwYt6*PBJDD zD}Ba;1?r<}3}!*Pa+QRZ$FklOkiks#Lll1~jo7J?t=O{TfdE$d!5f+fcl*Y||ok!U~=AX|GGFoO9Lv5R5CcPw*Q<*zW81`Qhb_wH;%QEhGt= zSq1VZg(&7Esmgs;J*zD#iO{fkVOgquIXil?u=VkIj9ePks8ULAvAX%1@2vC~^QGl;szw%k4ctq$x%-|h1EO@wY-Lf*$h8jwD1v9Q0HacL zJ@{V;Qh0xWW&K(?ruFgG5fa(P-T}^v(#QTwlr>6oelpDwWWm)3e zc=zEW5q-7<4POT$j0^LH+XBxy6+(9t;%(Z42k5V?qdmQe#Hlt~b(6~(PhDLyb+G=d z**%bZ*S>i$TS|K`&UG zy!d)|Pl(M#C?u|3NkZ#d9D&-qg?i>C57e_cav9kJkUlXogxLY$kh+=af6WLvA33P_ zjqv+(5TkAuq5nuhK$n^#o%=OnO(>`ohiSLgH-Sss{iD(g4drs(g{roKu4~zJ@uH2S zu;+*O4wnC*>z61^T^c^YH;xZy=&G)A9hkx#B}=vZZAV(~H1D}@!SC_;c7$BBsx@FiCC&YW^A!XW zX^gmgGH9renCYSDve@!-=$kF&MbA?GVZ5z%Z1IrhiIuH(h2#)MY`s`73F3UV>Z0k z`f*c}6Bp#&Xd?HUbK?qHv=WlOHAm-z;X>^65No=jnzb>kb~}6v-s>Mchht1xf@cdedJZj+4yZP2SEB3ZbU15Ie9f#h2?z0%k zO0Kx+OI=C5hG5Sl*pr!2dz@Dxm+Q&(7h6?|#$k-+>4n37C}JzHR~YxJOJV{U3vU&MpM zo0qWpD>Z}T7SsI<6IdSV!M>3)i1Z6(yIl)n4PS<4i34MMM9j%KB1XhRhNjI|E;+_b zthrz3eEk}x$hD+uNqoXaf_5Rwin-6GEymEZG5&5GSS9$6U@Hg{x1IebJa62Wu7QgTuOM!|5x9 zKxNuJRNs9%;Q%cy^4|Ld*3l#YJplE+BcLQ1sb8A}B8B^M3}GA`7=8g!Zm8qTQICS) ztd)1!`FkYX?JDqJj=By|;Kg844=#sVTa37M-ZN)FjyAJ@!7>wUi{USOqsrGTL8q2d zQryx|zoRGK)Tu8*VT_R|r84TYo?WQ9ustl`JP4(qaKz6VDm9qaCqI1$>G>FK5}8L6 zNuy4qY(iRqp2>e0`SUJl07ayBU)HRXTW5R%Mw<;C4_qPGbQtd7BrB@ zZv7ov+W)F9Uuc>+i{FGX46fXeC@(_>u$vrAMpz8Qyx8=9}ocQ zQell@1p!3POr56Y3^p41zfW_4CuF9hp3G~EnQ&{#0Ko@VJjk!`Sb1d~ zJ%{Ri9+)mPwc>jH5bC7rFrWHZwuCRY<$*{kv2%ZZ4uscp><8j-B*sLGBG$ znb7-$ZrWhR-AeJ_cN%S)EJB_wY3e()jP-6Oc(^S9=McCk()rTYAUpEe(ibT`9w+AKmP4X1I<=&mNh zAuR+!4b9K9uaj%PElud1Us8$EEd51eKnXhOz**+z&5QT2fIQ*Wg`d}q#-tlbMe>Ux z9g9%8f{hb|aXxmyzsISeV&R_29H{jAE#c4a{svg{NdgSSL#D4U1N_b<;$~F7`!s|d zjn@a!17p1(DLI95?l#5~367P(+T>?GJjE~%pR)rOXrgp7m1?E)eRK0gBR2xPdf`6$7XTNHD;A^V$RcUOssz@Y}!nLi}h>9f(;f5o7UjtRG?x9N?{zZ2CNo zB!cY^dAFDvngyv^oWh_^|B2^iy=a~X_J&}9@M3VsA2xP%L6r|GljQEtmCEPC_2wk4 zQzD$mqMJ?1`cn8m0uQp z9fN*j(pVfYq-28agS{42MnxLImSsTH$Cky_%9@-*zIPb-c5eUTxI4n}kh~dl#l8%S zT?M9sH~WeFjJ1nOwY8JpUBvs3ZY63IYO(-!g5K7i%Jt*`e#u-b%sF?`SbN%@_(VNH z^2dFjh1;aiPg4~Kc5)`Nu+C_H=dpWE6x?gTtTD+BP#O{60ttmhZ+5MZV}qCouZ@)W z9{CRaNuC|Fw|+eTt6kPzM)UWvbpxg43jod8-k?cxeM%Wn@n!iMI5*#Oe$HsywS%(u zs9Z87``O45Vvrz=)s`3XG+xv5KtM&Y>|;12)#3C9O{eK0@x7~tLiEX+$%y40O_7$8 zMblEZQj)3Q@Zpn)5&GDs-!_=M?)xTP++3(B>3a`#dY#6J-ni@1aHs&8b%FXw`(l5s7+=mnqe;a=(Ld& zvCkFWwANNQadp~M|5;-!EdrgxlqIp2gztZ|tweq2S!vy?$9 zZs4GGMfLSnouu6Okl!avWll4i4-@=+Zy-VvP?Ko_8gHK)FK2gJcfDmlEcdE?e$>}- zKbD_Twa-9CU6-ZgYfPP5woZ;#gli-%$&2hse}aXO2)W%|t5?YcxTMoRP8{FdJJ$M= zRHUT*DpvXg9Lrb>UcN9Uji`HWEbo11y?^i2bVTG#N@4Z{g|hHZ>Y7AfMB!ven~`sR znEl0%1|Q2YCP2nG<5>2X-PSC{ZcA#eiODMp4|AKdmbZz zxcAiDucDlOV7_)qv@ly8gs_%De9$yC8ojX_LU8Gn{;a%}TdqGno!t3dGnjGAej{US zLWXl-M5}pwJI$~xr!3UbXz)_zJ*<-wk9ad14=`-xBAwZj*wDCSUfH_2?t^kB=Lnr1 zjnAKLWjbf|j~YszE9L*2pG}YUpXO~pmFL>RR*v&ISi$sWyL7vUUpxsE-`p zqW74^1gwt4g?Wwn-|ez(#L=wff7CzG>)TTtpX<9-0SFx&z$cYNx;2pOe4iZTZ4R>^ zKP(%;hWoA;VxB$IpOg4G@Im~1OQNo;^u>+t$N9#@7)amEm9#0wytH>98{aptH&l4K zA3?8&%G{4J=D)H`R8o=~#rU^*0s0~%yN}5;Hk432)0fNX!2#TMHsLpyn8={sK zF7m%pw7*&g>KFq#{uKpBiqQ9uY6$fM;6OVmFwkX0Ye#1B=SAitsf(}f!5R4XDt=YnSQ?<+!dsxGyEi5BDI^7b9ej|A+Z8L9QBJ`KAxT{I+et8aV zPk7nME*?eMUiG6nhPpTP6E?~572@3vAHxEET6D7 z4*+OHr;j5E(0w&iCnRo|+bmFN)hGZmJ0bq>htl#~s~pNLmqv?LjVJ;a4Ba2;|5YD8 zMV>O7;>4_oM7B#UWfyER8CpTw%iB%TG!LZO^QgPoS@-zz8p5VGwGsuY!k{K}jXY(h z|7roC2@@uv#li~h?9Yaf)&AQDLu~rhr$p259y9*(suMp?;Ace)s)ya_-vy2Idntj` zmR2eE;frL^NI^4ug4^T=%F#TuufC(92oR691n)A1Oh&$MKy_Si;106>J;+9qqLmxf z9PzUUQ%bx0J`6V+KzD?hm*TvC=-z2rlRO|v&Krv-M@xMk#{?;>LYx&U%&hlNy~sqZ zpG6;X>tTG^yBaW2|IzQhXk^kYeIf=7z|sgq9AN<^#>{Ad9A?Vw5wunPwXy7sYm{$e zKOwcgf=GAk7RTK80p_R#@h~TDPCfmvJf)e_;3bG8*;0^s(Ou&HMt@Z1r9sG%SaXfi zyaaF^BcFraErlo?>IDl_ORHp_n-spNOA7L3IW1PP;)lq=fQbfc_?g2w!@goYym=u& z(WJSR@D*`g8vm3+$8C>X|jYOn9sw)34d+Nc@elCOl zDUg5VCT2$gT+&Tx0dT4`8QKiAfZ{p%X_qu02C%az>YBl{+0}LV&Pk}7hOOi*_;J3g z?ijA}$fxK_LvLtK8E^`|u#!Z68vzE=<1P`sei}3Q)D&K4p7itG-O|r?my<`gXj_7y zZ}*)48Y7@{qz|Hf?vT4t#H}0eCFt;GSOMjnwf~?UkaK5R@R|093uC;A1Bl|h@k9aF z)EB%U#8V~sR{G!73 z($CP7G0p)Fn)bQurvD-nJ>%fOl1t;;TfDesC>2^p4VP!#%)~>?HnGn7OQhGM1DYAMOeS*Uw&i zszyfBrNR#GTZ0TaP4pigkGPCI3-2LOxBfSU{Jt0q9Uk+#Hy_d^Wj-I4;fvG`2wn>j z@CpWM%48Ofl{GYK`53n76Y%Gf>EGw7)E&BAE3H*NQ-w z8e^f_Fj;imwMRU?3D?&?h$9tx0+_?Ih?C`%+P^1qcN;mC*9xL22Pu!tuQ(P3f8U!q zI=AkO;x>D;#J>=rj^iH6pJ>_k88hZcN-f1ajw}w-;d^Fmd32xg3op|1_4K)zd(O{d zKz+Whq70<#q;tMp6zBDE8OL2ZFD@NeS4I*mru0o!o#*sgE)y7sKf{l(mOC%+BPe<+ zyav5LyeGZYV+3?6{&y_SUAg2tvc0Q1l5&VN=lJZQGummujTdVDW2VNP{K_|wCVeH$ zM*HzFB?-Phx%T5yyu)#Cr%R{PWYHxsWw_PNlUw9Nb1Q%97F9*9PVA=$^*f}0_lAxO z`Rh|#YhSbSlmKjs#e~O2>PgyUuFk{aF47-ym@Ub%v~=+RExiw*e!3tP0TpIulhAtC zLK}rY@mYeUJ*_p?YKFQbi6^?hQ$a(AUFaYR=HE%$Y!?*F4Kkd zqcS)bD$8TOHm&WNa>8+lV=s!S7}6H!s-{I zHYA^M+Jt;$(ZR~%vugZf9>p)sQv5*9#4NqX!#lRB^Sp%Fq>k5xULNk8Fg2BnfB zd{W^HBnEsyPKk8jH1`#Y-$)9LQtYSH?EGEhN>E~rr<8po1$5fLq^#2$p&zHFXab=@ zKyTWMb8q=S|8!yeeNn#Ol);KD>5NA8@sgL)oRPl9%DfTyC&Ck@qET{++eWl zUN$q|d)W{fad4De4sn z59xlm+~q||=1B{V_u8LHz19!TsnbyMvcOgNl=;aSdm|_2lZr)L6`L}sK6+(J=La_f zMM>Jmo8E!C> zx>%#m-7qBhpWE|gepGmk11qIx^tkxMxjgQ0nkp6M$2;Eh^2+1J_5Nkhj5VU5l@f3C znChItO#Fs(RHzKMyFgQ4#L7k}bB;9S<$1zje|XDZPBdR0=}Q8Df^YhDm`#J-Axn>; zA|FE4=m7s8>YHD%s-MVda1lSiU&|M_FrerCT2oj>^6!UxPh_nW*37Unjq)C0$Xp8 zYKKhEO_qU-TBP0MyzItrcjGo!`&zop9t3>Oxg@wzn%fvQ*?DuLWTwXZ<$R>k)SRv1Djt(r>orx-Yk`Jv4Z+5s=heMYiR<~J(cyzH$6GS*~zZL zd9yuJWN|vy`Lmc74)|YQdziY3jtXGHibb22xtVx}@!;|%9~mPyRUZIlM0XtsD6$_RXo04d=f|9=nX5W{5{ z`dqiQpL0m!$df&zXVBN}y7xA!%Ydgl{$AGjho>Eq&}I@#Y0%pSKeagX1|M^OKzK9A z$odxFdhE7D55X(7-0t(@eYmK8@y?&S)ZgmWk3P=1$&-G0SS%n zNL~_oYb~J^l%0Zy@R*}l`V6gDnG`u9|3aRX_OVt(kt^Sp%XaogUM)XNT_}!&zbvfh zPV_b({4`<2q5Gx6JXP6XxCr^SC)6wS;SNGE)`)bU!d$q4c;OGZ4i;3bXSfHkMN|_z zVqMthy~{v&Vq5fy5NGV3nMja1dnu%4ifoO1C*l$xR^EaImE&5ARt9(Hq<3AfefZ}+ z{|&xIe1B||a|fBoPx4%Ehg(T=_;1Dv;fkHn!$&3T_(MnOB~$QON8d}3azRkefFQ6G zhSwp*Y!pBK7q7|#6*YhT&rl^LoyzR7sd2wu!cwbGUX|ZPzZ*Hx>FB0uNw-B0v(4=t z^EUtLs&4i!HdH)M5L?CLqk;y3OI1oqJHvzwGn%tTD`(-;cCl(QPze?KH4_3zG4@FeO?;a>&xQrl`Pg^f zN=U`QO)Fb21o!wV#hL#^x4ngfee}7J;IW9MB!9{h{xUCy*W)H+tGNSg{6Hg=>@OQc zL7W2B0qYwnOju1)C=zI1i5kWQ8i0HskGnI-&zr}HHzzuZDt&L#h!w3-A8(ZN?y(7X zyfMnDL4I+U^AY0Ola%I<**MAj_5UO_66^#imYy*>yR@T8PAe8Yt?=UT)5Too?U!<5 zVO9@pBj3Jm_X^lK{WgBr3UsZ606I0WV_-nnfD`RlqNTQqC@h7(CV?F4j%R3#${l9f zZcy|Jo*G$cbO}m&`QGBq#l4{T9`h>Wt5!Vf+?wQN8kbnO$T04u z@l{_w#*aw%ra1xXOzMD+!`zMR5cbMoJsGqA9U zY+aXZ`TFRH8D717d4n6g0_UFy=3ZJY{Vo|5sz(Sp3~@%*IYd6T_793iPp=GB5rVba z6pt$ceZq=u^j!^?p*7~vqcFPhz!tswu87M5&|F|-kfh=GPy3+AieL8BE)*%J?)s#U zBz$yVP8msa3~(TNbEBkF32-ZbwLft(hXILFCG+5+8g?_kKJnANIQLK_2|_yJM76Uo zBfDws-=yS=4=?>AS?GrWExwieqp9$mCeb#Rno?u=fO^IOj#x|cgpBB{25bO*kAMDi z@rv@Uwbcj61M(UuJJt+gU@10MTe7W@L2#|>!c#C<$ZIHhuj*Hrv#w?7epr=w<8j&` z^&-GYk2BEoZno);Vgp)+f`BJUE;g6O)^SN#StV-~&cY!ni_5<%>O-DT`dphUCO^dK z{|eM8mzmN*8HMA=;t{(FWa}0=Pi`N;Du6!7MqIzt&RNNfc*Dp4-4;o-&!$RDhxdOi zi_LS6`pfO^`{jJU{b-$w3YHm})EvNF3E-y?pjJM3KhvJ`L}>o}yz9K#Gkjj6^PC_@ zL&{OUnwZaq6xPyHP#-eT+vuM1z(>ea3Vu7^cWn}J68*(ZBzPtzQ`9;-Y*FN@&abkx z-x0@@XQNR1c)RIl6)MOy&~0v3`oLGW>;1~eE&bm9AN^2qcjC+q`o8z$;m3nt*H$=N zMQdaw51=ou`Z$g*$pP|HakUVTTKoqo1L+NB=NA|gTq(O0$V0nd=WsOnskbgAC`>DyB#VtfLjQ>Y<@nMA77=_{mq^WyHni!tVm)qmL6nXvufXPTMl zaA2+JuRHyu-+w*Be`_?v(BiUVpx>Vl7%MugutnjjpFjI8xI151YW=d=8e~UBHUn9L9=3; z6wI@IRsc?OeQYrp!PaaHh%lUubh{^~h!E;kQhMWWniL7T5A}n|b2&#fy5K0V9Nm2G_27sdr&;?@VkJV{guOMvfqzbnw$IR@`-O znfiMcMUqfI&!<~Q6K~7(Q4O2}@`w689~@6Vhvn%@o=0PgfLDA>bq6eR8$aoSYnXnU z_$hqrcO=j%3VRY0)J(hyU0F!LA|l>BTCm-(m>#};JDe2f-h#mS8I{@NNW?$`#yMMu zy+?v?s>mPxFK4}z?N})Y#k?Q#j(R;bvk#w>R%l-_)aqRD3-&mSliufonSe<9+j2sl z2CJiTRZ48o?w}JBn#KM+~yRq)@qem z+eq}Rs5;>Kqbas!1q7Kco%Lc6@yaCna><;f`cq#51o1Ksl#XE1V5!L=3swOhkoIrwxjDNY z#2&?L60Ydm&`K5s{$W`Sp5-ICF&k;1Ihgo7)eKz!;ICW%8%Uu|Y0(!_=Cf=OU)X=! zg&V+Su<0GcPaCMa&h5|iaTX;54dc4}@z^6yp6N?i@z%Eo7dM*F7G^KpiN~058mXtN;k2$4`&m}L^Au5)V!HX zxsHCOFZ-XJX*sDiu4*Nd6Pw-4js?KADV@gfH(<`adv~ z#D&zN;p+?GD^!i=g@&$)K2-oH2g>+tgq2D~$W};QVr&bA!p>DUB2^&6WC5LrHBF`s zE}070&C;yDw;n=!pnv}$ZK=tAuZrM_F8Rf%p|?idZcbGrc%5B;j30B`Q(s9=Z>i2l zyuohD=%M$lYGIVj-lT?Y@ovM{f>p2(F!^@qX{bpqEgI49KvbQJ*IcTam{=z-E4X)_2}h8Nsz`hq$(rx`sUL6i|wHi*6ES&<%!z(sko|>k{BA}Hw45KNO4sOSJ;9)!YQx%G+3>n4`gK+e{PPm zt|awKpAj3amKbUNP^bUuVDv+WV~*}%jgK;luNO2nvygcj3l%L+f#&Vq=?d3mb)BBR$(=-r%o-aZs#>$p4oA;1*$y7(Z!ZmOCu z83PSnyfyB+v$*n8s*jYfjG8?dRnUSGD6Vgg_t5ieKuzDMyoIO!0U#q?`zNUyzj0LTm%w%Z!+ z_spvr&7M2PwdAH7Eo=q)*;613v7mDm`=)2NWpNk&bo+7xNE_=y4DM)0tnV(ENF$y z&|YQr#r4h1?xbQKxf6RkKVg$@G5v7BBv*y_g`Xr6G>AfF*vu$N6S&W2`pq|B1%iM} z4VXPSUbMxtLPnFoqe_2dHFhiZSN5iS?4x1tcMGrVgBOM>+a2+@R$2t_Ul`%t@^I7c zF4%C+8axD@Lg?i^bgS$IjH-%SHf68fQE3&^lNtF{`3E+SHuZRSS}aq_ns*nl(H2Ry zqS0?>FOuxulzLpuBuNu|oK-vifqlZE(!39@5mFCosah1=adEonF{zC7dsB#<;iwmF zzE1E5F~nT2Z%A|%K9V-IXt+Wi*?AdZ?afyfAS%>0Itjf4WK#VY&dxaMo~;%)=PMK+ zq1{=;!=?=#tQ)PFfV#cgb1e$}-`r_nOS_N$u|J=*z!tj#6n5sFOir43jj%8FQx2Op zi!P8WE_PS7l)lEVJ*G-UZw`h^a5j6sp2xQg=qN1o>kwz^|CU+B!bU^GbX&Y%$c31P zM$50SFV#!8+#i)vvkyg;g9v>z7y6zmG;?j+>l^n6UCzW2`RFS9dv;yB>!Qgh7kcXx z$vl$tz}gK~+gtA+`ZheAHHn9|(pM>Tj~4CubL`rEQ=N?-d%s!T*K_ui*EjUt4Cgyq zC@%=kh9?B30HyCs((O$OJ>6-4Pl0*7dVG0YQ)kRp`g2oB-nsM;>Z|ZPvjs;Wb5T08 zga9odfZ$MN?vb4L-Wvv^*@N}tHy2d^F}W8(iC^Msve;D8ZtA#Yk>Dc;}7d1kS zNbQ+~1VM!FJJ0ic{`>v=`{#3gT*o=Ml9O}p_dQ;(*L@%Fb)G-HaF*>X0|UbawP#QC z7#NN%(Z5fh1b@-W8=hleIP%s>Sy@L-S^1`im%D?Lt33mQKwNN~{Ik|aH`=Vtqi!*u zILG4Isgtp$r*gxEIZ}sv_-uvD-xhl(wAkXASf75c{qv{e1?GF3sqraerAzw^o_-#B zK5WIaJ3Te-6l-Rf_2nO@!!JF3@}f|IKhnuR z1`)Wk17n>vomxD&aZLTY-7D>z&+lMAzmtCFC?%RfR`C2gi7#yDlmB4$xhslZmVUd@ z-d#3|{pZ=oe#&|NZ6e@XHQ83~TKr?^hpq}n0GH)$I^EP}S}|fu&D;;mc~e*Y(>Klb znayR5OWcoCIhYM>xK+zkBj2CL^ULq&#aQ#EXjY!R_K-y<^laBg=;3!Fq<6+(QtK?= z>pxL$As>#RkdMl2CU6~fSeYY7`@bcPY>cLTTjO7jj$x5Mdb0j?)N0Ia;*k{DM{{Z^ z=ey#LO3>PFt;1DuiKoKdUmr-;*KaF4=XxdLo78;d;>FkRuh=63n~(@(eMtWoD)q>Z zEUyk-w%{1BEGJ)RJbeO=;A>YI83GPxJf4|)Gcbtp(7%uP7byCHKc4bY(^5ILbb|FV z!`Z$`@+0u4>pm(bKFaQHZuSr#24ydM8y|bSn@}g8mp7lPY3UfhzR1eJaFappiIRc; z_!`z2I%$-=y|Kt3VDMZd@@%qEzfb>UKjrX>wMu97sJ`LQbB6!k^4}T$=Pm!8;lH;q{C9@``_O+3`Tv)B z|8If*G4KCISNy*S`rn(N{x59*H-&A+|7U?+@3^$i#DJ4_aocLV8_s|H-#Y5Qbn~Dp zukV^ZNBmrX)t1Z=&VT>@)$vY0*}^m#`+y{8oVjTD4ElYNEVtVnGV4J^MED$)1up|x zZk_#2!?{1E$%0z?d}_I~8^vJbRZA>%Vji~qvn{6`t*WeaN#K0z%GS-(khfc~zxa#k z)gDxAuG0%*pSWV5a$G!xr%+ek6&Y}&V;oX%R$-LZzX&$)!?>%IdVD^3PyaKb&{E|K!ckZmMz4Ot5HYF`HZ;x{ z?CU2`mxnFCIrh^*2mMs59+~#3F&%j`4@O|9kr!3JFqovi{(fIi&z!O{;oe2>HqRhi z#>R6?Vt*k&a)jr+xv7H~9eOD-*wyv^`Sa%zshSdO(Gu6r4=?)+L+Z=A_c~hs!81o? z*0IMoAH>v7;J;WQ=%GugXz-lo8*4Q)sTb5kS}AdaPsUnH5lc;@mSod z>DSnpsqd#xpI$z=;e6*>F^*_#xCKWejLLj@imwjRaSu3kZ_S8M&pj30{9cE=-JnWv zY8pA~aJXObuw2@G>ZMGEvqIMD{{DVVO9QW)6nn43eYHX7+Cgw{CqrL1Vk^NOT)dB; zU*XeOPQ!?@a$rezj88v#=M;TiPA`3{zuq?_ftmLB1>Ux`RSQhAMVi;3&2k<7LLY32 z)9<7Vquw*G7tuQX+m*m!yRI@6>0g#2&?6pnaAK$ zYJ?ZjZDV7pnQ{TST<{&Ggsvw=MMW|X9}X-pJ8kWO^-#@=+oLs);Jl5Zy<^=Z$GV6?qjtLC7RLn``kDCCe5;v$n_WJr!Uy%_J~>&vGWnfojyB?VJW z;n&VwS{^FG^wiYckM6MDqSBm~kuHxq{H4Gp17x``h;jTx^pgetfr8V_6c6`n4z>^> z%N<-H!#yeDWpU1ocwmW$)*Q2T&hQ*??<1?VU|)$q_yVJM+39ic^Ya^;K)LCF7U0+& z{VuYFTKp2QW0lDgxM6YY=HXby0}~E}HTs|wH{?*$;CcU#znpW;7=3x=IE|y{=$2p= zw-SiFB@f$tW}0m1JsgZnAyVJ^f|G(=zQ55BgNO9(wzaiIckhC;6^HE4a-pe|-My{V zmD}HeF@ec46+-dqsMrMF(T92+S=H= z_i(pAWQ9c1>zOApQsj|+8z8vVt^jvjU3HO%?|)_M*zLd76bm{XN-C7`Ngvfc`aH%yjoZjzEm!>ajWo2cvnf_N~_-3zze)L=K3v(<{ zVMb+1+f)=VJotfA9%j(1>kfSHnIoJYpaA*8p(AFdF3cTO;I>0eLCn)+;I2@PXak zT`rkVAtJ?yQ5Q>VYZs~X<-I+#p=E=bF->}aGAiz8&u*B6`HVgjJH3;10-Wur%q!g8 zPm2MSa{a!*i_I#0;P6UtzJrpM-H11hw zCCR1SRaLt5>j|AB0qa;RW;>c1`6^`fI$-qHfgLf20OtWd>A&+TllMI^AwBqe#L-K@*dU0^#8Pli zwwgExv1ea{+%x7{h;cTg(WKL(fvGbUf=f62gYt%CF94z7AGi5)L|#iDPYFZ?kX7k{ z0^gly)hg0=tDkTu5iJmfPj&NYaO-G0a}gHxAp@|m4{nrB;7h>;jkyY)KKl5-)#4P( z2KEJY1^C!MdDI#`5~Ogb+$VQ9$V~%rgT@I*-U4OBt=@b-pb}UKM44n9d$j5bh58RQ z1Q8(@^vD{N43G(^+xQgIDaeO8$^2}=TA6zpuji!mMdD^qOnAFlRANzlxgDN(We{5p zg|1No<%9POfXxPK9Q!x-cgZs;rk5svr}RzvFnlBW5)LN&y=M&+DODl(_AgX_8X3Nt zbp%9=PQqeCwTON^FEF&>iCy6CJ!|q5wtM*IVUEsC)qArY_o53Ee^gHttT}MIu~cs; zbzc?i=S@%P7-d{d?^Rt~T->AL4l6;zMeM~M?l98u?jia&IxyE7zyGBp`O!OY=m>*< z=S{fm%Mc-*5P?Lb_wS;kFq-$I&4-4&m^tMktra3#{>Z$t(*Aab!d3%4u|s_aK}A=K z7l^S10Sk(>{TM5it#B;q`lrtG+Vj!^YiWQnX%-%?a>% zdfL6Wt3ezzea)U)-5P!=kyu!AF(MQs_IP>uJj*|>KpT5yth)9k; zcP_5I9els9yQ68LgqE)yr(!@1G)o`NvQCEvvk7G#a{UQJDk&J<=t-;6384mOo!!hj zOQBz{bXTte?w?98bK|0V{G7%U@{0iK^8M7BMH0XEd@NTFmtyjnsI#yscEKz;Lr%Q? zP@d}-!{&)j!btUM!hSCxB0|kfOF1y3wDaW=%j50fh?hM^!!c zP>hq|)un@~n|Pt&N;6A@8ScP@7F=%)g`kPsqm_unsM(!_BQ$?Gp_o~r&cy&R90lVl zRc2`0OvIgDA~Y>h4+69F8K<+(F4kK&DiR-~&+Ru8(UfbSphrN-*0Ox`b>ju7nWLkl z0IEdhE*(ryp3DEtcOS-kIN*K4QJhILvwQWt-J5XNd=SLmz)P!7E45j4pM`j!2396YB0hfxO%<-Zy~d0H=B`oqj{y80wAqXS%F-C*&?LD zVr7@SxHlcawYfBq$F4E8szC(Oq4rWU$2Z081I92<)*sj(SL=sp?od-c238E`&dUtdGXNaX$glr!d}M&$s0?K#HV zAfIdUG^KXp&TZSzV;SvQl85^W;x$3F?kG=7bxjp6;wPizriQv(~D9{?1d@%(ADYMxn= z5iXRF{G)!tZHpQlt;&;;nF%1Iiv*jYA!Sct8)lE?;9B8jq+><`s~ALl4~|CTj=`Fl z>hk*@9V}^1{dEg*|6_~8Zw&W0_xgi?U1pzCLr8P+`( zYbM-Bl^e<|MumTG6~5f!0Xg=;D0>5+n%;@c*6D0uB!KKhpIVEs0C&SwZ(5Uc*k^DW zHxEso;asIaiI<)NRRTwyymKD2>>~k|*vl)o%Px0lNI&D#Cxavkq~6@{H(20CEW~%X zm5Lwmpl2&0Tz9tg48YKT)Gim*Q9DrV$)0O z-sUI4lv8hhl!oQIk~EjS3WEX!WkZBz6;tG0qaZ}7z+c%`=yzU$+c6!shNkax0Va2n zU@IA2HM~FM4*hn5A;{|V;qXosqoflOC4n_8#ZD0?0>4qH!OXubzd~)W@-gO9R@Q0F zSO^-~O;OIWR`eUn1r%`6qCVcH%7hNofX#Yl*rUT?D63k#gSojUvm0NXACE%n-3>-p zHKxz3(bX3s)?N1Yy(>$Cifp|G@jmUqN*8TUdgjy(ieY!d&;kjrp^ z?F+WjYcwT)R5k&L>)AT#2C@rab$h{tm+&eSL<8hS)DGffZq1vMfehnl1)i07zO<(Khnz*Nv#ZAWhb$QwQHQ z?y9Lkq3Mn)U&N73R2z-Lv1Bf;M51(ecoE4An>+BSe3)GrCsIHwz1HJ5Dd*n-g(?9) zTS|)n7X=t<$Zn4{9krFR*?!Qi8MEtWX9&9a3I|6W_yvc2EqjBje1}x8GY=;umyIe@ z@gJK32LY*L%oVsRI=$T$r~d4)Hl&P>!enG+hwSbR_{)v>%T;a{$ExyNh)@Rc1Y)eT zk#ICnKHt0VBycNeP(k4fBN!}kD`@Oy;+d8gOy^S|4s%15!qZkdNv|gwD6J&ssD5 z3B0(#mCj`qg0vDuNIQFX{HtB~$Y8(*NQSEvfQj*t7`8HZtx{ujh{m7RtSIW?cTqN!#!8;1U%OmCxCBGx z96FVro0~%+$qefi5gQZVC&S1S8ov~Mp6L4IO*F`^)chD-rE3I$?123Oc{e)TjVs;Y zvB04pMi{?!(uZ*4Q(+09A>ai7Z`5iBKe%DU3^g_^S{4Q@?%>ndeye*BA?cHACUcGq z+VY5a@<4hv_jMi|*}kQ)$>FJ0jW7b6Fv{M&8k=-cJ4xGG&|0eiuNNs*?X)kpuK26% z74oLX{h?K@caxc&11~qHumKD^MlJrRdvN3}IPxB$#Se9lkX-IAmA*nLGOr^fSB4aC zOu$f;b=NH|EjMCcQ(77W< zejEV~lEs%}ZhrjF%4g_Agq4^tA_n$HoYKfX^ij?l{_EpLPu^G@xL{&dCoxOljCpsO z+k9``S|J~PbkLLEzAIGWDxu{UHUmn%wMzEEHjVfpD;#RNIHegv8gCxtP%yH^qaCRj zO6VwiInb~2*kLH)J?Gj|)zpS;c%ap81Y4aha|gn-!U(t(P|wb`>d=di5Y*4lD7tUL zRSLGZxg32LA_Aq?K2}3_{}&&2y)fpiePqpUm+A4z`3*esmGy~3*l%$e6gzr}lNg|4 zh+W;BqjYprukL2#G>I6_?5cDXzQNTiG5R84TvDzYRyu3!Xxk-`#s=01S242HZ|SxWxQ ze<63z5}$yQwLObnjK(~AEy~jsw)62{$qHzEAXU^_A(e~FPJIWx#qu|3G z9~~Z-=n-m`Geq9EoPO3+EAcWe#i$ZMW19k%aUv zlxR-vbS_C5Yf*Un6Yge~FQ(idV<(-ux;xuJT4Ysk4g#YtnBDytJvaxqqK8@AP? z;5dnA1Y89MP* zcq{{5I1(gUnQD$=Bb0^%q(p79yk7@o3l7K`D&BN%D`vHlt$6~^q@r6pm*Ekk=w$-L zlf6a7!xGgzU2JiDK1e*#TE3%(bj*;k+YIE`0wBuLqnkt`!Fwjjx3X71>o%teuEyHK zjs;+I2+bcRSz^=qs>gJ@+2dPC8wxCgTGt1)E-!?J2lXdxguYk~EaOMW#w$KBB&{3@ zBKJ&F7uA+^{iy32Q+&%?tD`{D?yfF(hRumtSU#OeNVp21+jjo39ij4CjGnhKEhcxV z-HQxpoR0>59kf*IgRr8G01N?YsY;eo`+1`yD`ui}WZ8%5`0EdM&$fPES>rr@q-+Wx zcMnAfF#w4j@pv!{)*XnZFw|6VB_V&##Ne0l{jmi8>W*jKgMpTJx(llVZYA(l2blHD z<~sh*EWpoaDGH`f5N}``DM@d13NZ_0*+uU^UzB+-wJ4JsCqv>}) zVX!r{UlRd^;qZQ#HU#pfU;pc}eD9f49;3K|%CiKaSM@l@ii*z1<(oHvzYE29wmfJ)LHLA+wfP_|ffn;+Woc^Jr`dJL5@?D+=p(^*t{Gs)L5RW8 zAsy!gh3%h?wLbTgPl=|e{1xIJv+JnfkjeU8PP?aLPjq^J1UE`9P}Of|v3z3(_A=-tjc57*TKvDuyxfA%Ho~6^v3<}bp zMmsVwlt>(euyC|4UFvRnFA%TGoEs}ca^+_X%!c#4KtTUDThe65{>(bNG_^TsB-+xO{MK!2q8~{(l$C}^Y7|HaR$i!{`D`j= zujXl05vxbL>Omc_yhhxDIZLoP*O~$PPtRLBl63Kx9P*&&A^{6A29isK(JGvu#f5KP zg;{=_)p8K)|3xlEE->O;Sh_c+A{_xCkWB1#q~UjCde7Ol6aqntUc*;9&!ww`p)mR* zT*7F$uq^tc-_WV7RDjrgK!-&_tJbUn$j4wIl6c>z^%ho(An%4pJIlO+JwVGZ{FJQj zChx000HH0TsEBBxfYt^uKucp;BGC_7nwoAt^W1*l#lf4kn>G{fl_w}^cF$(FdLVw> zGWD~iruxP)!Iw<4Dy`Lb%kGx$Rqq#yJ58Ni8ac6PEqiK2F|$C$I%QTV5?ZZhv040{ zXKXgd#D*20|1yxgfTYcy+5*BuMpy)-JYW~{tr zm-S)ETtng$72EnR4-yO7IN-#K8faI~nfiIGe|pipfF#<208De7DRw%H zS0){M$UeR;$y%|X;BJ35YPJ-J^{XCu?uXWGw(cPqbwf4AuQvWcW{oB6?2hVSFhuBYC@ul_@k~0Y zrB3sgK+1P2DNU45N!jU2SLNcMjW9bgUj+X7BOxxV3MalIc5;byF^Kwo zQqrc3QsnU(sH${S2$~b1Yvw-HGyqzEKDJNHXp|28!?`V-?AN%D?jn*YXCR^+DG<%` zo(YfB+yZ)IG~IcJ*n5Dm)|i)zQ-c~Dr&wS3NtlirumrkOD`WmmffiT|&s9Km*DVWB z=ZPe_>jAa$YYRitC#KkAUzEN&=<=vcpSCb+3)s6R97`eXT^-|%kEwFiyAg1ORd}ts z{Olpo&A0#l*sRiSb9oEGvAYr{fUC&In)#vQW`a%a#Vaq{)j*|xaV_l!QRP7Sq9Z{Q z5zrJKCQ^0>=vbfjxKY+Zhp}~?Gh@<)oAx;YTbbz2T8*z9cGZafY%)bj6`gf$V8zb8 zCrKm|rS05qjv*^N&|ADrtdB+vwETkf`?MI%Ni8vQ*PVhZL|g@NB0W)|Nr`Km68Y{@ z?EkhrPAFybs+Il%wPy>6D_Xa&`XVjckqjZEJ64SI1Yg!Z?9@7FXw&;ywPsF8tWacb z=^Frf=p9!eh5`ABwmGCNom{T*VrI%0LK~VV7$#aWAk=4L?>j!Jkg_B8 zpdMf`(jGr4Ja&#zd;Y@nc}A`-_DmLLg7ulD1-~8Rhqe=L176a}J?$Rt!b14M$tVIR zZn8OU-8?fw`^1JeyxihS7Ay4+%}?7(Mu;8dpqJd$cqs#U2y~J?^CR-(g1Dba6@@@b zN($GqPj4V$)py~-9C^8enf7|H#Q3k1lxFe%{_XD_1(im^ptlV+0J_0F!xR6-HYI_e zM-Ms?fLk2ci%nf*pPwio^*#zf@((G-jrMIlOgSUncR2r5vY^WKSK@|p*Wnv}E9kUs zwC2mXfaat9DRFUK_qz(!S&h|=@6Y!L&y&y1rzmP{>?s`vPokAB9XFhJsh?Q(cmTSd z_NGQ*n}AZ|O;4>af??$wl_oFVZ3+Dnkq$it$elu#O%Wsr)t3V%R)&+nK>Ll4+!6{_^_keM5q zj@27h0ZdE$k63V(NQ2FcdI=+Dp$Io_nMap7ySrB#;|N<@fKc?P@alXrL?GT#mQ z_H=pRLCkK$QQ*VDm0FPr0oTIWVmn}@x%VThzL=X!3aq}{pOdg+NzlFS#$y3pRTklX z5vwO$qC8zpum7rfGU9L#gN2g$vJ!L8&IFJ?#FdL?7JU{B@#GHi%<>DLNTiLT$ zztc3Db)fC4M8%+kGgrGN1ZFkcul$~ z@;JyVaqz3ji;xeI10~k$LHPEI3W3|2KqoV+I0{(lWGaygs5cmsD1Cls0>6F08jOr~ zb+i;!=^4svk`sSii)tO;luI!bDyTcX6i@}le;4z#aHLG>+&(|=drD9p z`~>pJi4Lq;TG1G{XEjP`^L}+6pV@*|SHeY9iXMs2)gq?#RyVBS6Ofn;ZRmS3&bbRE1h5V?tzNL><%q( zc$g{TnjHMB+r#o8K>YMvm|H+b^ZxfIQ|ksm?A{;ZnycMYNsw0j%KU4KaJQ70=jyP+ zEUz_}!ZWmk+MhV!2o3)*nt*fd0Zp!gwfQxl)wIEdfGQ@qynf?XopJUq7fO;}M75Jp z;D^YIq=@J>2p_UJ8EcVzB9z+y7f^YDVu4APs6QIcJ`d>e*V)~EfzwB8C)~j3feC1I zfX*qH;s9L>O5nQfSnbwlV@_fe-^(#wDHrwI0_mgsBMB)k3JE<9r3<;j{r2*K-iWD` zK)=Xy(rSgvU9bx$+7p~4qM}d-Pk{2>VSHHj^IT$4mFt(}>NzFhWxc9cA251=k%TJ! zap2Itoxq+){`!oe8U6s;Gm7Qhcn||R4uD8vmPGr#L5GzFM_`-_mVL|&+l|W%x9;QF zzGKpnx)0IJ3!9Z*q6l51pRKvOi|cVe*EOfsbv-vbK=DuYLoZ2tl?9aCRn6pLLK9o- zn*59l^{4WEqo0)V5f+pkW5dggC09pWKb#R-1Z{t% zO9oW!*pAugn4ge_z-!??{--$ayhEmJRXJ`2&x4Vcyeq(JlF3drW1VK^cn;|OZX6iZ z00R)ci)8luU6$88(5IRa>y}cF?!&7jtQJ?cfXk$eMy0)>9hKD(%NX%dkhn8_N5 zo+MRcfuN(mc1V6xDnm<6X^q#cYLeH8yz21~wlFOQu^6?`|4`$J#inxv*dUuek`uqc z)In3pT_Wn?Ix=8vnl@d!493g!m{c$#vp@n7h@`jZdFf*&K>7lFCx8O+H=vIf&pah`I^!0XuE{qsy%$nq?QEhAYiiXzpEoJ&?(f}C8bNn zU}R)yxfpC1XTkHWfeMXD@p(){dnmhokLlQrB0=VQ%?jr>gk9HX6E z!;_8I;!IId#WODkPR?IZ?@wV<*=j$YGbm^5_ZxJf6IJFlN2o+^>OY;Py;1amAzmYT z)+BRLF!C0dCIB6#>$bzLQl`$Qf{tv>uR_|tvRf~--z50Sf~gmP&I+8&3_BcaQvYX$ zjz$bY2(99Lml|~qx4YTDs=V^$Y1MouLwL9}e5@FONx~`WO2Kcr?>~!A>{j1U+I2RX zTt`Rj{Rk6?WD3t=i*Ap$Vxlty_lwIAaai7f&b4rmSlKQ{fX(nyQ-VbDMcJ|5$GcnR z_V^cbAMl$%#^ZEs$xTN#Wv`K((F<3Nrb-y2qMEaH4TeL#(Dg*MW`0RzHL_q0BHETd zLk)fe8d^%1Iw>^g_gFA=kZfN)Qi>zuiu11yzqV$aA8?$KVub_AIFBFfJde!6c}7E^{5W^1U8Oew^s0CE6VE-b$XiuoH=-3#I=M@LG_0V!A=kQAH|?a!&JyWH`cBO#a>@hFSWK@>ePnw^AQ%jJC40iBese60 zJn%9fOdEo<=A1g8F<0XHC8e(C1!Tt~S5Bd`zdCTOzpiaIS!2>I*+^rod8Mu3gQkwf z+ODczCiAFXZ{5D1c89~$vHje?Q=8Wd@SER-mbcOc#EyTNaJz0>%J+pni|O&8JguWj zoMXr50rYiKvjJ*q3Gea10CSJxy_ozNXVuQBqU(Fan#jCyA6vD{+Xc75C;j&;@IZBo4naLDqBawQSJ7VdLMhF*hsN) zO`ue-8;q?R?5-R59qd^xIzq{Pv`P2=4aFOgNxqf8=v4dj*W^|e;UJ%x8!HV2PPR`>hN-Ih zR(U4RGku<_BY8^hCuUIWjfZltM|1jFfey={-MzScA)T+O-FXAgGM+~)cz&z614oh@ z%i@t)+|u(es!R+NT>t<)y9R&?$g=e5*nrTs&DQIjSfKbIPEjNo5r~az`fNJEPe>}8#zl+VpZDX@=j1y7WrQVX zl7-rn#HYeccVtTeoLFKKGf6~7K#>r|z=@B%(<~mk=f}+<1=RO78y=3jYNv*z`0SQ{mbW+>|mqj&_jN#hHzK1 zFq@g>ZpI6h(B+HWu_39io}ZxWS=J)?U^)osoj|kxchCUmF5cK174EcQWL8)mk>P4U znAezj;Xcjb(89uM+Mt=q(sQ*&bELoLR@W%xtphKb8&N*lDV{cR-8ND_j`n_V%EYOL zM_5=E%R*(@^57=`T*4Kyud5bs5NLx93q7}th18c89>aOxL1X7Cntf1HO>RI>04=7O zncOsGAbFGp%tL~}#CTb9bqLpV6U(cn?DA_+I~m%GR2WhmNLW4*q&?eRlxNkcrt%Lx zWV^}94Zu$wZz7D1(quz#`3D{#Z#!c$w@9mvkpZjK!rtF$|NN5KR&- z>P}ASURZ3qfyd{X>?ZM6JBjdB`FyaCJ+=HbC8jFzNm~c$%Z;I}I7FF+48g9(;P!YA z#CVXTZdzk0!Eqsqwhkn89EV`Yw)6?dws&_9uXPb)=Y987>S2ga_!#kZbh&Y5%gZj8 z+Nd)O6a#Cws~w((N~Zv3BeWU*LYq8-a?96Occ9j6ih|I3&6cbh-)Z5)X9=I*_BWg7 z{>@iyDw42gKihz_>Ce2Y!u(9MB=5yThZ=o}yKEUohr_q4LmzfC@4!TaxxRu2b#WNUOgB)!T#~G{WW>80cJu0 z_5f`-yk8*Ca0oK*m$L>&9&vs&I`?Y8r9|%zcD+1PiN99QM+$kkTNu1ORYdBDosaE{ zj18-pxvP2k?+;u|hFe~K0ftVLH(uHeB_}o+u{VoRV4|t+Z-Ez#=`X~09dcZQEq}I8 zRV2DqCRI3e8yk1Cq^KmxjjNg7ws#unmDiZ!2xzG2UO+dybs4UapGgU)6*^nXX^$|L zw)+-h45v5*`mfkWM8DapeY0_Oo?n|;Gqa0JI+A@n6Q1QgS-&0lC|=aPxJNiP&`Wy9 zg7I$&t+Mo2^h$^g`787hXl4Nbmp4!h8zWMP(C!0eB4 z+#iu*c;~RPbguoGm2%-ga@zd=&gz4}2#S^3!9jo7h+Xm3cl?G{$ z$Yqj7Ihm%BX_wtf=QkkmhDqY)-u^mnpV3+>SVMnaO(gI))9avs0@nkh<;~jo)%rF# zXgm7VCu7AT+ifPo64wZ|le;K#R`soQ;kdz2gYEOR^W;+1r*+tbXrB4i)arrM>LIS- zcaiP(Dy*bT15t`&-FC){fPhw2sT9dJvb#KD#9*BOi8b?)W}uhDz*9g?DFDNDy-&E# zp9C-iw5TcPmgCppc|nr;BkY|nlqmUtk?u+EEaSj4LwR1}@f$rcgpos9>AAwS8N#lL z02I1N%U&~>6i6OCabZ4_-;K2zndCDm{||tpkBftb*UW?FyKLQ-I>YH51JfM1#{!@~ zLhW)FH;3j-L_hV`_+2zqGSwVhR_~5m0RtJ0U%&2LY|lZNi;0mTKU15ad40n#S&mFf z+OM9s-K>-=?swS*IY2T|`CC_x~1D>U46xlknP{5VkGs1QAt-ad7H_>sS z36V&TgTt{v1mQuvgcI45G465+AJh96TH0k}8TVPKhvF13@$GaP%q;OXxBlvf^V7|& zoSe^$sv6H7e|FUF_rm~&T%Bjk*QXa85My4NG7Yyl4xYd^7zeoyrC|?M`DKUB=VFQ; zm~cl$H*)q4)SUCFjatdbc^(oGLs>w@U8(ne;V>F1^!Thgl1j67sYvovDGsH`LOtY| zA{NsIr>t^$m-y5Z{Ux3WZUkrDIe#u5O#7OMrJRpwJ;l$siuvFQJBA6blCRrSHGHs^ zgBop<3Kdc1Yq|6y>2;7|%i&iSY|zHssX~X2tvKfU34%0+!Ne!_FGruAd2h8)>&fNu z`sMq^#eg547MJ3;V7+C=h$SBxhPG$QYJ(bb#(D?dZTmWW^`-T-#o)03Fc4z?B)H1t zPI~X(&xzgzXHl8y4PF@} z?)ypvn&ynCNReG-*D2kBaMy=9q=>_F?%9`PeoBX&u=kjxbv76Y3PnYiJ+@y67B5>< zPdtu#^8Si;Mz(B>{>RPdMXkHL0lJr&IyPEaN|BP~3rkx^Yc2Eq*f-&)UMBnqw9d8q zNl6`-tY-Rjz9Ou|Xg4t`rRk6b@#3gce(36h1?~pU=Yfyz!LsPwxx(?J)_xGv8ssoZiK}!s*ig6fPLBB2 z<$U$}h?bXZL=g@dDXGg_rFg61%Ne|B_;Xu>FL#~RqAoA5OHxMv{Pb%?K;te4I8RsXe0I5&dC=&>KV@$@C?tAfsc-_9L|fr z|NCy$;CrM0T+JsQ;y4h9;snoE2*gK@u1dB}uhS0w*-{(RGD<3{$RVnyFNNnHE~upU zjT%Uah^g40xktYAc#fBL)%s?bMBl?vITr2$HGhgwd*L+$wHu7T1QZ`3SeLMD@fD^I z6iB%PjW^3t*xTAJ73cKw5_88~lX+1;68L5n(HtW=rd~j}pK2V-GChGE$pIr>;5nVB zUZFqaa{*Tee?CMq4^`kJ3b%hUYCbcy(!OoUrR#oc)$&Gqt`+f`VbheV{{kh<#g(Yn zSa|ej#orCyI01Z1!04cM6H0LX?|h9Cxu_q*h4xW*m-mx>g4Ddo$GX~ZxBCGS4t+t5pUPUYrrCCG0czw-H58L@bx5N#}T z+D2@qWHpb4XV~kF)pKsMw6JlW*^fS;Q^>+}Y#ux&_V51%h&ln_?CIDcGuEg`^#VPS zd);BG@3o^_J*3P2M)$M;w>?K~to>|W)_4I{qlO<^PK=6*>fe2P5pqJegs1evXJ1Fm zZ3Fh(!-I@*R~vI&*mukQC-Of}^g-(5jcsM1KXladA~hB(&*E(jEf+2dWfU&? zM~sVhCELaiun$g*{*YGuXcZjVNIQf2^bPK^HY*d{#PF3-ZE%PKmXMt%X?8lk%)OVI zFgoyXE2iu0r9>8di07x5Zc?5GEO|qna~JaiebQu!oHkaISG-4kdwyZA@F|Jw=KhG_ zUNTYwBNY}_R^a(LFn-C14i&k3cF#+dWim}{FgtwxSYG?&;YzyssGbj7UV)=?z?WkW zwC7cNr7vho#`(!v+&S#S=eBG-6E^g)Fi6gwZCY47_ATB=!vZ`$XD&4@((}uVRUKAx zJaK2!#nrNSZX_IXrv5^Zd4*BiUHOdX=h&&ey%&I-8D>wjOgGHhxXz(lf(>hsJk{BE zd9d%p=m$~Dy?}yLVrZMN~@9pCtH<8s^IYb&yY4qQcdzd3Q_B>Xm*e0cGw zY5b;j@OAG96_)h&6bUJH7@IO%dWhq4D6ylF(Q;HYUH88X7_0q@ql5drvRMTS$}0AG zk#gR^&GX7YL}+EH6AHs$L0!wap(ez8kJ#oLbRwpC@rKOH9HoL{-p9`v@%|1*{ky|X zp2S-#H$9@?@V%}2u=iTGphf0Zd4iF1adu25w#8vzNv%=kTDYC5(Iw6(vx;yc)xG2> zpL)=@$)x7;dHLt%WWilLTxT52t{L;YF z)*A6@k-bgw&NSqCMcB{^PkOLjjUyB3v&~}>ROE6Pi|Pf|7`N=t7x~Xg~_j>6d7o(xLuzq#(aS|jSWfe>>kMySFl3OHN+ zMDXvQg(D85Fyx&%x$>Mk;rouP1_PB5>x8_)$*{J#c_)I9B&$sZw@2omT$R5gZ;U=Y zIkH0Fej{_Qm|dfEHMF}kULGbH_A)7gO}>)Nj`^v^&jengT<>AoaF2V@>w9^-AsuU2ms7b^=Q0c7vqvX`3RXH1Vmc zuUBu~U|bG(2Rl_nISTL>6A5-o*X35|$=oZqP>~Niey1DXty!*gZ+U1r`tze=#J9U{ zok@`+c0Fg7=i+zvWM`t#36{Z8nT$5F5w3^3mwYM)x=y0ZuXlX&(v;%jrd_ghtxQ}@ z%0gWDGP2Y(-)1s)^^2BU{qbP5GBNKI@wItMD&Ml6dcFv9MdM$%5_{gfVT4F|C@U-c zCg}h?5KH|Ybs_#Z$J2K&qsD*gPMo+^d@D#?+Z%0da)T|ePdI%cGyDE%@i}du>058_ zuwQvRdE`Ab~wZL=`@Tx)7@r1F`nma^cMoq4U#YOTg!7}|g@pHN2xhpo0r@nM|j(87tF?aPc{*cBc zT(Hh-PigQv*m<5;r2Nac81vTEioZtmdIH6}$fy3sD)-5I#>c;elg@$~K!f*tHO#H7MCRq?MTke%zTtiB zo>IKQTsp#ACV9D5>Ru0li^Wk5mYim1bUlZI6>oU{47~B4%m_(r|C`0IJkEg2@bTN( zT#EUXQNA*%U$ZA+q=nGmSWz{_AnPPOUNt>|45=>~E?Sq4w>{2(@*W!J$-eHuam_UO za>w1(t+X-Mc7HjC2RH8BxHtx$kTA>^P3gJyJ{V;c(oCLHV%K#^dsYA0#&r#D)wYzj zav!j4iAH~Mc&zL7H)5gVO41GPr%@8*&O*}9hBBqAq%#YildFH-3&xnfnIit2+{MTK zNIATT+BxOC!n+XDY$vu2| z1Mk4B2z+muzj=3oy?yp>LRbFZ@`vT`zVdYq9=@us=0VvLF>bP{N>Yo)B6n< z-U}n5{>RIHu&WG269PCf&PkvlNXP8B0Cbp7bGD8ktX>JvGYpT2tXra8oc4E6piaFf zob_=?+?2a>5uaV#c_QEO^P9MfgInCLuYA^N45q|C2I)Uyl&ej%7nC>uA5m8U6lK@8 z4V01+X{00+3F!vuk`(EX5M=3YQ0eaO5~RCBN^P@%T=3bEPwbrHip9xY5-AS&cvqA0 z)ooa^C%?%YnYHBhS6H~MPfaBQpCwtb032*9ythv@#HsyGTOKfT8Z$+pic#r2Oxs7d zK1Zqd2$}FPkNNFop>l4|wZK(IT5c~rkl*67)8inKkmd4vyq^o;gdq5Jy5q^?)|9v8 zM?JhP4j$avBu}-qVLnHfpY!+U31v~t)5;$m&&b16g0EdTPCpB6steVJGvtGv_z#T# z^ATl1-*x+x|HeD>?y~%j2JOK;!q6V^vhSwZcn42p;U&sDd_{Adv|N^J0~0rDj&bbW zBJ#@Se$SpRe@WP%XxE(UMKo;K$(y?e?RARD_^n3kdx>+maefd><(qqYit}a55kpxs zcDW3D@UbTsDHdbAoXVKS${_Vd9pT<#u@E^w zljzTdZ@>28_>%Zw@up1swQ_PJZ?Ax3TT-ihqZbS9LLQ6!*4t_u{l~qMO&RE(_Cj%p zTtC0~02Ab9XkFJ5Z?U`FtI(x}mm$Cz4?;agt?MzHJ${gSdSk-HRlN)2bOxIgw1A}n z?7J9RL+(^Ia_q*&#^sHT4Q4u_kem^!O=gC^@ki~Z<5M@dx|F)cpNPb$JXmc}5e=>H z(}vlqW~JB2qQ;%@^yv;>mD7m74>#>x2qU<)o|kU9(misc^rSz0J)6rdzcT0(6~357 zg#VjK`1h~1SmDLvXmq>7Ro2DDGN=6v`D5FLzQRp@0pf?s7oP6U(nFLDvv>j2wc6nT z)I}l1Pg`0D6JDab2S23~Cf;Sb{P^Z$JKVv`3)<83sO>;x*x!juQsY5fTwa8QSk$)F zA)J*7J3f1YxQ8^aJG!jW4}wT$GT9%G_g|&yd|b9C?;<2~evcN-G3ITRbb-KouJb}{YHN@!0GnmZYGAYe8KLnX&9KXxtt zWryT0kQ)684KE@h3psJ26ggAUYC1t#Dd+K5^!hnmKX=ksoJVY%7*cv>~oWNo71tRL&84tNX_Vs>4ZQV!p8&``@8dAl~O zks%rTCty=B2gKU6OAK+wl=84_H@zX=TC=>3(d9{T=2V>K;YOfM>2`vFShJWP z4o;@VL2^2yR6V8nr>nPlQOs;?mzYyg9NN`>mH+hEfSqO1J9Lgkd4~kTC0S~^xz1bu zesD=Xr3<^0X3IdG%(PlP?gr80Z?N!clW~EJN3UZf9-VZ)R5=x(A-0Q0TE|%)V7_P) z!u5^nW!Lh*XpxdgRn8O6@I*WXO26lv>fJtabi}6eOh^-N!W^ZUS%OThMzSaR$J>5Y zahU@GzdSho)&*94YkbBvd2o}hu7q;W7J2TOPTJ`cvw11h4}Pn;v)+e+hCIe4DG)=m zNF_zZd&W1f<4+Lc-Fq53xn}Xlw6Z}tL160R5<=(xFm2}VW34t#2lXn`823$VB?83IUF5INugbi5aZH`5R zSgN1Y>clcLm{jXjUEn&C$>gwxCc(PcJ_Cj=ZTeopl=PqF8(%e%5qwPw?8L>|hP?iC z{xW3kPjBhElxS$c=IN7G*xMGL-x;#Fqn|ko)r-{_3?V=uNA z7kC(LpM`|9vYu)V_%4t0W(vXKjjwnA_)eSV3eRN|;#VEfLD)oX5-yHTzSPrdjFyJz zKhFQ}QN%A>uYTU~@h4zhv(tbX3)R4+-^2P8BFEiCb>xXes#9*sbhom4Hf`$6^kdVJ zzg_#WKhpi}JD15TNIM;jIMoci11rM3Rr#2Hx>*QBzn=4=5XXv_yb87_GZ6bW7(R04f9He&Hkt7%G{uAPjv(L`2l$eUk#@ z$>?^F*U-g8INO@hWL)%;z=RG3j>1CXaVf;QtQ8_hlV>|RE-K)%HK3&A zH0rN6@*9coNS-~-G2Rno=`Icwh-94p?>r_GuTTCwZB0QqiBl2<9@MY$0)SpKoo6nW z@Cl7N1cO_CQl9H(0?*#Upx$qOI(s&R6XxOLNrnq58;?{!W(pd!%0Y zC)1lWq*f-sCDe=109OBC(&{_0y?Um<#Ocuona~V-KBGD1Z!D#(i!bxadFuUSCmUN+-%31yD^MNpP1CzD^ymYVa4ZeNlx+JIOgu==KY*|xo*gi$Re zDXU`(%bm-2@3LbC`sNAXU%;UahFAU)4gXO4lpf5lZOKtVlU}P02o%uIfCJ0D^%gDO z0%L{Q{gtxzi*JlY9$}D!DD!X1T5Y&(l#LT}wDsGLkOJW z#^KI|3*#?0LaDcQ6D;i|*_)`I8{`m)pFjfiN2s*F%8B%g3zryGS4<;lWqE~#zfWvE zBYZo8l>2sz9u%RVAGw+YoO6!RFl|ncW^l@{tb7A4Cy)YFvQ0~O!H7GWr^iNEfs7)9 zB~>#6?@c1_4G}Ns7EIxOjc#qpl;`3mnjE4whFwt(Gwp-DxKy|XY9bfXU*)L7$F835 zCS*;p9&q8h>3pH2@g=RAlbD{P|2*o{KC}v*&iyfDXR&sIw=@s_HNAu$(89)+S4)`tVz1#09DtJr7_^WiX&Mnjs zXtjFTxy<~*R9GDzk#Ey-h=dxOe{?f_&oBLP(H)xVS(#nkomVAIHVKj9|A%}tahK$7 zmxNlYtiGPy#B#U8G(Vw@z)C%|F5PQhi0CouaO7WC^0~wZ@mYEB10q9{guFzFo31Fk zt5XEw8E*tYflP^mIk}$v=~bFcn&mSRD&4Mv8)s(;FqqEwiC17aahVw_bH5}$(p?@G z`;U`EtzqXPjYq$D zXNg?WA8P(5SDE)lU~Y4szIK-fM=x z+C9RN$XCrC`}|DQ?th&-E$xCGIeBlkdND|j0=pJ;kk8OZaH`wplG(!-0k1|{tCd}Z z!PESeJ6$of z<`j$(ef@i|fj_e=8es~FX5Lkd8w38UzLYd6UJ?kDSyE8+awXJvWO^k7u+pT6>K#mq z##6jF%=X;^<|#912aL~*?N8D^zLHsGEk1Ag_|>Ufd=$H#LPq|QV1;7lA9LF zyx0Hdo28@SQ?q(Z8SbpfSp7V0qk3JI`+xSE4{*gQv`cw~gg(6?9^E+w{hZC|uLOyk z8??q7NI&RILvw;ak+9@8uG9qo5G*KgvVxBTWDbC!fzha;wbg4;Xq{V0jCaZP`(nw{ zFGOp#ruTE6Qo*EoeKi_<6Y0^LXQjFM(ULWYn+WnKX}&SC<9re4HE@+Xi*@yFZ_$8T zzdN8zZgFNVTh2Sgm;n zPB5??MR9Qh4B6T~d~Znn&wk865j{A+0*}nv+WN1YffHK&yKHoVOs!UtR1I&6ziC#I zN})EarT2lPvGYtdO1eyq?WlefYg_(BDrGnoBvvskf0I*`0grJmTA^G<+D0a@T=x4+ z9+Dd3>`Q8plZYQQZQ8a^vSiD0b9Kg2x7mCl3z~5SeL`7h+DpUN&KWWw|?|&PH@`@w1qQ@qY1&GtBCXhct9 z#BBJ-q=LN%0>#EQ0w&O7eugW$=RMOtva_ZUR`SC!QqH-MmYr-t8;SWyNMW>@3nC=W zT(Ai}9_w?fo~1>50GzXBhJWdre>i(jRo)13(2z}Rfi109N4<+q@;WB-QN4H(3kTL}x!$748su^D9wN zunc?o0W0Q|QmN*ambK&Km}T2OPhr-@P)>!=+hc_2@PT`GbOiMq{V#{Fmrw)JG>ZDP zG0kkP#o*cx(*OZ&Me|(8KOxZa1KA@t)?04w&2V1_c{e6+NEPHc_MiJyUw4t-!{h#0 zUq7EkL5261=&aA56*&2oxI~Gb;`6m<{B%1kZA5xy%w@o);gxo|6DYN?oCJxiS@l?Ac3(>*tc zQ7BiAwV1r-)_@Wns6EQSm#ts6ySm8$1_Q7=IZ5pt9J&sC?mYBcTsuC#d5Z?7cuc*t zV@~RWE(|48rZ1U|fJ+RJHUL}#!V7uPqC5bc=SRSnsYY8NqD0or`5_cMM{zU=E_YaG zl1t=ZR>*sc6^ho*t=6AgX~aF1)7*q-odf&6fa)*bW%OA|WfxmJNJgYW<3`exFwm_( zaz|@R^WJc@td`q0Gc-Uc6!j0z*VT(ZeU8tX_&u+dF?U;5$y!P+ui}B(rr8yvMD&s(g~<{(>Tq5L zir;!SH5$VN_#b}@bn)G|TobkT`W&IAEhf8RF=pH0d)k?dHZ0YYs>z>kGI8fxv`Y=| zIq?jqs&G5}7JMg)(-j4RGCsapa%sQ%8^Jlbb6O=_^Doq@k!e~`5Ed5Ri1fKOj-GB^ zux@NTnL%S5WbOyWJ3!6@dof^}ZM3qNG@glsJDDF9AxO0L9!9E`NQq2)*pg z#Z5jse?;H(`>NSe^lz!~sEBeIYaiOHqdRehGT>}M7UNaPUE1=lZEglRH$#C8fTp76 zW5u1C!_lf=j*lYBmUv6Yf4u|RF;VEtt@Aya zX?~oz+1#f%%YQ!4h?`M#;ziDcX22sAjg8IWOfn3Kv@`HnYOxCJIT*oS0R#z} zSGDsgAO%p`XJ?MI#N30jz7}$4FNy&U$sKiU69@!Z0r-0i-|6FZSoY`)lFcCN3S+O`1;nDvuD4V;fhqb{>?QKNj=1 zd^s^QMg6QyeoPvj;k82T8Q(pSTp$Xk-IQ=mP_);>u|>ScL*}Ur{)GSS+i%v@E+G4q zPgt16^5Fj~k01%CJfKmWf&hU72rTNwlC|1iaS|@+mUtFl$1zG()1XfYtfK55?zy8W z&D#(z#F(X1$8D)h1qVK5QAIO$@p*$YbWiV0%JGms9%PFmIidpV&>o=QY)S^IzsZrIOeO3eXw3Y;U0n(txpel+u3yh zlfuMSjf`o1`Le?S3z0VgFc|4PG&v`p73RipJD{stWM7-d3Eyjcx)I`zPcqrTv3>D; z%PlXw?rCOJmOx*Y^(1nEv>+DWk^26rTa;sQ+7)%qYzN;Z#@+RZE9by{A-N|Xc zo>vy<4)ebL7eeNa!Xw}Fe4k;@**Vni2|;E`u#{fa43El&%`x>88jp{W#q8Jw+jvuv z8N@)XKXUo6cfUkX@}UiHpaSxXKV30f4U-zs3Sb|9=A;S9sUPp6BC2qRf$0)9Myj!!^%NPd?z zf*4`)zlm@}=lN2U%uq1*#`twMi5?JP{&MKBKB<|Zq;o|m6QHjQ4I@$mTit$5>+_lq zJUX@!A^zZ9#%`dJtn#9kny+2T1l#9&TKbUcv@PkNp5-w$+@kxf47ztvNu4dJ(EK#s z@zmY@+643~ZN;&p?Td&NLL1fRY$1Zon)-Tj_Y9hXa36R zv)zT6AwgorUOWh&DD$s?yaV-3le>@KC{RSly!4Bw0OKWTD#z#hU)v%7&YtJ;Cs_~_ zy$+J8s0e`-Y}wF`QM6Z}dsvdSpm5_E!E}`OmqL`ES9EL^>Dg5%$@?nfk|qQ-j>jq| zSHrm$eaC)(cxhlP{e&+#%)D=ej&|;-n=dG8)3RnbewU72DdD3anpjTV(}7oSc6L^W z!_ki10i3Dc?Pl$8ALVb@6`D*zs|{#^Ad}YL2{s)FqE`S*31;Ru)14L&F2R-PyWG3X zAvt1P^~g2#SCoL0mU;mYIGc^PX11x-?np=)X0R)S zY8wAzxcm+9%5wQ)!~rOxZ}U}Ol}Ua=%KQtvWMdqA?GC*%t?LKD>0Ue)a^X2_aCbQq z2>+@YwLcb3m8$!q$jO9G!k$mF>;nXwiLJxq^+6gTJvrHDk_}}# zxIdw$pc~2C3fwXjc@hOO3?EU~%3YeUFR!in#m2_w@GO)p^u!uGyAeEL9%KjMj)trC z7>x^YV3!P;a?r=hsz{o(`y`w>6+F=Y+%(X754&_L-8gOkl_G+;-pd3{wl)08HvK%b znAmB)nE1-3EG^OG+8YI-h}ZsNM*CIJi&)E6o$NY?Nr<&tFDEy~r-YGf$oqqHmUWf2 zZWXlNp->$SU!tV*szoVvouG<{lLr%V)N2cWI@-y_anX`vPqIQLwwK$lU!aNR{AKwL zrs;Lx=Z`Gi^aa&cu@k zx~bJ>BMk@V9{Ka%yFWo2-yosXfk8@sP`w2W0Kl?e|;Yqx_BiY zeyZ_W+?EDkH@P%yASs+xCAE=y@2Zsg&^$~LnP*w7NpYN$7PsnZ`mhHlDxS1zn!UT) z0kSybj;i;A=4Sr>a>G)C>HKm%uJRVuHEzLTkHE!qet8vhiU$e5Hh+A9{t5P>&1>Wn z&T;rAc*~QPTW;%N*3in)vPiPn-=2&+S@G5JhSkGF+?YG4YK`g{3wQ5Pxs^4nGMp(> z6wahFNaD`Lf#IGYxJeDhnIV@T+FA z01L9V;W3^{sZuYJEoJi#S2y99P0isIUD?jcm2kYAKNT9UhzR2PIt?VE*m`;neSGus zfpv+3k_FVdK6eU2;PwE7)&D}aeAD&*JlHHG3`9D^`|!Wee*pNSfQ6g*$>ynh4Qy}a z$Y*=j@v4b@I#*Jq`>z;0jZ-{c5`F_9Y`;mTBR{BXf+AP$8E>s7k3*7CT?B1)*T(o1 z4~Fte>mzKnZ^Y;l;~A?|CDn>tikc{sDtHiC#}!XJn(w~n)_!O3a8QI<4PCHjc74za ziKr`Fcv_ng%iQ}H*Hpiiws15-Yf_|fe46_qCDu_s%<*=*dFgVA)LxNJLLCyMjmeL`*Je5*9tV@^<@)M~)~m_nb9;_m zqzisXDZR-ASqw1z9CGzTT}%Lldh$!HP;xL5Vs2Bb{rA0C6ih4wTmlBSA|fOC`1t`X z2w)wiJ&WJlS3TbCtQ$K_jrG*_K6h7eK5=^y;3tYZA}hje?;QzqKHbV!D|lPqV8k z`j3`TUy4YeI8{L(@U=>+rPBW?f10wI?Gi8{+-ZI?ddeN48n8rkcJ9)0FiuX%UPzs1 zjHZ!NoE;&){oyCh=ql!kvth{)PRWG(8#d`A<7VW8F$yZO=MqzvioAO-uB%0s&J5Pp z<~^|x+k1>@a}?&S#NMHf0C+6)`@qo52ya?qiY$F-gvcNBGR zONa6WLdSlD%AKM0vJ!@^RQ!U*AUUP>rlq(t^<%@}QP>9f20qf4s|NNu3lDN|GTAMy zoSl9DlI5X6tEE-wD#c;=0Gui0(2khs(2nh}U_dnD^Z9(d%c`?5ne zCM)hTOJZTV9NdBt&_%s^lmxy%844ilW8eD#_(|o8g8B^v^77umI!bNKE5jw&h&UXu z0zh*Gy3-qqNMO!AsHvp1ekZtq)8Ju?9P)H64gP#;cgZ@W>sD>EVdl%PSQ}Bo9c4H% znLYK6F6Gd-K4zwe`p2s_)*~2>gjLDU{>8$;D=bK})WJVIw~-8g8}0L3zZ4vmF%||E zkJyms(zsR~F-Jp_nj~Cv+A#PjpAz)~f&~MWSDpc1usQsITb3aT|`^wR>n$Q*aF<#*-n6gp1ji3^u(WXjoN)BlmQ`y&eO}$ zzi2sN)-Tc?0kOKx{2ZvysuGIs-W=d%60sxA``Ge*cx%Ai$Em+`_dm9aj7PHPUYWor z+zvT@K&`^({G{+J@=mOt^7*l=HJ>VrI=-CV2QJkW{#{x;NegITO6VoQ<; zH6#P8R2HAZM!1!m0FpbCmx~Fk^Hs1+e*a(Py%5b!V3%H`M6$a3dUo!2KmG*SL%=PR?WD$8lW<3s z0)CO)EkTEwjqO^ROug~Q~}V}jC<%pVtMT#aJPQWbDQZo724fVkolGn4C?7?{uP8 z9CKK%{~H8+?*Tc^-Ub<;zQ0L3z};&QDQ>cuTGWPgeBP^8KGVW=THRX=*^!5h5N4#8 z^>ZTcsW3?sbgkOpMHa()ZUvH^O6t$op@^f!Ow1uy>5pkI)QSQu5v!#8{RfAN-hn)> z=KRpqU&pN9AV(K(peTxsY#mK&_p`Ah2wPcBh~^3k1SI~_sWGxC?u zkZ+!Zme*ai{B>^qW2HnKExYJ-zR8=|vITVk=%l6rGdrigvcZeYhK9Qp1I1Cbm%Mvl zwp6_a(I-C69GJZx0kYdFX9Jv$cstqaP0_L8y}js+k~|<>G7j@t$UHIhC&y- z0}6^osZe^rB7k~+xIOh6G#JEB9s_|B+(-h170y%zAiFemf;{Ds0DnJR^yVv zct*wikdouM7xHrstht1&#)URSV_bLSbT%?haO6ZiX93%o{>Rq~gd*m&=y5y=c4)SUY2w+$9uh6=k&%eqi%d zQcs&WK#~|fW8eeLygezPxd(1}AuMty4!El-pSqoA5yUPDH0Gfe_j^_;S-9qm=BpTV7(GTqU$>Sj(lUFE{I)adtZvHSV zor?#mL5mymyYi3~?mUO#YQRg7o=e{lPE!LFZ=l#86iFd1Jd36#{rW>7&ie}*gdT;d zFnNhbr0+w=Iqm8h@1>S=myWbXLW+M&I)}n)bGJQgo%xN{(+ryjO^hGjUzjqVxs2Q{ zIaL^BF0C}n6mee=%^JM}Dst)fykfSklZ2Bq>6rFw_$KthbE`0{o7l;yEhCQm@i_%H zqsZ41rIGs-xe3OT&W7Y9&cF0z@*Hu8%Uf?77Z&hk{Q6lBJsqyOt_r7y8qf&E$KA;k z0<5v$)uy%Lz)myhQB$8CROq6CYr5c{Ui3BV9}B)y<8A^HKpFsfW>Gpb0zq;gh4BsX zNw{r`oH%0EKgfyQTBIsEp9zK^4+{D3^#6VI8ig05OaU%~kz&Kod$VVD2%N12 z9Bxl%43NDdx6$71O4YMWK{W_Bo9GF+yT~;9GA}k@+NSLUaw!6+f%bXiIs_O&;FtGB z?Ry^M^aW(g*XQ{KXQWN9_3cHsO;bGc2292~i$gTM4_cC%Z=^ zsWK*YxB(@T%Ebfrnu=@K0k{E-)pRgZn1_f;*Y@FGZ%7KH27-^L*1@&4dwY?2^cVpS zhtSw!KTv|56#7yf3ZH}+jKV#br>l3%65fmiyY7t2ol8+KmMJ&a%32O1ikwoiYT3_s zT?1ZD!8WyFD6{L4S5dJ_jzU7zm?S5>hu=wb*_CI zYVON2)K!PYH{u9rWadZFUhKrS!epuXo)cYY1}uz5qxQoC&}S%2)+T&h`ZCfRD)`(dn-m5DvN2y88a`M(dTzg z!J{ph*-^fXsPg3%K&8$f7`|2R=1s)usj33&O^GBc5&Vt{Tj^et~Q z`d?|PYPog9s1w9BJ^P(}qEW67us$d)K#>IgX@Co*UP;E#_UK;re)%xz(yS+%u@?ZY zx+4L073CJ4|0vbefOmq_UM8%=V~|XP7`5}mF)#$ksw4@Q`fI5IN*v0x7SUG)Ba!*H zt`wA-y@ea6+*Ll-Vx^a?ShI!o;lL!^0A&HgBC+Smp@P46m{Y9{Lw!b+K9>1KubB^x zJ$`=hWVy~{;TG~VH#htTjsVprV+3|dC6z9GXkZ3L|C1#%mng#H@M%)GkV=1Zi!Wm* zW`|wIuc0R4BrbSTBb5c)s!7FNbK=MQbk$=!qGxEQ)u7E!Bq-E?;k7C+0RfkVlG^vVQ!7oh6Es{jWFVDtL_ zOCGqz0xMXkmZN+EuqjY1Q^aX)?oDs@Brz4zcodjMTTcYRHSQ07a9nxP%Cq*C`8&Xl z<6|J1`kelWwY&c!6SRbG+ZURKNgZ;csdIWfrD1RcZV3FlBIat;i%-?dFT6e=U6z$U zC8&-coP$Af@bjA&Sep94Xb2#OB*!m5b6&obyQEgB*W2U%Y26Oz0It=>##h_FLFgaQ z<|I))^Hn>LVKETIkkug!EF%pK4G>plz z5yWwDNO?X#jBb7R$QnVcazOQ(Yr;YwJ=$$4QH8ZtAphD+rlj^e5b~l-EgR$+3%*;B$MyrKh#=(YnczJltz?? zo-jTNc1aNeB06B3TBtNs)0;mwM-J$z>1Ug6SX7^;S+f1*Hg$cZ?JuxqPhARw`G~f< zY~@NbH|z>O7&g!JQ~8GVpvSEt{ebe&e z%a3L^fqy2LRDTU~C0PY3QsJ*ACkxp7^}$3*+<9<2BOc1ko-?MswQM7ngh!aa-;IZ= z92j0_i_`~GC^|sg2HmZl-Pcv#cl5E5-}7{U2gFEmJ^)W&U!Smg6F^A-OzU7)DkG*7 zu3vLZt(zCv(-pxqJeJQD3?6cizZnmFUaj((M{M<}C`#88nnOvUa?i(vdc013Xasuu zAcI5E2)zl#)^Hf<5@&M|WJl3T7_GMHJrw8m)=R{AE{Z;VH(XLki2%HpTCFIkjcjkC z$;6I8Oh)$?_MI~(4nM(g;6~aF5{zz9hAA*M95P0|&VD9W$W*ddHQjA~Y9~-oxQJf# zsj2Bxt>H$%O-OQYBIQ_4NxWOcMTu8kM(nV)Y%kF+a4KAE`NZnoeaX=4fpZH{D9-J{d%1hSTz8RLRd+)2)NVu#j-H%Tk+~;@a=N8UTcT3B;rhHX9sMr0d-}OPZ?UaHvNlfvyG0C!@ z*l)N(jR>?P9(?_+FM<#}AZ<*0s-I3pgs+DOZjwoSzj8!ybQt&N5{0kL?}!V+EyEri zo3LhMwcMsq=wctVFTXoYVYiCmVIQt%zE!$7g|e@TCGo|!o$c4rj>|X$@w}9Dq2x@j zWqAY|>mokIo&Va`cZAA&y-o1iv3sebbN%oUn7lret5N>j}e+D)P>P;mqL6d|BckzWc$g>;JG=WO z{Q^?Z6F$PYb#--hU4D1k{^tUbd7#*+@;c7?zg_^vU|1?0gk9pXMmL|HP(216);Zqx zph8nz=CK-sc+Q}4C(fOuprEuuz~u&|6-7<@4fmsV)gPmK&U}J`YvAZ;@w|uuZG_4X zwZ3(Gl8QYRJR^hRxNU1K!baT))gKbLD4Eb^SRE9cFX~qMOoTX!Zg(E0LTKMgZvMuF zkYkJFjumihs>-eKnu0U!$Q-~@B_;}m_hojN?uspQVsT_CBT+aN_K*BhyI#%o@7>@P z)CLkvI$0cn+qSd~hh=tGD26BeYSPqNolKU)T=_poEWp1m+VX$H+TyK{bc{hi0;1|8#^Q86)w=;Isr3fB@Q zDXUOj)*u8=HxH4eqK~1+ZN%m^^YJbg#Ph}vdQmQX>=?u}6+9@u(nI_8wp4km@(=Wi zpZXsC!qdXM2m7vty27DB@3+2nFnHX~(j?-pXqf8GE2%9Z>kzUMMv$S{fyTJIwIp@- z-4_v@wO-W{Wu__Z6~wt4s{*aXoL=8&cEmQ9A~HX`V`RxP#=K^PmUDLr3yJ z-iYcRf7Ks;2UkG;VJ8g-(}_T#o8CEfvGHohiUkl6w3%iOms<%St=h6#!N@0V<2u2x zg46$b??mMX^xFAt@}(MQyKSM8tgrE`)Vg|fE~L$x>+Z)MjY{+z&KCRW3NkUV%uXJa zx~$RF+1^?DP^Z^dCO^;qjLf-4l&cg!Vw~U9I^M&mvk2m8|0cZ9dy&`@5T+7}XX$8} ze0aRH5fv_skq`SEdv1h^RboW)TI1cuVfq!1Ir<;DG6cyJ7D1ohvlFbb9)YzB5AgMS z$Q#W8`=>iNFr$%nPh*|KpFpynsShhvjqTZpD0zDczQ(Pmc;92QFKu^~V`jZ^ZaEyU zTF*W*p;^n?P(Of@)S$IhmO6{ZmzkBop~+08ySSAOwjy{Z;5L|>8!vF{7q^G?=AP8A zEHV<38)bXFM6f~2XI?xJ2d-0aRn%P%NbaS4_^eE20uQj(@*h?{J@=^YbQZ$RFvUXO zIUw_-i?$2X9trM!n6rbwQf$037|9P8EM2^rn7Xmiz(oN@1)vlqSS{{3yWL!Jfu-ZF- zu2&^t_PJU0`jMlA<3+^gMvN=B7|XBjYO8Ad0>7nP5$$XvPVa(r z*s z{2hi|(h=ps(usw$yt4M1aJQ2ZHAWSdM6i=~cXzMD{~nHy7y9}(165M;^@^u7OVvr- z1oLg+vw4HKT+hWCBhnUVVZ??o%{+omkZ{Sc_L;;gdWY`FHS0Bkh%$&(n1(e{dC(8z z>L&*RxD(RTpF2A{S4}qopVcbN-!1#=3hxY&MX{GU8Uu^(eyCvFyiSF$skIE%X=e@BtmgR@vhRan{Yk7q6F{ z{nH|y!X_XAiMs+!sPdZbQt+n8o5Y&^Ug{%=oM0nOi?FH3alj$#U8Xf$@0}sn1)I&& zWzuPmwY3yiTQS|2hD61MV(8fz8}ygCNe-`KlaW}Ay3}3q86tP%NPSsokQP{+8hstF zAnae(bt%PN)Pyq&Kw$uuQRikLOjxSStBw4p5?yA;nL-fujg}Oxu)QknQg+^%^mnQ; z<%9MCDdAB(l1A-*xN^NOwc788$s4D~2(G)@N;!IoIeL9-;TK)dh0s_&&UYtvuz)$6 z4g*Q8e|ed@xw#pPVT0!M@yzRI7$o^OY~Jm!Y^c(uS)XBO)htd;5s2bu#Tos>b!)LC z{xjk$C1}zLX6Qf#Zw6-6mhn7`_;V@oFzNe?N%u=CoWLJ!N{HIK z!$6V0=8h3lC|UR~GnJ2#Q)zeZc=YM{K*37e=QYF`iUpsY_#^1hUTT~a|bL`RR$ zU_|*y3Nh)kETk^0C!~?eWnW8`u}Fn##((80G{NTUqAX|0nm9OnW^u15I+|@$N=iy3 z?XRZhDGXe`2oN;~CQ=}^MuHUZ5gaX66m6FF4k+Yohx(hd}b!bAn=R(x{^9p>;*4Yj_5$Ud$=70mfmvj9nJ0F-POma9@Giv z08;2j$FK*TXKnf@{TJ>?`QQ4t2OKPI9}UI(dHWqGo?u&Lq#10(Gy|#|+5g^&Jkf@RJFNP0i-AS{?c4HS!kvEPii@JH05V`Cx zd+UMF9PZRfNNtG)bNDjne@|hq&4f=XFQ0*Ag_rrj#;9fO)V$E)?6lI_ zyj^(O_(hk4UcC3p+R>j~W<%=H1$_2T*$@(QWHJH1BzV;>vTLwg{If$wk|KRUIiJ#lOHBE6(4ZL7}NNkoqj z;J|+<-8?nM<)*TW?XZ8^{L7=$9qw~*1;f|?4mS3^ebe!HKU;q}v~hcWnhb0_H%eU1 z3mUX+*edNjy_gD;j0PaA2eKHS;1jAe9(R!cH!(CYRd~_LD!Kej(W;ST$k-?7( zNFVbE&fxY^E?ud0aja+u7S2uUVTwNA+GKfb*ldtEo31|6#SE#YO?iS=9#P9jY0zPR z*)rE`)0>?fa}jAg{3&HEs{2O|tX!b%z3r-VX*tIP-jT_@!P(Yi2P)sH{r&y%&zyY- ze? z?=3rGR~B1Ybz{;om1jk+wv;q|FVQGE*86P?n)HvPJ}WEF*Zr|wEUWwe-GShweEeue$`A>a}YsAKu*Xl$Hn2M2d% z9Z>4V9X5}a)XdUx6uC@HxyMWGj}3?1Dm91tPCLZj{6=S9+_X4yd{VgF5Prz z^3@nW!M!lnkGv?UQ2?+7uf~=aP+d#Bic*(%)I*J*e03!Ld<|%eFVYMbR&Pvx3lGtB zqb!*FWxj9pA?5d0OLgqS!GSCrvEQ;SGwqw2Dvah92Dl@E5?vgf$a>4j+tkAoqBSTT zg#TNQW-5}>zni(f3F>UGAjr?ag7W)Yg`(R#=So`<8V9M5 z3}(St8r&pU!hgMM5+5o>nx{DAS2a2$gYHN!z*EJ-W86^enRijfNN->NJ+7877Yo0+ zL~%`?Tb#PzR5Q0Kk^GC|O5Qc?Gy&fxK)j$wA;+$s+P!iUjw&3Z8}G-{sq?-UR!7B@ z1KR!_{I$a;P7c8sJUB*FOoKFugP$<*K=*SEt^opUJO3aLC{rXi*V5m+7l+@qV@1n% z*yXDR1LG$MK>_M8C?0un0JoVgH5BN{67g>g;oz=6&Kd76bFsT>@3P+AoIVvpAB39c z>KD;q&^_N-UlU$WEHJ$@xZF*zDYZ^;S2MAdbG`VwH%r!;+x|JD%hFGKMATnIJ+)4i zpV^3e-0q_{iI(~HtTr8y;k0*g-R%!u4mhDILz)9Lt%ZOsMlHAxTW? z`JRv7OZucBg1?v9)Ux4d6uQRVTWE`#%Qz(AbhVceB%xstpEU7Hd-9Q^9SM5}y%-+G z2J6eWYaKL@w1a(p#Evgs@IS1thZ!U5>xjyDqSi2c2vD5Ek>6kKN{n2(M>TtV(gVNc# zcD^rPN>UQiAAq-TX2TgyWsf+zbpU}epb$}dAx7P>S+QaX)H2<(SFy3JQxoFz^_qkI zgjXVG)jgDdes^SUH8>tKe0=WsYHpONquq5!8EL}MO>qsi56cFpoW6Yib+r5){Ryq( zKn9%^^$g%t6N>5@&Bw1p_D%#AZY(SqQS|IXjj;r|3-i-nJ60;eK z>zkEdYSuPX85nvB=1p_dsb33nEvUIKu=R!oxLDEr)_otMOR>`XYe3fa&660rgtlqxcpRTz+rM?Q{pnWD)@1n_%281LKvSBH z_Ar>2tGDUGNCzNRL^-~i$H@T~CM8e370<{EjuRMqzs!gzffj}Q>opmCyC>It^ zI1V!WI=-Vu^|lT@#ER$5zv;jgB4p0hfbhX#l%1X3#mnm(0C6;;$Sj}J5R2I$w`QW9 z^hKbl52xvLGp~5lWe?Q~_ZHt2d0XHrk1UBWb-d5qnlL83uu!6Ws%ri552>52Stk7P z!wpxG2K?5v6A4|X1x)0sBunzO%T#l%KK0U+C!f1+Dz`t^k*ITQ%J+lydb56oHwVHC zx#}tr^@l9Sl?hWGK0ITw`ILk8@yEWFOxt!{%l7UYB@vOj;o{yFOBzx0lSb)j^yOys zCptpaSQ6R_-p#4+u(Q}|WZc!03xL`h-Urum)M?mu2iQ6}Ls4to7MAcp<6|w$QFLHP zJLH+2CYY6NdPSo&TG)!~S{r{wg@4DLvL0thO@mH}jEoFapU$xN{+2Hw6noKhw%lZK zK!JS7alTY2+_Eqffjt?n0?!7lv{g~OA^|wD5+e)j`o!g#dQB^9>QIxzR8Pfm{-?)} zRj7{)HrwJY`=k?U7vrMmQlG^T)@rO%3)M_YwAJ#LPUEbUaD{Qym|klH&4cOa!#KB(0s=1teU>}p6}(`rw%QByqooQ*qWA( z?#eTGCT^__{oQo9Z1d(k{L)g9fe>&{JhmmKN+E>F}5 ze|Us~aMuf8P}&(NvSxg0#_07jPO6v}+Fh}a z#m;eASqEWy%CL#Lq9D z<~}mrx?`#ANsMr8rgr{8BthiTc8BA_kAvkomtIq4z;m$;;2j>>>MKv`wyS5&-y$MXPFT1=i;4+dA;_&+H4bs?6LXB z#WY)djC(PU&$yxQ+9j;`-U7Tjv%~J{`~qcSpSFVBL=90IS~iw$5y(IArqh?B(xxT0 z&a5qb#%)y=R8}tXePd=wPAM+MKA+foOH=Vuds)vq*(t8VTexP?EL-QLkx1A*@rE%S zw~Ig9OE(rB!d=U6!41@9b0@#=LR{-cbrjC4AB|Y-_{*8eIb{?Sa8ZJj8!Q_Tw+730 z5DVbhs;YH+i>ygDqi7Yh&Ts~^d%s(?5!cseh}$sEuS0LTt!stKj74Vl?7Ph!{ zS(9=yf15w(ylBkomLK}5gyCu4n{Z1Cj7}4+UB4n(X-P`)m%aijMaves0`?P?Ur-;6 z_8JAQUeNZ!{5-n*n{51BM`NGbr*B}myqW6UfzS<;x%Rc>o4)!Sa4>%K{pn#V`}jw=X=VWCm^QwvidxICI}B%~O?c$_YTpR>-R)*Yp+P zT8}Hw%Z#>mTSvHSEOmTEu^#Ze58rMje`qtMeERl{Rng7-zKOB1Lr>Pc{XC!T)l$;{ zq{wxxG83^!XbHk>qA|(oFB?%QOFhK*c$ zm&0C9hi4x2N%t#WPoy$`Hi}Yb%GS}E{^1uizxUsjV)eA&^yQ}KSeWYP&!y4rvq-Vp ze|9bQSB<(|8kj2LC*DV-%etUP_NgiOIc*Ay z;RYh=rPO%@(tm@3R;a*4`Tfh@!3KO)J$|1yvno?YE9hIQ|5+C2-SC&%<5cCQbKkvI zV^SN)X_}GGOxj+DpLP{f%RNuiq@2z<*-8>#l zJWy8vmh+Xj7Ec7l`IgP7+n@kEuwQaP^O>s$NaZ9|u*1i}87JNh9#VW1sCOB zWYutWt=}dtZO)tTe+M)O?AGrdfoD`|6n@wN2au>__1Zxm%{@7ZgLG=FciEYpBQ4T-D{b&i3-9Skf$gQqOo3(E(a>_@;{V?}Gnvd@uL9o_z+u zKt=Jn*G|;{QDVf##x_JJw8$}%J|Q_t@B(&QsO#rw-`9bLS?nM>Ckw zGW0M^9aZMGV;|O#SvptQGQUbz6L?;tz)o&xks9SqCu75tblxlI(Suri)G&(Qxxpr! zM!%))Y?v-}O3yKCgU6IFKx<7p- zo^)UZR4jFGk2>iVsNCzicA!* zul3hjQH%?O1@3eqQ4xPyL)DouUCp*j6N@_>nN|6idn--GS9VpS22(V`-dLQ<;w#nA zVGDerZSFS4$7hbX+O4Gdyyct68z1?f?7YNOrT4FNJI$-SRcc5%cfh0-AR1&Y{X0CI z3JtuvbC!iS(!1_kTZe#c2W|w|`=BYoSf>Z1O96)qh0#HBfxlI|Mh0WK3GEXABHmSB zT~Hmjw%p?0iiT?^-r_q=xj4}r1y;02jq86?1EA(QOjk^PcWV0mPo=ks{k`JI^eC)P z7=|D-w0>Bx@Xh2qT=Wb-(eP)6E~6h0?!lycYTfM)?bwL(ZwmsYktNZOMyUI`V@C6{ zQn9pWaSvkVB=LT~fn%?JK0ujvLgDT8Qn+3NZ-nACeauCkc$kg#cuRk|6xT;>t{Sy% z^r{3Ma+AU@dNQe5I%3RTv}3~H9yadY zOR8^JGjyyV85|mUuH|g%S=Od1T2Gz-M%cm?%c<~I&2Z7)hW??`?Tm2vI zD@;`h zw(_KUh3m*r(`pjoKN%^h{`FOL-gl!G&K+s>cDIR@e%rAy=vXzqi}=168!3)E;4APoU-8wAw)o#Y7|9s4 z_z8ch%O^TAV|JGmqWS5juwt%KPw{hJigC@~>!I>O;Zu!%zxLupQEXj4YFBSVEgYDt_SywRgazZtM&aTo$+s5to zt%{Gma+Hq4J8if=9mzL|;jnW(G5@W5NL%x;c8=1W=FjMYc{$WHts{{>bDJ@<{Fy0& zyHd74GEB#3r`@DMdg2c23eVl!s>W|$*37PjqCc%MmcL^F?rZswSoP1zb!R^jcAhL! zlo32lkii3#YgwLs*`>b_|FmDOl;(rJ|8=Quur))Q4%*{59FA`Pk|TDKuqmWa0t*D& zt`rLac^v|{8u1wyHm2v?iET$a2w!@)a6NO$!goJ>SO@9yNKHUThr<33kWqpH5wZfH zYtru^PN!j~bsMeUXovs3uzNV4NLA|ggh_{q(nLiq(`(asn(aY*^e(@UMxuIO_s2Oe z-#?R*1=srfW%6A-{X@FtYlS7Q#*MLdSX&q-*p4v+yRDfKj2-Fz3Syj-X}`KNOaD77 zbmCbyy5Ni-s{JrPhs^S*?ghZt1~FErwD^UJ4z2gMNvY4BCO8KV2{T!4ALVUuT3ERQ zizUW+j-PC@EhY~Yb!-qddapQPY5VjQE4Zg&U~<#v)50(Rww_c+@Bd_P{$^F<>FG%_ z?`7TtWSgZUKxd?=g&Px$QIB;=-Wxoix%Zu!&D7&hyZ3o415f0U(sW(%O!z4k?N}Fo zK!YMRJM|#+vi9GcVj-noffhhKQEsf#%QDa5*g|FGm(RokpZq^a|IE_G_u@Cq7MaM~ zbyoc+f;w|yXqwu_qdzMh6K)v!4QA!Sm*@37)=GUshllC}datI8X`21|>MGl^Eg8f2 zr6go9?|3O|kN49AS}tD!!k#zx^{eaj5%S3NknW+T+b6sqXt5GbR@$@|WxA?p8DXy@ z+9lj{%2ZXbAHMINP&E=bk%XcRgUY<_w4HR&n$UK}VA2Gb98Ag-Pv-Cd9hCY}g{|BI&I3Q49K+0FB7 z(%FrGgmTn(&gpe^cf=kU|C^}|IB}%Xt07>gIpELI{@xPAaHXC1-iSqV*Dha8{VsB@ zB196SFwVZikiSorUzM-u+`-+tlZW|>eBvs!ot=GY6H5f5c{ zH3&--5O~X4X|n0h2*q^{;q6$hF-i#W7MMGfV8=B&Q^>md;fUh^Wpl$^b>m_UTz2E) zp3d`f3*K7ymUdS%(a3auXYIK2r>%4Gt{7#6zO>oxujWo4m|mgYTy~Y?2RPl}HraFx zqSdw+PLX6Gz_G)t&)+I1aw>dU=6{!Vo~l%mO8!C8D|FC*IVLmKE!{&SqFbj#B~8J$ z2C6OyV-b>A)6g5~7AKmMP5A2=m>7v^DG;oR#=-nMF)=|y?g_BbSDrs|A_QT5%$aIT ze^u5i>$$Gu*y1k7Qty5`?mm#0cjYeQVrL6>`M(UY>2Y_)|LGOpXja%bhOVQgZ)0EB z6C4^5tgITHK(80>e#!G5)v!lj>lZKc0^&~XCgt^qWr5Dw6L>bdUv53#$Gg-^_vIs> z9jSz#J(qb;*fBE>;?#aEc3Vz!n?kcHo2XwM)Uxd@TdyOW@=8G~3~xVam35`{(c5d| z)pe-M=L#nFW0O`HEa|cLC?$w1$_uP)VX8%mQ4`V6q;J=?3|p0b-Xd@;E`Utrluz1;W|h2q-3GO~d6I`eHZ}XavSVLM6S-8%%nqTK zE%wSQPfic2z$d^SA27_1h)e1jD@{bl|2v7DAE>#ZW(6q>)U5I;ZeCtq`H00VMVPJ) z)jrhq0Kb7v_8n~|ROWy7-;cdnb0TJ&fo2O&Sps=0kOw5oLCUKJluA+#*X*oNg9_cm z+*|>r$Z{lzOp|uyu%0~&#_vh@V4dya42lpm=(stEvgVRZ5BTDwSSF>Mu*sPGnZLN7z;OUh?Z=(PE65ej0sDB9jH}a7;Vre#yFXMTj@2uCYNd zqb7;Ewxkd{VOl(-rR(NaE%%z*=SXntC%k>tw;AlroZHQ zYY9n{d8rQ?x4gMf(MEfLxbL8;c0Jy`^$Wa|;Om1C63{?|*>-o&pImH9&AbnCk1v%3 z2x5T_TCJ$L{pW7O)#5J>SR`7`<3Vx)*b=YY-3HDbG?XM11v8I9=ns|hI4F=0cuNV-65AFQvHn)^n9BUicJ*!CD=I5*d2a6 zLf(vcN918oMS?bv46fDkR`THjSG~`&5NW6~(@qE&@nffdS)#T+_g(*5!B~^P6e&DV zy{*+V!|35g5q)^5p&s%6PAWtNfix9bJ6$&Pw>_HeynnhzWdz7;(rV9h z0S!sMK3%-NsuY*lutJ7{2FTA^f!^ZFp6)a$mnP0>{X|{2{M1mA_c(+#$usYFV_d-0 zGB2;d5En2#3rD@&Zu+iJ-%|UuNgmtn;{|ikqs{W0p-CICGrtez=ZOF#~<&&z|mGLp#^}jN75#eH< z-v^x4%lmsLah=_tz3kfgqe*y;WLWk0PgWe?TZyXyn?W5C<97r5>4b7tn9X`&f=oZ2 z%=K8nPu&jndx=LCI+@LzH3U*rN5?wrdab(Fp@@nr^PxniM?JdW!S>GEJAU}2U8pOW zwylMPr+hqNT^^YmZkqRCb4n{*hHlHB@w3le53~cz_~u}$zENW@A2RDjk_aQSU}Fg_ znABCc1tPhqEE1LPt1vWjHyVdNFwHpmt%LrXY#IK^#0=U`;#gKW8iDv395EFKJPFEM zt8~kgjv@F^s|$lBt>Dr**J=({m&(R>iG+ol&?CO1UW#sYj-b-_UgoE**&NanRYK^s zY(k~W$6=Z(EMIS#cBMnt7gw6B`Uxs2;J3WMq6uxFyIHGr6Lm6ufBiAsb;rQk1CC_+=$Ei-0wsUusn!oH?EFWmB<}5PGFB7jG%f15Zk*d zxhq_-|dfQUhq{$}i8Z1IIk1PF+7}IzhYm{7EWL(UQ`q zF19BJ5ch}fX`fUPIzW_w zd!R>#=K1M2_aA&kNDbIV&M(Dy3y%Hh!i& zfjjehk87mKZSCySu2O1<*g<;ks|9V}por6}e$sNxU`lJ451_y$Ni287Q>MJkX4aiU z**Y3P?W>o!>{+Zn-1WLEH7fi%QN^--ZFvpRgB&&_HA@W{I`|qV>?hlp9r}pqcYudL z4s*J&s@LvOmY_K`QtYp`t7V22hQL`RZ12hgMFO}QY7QtdOmA($eg#6?&FvY^3-;@Q zFxsTAs=G~|;xj^=)ugZO^Gek2_;~4kXL!nhb6Q@WP=lRYR$2KF#sr;-;GjJk7g%Y+ zxpPfl4kNO>zJJ1#$WP+sR5=B0OL}wbKc;yGU`CIM(AlKVs4}<~kyB__-$Du24Tw~{ z5#~HSU`iQOP?xWi_0b|QLqMjcOv?1Ueww&;z+q^fg*5-q)KC1zX_)IC;VgN|2k2w$E#o0UqfU;4@Tn|#;s5&8Po z*(GChcZRdOGLAgb0CG1hqdw~zP*UsP$5EJAz5`77$eeyC4Af*j4 zjM)Lw#dl}pHRQ>_HU@4O7=|b2)zALC2(_fpw*9@ZL%TGlRkqtFiMah5t)V-Nw12tT z@XiGL)a1w=hoHw@;+tkGsXSd9jHfPtYMV$u=1rCk0r=5R;F&7Bci&6UxF)g^vB z_SeJ_Dk_bRI%Dz2RIh)~kX3v?jnEE0G<)pRZN_kB$2;1evT?RAV`3UB1|rQG)hT!N zsy|^g8UIV(@VIIu$|4dpdt|LRv_G%l%$?)+n5-4%1!P-f4&YI<%?AUh#o11LQl419!1w+?xG z7C*|v&+E`Do&ZI|XQIn?{_^_XlWwV6;nIQ^Q{?2<94#C(3*ATC7{?6zr@m(99qn}M zkia!|pUruLo^xKCRos^m=COHzpV^QT$v5t$=FL&nvPPC7U5tFb-B3OzXk+uAk(srx z!uL66yH}go7u9#D*yyIF>Ag79ZX_b(YscU2=;WMCF%xX_XNgSwk(614`x>Oc%FAE_ zkJ65OtlUsO)d zJfT+=1z;4rP3B0XK;}M+(H?9g8z5eKp=1zhqOJDy{TnJo5Iuc_@T+caSMi{4^kS^3 z^}WQ)vr1ejwn=pm=Il_Vne>HAE0SRbe|Gtlpp(V&mu%=ws)L-}v?Pj*LuvZ?*p}SL zR-@Wm&2^gk#eI99^dAc_pSs){6R- zd^9X(PFY_K%oM*9so~$A4=+qE-Y9OqKS(AiJ%{`B$c%L+h{SLj>-)Nhe%%KnDwhzf^qYdLcn2N9l>KdBqN) zW}(IZ~wE|rQJwLFR00u{5s-kbk-L>i+my84;4x6n0Ql;DT z&3tV0#n$iWfJYQ^yE#~VEJ*O70E8A6gmpaM->un~fSm|I4-ZAX%Dzig=(5xVLTe9_ zF4yH9mzW)W%=O!%)jzecM1SJ9__0}|uEaA;eFTf7k8EE=tBWmoM?KD(ZCiFwmSqKD z-sH|vNau`|K6*>pSm)&X-^N$EQ&MIsVn)z)H~m%fDE$rfYrD;(a~#Lx#Nvkt4CS(V z?}JQ*9x!L$bT>L|;WMx;@qj_KqdCRCLR$1^%p#uZbl#n1zHirR&Ka71ZNZ-b)f}xz zs8imZZq^>xyk?Wd{~Dm1kfoOm7Ke&qM{!RGB8BxEmG!s!yIQZisy2@7-oZ<19t{_a zYXw!+)~^4la-@Dyg;DMu^}+!M%D-I)N-TPbJY1vB9u%u?`280l;XMyCPvb5A1Jq1X z4Zyjp^dUx?`)>w!cXz-1Sv}zJYUSy4Sdwg-K{sJ~O&)1am%qnlzfs((j&IaAe z^Y_T3=3XTt3=Pm9zlMKM85Y)aS2oD{m_6C_V(*GXCPt7=zjRb4Ir3D|?I!TORk*!< z!*yNGlOyjHHaIUi(+lS*io2`d(MSDz_SMF3vXw1zQlrQ%G+ibj5Db@@-S0=2z-B}k z7%I1Q`k&Y7^}E%cu~SqOaFIcutD&JmD0*8Mu~>S03tS8!K~3p65Zor?{GxBxm}Z?) zdRS0a?6Kzq%qWrZxrJ&zCv6A`hb<1vkjPQez@dtY?>E-ze*F>_Qtqs^TYBJ0=VG)i znQLk)l}{`bJb|cotrj=@ic%1bc6=sS05D4Q+w{m>?26KHjE;()aZ9ff( zRHF8K@z=GQJD37}85yjkIOi zDV~7Ejj=!I_@L|<+wzDpTO8)r$|{{`zY~7JL7#Xe1Xyt(=xAwaC1qtHmI=s!Q`uIv z&i^iKImT#5ta!PJ@Rb>8+xTw$c?#pMeXbNhC=RIGyM|2r+RpY>PlQBAxw|WZkx5}!kr&m|sg39C(meg^uD)Rc|bcy?pOz2&vuEB=I>c-(sc1PSH z=$PD_w~Vp7>Emivs*@PIu4em_;TuX4Ce2Jet_Z|W73>@;LCoFAJl~^z>#o%+$u;{2 zd#oZU5mz1}mLl`sV3OMj?VAQ>d-u%Bvfi?uew2$pLseSdJD7ZJeDO^|>PdmfSFIP8 zA71ly%R1Mar+Fv+-l9%SO$O+u4(LgcYLcjs?%AcX zm5}1_qPqJr2z&w^76RLkzFlbW;m-M?Z)}--av9~B?!=|8k8yiBP(NLihf1B4`QpE~ zX-$IUuol2BU83QfOVn^JW>=QKR*Wn-;4=Sgb4g|gIRPh zC@`U;;vGJk$cQa^G3cbzw%;!0EkMn(#)*5s6 z6vy3l>QYtv4CqB9$|Gmc&fjU84HT?hj-@bj1+axy zBDCJb5~Uypkxs%%_zbE$D4drQfO)pNHsPCSEXVZj>)DaIw(EueF zlZ(5$WOo6~9{vS`VO5zgxZ>oyfzD)2sX=g~PWcvW;ubHt=0 zN$~Xh`VvR`QDKjf@|TMvzw+Ft%Z)Aq#rJ#Qzjy~bWVAAR*cAA+^C$a_(HBUzrob^E1H{k_Zl+8HeRO7z~vg0h}er&43c zolVBc-H5ffYcIuKgd}5l-(Z#@RE6r7huvD!r=a{?s z?=`dWVq{_V?Hu3Ko5N`Pv;x2%&?>s-){4r;i=IP|iY?M?C?m{og{sE2EQ^82|Gjhe z?C4is|8%K*9RYZwVV!~A2fDS~WY6kG_CF(-Du7>~RdeuR?^JDI2V~cyqLwhwAeVG0xfwVh4S6X9}&BaCGpRLa_)Gd^!^Ij)zW=fWv zCubh@yJ~Xbgx63`7(ZEBw?t#Z6>v8E_)3phYD4vrCKbcshiR6!SI>aX?BYxK1^)g7 zp}ax0E^Gj@4!ZLY3Oh<%+9-Q(?eRY?fNWaCD!dHhiM#s?Rkm)d*0GKl*LvkAhc0WO zc)UJ!ckw&!?+0|6JEr7)wvTfN`=I=a{Bp-N+9e-_%HyGPE3;^oYj5yXXaBS8=ecq` zP&seNMPdt;TX(e}^Ycb?KHj8jYg+t-n{^;(mm_$St^&9m%dyV#E=qr)th|LUkE1j%AFL78&w6&gAYZ+5LgTk5l>@W zVl=h9yc}KQ534;%P(E9@oq%PZ?ii2b@$)&na)ITn7TGvV#{=KGW@eGSZB0eR@8#v! z2ZktU0 zq+Kisp1ZnU7o({IDJ$SFQ@c6(@iQkoJ06)1(_NrO&r{jG*Pq8%Bt)Gn2Bsjm$hGaa zGIgp_^5n5czaqMA6+H6fXs-K?T1zK^0t0Hy-8{SM+xBpG134$2*fu`heorb#i5b(= zm{q*|+4}Jsb>&wL)Z^yzr0?>!wsF)VitzjMOxxU{V%G2QC=eZY9_MpJj5dfzNZ! z54ZvVv!cTL>slDYXz%w0Pq0CP@(^ZfQU+>48He2N^c&r`nHqGuoi&_10ZLZ!M7+TC z(rC?STOx=eyO)Tb*}vBXaV``?$nj61rgoNb#$~-%D(9rkCKyZo!=gnVWJVP-Y7Guj zz<1E1$5FBe^XbYNybnAfuo{6{x}H#?DoF7@Y9!}QYq?>r`03QlXOhhR3i;L9EGe8PT0;;!M??%rJI@EDJF`e=m;lqR#2E$nStX0WC#yM zPcw!!7B&2aRj)FOzQJ=N<1S{OXwU2CLuMfw4| zREl=GKA!AJ^Y(c1y?H4+dG3UWJJHvdsca95;P zWFa3X{?O}$ggfE3-Ex_)DT~79xq7f8KxPtu>$#3VN%Wi+^C}|T2TsRTqWL)-R$v2u z0a=cvH-qLdSd&g+=UQgB#X-*pl8ZvTYD+Dg<7I!jFqCdG=I)3TG?d|{X| z&3DTfQ(R2??BBDGrgjP_srgqf`G!&T&9p?}>WI2>61|%?(r4K`Zrg8fFvzjjyH=Ji z*oBszOWEBG<%e-cTW zko-KDQLez>gTPMj>2wCP;xze~;P?7pd8e*D`F=*Eayx9E^|S2^%5~Ad)-!H8=#P&~va!FPxL;NfpyuouJXd{v zZK;#6+p;PCU!GZhw_ORTY628|5L_1aBkAwa4LHfxJW%q&Nk0wR81M&zX! zLfe@t6vOQ;%I9f7cEu`0sk3I+Z> zxyNe1G<@ z@c%T(vpzCTPCBu1Zn>S>HdbxVm)OgvQ=-ztE`M`OQEW!t7Rd{s}`59 zN{}Vrlur6+AOzBHujStqz&`@81vKHAh5z3-V06c#mt~`F@m64eg)9>%<&zukK%gVide#mijGkFqK zRwDPOt)1}g$)Dw;a&rmj^)*pV#{dqXrQza)+5$!;0xBsn0vIkD|ARjyk1CKWP?)k_ zUwAed=i=@TQx?bJJcEG&7@kZ2$!50=6aB!5=V;}NO{g9Y*+YpF@qHs7e>sk#IYAEw zOe8#6fE%1fD#x2S114d#6>({l@aIphWnsVWAl;vq1PScd?{UjUqputSLi91U7fYR2 z9_2hd+PYl8#_wp)0^ddccKgI@e&+aiw}8kMmXEI0w;e{Y<5!iJUG%8aW?#*WvwN>n zhF>7hu43a$=>V|^wAMFma*c%JqJJU(UN=!M5ZJQ3R!}p73v<9h6&?vJ-rx22)~Sq> zq%nWv!hXZVU2}(<`?-ODd7as;OX-F^OySV5yTKuWaSz}th7`q`y|sMUO##KK`1_WN ze1)PEInihI3ZHgAR{Xsa5YLWl`WP>z_2{++=8?vf2|f9Eynmhts-I))(|wrAcH772 zWa?USk%~^xdf%tsBPH+BrXRTHKQp`4*(#+xZbl2&J@9Uj+vDc#4U?b7H#Q8A$^TC9 zL$n*|`2vy8@bD(ysMy-Pxv{=-zyWenV8l=q`R+X)KWufiSw6fA7{k>|G{+lW!F&;z zl{G&86d;iQ&a&Fx?&!W>pJUB{11%5k$%Mrt4TGi%TYD$J@IGIaH2+ASyUpKD6?RJr ziE!(>!5NV2-$YKEs9E)uud}GOUmtDR93eMNJWb@{GP-qp%2)c@?X4OA=Ah158eoBP_I#BQ_ zVLQokOh~pb;!Dl$J2ZJ?nEZ_2kG7Wr_Xq?xX~c!8sS5-rV@sX9w%74$Sxd+2&=IJ( zGm^b-L%&LSMD}Bp=b77GzJ+?7J(1T^&P7@8k1~ArV#>EjIX82rc0qa+gAxqZqngS; z-t3oF$F99}O6>8qZH@ISqmG|Q`S5F|6uaO?uq-UIN3cl!`_#4l=qe32t<3I+MTRSz zvQw_{s_DxPilZOvqEyfQoV^N<)kD$EZx_9d>qhi&U;xpq3~As7!XDO}GyocGKJeLV zysfwRN2U*9>s`D1*ECSSBp$=5ZPSPUmSvnmR*nvR83x3|MY=hyBL#8eNAdZ00I%J{ zwxgCb+DpWnsmQtqFBTpo zmqQ023`FxGUY%?#g0F+qWq)ZO&RnC)-@RzoopaYsG z92PLk__)g}ZL(DAS}pS-D>-{D(B`KE0uRrUXlUQ(wsqHcCc?+Ai6>_C+QF1F;Cq4i z2N?Bm@gI^eI=+QGC703xuN2r`pmvvCs!+9`CTuPqg*u9lGSIpNC76Ni1=$abp9Gyb zcy#xdIrr-TwbbtJ?jANCJly(Koy~%srErBArF3Fx#r!79KSaN#Rw~Pallj(vDA)=G z{DzVGSt|ZQI1Tp#Bll(fJr#+9?87Z)XtW;I}MdZz5kT#Ra?B> z6*c_N!E@_U$EqKARx)?Fs$ONMUz460_^;}nQo%^81)LIKHemyTN;*RILElKSW~R&J zn)2VOi0}Oi#_M$(E6Ju1|gQr0~3dsqTRO zNK02@cUSJ;oeB&ldr*HSnkJPlB~RnEPQTin`lUwmMHv?GQk#C_!BN(+xm&g zKy`X@3(f=wE4XrXe(Yx0BIqPI^|J6KC8mj%mA`BPREpoxM^q?3lYtY)G1}bxQei#b z)htT~z!8ZC+$D|@@TH?LeSid`c3_b0K?%zAC5cIkFZ#pXtYP6*2s+DFSKt>Crnw%- z1tX0LO@v7g$5`UN@%D(`LTL&hDDZB|%FDZYdaC93JveCagK+zp_kFfMq6YD7zq-O+ z6Tb4AO~kw=Y*9FFo@~{yl*-FOg_G)p1+8}7CnN2sZEBseNb7bn9|WRrE4{?dPD(9e zJ1A-?Y;h!QoBdAL2yI*k4jKudwS(3RP+ug28~_c0m^c64ZbhEq8<5KII9W{~Chg97 zFfxFeCS}JXMSUGKGKp<(Zt+2#&BGYBKW%igXutuPJqW=AQBhH{va-&ep3M+bAx#=r zO-oFbyqS{@5{no2?8d~+n=G6~oHcHvCa932OiL1RVs@~reWKlRyIwo3qmBu>7l=M} z)-Kq;R<`l(6D502*z~=$<#Xeo?C)Za5oc}&`q%KkVm*1~S+w zK%{{_;6+-4?0@l$dhY{GKUuP{K90EuWpU-SAe06&`d71i*fxtun_EHa*GE6oU@ZaC zCGqsUY$~cbcQu>0>(A4I0P9BIRmyH|hjq^@F#mE9nOtgg@pJE-Laq)I6kw!Bnfwr2 zGk1(S34V(wV&a$JJ6KbDgR%jTtUwH9;8+S{UrL^~ajqWb0fhHJ3FGMmCyqrSfUfjB z(hc`3EMCI1_2SU?3ubF<`QFcsrJCf0Ei%7wW%mGTTNlDH7zJY*k$4g9xG4i?S}$~sC4chN=#hwVt1?^g$S^85fq)y5%dl_$tvW9}W$=cRs&=lOdd>@d zywTsBK_@>uJDcaaiz+C?dly5;8!{1_u9YIDd@)#G)+41S03U9A z&pSin{byz((6H$G5Orp)Gn&I&{<*V)6#uMy0-)p)qhYxJabA4U4F6Cw9=^v&~j`6^wVegBcH$2Z9A*6lT4x^d^fU>-h;NWdmFsT7&_pb9<$NJaT9H&kb& z*Os#8kJ@(+&*O{O&IG_O3;Ee^!Dt6oFr#_+yAi>Dl58N?gc-v!mpP-FAy$|yqr})s z%;@9&$;zHancYZb0<+^9TWL@2H~k1yrs(toUV2TqvZCJPa8uo)G$~L$rcqoY+Uw4| zB&`sNYR2RDpg~Eh{iwzj(8DmqCjrOgU@{;(&@tE#3J7b9Um984{p*xoyA z)qc47Svn&!D^k~COh@x(vDtX9*;s6%ZT+F6-sCD`NdOYZK>ZK5;$FvK0G-K>hr?GZ#-tLL>qp(A^lw)UeBEO*c)FmM;9O_9z|>(ua|cGkbTp?*IGaieX$4UKTv z-n6j63V;}ivn>%gBPb{7=;(j}0)!1B#9lj(Yf@3hJ#M-=-!C8u%wg-LJaa5%G2M?x zc6c=HwA4wkq@H`ySH_Jar%gaCfZ{z}iekGqgLjp31m|tL?LQo1v+wl@{LP~sQlOHC z)S+^is|~-azLXXZqmP##^Ir~2A?yPdU4;!#ZnFZqs^fDSfF(=$B+bLHRv<=)vKL?# z_=F&L)E}{NiOSwwN}BK(?SwYAIbduMY;&Jr1a;~zn8DD z%pj&@sebG$^p7(uf6qY}ceD*{j&T6gzrE!XM=%jqgUSzRlD}0h6~*1GlX>%&Safme z-zuvk&#c8@rNb~+G?{l6`xe}K6YP#M$aWzz{np8?y5QK z)Y_W7k=#yJp2!&RH2XC6Fnsxp7@g2-QVCVHwT$*=-~8kpu@ZMa;JAx1<`+XqqSWZ3 zEU_ywY4~7t0$;$p7;hSGGxoX z^-9u7UtQQp3lDFc;s(OCI!O+$8PJwPY7lT*X8FXN{3@ed2(-hfZ;8t;rV^$N45p|T zfCHMKFe5O3BLvi4EOm+0kep?UjU#W4xh4re;`NsDUpDOT(+@E_AhYn&RO?^9F9gUR zqp%2F>HE|a1XSGPfC!+pGOru7Da!53!U{OzHm9a|;e(Ob9GrS3#~Z!4g&N# z;Gu)22He*=0&73!uSSnxk}xt5jnpcNX-y(W;*XTBod|Ts=JR*C& z#U=WKs_pmGK4uJ~2Xf7Tj;3Gd$2GcgP}l@K9TEC5&%M06t=4_~+LE8sfbkd-M>dk3Z@Pe0{Xs-WbDC_;n<>3F{X65O+hbgNq zaJa$z z0sMaGwte%B2ecNuu8WTi%8x+t)4dnl6TW{ef9-@>d4!wES4~_2DpRoMFD)yK!+O}& zea{iYe%lm3x%eb7FUAl%?bMkaKj10v%Qfe5hfab76iH_Xs1eY3fMy8Vmg!ww09$YH zkp31Z(#XfXTph9N!smq{f9EsK+=F8HORdHOcIE=DGm>6G3KvbO%rbP#C1u$=UU*&@JAV!_F^L1=l-{ zdgbatiwc0<4IV~D8veiEe%k^&z34TvbiI9;2bmRYD%Xtgdtfw(9Ua$ecm4u!>HC5t ziGrhj`1MR~OuQ7G{>=SH0=PXp{>5Wz7edeefiSVR1%2G`ONW@gqpdSvd^GI~)m*w> zwhI{1pyq>clsK%V;V{J3A{!M&j5M#~z0=l6lPE zed_&wf4#w@5u5!-n`Fh^>{a81Xv|^_P?<<2U9%W}J(P8CoJX1PPwiDn4oMLm_ z7W{lXdnV|d3K390%9qn9$?NiTD8$*`4sOfywqsnSVcZ0i24H)5%D6=?@N>AkpT&V$ zxC`N1$=l;s>4A3{SgX!xQ@>&=)FjUhpjwj-j2Q8HsxRLz@b}4*3on4nPX|4$AQ`{0 zQoPXuyf zA=g&uPf3wnwJwW}E{nM#1vu@nQ2ibO>KfaAO?Zleie4T76Re%xvv+N;XWXUyiv1md z*jGzx|bJIMIMPdls#j z`lrAD=RohfxqYpuu#PlnS6lX@sxxS}YxrzuJfmm$t(N;uf@uCKe5=UmdV|)8rDnp) z)a2o9XA410n6_P@PnMF}VlTg8H$cP_Y<-8~K;smxOj|h(ZTv|E!qEy&jo4?Pj4Lw$ z3SstR@xS~6GVNL~o0Om#UBS0j8SS#@J2ta=Juc7BAdE?5ABW6$08vF5(&FQC9>6WS z!duPMbj7_omUD1n#GNS8IkFlVW{+l%AoR>zmEE)_K4R9bNoct%NC)$ZV~QaNVGWC1 z0UQ|f;)dz!PX`<5EKoheh9SB7u5>YU&I|QFn6w4nY`Bwuy^-__Zf*Q&vj>H< z?<+}RU=Afu)kTT3qI)YPWP7q;$yY|3JkqNui5Z<$=LGP0YX2+*umMsAH+A{ zpp8BfuoRLon!m>u&v;{TylKy^uob(ug4XRGr?qr7Xy^ZyE#m>Vl+Co>XiiXSiJ5hD zSv~EW*$3BraYM#ale4rwEFJXry+@>UgdTG`vquQt|6~KF|TV;@@%Hh6)23MqG!s%%lXT z0oN1yL(um42_e)luxS}0GdKSkH|YV6y*K#jpB4Xr(Ol)l@y*`qCY8Q6*-Fd49a z0aPq7Jpt1P;T!EPr4B}LTmNZz$oUtq3jn_=kqlyefFr<*>^FIg@F8Df1+~b1+o?B3 zIoS;cEebMi*DuUy%j7EzPpJFYX-Knc_1Iu{uuzqF*3!4R~Bk-YoK>c*_@Bng{E8*+3cWU@QQ!=Xw zDj0|2Ko$hFs1V5nEh>a-eX=%7q<_r+^sbGC{-{(uy>@M70b;CO4aVTH8|`;D@T-zP zxyqd%i~WHss*Ur;8tR{e`CZuywT$YXZ}YV@%~*C}cR};1eVK(SYG3tGc5}8UAK^sL z$LdJ&pz%HcH$z_QGp*XFYBvn`KjV<|t<+8|>=^;t0hIjEG{eXX;(ff2wRn!yLWxf` z$?H6#@5r}akkq`0c43lDZr9FfzLC^f3qQ*P2wxwV_%r@!g?qZP7k8t*L8~u!@!D#d z%c@`UXtAE#p!?O!K4;<0)wsX;Yqh0znTu68t!LoT<$ugQfEPol#rg$+6Y!sl_+*Ly zWzb)llt4QQQzK4j^;ar613x7E%^I3t{RZDp>8;}b+{MrJutiR3+pgDpPjuAHGI4n- zbkySRInHJMuIeG%%$gLrHyiiQA&w9cE6lo^mf54*+jj`_SF3n`AD^z)k=uk!?EV;yvRIJy8ZSczn|W!A#1dXiwF z;j$Z#(LeHIH_#ElDOr^o$MrjYXMdCY$>WZJHaERHRvOs3Wv%epTT*mb7du~LX^O)h zSvPWy?UWLRyrs8~26GH~osV0i2e9ceh>~bT|^5a{`^Vho5rMBZ z)X>ALSy{it2$AaWOrf%`eiJ+~C9)QqSta@0Y2q8<-UP4G{ z=+D%O4_^Yi8WkKOV_|Q2a3Cv!W$HN1?J-vIILxHPlTo_b-dRq}GvIb}ex-}8wN;d1 z^V!NVl5&+O{&=^q9t!WO>e%1RUfqKJ%{(Tk_-@S&`;jAVc=vTtiWXbO0>pkm@^Iit z9(KoDSsI(}kF0ujYP8R2O2HN=0YGx#oUEFtG`=c|uq(jP|M75ukHZ^0 z92?jJnExPx^7|>)gwg^B#1AHuY==2Hqfgo#iN7Re$pgzjeK=1;j>+!Aj1|8FX%FY} zTKx1i2*7~CoE%CLaz}@ict_f3tTI2+@$#1W=R#M6Dfc4Q^%`W1t^uhVmMnV{12jyb3R7J_(!qEN`XsEV#{#2l;w9+Hm#sQ4d=0Nz zdE0C_sRifh6>w&Z6Z*iZtMC@Y+o@`hT4~+LnaZ z4-EN$y|WkkIKmv?sRfSV+V%4~*n1vL)hY;>TD z{J%FiDCl5X2F)KZm^k|j|d z;@+UcMdSVhJLw!(;V%G&6ZZfm7{4KID=+rcxtW=J62HQKwaTMNS-_n#eSrtrEN{Le zud{~2Z|NpX-_aj}S-rxr=srQiADR#xv3&8@!C7(k9|anctJqiboH64wu+zb<@JEc5 zGWlm2Hb6=H@R|`y5+t(f9kS+P``^LHD#cI7gE8svsNL#uZM1Xnq+Xas9QPj`?H@)g z3+mTJ_Qwc^XkDCGZELHFHx;HOQ2v&T(BKQXV32jd+h-L`E=fu7=rGYU#i>Vtv==~3 zu($h!G#F*B%IdBS7wX>GAM*qv7Wx$cyx=tem#R-gW1QQ_7-Cz+|hzuK1&)fS$Wo$4s4zi5Hnh1Vr9x`gB2jwiA2FgL~_pt>Yn5 zzibB1o{fX2d?{k`=9ZuSJXVC^qoBz{T0%+!N(Yf=kI!S)lUJVnd^&4>kNn$kd(8Uk zeX1SIp zgPS`(^?&z{!=-Fn2?{y@PX1iV*WlLr+xfKI!MTXgOG=EB4XPjnG9!^#Ln0)hXG7KdywzH7*PZipIb1 zCat`eiFbU3dA-VZRceZ_l*Z=jyJjs$9uQ@koyK(+?TncIuW&oMKm7TnR0C4yUCd zF>9EtqA5Z|VV3kG7}S&6FU2=&Tb9;;j%)8iez>qP8D}HbvgXsFc~r8`#3a4W^(|e6 z1NrOAY)>2u@0%rKXZiCz=(EUmCE!@?5yrs#jbku@33Lkx(1r`>*0~P!zs=&d%K7Kq@QQ=20^~WM zLC48+Kx5=s?F(J02_Xn@V48p?O}4$L%Ee8seD;8+@1SW<`kU~ZpG=oL(YtPq{aCj{ z%ey+XiQ~=5bba@ zk;vp>ATZe2=uyNu`k}~@muoxJT`%fyD^8u!9j%$?!!b2i+cFRBM$0aoZwF9y!U?nE?xXj&pT>|%JPM35(IO#aL$>dP1k3XL5PYuDO(%1j3%#t8c?ob~$+b96UPOX@YO+XG3Id?Dd|)+XZRUx;I^J zoI%tlN>>Lw-t$2t*@#-o9E7SGKMZd>JeDBU6598PHq?xur`b4iy}r8}J#}qYd*adYQGso$}Kc$*+ zEy(1B&d=KXw_(jR%BJZ#S2FwXfCYWD`6P9#uOKv*ZcO4n*^=>rfxgRgp5^b9`*~&` znOR5NMZK~AiZ-Qf zkl-`}%SprA^Z3Ya6N=g*L=%k5xUmf0vsz=mKZLZ){aVd`hG)DlSdUddNY4R=7t~AG z{mEl(kgm$HukAdkA~RtYay#A5Z%`?Q7;SZ2Kx?zL+93n7&l;{Dc(b0it|Q_3>BoyK zKf`c`D&%A*>=C9xuJf2TUFmJ&O^PvxvmlrGj3RFu&!@pJfcG4!S-GkaeXQQ1=P{=t z%K4+@HyfII%o`&R8cBr;ddR$SZ}alBVZQFGFU9`(S&3$P78* z!-ZpgG2jxDqIx5#&Rb8FXa!Y1Oup6lnbA&y8$n(gcE8YG!O=xhQh`oM(s5R)5OW4?;Y+;pc%Wy zp#rcdm`ngQ1E3BknxFLFVS~XWD~m_2C+;zD@i-pcIqxSs%np@?D}p$zRq<$-2b#Bi zC%c>Pw2bzzovHJ9W&{OO(j_{Q1HW(Y40LSjdnsNGNh^oHqc=r(g9TNwESpvlhNxRV zrTg5kO4YXn)^IN#gfJ_ru=>1Xpm`h9+s8-0iD5NWu2CtOVe-I;+xGKx&6UP6E$aej zd5T_U)5Vpy+)m*!z9YBe*Q(>IH@)1-ICiaaJj5l3)+=qyDb^;bwcUmT+}QO|@l8q^;M{XNX7_)OuzR?j;-qJ_>Nm*CEYB>RM&37| z?6+YS2u9Th)!Ieh?P1pm;8oP5pkBufPhs&J4(HJBGTE>j7Gj&=iU)7^0VePWbA&fd z%~UwcJ$#MsPs2N-Hzoz$9N$hx>)uEwR-#tEIEf~=%E&Ydq2cm#lU95s`TOtr5a)h= z)(NT!Q>w=OljGRtiVsdg3qGcI1s#NqTj)aUHplTD>ZY=9<)8Oh#b;A{q=Xeh&!8); zF@`eUtYMiTD_)kj3S50-78$#TqEl1U|6l$TA_yhyq50%!SfPp9&+EhU@p8Hy zyOm+2u~p3cLgLH1;J0)KhDsAkl=|5uk!$vEa_(OiWVv?Jk!Ct&GWVRL(P-8=lZVx3 zleRUp52i0D?>sZxyn2}>BiA1=((>3uo2a141IptB&(wOm=65lt1~O$ADd(Ymzf&kAp}odHF1WDZiBFdvB;Fabg9s}Sxg#F9SH}YS3GK^EG#-;Q zCWma|0jfQ17dckcP}LDDAlC$S)87#tj#vD3P(e~hgy7VbI1HBcnZtv9dxQk|@ocE8qKxS4q%fvw#$}|L zT7JpAC}9DHWL3=b#a2eTy_zHDN|PC^&^g_*IHm!nnGWNR&UsCQIbYSo8g1-$67tL( z`p25S35qMA4ag*b=6f{Avy6M!v)G-wCsB|vy){7&fD#xq0J{L=J49OmTnLn2gzBkw zmpKxif8NEK)joXXPhi`+%ao{hw)W*>Z2^PLZncZ_=8IYSciiyIFEwwBNOcxcm0!TLIBre0(~RTa2yILh1A85x zyhKVGF?(@1`y|!YL>8eZ@C*%%?2YmIp{0o#l5THz`W#99ja5plR6%HB`_!HP$#hFWm6ZAG>)jqWI2kb}tt_;Jo*@(?c>q5BIw?`! zkYWm~(Cz%?plMw883;j5O4iT7Wi|fb9^`KI`SzzVM?YBxPhlC2&x!#Ck#fi*-EJhB22xrUnGXg+j%Z5LLtr#EXt3 zPtN&zHbrduIXU+d(tJ+Npv_?gW(5&J%mQDoNq2+D$j)F{skqdoI^8{eR*@`nR*x=TiI=gJUzFO%Z@=OM#N1ht3LFDFwP^r2>N z1J@6eEW(||pt+DO8SU(HdSjZNC7nY?8Au4%hSULsy<)U7JKr?q|MW431Z zYUsbc34NH|m?|EGTw8DDB-c8vxocP|abJFV?;23%3&t;Y2R(QMZVdWezwF1k>>0l2 zxd^O`v{?MHJd|}WNF2j`DG(Zpv*p3J1VW2^T?l}|6|FyJs*7NWa7gLY&4+Aod?YL5UupPk@Zof#2w%2U-u!!&n>jJ3_ttvxAklX>2RhMtKI zdnmh}>K^MpO*6+@{zW;A1u|v{gm{*8C?`wzL|q$i*iW9Pj#a`JfWv1&_+DFE`@IBV zR2BQtp6ktq6s@pnTj#=Tt=rmwmCXgA)Cg^}S^;~>hqsHH7ME*Pi0lR*XiC-d*92bK zbq@W}aAj*U>+oT{y4E3k>V@^t4-~OZqt_eGKAlw-jEoa9;~y{^`}QWPYPqDd$J4dZ z1o|5M2BU+zG!j`ws`0}R_WFIVG_1a7@Y#@V+LazNE2@S9DuXJUmTI=bcixR-^b6i1 zuY?ciPY#n7@#xk>(2VI@VZ1Azo; TAVpv>?XdHxIzk;QxT#^!?z(H>^7iD|D%`P zcEots8c*Csv94(K+ZpIzr#(Mot>S1`E>AnxZ(iL+NZ$4 zKwgF$SY8S1SF~4dzH}4PcJ!399|81kHNnqWtJST6I|+6H?%-265!XrPUE^p-WxO=9 z=ZQu4Ws!GkQGR597vtQoVNe|Q)5pyBTQr#;Z$VgvO4vzTaUNF1q{NLdNqkSmtknRO z$0o)AlQ9tO#UnENVq#gbzkBck1tR|JFI`d{;>%L_@m6 zOEXs8RQEK-q+4gBj3l(q_r~RAXndo%HouQVRXW)2gSrNWcn;nwSYdmA-WX(3e{P9w zR8^6`LK@gJu{cB=%p#5pexSD%DU*NmNJt;~r-4IUAM5Zgi;hPH?ML`_7D+Lp)=SYL z`RoBp+qQJMoB(^z59-?U%L6`Xi&iVK;xJSXtoHO&DW`TEK}gKE>h>a0APG0i1;q z{6X2S&V#!D`mawMuuiwsSePlM9kkBB25u_iEHd!OK|cqgP5(sfswqxgVKb{cCgoyR z=l@#Lt*a;2_UjQPIfk!mv_#}F6`j7+W5#rPnn6pY%K>M>19@X%kxC*`v5m$?{z?oR zZIW3z@^^ntE1`!>BpcbsdETbNU{z(-^WuE03R9i|4>lGQyTY4m!c1NSrb%9}2>MPr z&r5QFER$F^u}xaoyp|;Hz0*Cb)^yH;nMr{yRg}JJGQnptOx>*-k)h$@_$3t(P+=|k zF@1}D#Ctv`K}~ZO9fyEjGa#mbMjhA%XcvHHgk1prOBEHBKv&=lY32m}4JKmjG2mQ< zmJ|1yL%I&A8NvI1$Xhj5OyYRsVQHi|Jm+^+7$E?tZMqNVN>gf79?4p5`>~wfQ4?Bp zxhsfysq9H;%Py)oLSZ%bR8(9h$xvz8hn)Lth}6ySUiv4&^E^}?;vU2`5C znSA}@>-uYUYmukT8w@GQjqq1Q@Vgant%zJ?YfQU`IYvDgHO<5ne}B1%o_@#E(&R;Y zyS6&?+YmLp5ZmnC2gm6oi~!t;2AC;*6g?CV%2DEJ6zc?yQI|t z=D$$`(w67VHPJ^UW20)i8J^r%Y8d+?)Q(Y-Ni=9n;*vKo2mm9-=s~=vwV57aq80d= z|Lgg;!Mr~G?Q7`7)o^1bepBz+ZoH`NgpiF(&FP_&4LqzKy#?6)ofF^u+RZ{uP+cz^ zk4c&i2@*Sb?nqn8SeyFk1rnIiy=B_iI@OTsWR22#J!9mt^T_=X>)6l(6{$xw?i?g_ zF?j)G@;}n~8&cTUvn}=km4lfcJu!i^OYp^U(MNtC_W19y-eG(Oq6Dy(f~7#Op!M)j zK25<(mi3X}i9r&k=Oz}mS`$9fu>fX_gijhJRv{Z8oaJQQxizk_ znf@?+TjS&QG-;0fYf_RYQ*(r#63BZf&;w1kO(=Z-^do9oPE}|&%G?!|mNiK1ziHHz zT%k^6WyymeCn3BLv|t@{^O!=DaIy9D@J0&KTQm{&>;0px1BJoZ)k;fI8@B&_ZiZgS zIR_!g&#m3x^JK@kSoZ_0Shtm1yR-0_7j*A)9+(u*(%W^ovnO7a*GIK_sw=4xx+Ash zt$QXbZs#craez{vTo(Uk8nN$9sQGWoIT%o;DoUlI8@=VROYDrEI$7M@MyhQCd_E36 z$^0^+Z*PBPnx6X7l}eG66KQ_wnc2EyIp%mnq)3y%T|((5Q68*ZUCQ8lsLLJPHP_Ae zCE3B`Uc+?D$+w-gq{EBEsCY$i-%Yc8taLI(Fc)36t>i?UCic0BUsTd&P(B$nKZlj` z#K&>Ypx(~vo7&#qPOjbP?y3!S`}ef_#@>Doi}hSH3-@JLV zj@!+dH9VU#|NMtrtpdZ&k>WJDZ>|Qjh!w9sAi{P%7?@b)Le%8vG}$av1zl7vVStl< zG>{h3pb=NzfCzjMrX?gsBhQx6b|0x6$(h)^HS;_0_$m9gAdR<*g zV%?H7B?~(j_)zmpQrfLUe!ORj*H^KDHqC5ry%&`uFDCMa^E&^&d)2DXu<6vjByc*neFfGz#av`fbmd{*9<83DwnRtkHkca)r!z<0+75C`u(W7b8h~CK~ zr-@b8c$+%Yl3TNl-qxG!Iw?fD`=}EiN7)c~XXCDc02tV3Tp%H21v&pwHGP+<8cY1& zb2ZLl8rg;{%kuAY)sq3UlgEdX*aPeaJ<8L9lwZk*&rs-&(i_bo^q2V9L~ibQf}XKh zowwmHrVtLFnWJeQ=0{f7e_PCBey2x<+)lA6NR8n#4oD9ZR*jMg$v>}rKHAyBD=O`! zpi=#_OUZ;qv@!-+>h}jGCY+EpJ9x>P4ZS|ke#lejkcH&4D(8f-6b2qpkrgx{Yi}<) z$GIuMK$2$`s@FW$;$0D|UaBsVi=W~fw9TfB5f0kmJFhM)-wwAGgr9>36>=kCD*Gok zA9@)Oa~1y_{ZShqA5Y*eBvf$NjQx`^0{Sg)AD@|>$w16n;IS-pG>~LE{;8IdlNAqB z%l*MG$jvqQj)MBabEx5Eaad=(UF15YBkNM*Tlqi>sbedh!c&9qVp7j^8E?l(Y#aoB zq#sc5LGWl|UM_LV{K_KE_2)2B)9zImHKpp}&->EreyQtOdJxC)9+A*yx|%^Am3Ela zR{@#Rio;^N)6;VAHHj2#5ABI_O{yxJ9zJi*`OsvNxj-{mdZqWsc63yhVsRoaQFd}Y zryqt=NK(Q*NZ2n6wF%5*AX+2CK#xJ+3%Bw%1qMR>(t5zQ078e<)YK}}3dHw#wmJ7- zIr|}8g-+-FtnSVA9|=;~JeD#s;k+LBnB>C~5$-e{2K|hmrJdw`$*JknHmv>0SOEEmIYvo;A*PG4+`WfsTB0 zK2U`$QrR-Uv)y*IpK#j7Fi=mooklomVkW#w_3Rvsp9RN1ZRz&IXvF{Kxk`M?-0VZb zUB{RO{!~{Pc$$o}MHV__VHRSGTFedcxWMMYNvSpzAY}ZpH1clG|-yFU@*h^;A`C z{|7f^U6ZxWLvkQRFZ6y*%%33o`Kb9=XSF@@`$S%xl1T32V{%r8dMOn$vL(eS{}Dme zP&;>U>Dr2mt*)?01^(2!QqO zoAt*KUlqNQsA**+UF{5g-@}vRot?H$Pa0hu{;F(n!5Vv8LSP|>ae)n4`^5N+j*Pk< zbIs754S_+*^|Q$FSd0Ay1F6_c#`Zr)h2N>xKQ_u7rraeA%DJ+Ucr#Ni=O~YYJ0v52 zl+bRLbw%UCaWv7Yf*f8&{@}jQrfsyLc9fkjS96I zpWS`sI3vKWue>BELC4l=)%fSHm8`+4BUUaS@Wv8_1WTAVfwlV#LL`^6*dysNxZhx> z(4cLlgAp{hAjqai!RzE9AbZZ@;lnM4Q1cF`ds3{fz%P!JnASEmVW86~F>P8ct(3PF z7h#d|>}&`2PrEAo>cf{N=WVmc?{3L;%I(aA8!%6|X?2Z0Jzwa~$b1eFefo5Fdsv_L zo`?R~_cMDsYGdwni(9r%&mQ`SjWHK?tuMq`bDY>ZS;us0(w+KzPTtaqhVbGrQpHsZ zEDy3)BImV?fnrN7$2_87>f)4fsLs6Kv!p2Eu=~h>NatRasE=)*`X=R)>tsiuO^0nz zu-Opov#@6t7FLf9d;Ga7>RuP&x;OtUux$agFz&c9=G3&lzt*&|G{BF0ZktO3C^IIm z<|rPryNKUZj!VS+MyhlA1+dX(Vyx(P{wR}sCE9Z+yL9HKbpSu0QWf0Eo-;~?)HDK$xdLxcQsf?rY1 zN{^$id^Rj(L3Mr-wEari_6B8kpGwntCAIrTghSvWP+(iym6%4{8X_=1<<- zB*k?^QVe778(xyTid_*R?^wLfvg2HdU}3zkspP=jsvwvyBzDY}q-QtJ(jrl$^0~1% zQjhXkTdjZP#dvAD6F+zwX}i3d+s>j)lkCi=4~R~<({&>>999aLY(d16kKp*^KP)(U z(Fmne&ZWHe<#Ya)(V`27mBnUs0R{kOcsc+YH685hA6&~`Y zJcu!j7quT!g+9OZOt$v30GnFT3Q5T9DvEZMH$%2K;;vi6xedAZsT}kffpN-RJ~kZM zMVi9cwr=^;RZnWFe@wJp{3>adUj3w4VR4H>i`|FTCAU)D&SCnX0g254J#FT_4YdmF z2T`4%{R4-?YSf*qN|ll~A?26AHUA#7B0D%>ZJ^nAgg%h)EHo@?!>v67eIc0s;X!~! z%jG_UK(>Pe6r#WLx~bG;S89o#5KOUfta{QEH{c=|0N|epqw==5DVmkZh% zL7G;Sj`kGJ(Gfas7FR_goN4&>52mL4%7uqx<7!T^nF%fW(Uep;)D8JI5}Ai@Cs+-B zlH_yY5Q{SjtaHg&;lVae%XLaqa7#@xBQInjHt=eilihkjU!5eoMqRN+vU>dVhg^DC zcLO7xRr$RWxZHHeOb2BvNMsZ6x3KwnW}c`h(&6^nCZQ~uX8LuCTsNFF^9NSL zV_-z2IC7}YeGblSOgky5W#Lw{^U7(MpZ6)vyAD{}Rp+Ev z%Uh098M=J-4_IHuP8lt~4986NFK`r14EP3!@y%ql&~=)s#cyOs^vS+nkIFktJ*RyE z5ksm9gIO4?@dXX;@>HW;T zVCQ#c;Ij?0hpwnY0w4L9OgxI#gIj@dkBb*9kjlwhEo&j;{O)Tc<4&vd#;|==0&@U4 zSGdS(XdGe4fh7L_-Totegs4BUnlIr)V0zN9voVTZUS8>AE33p(yxebsjHwb!-ga%+ zUvhQmVSF^v{>oG}evzSQMU{MYKe+Dxr@Y8tGaX*ku~(Drc4K8Dv$Ri9-Dj9?E(7ei*QTo>DFGO$sh{i#r{h>Q))ZNlQL2UhhgY~7qt&cRk2@Jx@ukQC@7!; zh_RH6+?XA1gxuEMkX8BS(qMMa9oJ&G>VaXwb-fTj1}!iI5<<2OeI$r+aRbX=@UR3A zw`*Y9`6}%D1;r>N{<_PY4r^iSPQBqw^Ag1qsUa0_f%aqKPtoAJO)PSRP;0d7RC(ea z>v(#)Ew(@M)4>x4LltJJn^rHE3(75hC;UNhm;=M}p{KX8!;(s2ZAIXL++pCWTK+VJ=>1fi6h#uo z2E$nMK-%Ie&kNthCCcr$f9e>_VSt-}3J?;`hG|j%dom3-1VY#L!QTDX7!NpTzilN% zpt#GVut`<3DDkDLTatG4U(((>oqJ3Cl3m$58@7pd71Jk_r?@mDKWtKqbWM}Hm+>k| zk&C9P=4^CmGQ|oooui#@FUq{pu9U%`!6zE-MOweR!Mdm57{b#W#Wf?KD!Owzhl94) zMJ^;k>1=;ar1D1&FTP{>Pu_#W#i#Cw?_kbNb|HS6oyq7?R?T;qG6oluN>5uz7Q6Xc zMCn%iuW626r%Z-Bzc8{Xaj?w|_D+L%95<=}M+REnB0Zjjul{k59dS+Y-y)X^o4TN+ z;ueyFZ}9*k=5SX4tcG)zLTeQ!xpT&$6eLtSeoHBij%!f7vSN15Y z)`*Qvdp(cG-hLCP9N2+`NYD@5Dj2Gg#(hFHHk$rNpCpavfSfxUg@QBrfUJ4<5!&hY=#}aVvNwLbNPh}B;2+$7{p7~B+ zP36r!-~3Gu4h~p@Bdw@7iAt4ZKGQk>n;w-t?g!QVPkG-G{K=JFm5531!~#wS?4*&> zlO*+|TdQL^E`!)a6v(XKh@ocu77Qc||TFoaIUd z#r^!(#V6g`#d92D$&QEL*_(Sh7woQr#pMn7R|ZuA~#_JUVQA>9}HdJqM8G$uNO zd84ndj~*rRr{T&rECPrwqJ35>+9C}IqJOT#(tyYXl>el4nE@_k6&}yuNlcWL901Hy zAr@0|`p7Q{E@X5F<0arH{PiY6@NF`O=GuCnd!DLI?(!0`QqZR5=d;w++B0xlL|%%u z?caKdvdU6ZP_*-v&ij7OyO`CQvP=rO-pgVkQ>55==Hipp)^51~(cl-klqRpk&9DcY z6D#&Y7^{hc??vN*ecS<3MJqA}8E?dZ;rr%`Jl<>4Spf@H3_J9bHkUmcWru9V!QmLC zKAZdl+eQl>^wIkN0Jsu2}Aw-R4EI5;yW( z10JoB74=36*y0A28Oh_b_LGTHmGh??lAe-!1Wc3}*pn^dSP_7sVElsJV6j&X{zrC| z)IJj%+L(9!0@@l#OM%;BME^SlJaZQUXvb|3>t=v4r^W6cNev8 z>`Tnby+?4o;zCFyF8ef`Wu<_wE@)dH*{%p$*Ba{y2U)o_xFtjr&(cS(<8J@(O+NX*trx(-q z^`prxwf*U*bW7FuZ&(mkr)oH}*T0okq?OXQ;xU)j(BhF=Q(&y#&Qn1*a6aGi-JR^0vHCv1@LLCJAMse^Z8-RXGS>ELL8?Qbri=O*7Z z&VFyp;_wdrm!X29rk8SVN9bNAIwCb=sho4v{5-*ia6(DAQhD}!qxX2PClUxpGVQgT z_!!o8*ZHf+3HcPUSUX=+U5%co%PhQb)Z>J*tN=@V&c4HS&@9V@#^=^oUJ#T@%v^u@ zvN&|3`k5P4XCfgnyT&AS#}&KT!GNnNY%Efc7;78N>`7wiNr;k-$x~*LXM>}K&5(39 zfy)tgfWjb$YZbwf`Tw*uQy zmc0v(nU`&8Lrw}BWDJvS`mi@+1%urD4IEcSYbt+&3x$n((+IyvB&2~K50l02BR_`C zQGp!ATjv1e!NoM;w)$ey0&!aoZ|7G;-6{XC7X0|_p9VNTWcxuMXH@s2nYqx0vZ}PIK3XV5L}gwmpd#xle6clJe`TjnGSF2~X!m zYFjn0XG#on4CQGmamSov2$Sk-kgha=|mR>YXEoWLN{<3149WP5r-N(Il-)sWdNm86$BuoaZ}=7z<zTwiz5NCXya;s)mj0zm%b zP_xixzc|TA)4uuqA}?E9pm3UX@1z64{p-ITTuo8W{VgTn=6^Tmi8e!Tff}vaX7IJE z&JV(8s8*MHaw=u?mD>hNW-Wdt3|w-t3twb^=h^`joF>l$flb##yvL&9=XT^s5~;cM zk=Gu^M!Z;$4d=D582#DQbp{cpAY(vPj9I*^D@{S+ydW0@N%^2v0B@Bq{vkh(8F*~X zI)>pP*7KF#v6uJ?3ome#2Qct|ELMQR%zPBSeO=b~U(or-)=7UcUj^9bcbaglYXioP z@rS8+?>@i}s|^#X5U~GZ{L76mEJnq;)KM$;pNwS~6V^QIiD~$bS=-gxUP*oDc3dYG z2Wu70XV+)!he~3-EJOkPC-Yf9II9*0gzC$;eu?jX)?%6W8)WClZyQwQ01NWyLdC zdgGfD^|n#Sp@i+AxBziRkFXGirG49{0R{BVKauf}0tGpJU?%@ReJLB@O~3rp*1a?# zJrJ7HC3nz5gRphnGBr3qCwn8@mF=E_I(nQQ89r!CoWwP7l7ndG3bX!8k?sK@q{UC&VmrA$@IsVG^{tlfBrOi6$fj}m6CuvA z5vLs+pDTQPG5SJ3FM!5MA$=l{_rA=_j<=60vu@Ovo4R~G1IVLp&xLRG!$t>8s4PbD z6_LzNZ2zZPg-;kQJ9oh5K~hfKem_V#vUE&!D{0ZZ-7;nWYfAg4`3-MK@Wv&WjhF_G zf2@Rs2Vk3B_d@?~V64X5s*C~BpZSvx=ajtugP z{>vqMTDNWHbt{lo%&ILow_P#`=dk3e%Fk?{kqTwTSLigQLA3+FI{4rjyC)f_mp+egp;O(ROu{i?{bRm?J@rtI6lW+WvpOfTwP_ z{tzNL;c-I=26cP2c-Ve`feYswmATGvTRhAnYp&mmE`7?xdKO5r{dFoQu#-5*PT|CbpTduI?20T2`;QGAlZdcc# zk>g9hw+uBZLU@>vlQJ(xM@Pi)Fc3(YO5uD*Iqam5!;~EB7V*cOkQ5@&r^r0lwJ6*7 z>i~EXUT+W>LfZERPFV-5W-ASO;XAmVT~&mGzyH#j6Zkm21!&RIdLVcMFoWN_yH|4u zzDG$TXs*2b9e$e)v&ml{XNUe><}$iXU4oEze7~t810xDoO2^VZQEk4;lh?#OVlJjw z(T^U{h8L7VcL%66KiYREPGAyL-~H~Gx#T!&Ju`9~{OwE87x|dn?wqeDb(=z7Pqo4M z*DlsP*kz_Fyyxpu@e-neJxLe2^(B&dausRp4m6h+kq0@mZ8wos)lH}71nCl+<*O@& z0?m)u_xP+Kzx3?g-KTr0 zm2u2|sxR9v`|~X72{zcZd*}z>I~tp!;Q|N`(!w5L419AxHwqcM?pEt zw~eycUt@QdM1CnNm*=em>zJqS5nOc}RS$5i2OI(b8-VrTjxEh`{_m-K)xHyNT!R%N zfIR~Dk(?1B~SDij0bwX=Ijp7Tco*BF7-kY^0`!<+JcBYyn{CI$1rtc_yJ9@si*JLgo6+l!c zUNNTIUIGaqAfScq1F*}+86;+91_wE=|EG*6pTg~^yU6%!{wu=~=J+5Dhqd5JTvw`v z<_A^L$gA@&zg*@{y+}DRzk9~vdNC@5z5ORy=0Hyebu}7=lkoQ{=;)U?!D)nd(I+5?#cYc*YLjy zPLRg8#2r?aP5Dwdld`@9`#ns^ssx)w=J;Z>D(M_IH z>pXBEq}4Ssrc7N-CaguxV8GdziIwVjhL6xmMvlTb$-_WXg>%H-lHq7$&OM>5><#DL z%Wlw>K?5_3?$w|_r_ujEe#OiARvzRR!b<<|K@!)Mv%X(bQ=k^#Mdt6Up`W=w zc!fW*1R$4Pv0+nMAKP-$e&%XRSc8S_c^u9Y1{#Wu8?h@i_gAiR?&jRAy8fK{n(XVQ zv!-YMHL-NO!4BE#ot7uEC+nKV;2QQ5=YCaW=nbM8r#dA<2ZG!JWKEul$+x^K!q|i5 z++HJ653rVhU{v@Uj!8syUFlm=Yz*)|!kgV8u=|D2V!-FH*{**oa2ofCCU1~c@(t{D zqT$!&md9hz%#V6REpob!e^Mtd3gb-oz zJCq2eolC0Uh_bGu7O~;Fg3h($#}gOe^A#;YZTXYJfI`p?2J5S5j?)$OSXkdGIG==? zlf0n%@KBCC+Tn9&+kLxjurU2WIy|{~L*HHRhe<=(kg#kKO8a5-NmMIYXgBa(T2l~` z45;^eAwhxUe#aT__n)m+54Lis9E(Vt|3T&80|5L76vj{wKuimB8rbP--8TDQPiutc zMT`Na6hKvhZ^n>?ENsnz*b-Ad7i$I7a&5QN9RLh(r{YQQo!>tBELqtt;l8NYDH3|M zWGq02k#>6l2FW*t3U+(gM%jBOd2fuPyqA@TG+tJhcHmstx&7gb|N=Dp2-qI z{{?7no(Y&`mHGr|HnkMrarjw@7KW=g)-ybOv}?G{1Q1> zwpx9AJnn=JKv+T09B8e;3}?}7 zZe3Zk9*kskBP6K~_O1=Yvt`%rK9P}fAAIDU8kWPG9^zKg|2-|B=}lm{ZJmbT}& z$SxfFUnJ+JzSDA{lW&GxAARB0@IpG~_mh!f|3Se_W4j%e?d{cyxwgN%!SFT9ru=iCxTo>q;sR8-j@u5ZxfX0sCvY-- z0-vMawcF%iD6LaG%75RMKh@X&T}muwzw-^*tnizo_%=`Ry3{c#y;D)sNfjQak$ANE z{6f3f)OQUL{ppHm7O)G`BU)+4x!V~8tpYeA%QIuzd zI~eVBCgfN{paiRUR)xM~pI`bcc=-0sq{jVN=*Hrr(^~xBe;&hgcaNt`gGbWKI4tKZ zp+^Bf+WguG==`a3@~`dYn!jB^;=EfLYS5CYkzd>9>?F3)8NYTjrr;j6H*1I@0{>Y7 z((EO3dTV#WPIQTbH6lNo?twhDUX@j&gdkDWqUUnX=?yC}xneVBX?A=B^(YQjTRCY2Y6;d!o|j&CY8tVU#;BgC-P^1np>D?L`5N}5*+*> zV`xj_nG5kBH157b5kVS7Il?|ph=YI0Av$6^9(xS!qenz&bzrc}BULiHUUkQuw;x~L zT3|OX{FMfb9{m2}n4lSN^*Nc|4rn*fvYUJ^toS#O8k)_8<>A|yhj-cFXcx}^^B|+> z`^06CJ~8uPULC$fs=OozTSlwC#FrWC3yVI0L@LUAPkMa5rv6m(|>_d?z>Teb1}x zx%d0Vxu4EF+z6^uU%8z=2zCIjzdd==!S>QNXKa5piJ@iKwlT1)Xn{@F0cGQr zGtqz5PfEU~N?sm=ny=%#hcjOTr0&J$R{CWlu&qrkq4sY?wvJixq1L`7BoM2sR>y#+dr{A@Hs?Z6%AZ=;Z zCy;N)gf6$@)uq+a%V*v*wOXraMpE{j99!TCF}>}utRP`mP%Y7|i{?%ZvNy`RWT_~X zvvD7f7+bwvdrrxF5W`#6?$&Brr*t{u+Txq8*pkrRvDg)KCX&ZJBykS{FCl#cibrwP z4b6J19U3JMsULO7U?M5Z+#<9`MrWCq#fk4o=FIO<`JSKDl7_gDfAN&9vS4*Q3=ivZGGQ?A ze{Mg{6hN}`MQpaE!+&J~hf=B%ow1kZ1BHTFPfaD@&OD9}Q`PCCYrp<5b6~?| z_l<`55H}l!sS;|$ip_<%-lRP@MDgTQo=_EZf&)6U2lnVpNtCWedZRN}nUcd;m(IV> zmIzFAg2p}hyws(4`aoIIe`kw4m9^G|Nz)Or(ZL8!vth}-+jO;?EY^e0e&%@5pN%N{KofG}j87Vkpc78r6I^WgD?u^2pGu90~Zjuu!d*SbWYCzQgwVX1o zN%By6xSy^Bzv4Xe3o+rmNYDjXBkb$Ucbc`nyhn!vrNOU9eLx|-fyR$CPor1^JkzJD z_T+QQT&-g|7s-47qCd3EY4#9B2+E%>h&RfV@LvKO)gg%RZb_Z#*9k>F*U>yEnSsabuP$a$}YGWH`7(!q!ELRxnM$ zf%;vx5AqVL*6YB>-|1fyUG4wnMjHJKmk(w2jWMIpGOF3q-=K8mD$!s$V^E#D^?+G9 zxNm?Uuc~AN6{QW1*bsYU%F|}d{lDb{LW;ozwS&e1A93^F38+glc_G zYRz+ICTEM|cD!%jpcp=x|H4{l`o;V5&{FgrX{L%3mi!7lvm&BnWevV zktZ}~%GYr1t83AQmRhVRZ{WD#c;5qx!04FpYopAAkoPGP?t|-B`voKcMXKZruB)jT z*XS1;DChl8%|=MyUodA z>|$TJxA)Onr`Z1>sU$GVrDst?gOjzNdFE3RiyfjbaG%G%q&f!_eX{p3gK{{en&ifP zp-)Px+LM}UE3~Yn5G>Uw(v_)MTU#r(_Wo^CweXuQ{@)5p>m|qx1dnBW%)nyjW6Y7J zxyl(nhYU8xq5@T2Z_HZP=YFlM9e7wj5fkRW?`&xg!lw6|G(FjE)ipTa8Zm!Jq_WfP zGRxfIZPJHqNhvsb_EUiMBm!fRfFJt&RQ$zj0Hy(Djmnw>UD=;41hqFK{CE5QhbjkR z0;~?Gf~c4n$}Xj~wRMzc^LP$z$6T^Boe3I7W}-5Ij9;@t z?%@%=K>iutO02=W{$HGL_W3_*Qx=slqlo(+wPpIBDOFEBZ8+;clw3)wUsWfMW1s&g z#t{^UE*vRh{!^5aj5I-{yoXbuWUc;B^`cjKftDRY`e8Qp*iF=6i z(4^0YPG*ynA?&>Nv!2&!DpXrbl7;4m>p_*had40X>y4d)l=BKcV11~RFw8dMqRz7w}|R`Dz(hVStLG4uoJ$X>DQB_VF9?);9w=dzG>}p zwf-VkjPY!RJSRn=W9Iw0>+5196J95gSgla zO0c5M-=6a8_rcmorbCHz#m}L6svq`~ljh8GqWF=NG$9i9XX~Sl^7pWUPMMpB%>h{r zQ_~$FNZQJBYP7Vqze5EinH|AAL<2yF&77=aH!}%m=O0w00q<5G>^^}i8wHqx?9SrO zBqdse9*(N8w8njh&#tmOw9VU$f_VyLE-QBT7T$ToF!Plzl%Ge4sL!UhN%oR5vY;vQ z?UK>=FK2|XXR(w<;oM@>`N?zt`TPA)s)~m%VJi`n>_c(I)`flnd53>%Ej%l*NX6_g zUMcu@I4asNHyug&YSj)Ip&%qf>E%En0^+iL&4Cvfw@BX5@aUrSN={EruI?|9McwnR z3)7rxsjVQ~gg4O}P3MZvEtmKFhK=2zyQ?Vr1Zd)kr?a|+*-|3!h==6hk@R4#fZ?n? zEY^*1798TS0%QF}_fR4@0BJ4bq9<&1_7+}b@fgbvIJkdY;O z2&S8|SUnUDgj>z{gvEXPS}Nc*4{gZyLD>7l3H3e}&~c!zoyxr-!@UGX-IY4Fc+07u zJ;gJtf1l33nVne{z^yV4TTu(N*1 ze5}WmYb_2iXkRC&EUmD%bTX!zTYt1AHNRkUS(dq)MDB1Z{)tAC?S)Q1j>40c{)=a= z^g(?RL+Mz%J^}i$?>$Kep;Zu(@&{IfT?-W33atbL39pT!_~hR&@agK)%|j1S2*TzC z-}(CmbM!^b*FA2@W(B{?oWH`F??k6e7wWOOl>Ju=z)hp7TW4bYm1f}NiIyO0#fve8 z4MLe0dp7~>yY<;102f$&KM9ADoV}AD0jT{CF_NlHYpeKJOw7XdkSQK~^VLIfAh5QAcfqSMZ}k`DYn| z#H3Y)0US@@j3nGtW4evnSJ*)79kO|@p}@WY7Qw|E%^gE0w9TF)7r;z309CqNH=~rj zk$7Ih82)9|TQ7g_#onQcDyE!7*RVhJ9yLqerF-nj z#`+`vWxOxj)t}p;k!bj6q*MJu-sM`i!IBwu=m8U0I(E!m2HWta&Y{MaO8uU_yR(h^ zRF=6;=#tef+h5ZI3ACaP*n4oM023}-M_&oV$ zrm|9mhA@P5nXvO!ql}Jo&2^HD-fFnV(;kJtr-S@0XNp&}pcEIbUzvISsGl}{; zW4tEDUYQ`@x6P0;z}fs7X>sICHfE}Uep=_>@59;gLMyXQQuO<9fi)AIH)c(uVaVb> zQI_v!#fRc=tQ~EPtSJ+7)Tt3a8l{wM`#Xtqjiab2eonCwbE~#WM>gY(6wK4Zx-?I501Q#%6eUxKeQ7 zhtvJEzjuDGNs$!=9`>4*S9%}Av2llrn<^?}kG|_WNgkE4IlcWBc9WmsrH`4Og`e#L z1Rva67=66()xbWP%ip5l9(Z|a_YWa)yu_skT(UguudkDH{T&VQ@DBP3nZrXy5-XCa01)+Jrpf zQtNyym=;^yF&0jTIFez4g@D`H59Kx7cii@N-1mqlq$i~tZyDQt{mA~@_VZ`o@A&DB zlBw6_Sx96_gwtSaZ=@!KYC3MWL@}7w#p>=;x+Zn%R+%4Z3d!4a`pglU)(aan-?rAT zvDI}M6U4DI@d|BUY+Jo{s<5#WEm2YS;bZi+h4c3zvoI6uk{ntV)j6TcR0|{jw_V{g zw#hv-D1zV=wGIPHi}Od-oV}849Pv%5-L-_YJ1^9S$EJ%D=LD^S;M-j_$NP&aFd7 zam%Pm$L8e4VwPH>VGE@fchyEgM3}AI6BSh?iP!Ws%IU1lrtHloot@VsV7Av(?nuE9 z)EA_Ah(2paZO<>=7wnPn#560sH!*gC2|mK59+3SfbLNq`CNiEoq#w*smHJuI@hgq; z))lEnxa|2i3^AUyX2g?jQ@cb(H7B`@>S;ULE!<$n8QK9;b>64XCB}rbd24Pkr{ye} z?7mn2(om&pwLizzKrP~Y7P;WV2OXnde+UshYC!=ca)4{VisZwa#2C+cgPa9v2w4Vc zqsLm`1_0EJ(uTnr4anQg$|+T^h;10qeYe^3tTLpXLgtOsid~#t63m^t>-a48g5q5G zZlABSUl)T$Sh1ZP-fm3{m78L)d!Z2)M69E3OmnaNvMSL`Q?rX->utpAY=xow=PPdw zb7Qc7K75y7UT`gbsA0ymn{4Oj(|TjFrpZr5d~siyuiCg|Y)w`ARNg=Em#tW-Ft$Rt zYufg?**|^yZGU;ogict9&XznZf&Q6ZnEPSF^DI(k34^o(3I+Agbb$52XedeH9PD`$^dDb+k<;B0=sKd@B~Ju@)AF$UikGMW#Ie`-Ij=A($uorZFh+xAq~< zdiS1Cw)((@tTM{unT6)^}cIS*bn$O)nCEwo04QkXpKp?_Gbth<_kN#=j<{)%_k z>AAMbP!7jiFBvs!+~P?cFbzj}ER%ihV?18tVMGghQeCl#XV3g^YF zJYq8ThURI~+nPw1V~jV0B=aA;tYCGikZW7(DNZz-q0d?rb0(zT1=Tk@eJXc zsk(Kr!}O}+Sc=7h%w$1G_yav@h}%iqa^=7$jkK2<{PEnlwyUi*3SXKk7f#M_eUa2= z;9a?^T|TAByM#iD($gJ*)dyiCESILI(?au|tkOZ*BJ^+HvUXkRatoI!L_DS69|Lnm zq`IZu`Au~jvPw0DD|bT~%Hvw3a&6mBgNd9Cqmq z+OGC3_CHNO+%4Ge8!KOC zbKGP_z?n3U@v(KsDl9wn(5JCqBy#}q;7+jjKUo`xv78fk4Rkh0{mghNq_rsa6(~(o zub~fP^SzX<`muY4x3gj2md@F>Z=jl9nlwvhCR|~>Wln2OW1KHj!QYm7eyJS4STa3o zI~C6-rx_WWTu;kLY*XN&SIuAWSfQA^nGxqL6lS{|O0m(5#FB#1yLzL)w zsVD9hg`Xp>a=EXPO<3h=EDLsE6Nyp3+_h6P2)V4E6<{#gJSWyxM8EJg<>9QHDRL$9 z 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 literal 0 HcmV?d00001 diff --git a/assets/icon/ic_monochrome.png b/assets/icon/ic_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..71a8cc207b99b833bbea8f392aaa91cad1b066ad GIT binary patch literal 13766 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 } + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ]; do + ls=$(ls -ld "$PRG") + link=$(expr "$ls" : '.*-> \(.*\)$') + if expr "$link" : '/.*' >/dev/null; then + PRG="$link" + else + PRG=$(dirname "$PRG")"/$link" + fi +done +SAVED="$(pwd)" +cd "$(dirname "$PRG")/" >/dev/null +APP_HOME="$(pwd -P)" +cd "$SAVED" >/dev/null + +FLUTTER_SUBMODULE_NAME='.flutter' +GIT_HOME=$(git -C "${APP_HOME}" rev-parse --show-toplevel) +FLUTTER_DIR="${GIT_HOME}/${FLUTTER_SUBMODULE_NAME}" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +# Fix not initialized flutter submodule +if [ ! -f "${FLUTTER_DIR}/bin/flutter" ]; then + echoerr "$FLUTTER_SUBMODULE_NAME submodule not initialized. Initializing..." + git submodule update --init "${FLUTTER_DIR}" +fi + +# Detect detach HEAD and fix it. commands like upgrade expect a valid branch, not a detached HEAD +FLUTTER_SYMBOLIC_REF=$(git -C "${FLUTTER_DIR}" symbolic-ref -q HEAD) +if [ -z "${FLUTTER_SYMBOLIC_REF}" ]; then + FLUTTER_REV=$(git -C "${FLUTTER_DIR}" rev-parse HEAD) + FLUTTER_CHANNEL=$(git -C "${GIT_HOME}" config -f .gitmodules submodule.${FLUTTER_SUBMODULE_NAME}.branch) + + if [ -z "${FLUTTER_CHANNEL}" ]; then + echoerr "Warning: Submodule '$FLUTTER_SUBMODULE_NAME' doesn't point to an official Flutter channel \ +(one of stable|beta|dev|master). './flutterw upgrade' will fail without a channel." + echoerr "Fix this by adding a specific channel with:" + echoerr " - './flutterw channel ' or" + echoerr " - Add 'branch = ' to '$FLUTTER_SUBMODULE_NAME' submodule in .gitmodules" + else + echoerr "Fixing detached HEAD: '$FLUTTER_SUBMODULE_NAME' submodule points to a specific commit $FLUTTER_REV, not channel '$FLUTTER_CHANNEL' (as defined in .gitmodules)." + # Make sure channel is fetched + # Remove old channel branch because it might be moved to an unrelated commit where fast-forward pull isn't possible + git -C "${FLUTTER_DIR}" branch -q -D "${FLUTTER_CHANNEL}" 2> /dev/null || true + git -C "${FLUTTER_DIR}" fetch -q origin + + # bind current HEAD to channel defined in .gitmodules + git -C "${FLUTTER_DIR}" checkout -q -b "${FLUTTER_CHANNEL}" "${FLUTTER_REV}" + git -C "${FLUTTER_DIR}" branch -q -u "origin/${FLUTTER_CHANNEL}" "${FLUTTER_CHANNEL}" + echoerr "Fixed! Migrated to channel '$FLUTTER_CHANNEL' while staying at commit $FLUTTER_REV. './flutterw upgrade' now works without problems!" + git -C "${FLUTTER_DIR}" status -bs + fi +fi + +# Wrapper tasks done, call flutter binary with all args +set -e +"$FLUTTER_DIR/bin/flutter" "$@" +set +e + +# Post flutterw tasks. exit code from /bin/flutterw will be used as final exit +FLUTTER_EXIT_STATUS=$? +if [ ${FLUTTER_EXIT_STATUS} -eq 0 ]; then + + # ./flutterw channel CHANNEL + if echo "$@" | grep -q "channel"; then + if [ -n "$2" ]; then + # make sure .gitmodules is updated as well + CHANNEL=${2} # second arg + git config -f "${GIT_HOME}/.gitmodules" "submodule.${FLUTTER_SUBMODULE_NAME}.branch" "${CHANNEL}" + # makes sure nobody forgets to do commit all changed files + git add "${GIT_HOME}/.gitmodules" + git add "${FLUTTER_DIR}" + fi + fi + + # ./flutterw upgrade + if echo "$@" | grep -q "upgrade"; then + # makes sure nobody forgets to do commit the changed submodule + git add "${FLUTTER_DIR}" + # flutter packages get runs automatically. Stage those changes as well + if [ -f pubspec.lock ]; then + git add pubspec.lock + fi + fi +fi + +exit ${FLUTTER_EXIT_STATUS} diff --git a/icons_launcher.yaml b/icons_launcher.yaml new file mode 100644 index 0000000..5c93ec0 --- /dev/null +++ b/icons_launcher.yaml @@ -0,0 +1,22 @@ +icons_launcher: + image_path: "assets/icon/ic_full.png" + platforms: + android: + enable: true + image_path: "assets/icon/ic_full.png" + adaptive_background_color: '#ffffff' + adaptive_foreground_image: "assets/icon/ic_foreground.png" + adaptive_monochrome_image: "assets/icon/ic_monochrome.png" + ios: + enable: true + image_path: "assets/icon/ic_full_bg.png" + web: + enable: false + image_path: "assets/ic_logo_border.png" + favicon_path: "assets/ic_logo_round.png" + macos: + enable: true + windows: + enable: true + linux: + enable: true diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..7c56964 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.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..709df40 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,616 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 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 */; }; +/* 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 = ""; }; + 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; }; + 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 = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + 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 */, + 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 = 1510; + 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; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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 = 12.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 = wtf.caras.ocarina; + 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; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = wtf.caras.ocarina.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; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = wtf.caras.ocarina.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; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = wtf.caras.ocarina.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; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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 = 12.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; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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 = 12.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 = wtf.caras.ocarina; + 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 = wtf.caras.ocarina; + 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..8e3ca5d --- /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..9074fee --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@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..eabd851 --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images": [ + { + "filename": "Icon-App-20x20@2x.png", + "idiom": "iphone", + "scale": "2x", + "size": "20x20" + }, + { + "filename": "Icon-App-20x20@3x.png", + "idiom": "iphone", + "scale": "3x", + "size": "20x20" + }, + { + "filename": "Icon-App-29x29@1x.png", + "idiom": "iphone", + "scale": "1x", + "size": "29x29" + }, + { + "filename": "Icon-App-29x29@2x.png", + "idiom": "iphone", + "scale": "2x", + "size": "29x29" + }, + { + "filename": "Icon-App-29x29@3x.png", + "idiom": "iphone", + "scale": "3x", + "size": "29x29" + }, + { + "filename": "Icon-App-40x40@2x.png", + "idiom": "iphone", + "scale": "2x", + "size": "40x40" + }, + { + "filename": "Icon-App-40x40@3x.png", + "idiom": "iphone", + "scale": "3x", + "size": "40x40" + }, + { + "filename": "Icon-App-60x60@2x.png", + "idiom": "iphone", + "scale": "2x", + "size": "60x60" + }, + { + "filename": "Icon-App-60x60@3x.png", + "idiom": "iphone", + "scale": "3x", + "size": "60x60" + }, + { + "filename": "Icon-App-20x20@1x.png", + "idiom": "ipad", + "scale": "1x", + "size": "20x20" + }, + { + "filename": "Icon-App-20x20@2x.png", + "idiom": "ipad", + "scale": "2x", + "size": "20x20" + }, + { + "filename": "Icon-App-29x29@1x.png", + "idiom": "ipad", + "scale": "1x", + "size": "29x29" + }, + { + "filename": "Icon-App-29x29@2x.png", + "idiom": "ipad", + "scale": "2x", + "size": "29x29" + }, + { + "filename": "Icon-App-40x40@1x.png", + "idiom": "ipad", + "scale": "1x", + "size": "40x40" + }, + { + "filename": "Icon-App-40x40@2x.png", + "idiom": "ipad", + "scale": "2x", + "size": "40x40" + }, + { + "filename": "Icon-App-76x76@1x.png", + "idiom": "ipad", + "scale": "1x", + "size": "76x76" + }, + { + "filename": "Icon-App-76x76@2x.png", + "idiom": "ipad", + "scale": "2x", + "size": "76x76" + }, + { + "filename": "Icon-App-83.5x83.5@2x.png", + "idiom": "ipad", + "scale": "2x", + "size": "83.5x83.5" + }, + { + "filename": "Icon-App-1024x1024@1x.png", + "idiom": "ios-marketing", + "scale": "1x", + "size": "1024x1024" + } + ], + "info": { + "author": "icons_launcher", + "version": 1 + } +} \ No newline at end of file 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..c4e53cc15468a334eb0dcc8311c7e774b7cffbe7 GIT binary patch literal 113419 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

#2GFD3QSjFLcnz%|s&Xe&C4QnpJOw~UYCoxXV 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�%+4} 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

Ay6h6uPJz4r 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 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..3be504126c0a78e951393adeb1e0f91444c4ae3f GIT binary patch literal 3533 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 Hu0mjfh?lRq 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..1db9a88f6f94323d8d785481976b774b69f11352 GIT binary patch literal 8343 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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..6392982 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Ocarina + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ocarina + 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/api/audio/audioplayer_service.dart b/lib/api/audio/audioplayer_service.dart new file mode 100644 index 0000000..903fc97 --- /dev/null +++ b/lib/api/audio/audioplayer_service.dart @@ -0,0 +1,56 @@ +import 'package:just_audio/just_audio.dart'; +import 'package:just_audio_background/just_audio_background.dart'; +import 'package:ocarina/api/subsonic/song.dart'; +import 'package:ocarina/main.dart'; + +/// Service used to control the audio player +class AudioPlayerService { + /// Service used to control the audio player + factory AudioPlayerService() { + return _audioPlayerService; + } + + AudioPlayerService._internal(); + static final AudioPlayerService _audioPlayerService = + AudioPlayerService._internal(); + + /// The [AudioPlayer] instance + final player = AudioPlayer(); + + /// Currently playing song + /// + /// Null if no song is loaded + Song? song; + + /// Plays the passed [Song] as a file + Future playFile({Song? song}) async { + final doCache = sp.getBool("doCache") ?? true; + if (song == null && this.song == null) return; + song ??= this.song; + await player.setAudioSource( + doCache + ? LockCachingAudioSource( + Uri.parse(song!.streamUrl), + tag: MediaItem( + id: song.id, + title: song.title, + album: song.albumName, + artist: song.artistName, + artUri: Uri.parse(song.coverArtUrl), + ), + ) + : AudioSource.uri( + Uri.parse(song!.streamUrl), + tag: MediaItem( + id: song.id, + title: song.title, + album: song.albumName, + artist: song.artistName, + artUri: Uri.parse(song.coverArtUrl), + ), + ), + ); + await player.seek(Duration.zero); + await player.play(); + } +} diff --git a/lib/api/cache_manager.dart b/lib/api/cache_manager.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/api/login_manager.dart b/lib/api/login_manager.dart new file mode 100644 index 0000000..f6b688f --- /dev/null +++ b/lib/api/login_manager.dart @@ -0,0 +1,29 @@ +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +const _storage = FlutterSecureStorage(); + +/// Manages login details +class LoginManager { + /// Checks if user has saved login details + static Future get hasSavedLogin async { + return (await _storage.containsKey(key: "sub_user")) && + (await _storage.containsKey(key: "sub_pass")) && + (await _storage.containsKey(key: "sub_url")); + } + + /// Stores log in details into secure storage + static Future saveDetails(String user, String pass, String url) async { + await _storage.write(key: "sub_user", value: user); + await _storage.write(key: "sub_pass", value: pass); + await _storage.write(key: "sub_url", value: url); + } + + /// Returns log in details from secure storage + static Future?> getDetails() async { + final user = await _storage.read(key: "sub_user"); + final pass = await _storage.read(key: "sub_pass"); + final url = await _storage.read(key: "sub_url"); + if (user == null || pass == null || url == null) return null; + return {"user": user, "pass": pass, "url": url}; + } +} diff --git a/lib/api/subsonic/album.dart b/lib/api/subsonic/album.dart new file mode 100644 index 0000000..5a9b82a --- /dev/null +++ b/lib/api/subsonic/album.dart @@ -0,0 +1,38 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:ocarina/api/subsonic/subsonic.dart'; +part 'album.g.dart'; + +@JsonSerializable() +class Album { + Album({ + required this.id, + required this.name, + required String coverArtId, + required this.playCount, + required this.artistName, + required this.artistId, + required this.year, + required this.songCount, + required this.genres, + required this.duration, + }) : _coverArtId = coverArtId; + + final String id; + final String name; + @JsonKey(name: "coverArt") + final String _coverArtId; + final int playCount; + @JsonKey(name: "artist") + final String artistName; + final String artistId; + final int year; + final int songCount; + final List genres; + final int duration; + + String get coverArtUrl => SubsonicApiService().getCoverArtUrl(_coverArtId); + + factory Album.fromJson(Map json) => _$AlbumFromJson(json); + + Map toJson() => _$AlbumToJson(this); +} diff --git a/lib/api/subsonic/album.g.dart b/lib/api/subsonic/album.g.dart new file mode 100644 index 0000000..363d92f --- /dev/null +++ b/lib/api/subsonic/album.g.dart @@ -0,0 +1,34 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'album.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Album _$AlbumFromJson(Map json) => Album( + id: json['id'] as String, + name: json['name'] as String, + coverArtId: json['coverArt'] as String, + playCount: (json['playCount'] as num).toInt(), + artistName: json['artist'] as String, + artistId: json['artistId'] as String, + year: (json['year'] as num).toInt(), + songCount: (json['songCount'] as num).toInt(), + genres: + (json['genres'] as List).map((e) => e as String).toList(), + duration: (json['duration'] as num).toInt(), + ); + +Map _$AlbumToJson(Album instance) => { + 'id': instance.id, + 'name': instance.name, + 'coverArt': instance._coverArtId, + 'playCount': instance.playCount, + 'artist': instance.artistName, + 'artistId': instance.artistId, + 'year': instance.year, + 'songCount': instance.songCount, + 'genres': instance.genres, + 'duration': instance.duration, + }; diff --git a/lib/api/subsonic/artist.dart b/lib/api/subsonic/artist.dart new file mode 100644 index 0000000..ab70e0c --- /dev/null +++ b/lib/api/subsonic/artist.dart @@ -0,0 +1,37 @@ +import 'package:json_annotation/json_annotation.dart'; +part 'artist.g.dart'; + +@JsonSerializable() + +/// Artist object from the Subsonic API +class Artist { + /// Artist object from the Subsonic API + const Artist( + this.id, + this.name, + this.albumCount, + this.coverArtId, + this.artistImageUrl, + ); + + /// Creates instance from the JSON response + factory Artist.fromJson(Map json) => _$ArtistFromJson(json); + + Map toJson() => _$ArtistToJson(this); + + /// ID of the artist + final String id; + + /// Artist's name + final String name; + + /// Number of albums + final int albumCount; + + /// Cover art ID + @JsonKey(name: "coverArt") + final String coverArtId; + + /// Artist image URL + final String artistImageUrl; +} diff --git a/lib/api/subsonic/artist.g.dart b/lib/api/subsonic/artist.g.dart new file mode 100644 index 0000000..edb3fc0 --- /dev/null +++ b/lib/api/subsonic/artist.g.dart @@ -0,0 +1,23 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'artist.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Artist _$ArtistFromJson(Map json) => Artist( + json['id'] as String, + json['name'] as String, + (json['albumCount'] as num).toInt(), + json['coverArt'] as String, + json['artistImageUrl'] as String, + ); + +Map _$ArtistToJson(Artist instance) => { + 'id': instance.id, + 'name': instance.name, + 'albumCount': instance.albumCount, + 'coverArt': instance.coverArtId, + 'artistImageUrl': instance.artistImageUrl, + }; diff --git a/lib/api/subsonic/artistindex.dart b/lib/api/subsonic/artistindex.dart new file mode 100644 index 0000000..885f744 --- /dev/null +++ b/lib/api/subsonic/artistindex.dart @@ -0,0 +1,27 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:ocarina/api/subsonic/artist.dart'; +part 'artistindex.g.dart'; + +/// List of artist under a certain index (first letter of their name) +/// +/// As returned by `getIndexes` +@JsonSerializable() +class ArtistIndex { + /// Creates instance from the JSON response returned by `getIndexes` + factory ArtistIndex.fromJson(Map json) => + _$ArtistIndexFromJson(json); + + ArtistIndex({required this.index, required this.artists}); + + Map toJson() => _$ArtistIndexToJson(this); + + /// The index + /// + /// `#` for unknown character + @JsonKey(name: "name") + final String index; + + /// List of artists under this index + @JsonKey(name: "artist") + final List artists; +} diff --git a/lib/api/subsonic/artistindex.g.dart b/lib/api/subsonic/artistindex.g.dart new file mode 100644 index 0000000..ecce43e --- /dev/null +++ b/lib/api/subsonic/artistindex.g.dart @@ -0,0 +1,20 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'artistindex.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ArtistIndex _$ArtistIndexFromJson(Map json) => ArtistIndex( + index: json['name'] as String, + artists: (json['artist'] as List) + .map((e) => Artist.fromJson(e as Map)) + .toList(), + ); + +Map _$ArtistIndexToJson(ArtistIndex instance) => + { + 'name': instance.index, + 'artist': instance.artists, + }; diff --git a/lib/api/subsonic/song.dart b/lib/api/subsonic/song.dart new file mode 100644 index 0000000..957c5fd --- /dev/null +++ b/lib/api/subsonic/song.dart @@ -0,0 +1,45 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:ocarina/api/subsonic/subsonic.dart'; +part 'song.g.dart'; + +@JsonSerializable() +class Song { + Song({ + required this.id, + required this.artistName, + required this.title, + required this.albumName, + required this.albumId, + required this.artistId, + required this.duration, + required this.bitRate, + required this.contentType, + required this.fileType, + required String coverArtId, + this.trackNumber, + }) : _coverArtId = coverArtId; + + factory Song.fromJson(Map json) => _$SongFromJson(json); + + Map toJson() => _$SongToJson(this); + final String id; + @JsonKey(name: "artist") + final String artistName; + final String artistId; + final String albumId; + final String title; + @JsonKey(name: "album") + final String albumName; + @JsonKey(name: "track") + final int? trackNumber; + final int duration; + final int bitRate; + final String contentType; + @JsonKey(name: "suffix") + final String fileType; + @JsonKey(name: "coverArt") + final String _coverArtId; + + String get coverArtUrl => SubsonicApiService().getCoverArtUrl(_coverArtId); + String get streamUrl => SubsonicApiService().getStreamUrl(id); +} diff --git a/lib/api/subsonic/song.g.dart b/lib/api/subsonic/song.g.dart new file mode 100644 index 0000000..8a1f5e4 --- /dev/null +++ b/lib/api/subsonic/song.g.dart @@ -0,0 +1,37 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'song.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Song _$SongFromJson(Map json) => Song( + id: json['id'] as String, + artistName: json['artist'] as String, + title: json['title'] as String, + albumName: json['album'] as String, + albumId: json['albumId'] as String, + artistId: json['artistId'] as String, + duration: (json['duration'] as num).toInt(), + bitRate: (json['bitRate'] as num).toInt(), + contentType: json['contentType'] as String, + fileType: json['suffix'] as String, + coverArtId: json['coverArt'] as String, + trackNumber: (json['track'] as num?)?.toInt(), + ); + +Map _$SongToJson(Song instance) => { + 'id': instance.id, + 'artist': instance.artistName, + 'artistId': instance.artistId, + 'albumId': instance.albumId, + 'title': instance.title, + 'album': instance.albumName, + 'track': instance.trackNumber, + 'duration': instance.duration, + 'bitRate': instance.bitRate, + 'contentType': instance.contentType, + 'suffix': instance.fileType, + 'coverArt': instance._coverArtId, + }; diff --git a/lib/api/subsonic/subsonic.dart b/lib/api/subsonic/subsonic.dart new file mode 100644 index 0000000..f1171a1 --- /dev/null +++ b/lib/api/subsonic/subsonic.dart @@ -0,0 +1,143 @@ +import 'dart:convert'; + +import 'package:crypto/crypto.dart'; +import 'package:dio/dio.dart'; +import 'package:ocarina/api/subsonic/album.dart'; +import 'package:ocarina/api/subsonic/artistindex.dart'; +import 'package:ocarina/api/subsonic/song.dart'; +import 'package:ocarina/util/util.dart'; + +/// Used to communicate with Subsonic API +class SubsonicApiService { + /// Used to communicate with Subsonic API + + factory SubsonicApiService() { + return _subsonicService; + } + + SubsonicApiService._internal(); + static final SubsonicApiService _subsonicService = + SubsonicApiService._internal(); + + Dio get _client => + Dio(BaseOptions(contentType: "application/json", baseUrl: baseUrl)); + + // ignore: avoid_setters_without_getters + set password(String p) { + _salt = Util.makeSalt; + _hash = md5.convert(utf8.encode(p + _salt)).toString(); + } + + Future>> _get( + String path, { + Map params = const {}, + }) async { + return _client.get>( + path, + queryParameters: { + "u": user, + "t": _hash, + "s": _salt, + "c": "Ocarina", + "f": "json", + "v": _version, + ...params, + }, + ); + } + + /// Subsonic-compatible server's base URL + String baseUrl = ""; + + /// Subsonic username + String user = ""; + String _hash = ""; + final String _version = "1.16.1"; + String _salt = ""; + + /// Checks if saved details return an OK from server + Future verifyCredentials() async { + try { + final r = await _get("/rest/ping.view"); + if (r.data == null || r.data!.containsKey("error")) return false; + return true; + } catch (e) { + return false; + } + } + + Future?> getArtistIndex() async { + try { + final r = await _get("/rest/getIndexes"); + if (r.data == null) { + return null; + } + final response = r.data!["subsonic-response"] as Map; + if (response["status"] != "ok") return null; + + final indexes = List>.from( + (response["indexes"] as Map)["index"] as List, + ); + return List.generate( + indexes.length, + (index) => ArtistIndex.fromJson(indexes[index]), + ); + } catch (e) { + logger.e(e); + return null; + } + } + + /// Returns data from the `getMusicDirectory` endpoint formatted as [Album] + /// + /// Checks if it is really a directory and tries to format it with fromJson + Future?> getAlbumList(String artistId) async { + final r = await _get("/rest/getMusicDirectory", params: {"id": artistId}); + if (r.data == null || r.data!["subsonic-response"]["status"] != "ok") { + return null; + } + final albums = []; + for (final albumData in r.data!["subsonic-response"]["directory"]["child"] + as List) { + if ((albumData as Map)["isDir"] == false) { + continue; + } + try { + albums.add(Album.fromJson(albumData)); + } catch (e) { + logger.e(e); + continue; + } + } + return albums; + } + + /// Returns data from the `getMusicDirectory` endpoint formatted as [Album] + /// + /// Checks if it is really a directory and tries to format it with fromJson + Future?> getSongList(String albumId) async { + final r = await _get("/rest/getMusicDirectory", params: {"id": albumId}); + if (r.data == null || r.data!["subsonic-response"]["status"] != "ok") { + return null; + } + final songs = []; + for (final songData in r.data!["subsonic-response"]["directory"]["child"] + as List) { + if ((songData as Map)["isDir"] == true) { + continue; + } + try { + songs.add(Song.fromJson(songData)); + } catch (e) { + logger.e(e); + continue; + } + } + return songs; + } + + String getCoverArtUrl(String id) => + "$baseUrl/rest/getCoverArt?id=$id&u=$user&s=$_salt&t=$_hash&c=Ocarina&v=1.16.1"; + String getStreamUrl(String id) => + "$baseUrl/rest/stream?id=$id&u=$user&s=$_salt&t=$_hash&c=Ocarina&v=1.16.1"; +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..5b4f2fa --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,60 @@ +import 'package:fast_cached_network_image/fast_cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:just_audio_background/just_audio_background.dart'; +import 'package:just_audio_media_kit/just_audio_media_kit.dart'; +import 'package:ocarina/views/home_view.dart'; +import 'package:ocarina/widgets/player.dart'; +import 'package:responsive_sizer/responsive_sizer.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +void main() async { + JustAudioMediaKit.ensureInitialized(); + WidgetsFlutterBinding.ensureInitialized(); + + await JustAudioBackground.init( + androidNotificationChannelId: 'wtf.caras.ocarina.bg_playback', + androidNotificationChannelName: 'Ocarina playback', + androidNotificationOngoing: true, + ); + + await FastCachedImageConfig.init(clearCacheAfter: const Duration(days: 31)); + sp = await SharedPreferences.getInstance(); + runApp(const MyApp()); +} + +/// [GlobalKey] used to set the [Player]'s state from other code +final playerKey = GlobalKey(); + +/// Instance of [SharedPreferences] used to get shared preferences +late final SharedPreferences sp; + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return ResponsiveSizer( + builder: (context, orientation, screenType) { + return MaterialApp( + title: 'Ocarina', + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), + useMaterial3: true, + ), + home: const HomeView(), + builder: (context, child) { + return Stack( + children: [ + child!, + Player( + key: playerKey, + ), + ], + ); + }, + ); + }, + ); + } +} diff --git a/lib/util/util.dart b/lib/util/util.dart new file mode 100644 index 0000000..bd9116f --- /dev/null +++ b/lib/util/util.dart @@ -0,0 +1,22 @@ +import 'dart:math'; + +import 'package:logger/web.dart'; + +String _letters = + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-"; + +final logger = Logger(); + +/// Class for all utility functions +class Util { + /// Creates a 14 characters-long string comprised of random characters + /// from _letter + static String get makeSalt { + final d = StringBuffer(); + final r = Random(); + for (var i = 0; i < 14; i++) { + d.write(_letters[r.nextInt(_letters.length)]); + } + return d.toString(); + } +} diff --git a/lib/views/album_view.dart b/lib/views/album_view.dart new file mode 100644 index 0000000..ed0de3c --- /dev/null +++ b/lib/views/album_view.dart @@ -0,0 +1,74 @@ +import 'package:flutter/material.dart'; +import 'package:ocarina/api/audio/audioplayer_service.dart'; +import 'package:ocarina/api/subsonic/album.dart'; +import 'package:ocarina/api/subsonic/song.dart'; +import 'package:ocarina/api/subsonic/subsonic.dart'; +import 'package:ocarina/main.dart'; +import 'package:ocarina/widgets/hero_banner.dart'; +import 'package:ocarina/widgets/song_row.dart'; +import 'package:responsive_sizer/responsive_sizer.dart'; + +class AlbumView extends StatefulWidget { + const AlbumView({required this.album, super.key}); + final Album album; + + @override + State createState() => _AlbumViewState(); +} + +class _AlbumViewState extends State { + final _songs = []; + + @override + void initState() { + super.initState(); + loadSongs(); + } + + Future loadSongs() async { + _songs + ..clear() + ..addAll(await SubsonicApiService().getSongList(widget.album.id) ?? []); + setState(() {}); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(), + body: SizedBox( + width: 100.w, + height: 100.h, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + HeroBanner( + imageUrl: widget.album.coverArtUrl, + title: widget.album.name, + description: widget.album.artistName, + ), + SizedBox( + height: 65.h, + child: ListView.builder( + itemBuilder: (c, i) => InkWell( + onTap: () async { + AudioPlayerService().song = _songs[i]; + playerKey.currentState?.update(); + await AudioPlayerService().playFile(); + + setState(() {}); + }, + child: SongRow( + imageUrl: _songs[i].coverArtUrl, + songTitle: _songs[i].title, + ), + ), + itemCount: _songs.length, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/views/artist_view.dart b/lib/views/artist_view.dart new file mode 100644 index 0000000..93bea3a --- /dev/null +++ b/lib/views/artist_view.dart @@ -0,0 +1,87 @@ +import 'package:flutter/material.dart'; +import 'package:ocarina/api/subsonic/album.dart'; +import 'package:ocarina/api/subsonic/artist.dart'; +import 'package:ocarina/api/subsonic/subsonic.dart'; +import 'package:ocarina/views/album_view.dart'; +import 'package:ocarina/widgets/hero_banner.dart'; +import 'package:ocarina/widgets/image_cover.dart'; +import 'package:responsive_sizer/responsive_sizer.dart'; + +class ArtistView extends StatefulWidget { + const ArtistView({required this.artist, super.key}); + final Artist artist; + + @override + State createState() => _ArtistViewState(); +} + +class _ArtistViewState extends State { + @override + void initState() { + super.initState(); + loadArtistAlbums(); + } + + final _albums = []; + + Future loadArtistAlbums() async { + _albums + ..clear() + ..addAll(await SubsonicApiService().getAlbumList(widget.artist.id) ?? []); + setState(() {}); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + ), + body: SingleChildScrollView( + child: SizedBox( + width: 100.w, + height: 100.h, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + HeroBanner( + imageUrl: widget.artist.artistImageUrl, + title: widget.artist.name, + description: "This could be a cool description soon", + heroTag: widget.artist.name, + ), + Center( + child: SizedBox( + height: 70.h, + width: 95.w, + child: Wrap( + alignment: WrapAlignment.spaceBetween, + children: List.generate( + _albums.length, + (n) => InkWell( + onTap: () async { + await Navigator.of(context).push( + MaterialPageRoute( + builder: (c) => AlbumView( + album: _albums[n], + ), + ), + ); + }, + child: ImageCover( + imageUrl: _albums[n].coverArtUrl, + title: _albums[n].name, + heroTag: _albums[n].name, + ), + ), + ), + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/views/home_view.dart b/lib/views/home_view.dart new file mode 100644 index 0000000..e9a4acf --- /dev/null +++ b/lib/views/home_view.dart @@ -0,0 +1,132 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:grouped_list/grouped_list.dart'; +import 'package:ocarina/api/login_manager.dart'; +import 'package:ocarina/api/subsonic/artistindex.dart'; +import 'package:ocarina/api/subsonic/subsonic.dart'; +import 'package:ocarina/views/artist_view.dart'; +import 'package:ocarina/views/login_view.dart'; +import 'package:ocarina/widgets/image_cover.dart'; +import 'package:responsive_sizer/responsive_sizer.dart'; + +class HomeView extends StatefulWidget { + const HomeView({super.key}); + + @override + State createState() => _HomeViewState(); +} + +class _HomeViewState extends State { + @override + void initState() { + super.initState(); + authenticate(); + } + + var _loading = true; + final _artists = []; + + Future authenticate() async { + if (!(await LoginManager.hasSavedLogin)) { + if (!mounted) return; + unawaited( + Navigator.of(context).pushReplacement( + MaterialPageRoute(builder: (c) => const LoginView()), + ), + ); + return; + } + + if (SubsonicApiService().user == "") { + final details = await LoginManager.getDetails(); + if (details == null) { + if (!mounted) return; + unawaited( + Navigator.of(context).pushReplacement( + MaterialPageRoute(builder: (c) => const LoginView()), + ), + ); + return; + } + SubsonicApiService().user = details["user"]!; + SubsonicApiService().baseUrl = details["url"]!; + SubsonicApiService().password = details["pass"]!; + final r = await SubsonicApiService().verifyCredentials(); + if (!r) { + if (!mounted) return; + ScaffoldMessenger.of(context).clearSnackBars(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Could not log in :("), + duration: Duration(seconds: 3), + ), + ); + return; + } + } + _artists + ..clear() + ..addAll(await SubsonicApiService().getArtistIndex() ?? []); + _loading = false; + setState(() {}); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Home"), + ), + body: Center( + child: SingleChildScrollView( + child: SizedBox( + height: 100.h, + width: 95.w, + child: _loading + ? const Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator.adaptive(), + ], + ) + : GroupedListView( + elements: _artists, + groupBy: (a) => a.index, + groupHeaderBuilder: (index) => Text( + index.index, + style: TextStyle( + color: Theme.of(context).colorScheme.primary, + ), + ), + itemBuilder: (c, index) => Wrap( + alignment: (index.artists.length > 1) + ? WrapAlignment.spaceBetween + : WrapAlignment.start, + children: List.generate( + index.artists.length, + (n) => InkWell( + onTap: () async { + await Navigator.of(context).push( + MaterialPageRoute( + builder: (c) => ArtistView( + artist: index.artists[n], + ), + ), + ); + }, + child: ImageCover( + imageUrl: index.artists[n].artistImageUrl, + title: index.artists[n].name, + heroTag: index.artists[n].name, + ), + ), + ), + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/views/login_view.dart b/lib/views/login_view.dart new file mode 100644 index 0000000..baef37f --- /dev/null +++ b/lib/views/login_view.dart @@ -0,0 +1,103 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:ocarina/api/login_manager.dart'; +import 'package:ocarina/api/subsonic/subsonic.dart'; +import 'package:ocarina/views/home_view.dart'; +import 'package:responsive_sizer/responsive_sizer.dart'; + +class LoginView extends StatefulWidget { + const LoginView({super.key}); + + @override + State createState() => _LoginViewState(); +} + +class _LoginViewState extends State { + final _userController = TextEditingController(); + final _passController = TextEditingController(); + final _urlController = TextEditingController(); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Center( + child: SizedBox( + width: 95.w, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Ocarina", + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox( + height: 10, + ), + TextField( + controller: _userController, + decoration: const InputDecoration(hintText: "Username"), + ), + const SizedBox( + height: 5, + ), + TextField( + controller: _passController, + obscureText: true, + decoration: const InputDecoration(hintText: "Password"), + ), + const SizedBox( + height: 5, + ), + TextField( + controller: _urlController, + decoration: const InputDecoration(hintText: "Subsonic URL"), + inputFormatters: [ + FilteringTextInputFormatter.allow( + RegExp(r"[a-z:\/\.0-9\_]+", multiLine: true), + ), + ], + ), + const SizedBox( + height: 5, + ), + TextButton( + onPressed: () async { + if (_urlController.text.isEmpty || + _passController.text.isEmpty || + _userController.text.isEmpty) return; + final baseUrl = _urlController.text; // TODO: more formatting + + if (baseUrl.endsWith("/")) { + baseUrl.substring(0, baseUrl.length - 1); + } + + SubsonicApiService() + ..baseUrl = baseUrl + ..user = _userController.text + ..password = _passController.text; + final r = await SubsonicApiService().verifyCredentials(); + if (!r) return; + + await LoginManager.saveDetails( + _userController.text, + _passController.text, + baseUrl, + ); + + if (!context.mounted) return; + await Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (c) => const HomeView(), + ), + ); + }, + child: const Text("Log in"), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/widgets/hero_banner.dart b/lib/widgets/hero_banner.dart new file mode 100644 index 0000000..e7da08e --- /dev/null +++ b/lib/widgets/hero_banner.dart @@ -0,0 +1,70 @@ +import 'package:fast_cached_network_image/fast_cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:responsive_sizer/responsive_sizer.dart'; +import 'package:shimmer/shimmer.dart'; + +class HeroBanner extends StatelessWidget { + const HeroBanner({ + required this.imageUrl, + required this.title, + required this.description, + this.heroTag = "NotAHero", + super.key, + }); + final String imageUrl; + final String title; + final String description; + final String heroTag; + @override + Widget build(BuildContext context) { + return SizedBox( + height: 30.h, + width: 95.w, + child: Row( + children: [ + SizedBox( + height: 180, + width: 180, + child: Hero( + tag: heroTag, + child: FastCachedImage( + url: imageUrl, + loadingBuilder: (c, d) => Shimmer.fromColors( + baseColor: Colors.grey.shade300, + highlightColor: Colors.grey.shade100, + child: Container( + color: Colors.grey, + ), + ), + errorBuilder: (c, _, __) { + return ColoredBox( + color: Theme.of(context).colorScheme.primaryContainer, + child: Center( + child: Icon( + Icons.music_note, + color: Theme.of(context).colorScheme.onPrimaryContainer, + ), + ), + ); + }, + ), + ), + ), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + title, + style: const TextStyle(fontWeight: FontWeight.bold), + ), + const SizedBox( + height: 5, + ), + Text(description), + ], + ) + ], + ), + ); + } +} diff --git a/lib/widgets/image_cover.dart b/lib/widgets/image_cover.dart new file mode 100644 index 0000000..257f69f --- /dev/null +++ b/lib/widgets/image_cover.dart @@ -0,0 +1,72 @@ +import 'package:auto_size_text/auto_size_text.dart'; +import 'package:fast_cached_network_image/fast_cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:shimmer/shimmer.dart'; +import 'package:text_scroll/text_scroll.dart'; + +class ImageCover extends StatelessWidget { + const ImageCover({ + required this.imageUrl, + required this.title, + this.heroTag = "VeryUnconspicous", + super.key, + }); + + final String imageUrl; + final String title; + final double _width = 180; + final String heroTag; + @override + Widget build(BuildContext context) { + return Column( + children: [ + SizedBox( + width: _width, + height: _width, + child: Hero( + tag: heroTag, + child: FastCachedImage( + url: imageUrl, + loadingBuilder: (c, d) => Shimmer.fromColors( + baseColor: Colors.grey.shade300, + highlightColor: Colors.grey.shade100, + child: Container( + color: Colors.grey, + ), + ), + errorBuilder: (c, _, __) { + return ColoredBox( + color: Theme.of(context).colorScheme.primaryContainer, + child: Center( + child: Icon( + Icons.music_note, + color: Theme.of(context).colorScheme.onPrimaryContainer, + ), + ), + ); + }, + ), + ), + ), + const SizedBox( + height: 5, + ), + SizedBox( + width: _width * 0.7, + child: AutoSizeText( + title, + textAlign: TextAlign.center, + style: const TextStyle(fontWeight: FontWeight.bold), + overflowReplacement: TextScroll( + title, + style: const TextStyle(fontWeight: FontWeight.bold), + ), + ), + ), + const SizedBox( + height: 10, + ), + ], + ); + } +} diff --git a/lib/widgets/player.dart b/lib/widgets/player.dart new file mode 100644 index 0000000..e2537d4 --- /dev/null +++ b/lib/widgets/player.dart @@ -0,0 +1,46 @@ +import 'package:flutter/material.dart'; +import 'package:ocarina/api/audio/audioplayer_service.dart'; +import 'package:ocarina/util/util.dart'; + +/// The player widget +/// +/// Showcases the playing song's details and features playback controls +class Player extends StatefulWidget { + /// The player widget + /// + /// Showcases the playing song's details and features playback controls + const Player({super.key}); + + @override + State createState() => PlayerState(); +} + +/// State of [Player] +class PlayerState extends State { + void update() { + logger.d(AudioPlayerService().song?.title); + setState(() {}); + } + + @override + Widget build(BuildContext context) { + return DraggableScrollableSheet( + initialChildSize: 0.1, + snap: true, + snapSizes: const [0.1, 1], + minChildSize: 0.1, + builder: (c, s) => SingleChildScrollView( + controller: s, + child: Row( + children: [ + Text( + AudioPlayerService().song == null + ? "Nothing" + : AudioPlayerService().song!.title, + ), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/song_row.dart b/lib/widgets/song_row.dart new file mode 100644 index 0000000..cf46271 --- /dev/null +++ b/lib/widgets/song_row.dart @@ -0,0 +1,30 @@ +import 'package:auto_size_text/auto_size_text.dart'; +import 'package:fast_cached_network_image/fast_cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:text_scroll/text_scroll.dart'; + +class SongRow extends StatelessWidget { + const SongRow({required this.imageUrl, required this.songTitle, super.key}); + final String imageUrl; + final String songTitle; + @override + Widget build(BuildContext context) { + return ClipRRect( + borderRadius: BorderRadius.circular(8), + child: InkWell( + child: ListTile( + leading: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: FastCachedImage(url: imageUrl), + ), + title: AutoSizeText( + songTitle, + overflowReplacement: TextScroll( + songTitle, + ), + ), + ), + ), + ); + } +} 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..9ddfd65 --- /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 "ocarina") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "wtf.caras.ocarina") + +# 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..1c10bb6 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,19 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); + flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); + g_autoptr(FlPluginRegistrar) media_kit_libs_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitLibsLinuxPlugin"); + media_kit_libs_linux_plugin_register_with_registrar(media_kit_libs_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..52a747c --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,25 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage_linux + media_kit_libs_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..935b491 --- /dev/null +++ b/linux/my_application.cc @@ -0,0 +1,124 @@ +#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, "ocarina"); + 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, "ocarina"); + } + + 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 GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// 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_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + 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..39d5c75 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,24 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import audio_service +import audio_session +import flutter_secure_storage_macos +import just_audio +import path_provider_foundation +import shared_preferences_foundation +import sqflite + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + AudioServicePlugin.register(with: registry.registrar(forPlugin: "AudioServicePlugin")) + AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin")) + FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) + JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..7f8e340 --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*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 /* ocarina.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ocarina.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 /* ocarina.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 /* ocarina.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + 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 = wtf.caras.ocarina.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ocarina.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ocarina"; + }; + 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 = wtf.caras.ocarina.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ocarina.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ocarina"; + }; + 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 = wtf.caras.ocarina.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ocarina.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ocarina"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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..9740be4 --- /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..7b4d860 --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images": [ + { + "filename": "app_icon_16.png", + "idiom": "mac", + "scale": "1x", + "size": "16x16" + }, + { + "filename": "app_icon_32.png", + "idiom": "mac", + "scale": "2x", + "size": "16x16" + }, + { + "filename": "app_icon_32.png", + "idiom": "mac", + "scale": "1x", + "size": "32x32" + }, + { + "filename": "app_icon_64.png", + "idiom": "mac", + "scale": "2x", + "size": "32x32" + }, + { + "filename": "app_icon_128.png", + "idiom": "mac", + "scale": "1x", + "size": "128x128" + }, + { + "filename": "app_icon_256.png", + "idiom": "mac", + "scale": "2x", + "size": "128x128" + }, + { + "filename": "app_icon_256.png", + "idiom": "mac", + "scale": "1x", + "size": "256x256" + }, + { + "filename": "app_icon_512.png", + "idiom": "mac", + "scale": "2x", + "size": "256x256" + }, + { + "filename": "app_icon_512.png", + "idiom": "mac", + "scale": "1x", + "size": "512x512" + }, + { + "filename": "app_icon_1024.png", + "idiom": "mac", + "scale": "2x", + "size": "512x512" + } + ], + "info": { + "author": "icons_launcher", + "version": 1 + } +} \ 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..393ad19ff470ae3c56562db6e23c215623b509ac GIT binary patch literal 121101 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ëqocXT6t-xJ=mL(#UTBvaBmfueH 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 R8-6&d`!Ua>uYL_m{eSFjva|pI literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..a208f31700db58b143475177bc7120d3e6849a1c GIT binary patch literal 6933 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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..05cf89c77a7706dc1c037b9530fc1d39e910b26a GIT binary patch literal 855 zcmV-d1E~CoP)EX>4Tx04R}tkv&MmKpe$iTZ^5yS|F5JyB}ramW%X?TvWd-(Wz7vovp=l&c6O2K4+PasY(-LQx^h-Wq} zo%23%n3W}k_?&pspbHW|a$R=$jdRIiKhF#s*~~m~m{=%vvE0S1Y^cQ3#8E}nDBquR zS>e3JS*_Mt`=0!Tp@O!u%ypV$NMR965FtQD9TikzAx5i4iir&ECq4Y5j$b5~Os)zT zITlcZ3d!+<|H1EW&EiztO$sG};EQd4j03&9K&xTf-^aGyIspRDz?IhV*P6iWC+Urj z7Ciz6w}Ff6jwbH`mpee@NtX=CkpeXR#Uk*2M&FbNhHruXHMh6+K29HiEOnK>0S*p< zi4tY6d%U}^ySIPOwEO!3#Gi7xoRmm`x)66^I|KC5-jGR1-Tvh=LFEVtTfpYt>8Svuk zoYEOPHm=LBoTqX5k!3RDr**xI%px)jEE0+g90tw|@8%Xi0IEBR%L@#@zkFPpHE&z~ zx3F#|HWoGpk&;DV@&Et-GkiP0{omKk(=uSr$7%qpmPP%0lTe0_bzTgt3VIA2hAs@8 zrd|v`AD(A;KQXR%wn=OEMoGEUsv@qumk=3_2_DbUvKXJ`n<5d?%&7Po#>h|4EX!%@%ArU zrx&oQ8}a|RbMpP4CpS0!IJl|q`+M^1>OOHGO9+Txf<$m>#BKltfI|2= hA&vM9APG=x003lkg3+ctXBYqg002ovPDHLkV1n2Gg=hc( 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..47dc112c585023b4afe27a5559d32f95e53cbd59 GIT binary patch literal 16661 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 CJ5R*` literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..f21766a1b12be5d33be11ceb4958f33fa8616f3a GIT binary patch literal 1456 zcmV;h1yA~kP)EX>4Tx04R}tkv&MmKpe$iTZ^5yS|F5JyB}ramW%X?TvWd-(Wz7vovp=l&c6O2K4+PasY(-LQx^h-Wq} zo%23%n3W}k_?&pspbHW|a$R=$jdRIiKhF#s*~~m~m{=%vvE0S1Y^cQ3#8E}nDBquR zS>e3JS*_Mt`=0!Tp@O!u%ypV$NMR965FtQD9TikzAx5i4iir&ECq4Y5j$b5~Os)zT zITlcZ3d!+<|H1EW&EiztO$sG};EQd4j03&9K&xTf-^aGyIspRDz?IhV*P6iWC+Urj z7Ciz6w}Ff6jwbH`mpee@NtX=CkpeXR#Uk*2M&FbNhHruXHMh6+K29HiEOnK>0S*p< zi4tY6d%U}^ySIPOwEO!3#Gi7>Eg6A_{w}?{Gmjdn6M>o z#5AmeZ^=Y5!+?lE1u``dCn_YqjBUik=-h;*fr#ZrC9p^W0#0!wMojE*qyq-Fvuxek z?(TZMJAdtDBt*S#)4(77CEwih@_U}|=XtKr(_?XsgUtYB05SmAJ3s-+P4bY!*8*Tg zwtMvkvGc3fl;3-oQ2mfjzL7MGG>24-)B+d-pq-)ehoruV0`xG}X((tsQ8?JV;(%~; z=gZXAd{vHxR6#~nY*BHAxukr$CdV21LJ#t48^PY-gy`!;XnjRaazPUX@Q!wD>$jFw z-()o2B)luJFWLm@B`M@H}Tz4*Cx;QmJ9SLFRlQl>L{9srU7(NH8 zIGpS{`*#L<0HPZ3zZt4`fAq@YN@mTsM;NcyTf6+lm!8Xh^m)#@pq7d3ZoqK+8!+8m zj7yuJ1WaZWwqGD~jyB%_B{qb}-e!^JYM%^1GFq*J=hnJhuG{^7Ki+HI0mu8tv$z>0 zV-pnK0o$UrFqf1eziuZ?&Y3W9=CR#KNQfNX4*8d3Td3MUS%5@19ByfAYumj4=RRmJ zw1dmPalCUHnO_cm&ST?cO-(@bcO&X~ru0V! zuL@07AO(6bvb{d84h5g3rqQVY%rH7 zRaeY471F?Oh#hFr;$0o%Ec?2SDucnYIQ^d(c{_O5GRTpOP*@e_(kevvY!wr} z6CYDx9hy6|}C$GO4DS5LAQ!$+gz~wmim;Up(?mx*g02zS)J^lnaon)==;p2z^0000< KMNUMnLSTZ?X~3=k 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..113d6e9ae60cbad8a9b9522c494ec306eb0982a9 GIT binary patch literal 43292 zcmeFYbyr*6_dS~6g#ty21Sc)hB8A`^CutWq*uMLgPB5nRD<~iP8RX zj3(O@@ehd%qZ@oR&?jnImG1i0)j{*W-Tel7gnDw1?f|Y{E^j@ODKY8P@B4gQ78AWu z%-%=8h2)bmBCcp~SyVLNVP)r?GXNMK$85A*->D@HpJ|R@v`n3oC;S zOAC8w(RcMAb?TTxu9!l+gx&X0ppq7~l9n!uCjfh(ej5B0Hy?Y63#iBh z`0vUC);+*~=dS@;gtGtLi4!FO`0r^-*(snV_B<6(NEZCRw>|p5SNz{x{9j)D-x~S< z@xnJJi4pcAFANJ0Z%w9vL?S|$X0s@{(Co16rdwxUaRYH%adGjdUoEhZQ){b9$l7%5 zy}|*D&E^wd*!tNkf#X4JbH%wC*8=O2c6TGTKMr_|1sqTzne4IY)C!UP@yaK6-Ep9} zq$vbIfpWLm%*4+~gK+J9&bD`B9-{vYA0#fnT81QA)IrmmTVfcQn$>vm+^mtML!Br@<09SY%|t^8|bhNxy`$??AhiF@$Dt z%+^CpPt}D?XF<(7K~*<8dYN#w}I394yMFdM0AOEx2>%gIf@8)+KC{#cU(nRUn6t+My>;b`wA#edP*C-MY{K;vc;d#CR*8_H^opB3akfaK5{bC;aWVx|=C z_WfAuza4}4zgyQvF@{InqB|z!G}d?-5Awm)3?furwm@rKYrTKX|9y09K3UgxxN-(P zKzXGC!GGVHz!B2G7bfYAGbfZi0Ter%lr0B{jZog5-QfCd-n|`X6F2#F4K>RFXh_Ox zrKZ(rj(~p-t#uBb*gcZvl-@%dx^}ZA+``mPef(vOq2F*?y0L>iTQ6D5yg@;biN6~H zqmH1_`bbxSI|$c9X<1u0ypnPOu?C>rk*7aY#o)y{UR?(Y#xx6alZ4NdS%8&`6cShbd^<5jXph^Dia^CzAE zzWS5Nqw7=L$uS4w4_l-haQ`>dB{bu;g~IZmdW=4C@=|27*eOThQtRrbdz90@lC2Z* zbwMPTRL28Y6U%t^B6)3{n=QY6ZK5bh;)xD8+dU7Q6D(OR%It}gnylGXK+lSgCplILP{+4E{?In%55}=VckVuaulS`rK)b9i z!z%1}aa|G=1}N9sqaEH+(Epb}{B5iE;(!7!dB-L5EAQBemDrafG%2UvF@|fFJCD>w z*t1_2%yuyKCj(OnoZdLRXwKf*ydXFpQ2Kx)0SF*Jwca><{5va*l3GeZtyg_VY>OGR zwfPZxX3=vGDY{}tc{F2|67(i-t0W(Hji`3@sOF>Yqtj2lY3{rq#4@-b!K6}IetAQ_ zTxBe}cyZ%WOoYY=?IRVmH`%ubwUwIKSoSawFd%)3z8(OcfF8}c<4yc%rEs#5B8={;~E~2RIu;LwU8Ug^r=7Wq7*= zHYUNfna6KWa|=*~ejqR9t<8U~nB2V97ioDe8kAMm1iBVIJD#tP+)FCN zNTuEo7&iyc0j=?xIK#3O|E*3MWOzVDNtc*vx3P)uyEfJn%lJ%zF!%yMPKCM2| z5qmkO?<4Go(Dc9X1Hr1$M@mNv$ATZraF1Iczt@A}8^79@BU^Qko1ZRC)~q7i9dMX% z_{fUDT@faqiJR23pA{@V+j|w^p9%CN(51)X13$?mJS|$WZ%A~GDuL(p!RZS&@pVQ; zP$TR7bg0ds?h~?{#)Pgd4b6aMSRJtBn_xh0_KPAS^#?8!k3`APS=kKLqL13Sx%Mfl z1Q3urp^p_~s3sQr31`FO730I@?<;3ud(^UeLU>~R@%)E3xX8%<+&t7>J8$8l!n*L| zKMzbd_($+PaGE5;-t=)XR0hg^kHd0J;iG|}$R#Mhe0kX0Am+8V&)L{7*<&Hdvhh&iaz33)8jb_= zqaGT~kJ+Ei(k^v*sV*u8fU zANVG`$WO{%E6*g6$AdUSz|1;WooWQ{fFj@Fs;qh(0KxZbpZQ<3j0ur{xP=97)YT8Z zGjhHY90)u?JfEY6zmicdI`wt?6d!eQAXi+1dounZO5`W2s0-mWEKw_fHR1k1Ul=h* z#lIe(Ci-F7XpZqEzML|_^2<+!Qy`6>F-T|?T0L|;3SI3_Hvv)j8-RvD3 zJ3Idng9K;4U$4hthOZwsm}$Pj@l<3A9wUi|D!5GlHP!?8rv=cIM4M4_s*F+tD6JR) zFMvr9PRi&x)sSpW9ySc`xU5vPi#7vg5$+J#vQmo`2{8)((<)>!du8YF0{@u9pX}0l zl!0IGp|*4qSjC`|yp+po)qfPS9MB74$HHu!bdCn-DSwVeWGb?s`g2Qes$Idxrnn(X zS4Tq|T!2CI9Z0L3?7w^#`m}81^kxf@t>StmKy0C)jK`Jwk`L`WN=+^3a%w9UooZA< z!Wiz-w~HUv;tgJ0G`qnqWLijGu4QUATq)!t3$dj<=jR^H0)TOy1UE@D1bbF`E(xl2 zzh>b-?(`{?AW1v5SxxK~$vM66w=bruDm}M7mbPFCIy_08?_DAB=V)q+OTpzKaf#F9 z{J0k;0m!2DT3inG#L0O7oMoEUU3bgb`t5;xNsy!jz#w%~(Z&z%#_%wc8^@ZWCz>FP z!H^=kcR6_UqAIx+{q%+K!_)xSN&6>&^PjjreTd}~WqPw5O3i0$^p4D4MUYrU&f39y zXV6XP(Te}Z*W4Frq60hdPu9|19Lp|Kxi%i%aJ_G;VMg8L`3EJ6W$pU0JQQ@sATyLc~p z3$$^FPnP3yyJ4^AvbuNtBfr;3bACdyX=uRLu9j|kjbKL)I{CH<-G9{H(bzdCeD#er zvR@*q_spzWcF~T!7Coz97DM(#iX`q|0QuY0#40aYZbScYsY$0p%n?`GVkwBFQd5+@ z@j2l;Vc^eQ4U*edabii(=mVe#o*hzy>3>_q^W^0^sP6~m%d<%rYmQZ+hKv?;;Upj- zhk%PlFiI23sQ~HD2lQm&d0k>O|#Y7DI z&YM{xwnJ1%s#^F=IdW_P5(6X7dzNApI(9BYO3V~8BYZaVV429N@9?`TM!mAzC6vz7 zHCy4w2cpI(@Dd;Ny%2g&FN;6jUaj)^=QVb!gLm60PGy&&Iz<)5JNs&ebkE+8fpwdp<(e9hflws~;z z;oJL-L3f;t>y0n~)BVYwv35WCf1&m1pRg}Avutmx{gz?$tE8rk>mgJ*<9W!|cAbrw zB4K`puqZw!hn9*@bYs$@hiXdx;!jF{^&z!y-BQtUiy6djbuJMsOB1SIb1koTU0|k#&6f0qS2Z@Z!P`h$%LlI~!PYmNsN-kE5DQAxQF_nce@2^JA7)Q* zu0PT#xf|ge&{~C52SWD%Q&0v=zjOu8nTUjk7lh|lLD$uE zR|JZ!UTiJoy2(HUe@h|lgS`{+PvO(bxnN^hE4l>Om)ffcS22H!hj{Kp+EEl`Fz9qj%+b)`g!LsZ=};I0%H1_7NXw ztaf!ybDi8*9Xq=p+mBGrO7@!yI*$v`VKlky4PzIW;irMHXv{^-H8=@ez7iw3ah4~+ zAlhj%{m8?E-XlyPqn^A_T)6QyJ!4gYCS!=rj#r;Iv$9qk-0W1`EwPf#`;dfM?6G2e z((oKqB9Ld_MJh$^AuKwuj3lk(e-(>OM!Bnl46Yd*=WxoNIynnL zy9I2!-tsv*8Fw%NdKj3svnY9=G@C}nzj2!!F+x8-osl8j{_cfi1E70)$2<)*{druU zUG_VxU%BVa;hFc)cDu2DC?X3wctN)|c?{`6>0Gwm&g>b=SM@F{4!&wt2^GF!ihM+2 zfk+j9EU0$QLm5O?Q_J8zwE|CgpH4gs!Js~u+jUCgev zwJ~1JufkO^4N*8wHLxxu=aMB>}qZDdXY zE98rx+6=bwCL;Q?c(pE;C5 z1m)zy>+Nt0RBVbYs(-_{OLN^p`rVl3IQ-wMsHPN>7xB@IB-RiY+lUZlmY6q^fV+0> zypV)7#icy=F8xR(s3gKCK6vq`k{TdERygh6ApuvNtVrw%(BEvUIM>gRkeW%r^We6H?8x~uo{dh^yCkUh zJM!WwQgi}c^O^L}N?O@r7g64raW3A^MoQ7}`n~C$Tk+3=7M=y4`NAX`KpW#SG?k+X zuZ37rY(!cM!7hf4r5``}g%zae6r58BT9!h-33Uy&iKtkhs|`I;xT||0SaHB8iksA!_`Q zKj@QMlmO&+J4ycnzar7_nm9^L)Bm0OIsVe!@m^s7AFYE6&+vk3gBT-Wc7W3`pr4m= z%!6YjsO6R3+jYG{_P$Re6|d$$0p8*Eat4|C;m|D=ZdVj@#%T0eU?auh zT>MKyhR?%MIIncHM^(YuHi}{({!T?3?zTW2YX0Ob`Ik=L;(l&-*eae(yc639{kw~Q z{OiS3u zu=tktKbqMcJi&hpXo9!8(Fa>@Yk}zHUHurZ8~insiCwo0StChP=(VMs@GMJja(8IC_tjI=wKXbf+P(7Bu>hfmot?&w-F ze{DydQ29>iW|>Bef8L}Y#x>z@#5j6LxOt$`#0S+}n?_%}y; zi1B?T@y;XOGF(YOVs`A+20tn1Y01DY$Xnso+z}UOkv54k6ZrG~3hKY-?^~btAVvP& zzkFSIo#52x=NDgVTx{|E-zYicwojEtWqwv4^<_Pmzi5~&2n3HFIzuqWtYOG9_f7JT zkDq0i?;Polf^PDtw?O*}%iQd(sABq7NM_8C1c=JROgs!lY|YOl>9pCG9x=l$T`G0{ z<%jql01sCJa1e!IY#=71$_2A5FlA`@HvsT8nYk-xKp3H>pn?E$SUg0P$(}mS^Q=#hCrzisS>(4H0PT0IFgk&L2hjxc1ksR z#rwdgNKxqR^2<3Evv;`VkMp+xa2}(KUK@12zgQg{F#YS4<`6qjr@*Z1#eQvv)li0Z zl?E2YxQQ3wfatrq62u84pd7S9F=CqKjNF->>co`p+xuidts__6|LCzT3|)_2numobzr zaS;k$4|#vi(u}0_sLtLA)h1SD`N6kO%Ur%X8RYa`#BhzN#hkekhBFb4RRk(sFaHf| zm#?@Vu{Wbu_fn<*LDHBtgs4G@M>3Vv>qevPBmNXhtssyOP}t` zC1o=d+a#0Y+mhJI2VNB?i1Cc*V9h44v!QM4F?EOLRE)@mr#q@Ig6&hk~l=!J-U=@;s1l{|MY=6<}9F;oNU@=Gk85}Z3 zi;5wbGp6po^%!S{EDVw7DfXBI2ENO$EqEuH-Egn8-O2rN^Ly&xLqJ*jY;O^LFbE4x z)vNt|wg8Zn1a4b%IzRR4fXFptc#YZQqunJV+Sbfk0|Z56w<>-UiKboV1D|A48>HOc z6rnYby*gTQ&`KV>j%OJtsy7i@P(8Fz9T8W)-`PD(2vMNi>;Oo-A5oU=m}57_YJe*EL&fI1{+yY#Uv~O)SdNc%n9AvWgoaThfvSCF!R&T!@ zoR+-M)<4FkNpzvug7s@7TnY zlS5>GY+!$N2bohIsNtU%AMoKQZ|=pfgDB43jld6w1>LWO=q<<-R_eXjf{vxuPmN=} zj)Y>p#IjgEuZZrP#t+5MG{JKJ&cBx^#l)ucS`T#Eh%8RPjf!@&s#yG4HtWANpS3eG zdfR5W0{&cf*4a|45U!~v8gk|fo)`Z_o2Xy~B4%R%q0!j>H*SSql|dl-7$P zGxZ16y)KXv#&%mGbfv-NYBt&l`Zu%f|#kkMG!}Y`ZqV(e4p=wO(O>-VtxjYF^EolFGb{6QulSq&nv`mb{%XcInJ zzJ_e-c=N9BQRa$hiD&<6q+!eGxB07%$tV=FDCkz`k~+SSmE03N9hllleVRb@!)ivl z&VflXSqv>>zT|%}d+>!Go^`{2`Xw#D`=xJd>UOCnh(6fj_0u#K{OPsQjj{Wu_AlO2 zJj5oW$bB^#V6u1T_?!BzMlwm`)h5U30*ZaQZeiM{DE2RiDTSu$`JqA7rns4PZtWxWVZlwsH9?5X33%L9vi$`mrj;{q7H1n)w&>i3h4F5!bW{kT} z=UPy14K^G>;sYpro$0JPE^}!!3tPC3e+ZvKw6bG*6gdu!^_2*Nf!(g=IH`_=`tkFinN_804oBOc?O{k#uSA}&RnK+NF1Rz=iVReK20SvE z8Sv^$Y>$i(g~v|SpnmB8v5RH(<)OQN-ckrPju`jCX#Db&CV)B3Yt%h~hRo1fjijs6 za*beFm+3~yJaexE@PG^@(MucoHaDf0OJ*P9c^#z)-C_isk%~Pw{R#Z!=5FUHn#ybb z=yii!)W>IwccSnU@aEC0DJYMIbN^ zynyVHc%}LS{;>6Z#$2$U7x!fTLZkq4K zTCNgEtc9^EL)0XN#Mv9_qkAIQ`K!R3zdpDfAq_03~&^*Ig8sj%j@I8)m$o6%YF-y{rXy0a9l zv^T#4H(6HX72|;Wd9g^MV8f9-QFXvmLke}YqC!_3s$@r#jzRHeS~R2c`~mR{R5W40 z&AB*tZKc_rlZ;u)2CYhHI`Ww}O1X%Rj!ss_5h(d}->`oiEzDwNq+HfMU zX;;1uaMogPv?+nbZfGR4wAsI%h-@!MZF6T^TRA;F+RKBv(6b%H#^$e-ZA5&0Jl9ZsE_}Jg^LfY3-t)yK*WSAik9~UN zmI(x3###%!a)mD&1B)eQ41>aj(6(^V#J8sq#b`x_2p11geIL| z@cK)Z>`d3m+4qGU?XTXP&Cq;~GP$c9pn-HhTIyHQzkRg7TQe>@!weZ78h|2UWoIK} zq2)zLI!^H9R7_9k2p8#c`B>DmG)luQZ}t_@KkX#tb)Cv?7+YUs|MnJW@TALJateRePz)L6!b)9ieKxdgC}QQ!vX% z&76&nMd=33?*~|Y3R#^LOrQLHM$XtE+*>YS$zm*$48IxF7`>D$4m^AS$5*~^baWI8 zx)U4Em5vo%_Q7rSMv4q{)Ym^we%VKNyS=?l%bD`a)Y1|U0)hOs#BF0qvh@bpg6u`s zYiKaM2j*;O0RB}9f5{r`172YE-uT#wC6#2cs|bpe z=mziDn*E=Wth4QiUC~Wl`r-TBLze2}P{%71QdoBlf-POi)eo<^jJ*E}Dll$^UMA-t z_WT2JvsR-Sp$i=R3^W#aUm##A_3`aFkXXYhLwRuMvttxXdXzuXwl(T&8EVV;p$N_Z zgX*i|wLSzz8e+`rP|NOSS~TiAnaN)c_wEgRp)iF{#(`T+Kd2a2}Wzl z9ng317quv!@5NrASr@nEX z&kg-_J4=$Hcyy_HJAoFjJp`EFs)IPwDwYZSG{cORW% zm7zb&R*iMG4*XZS&#KvLBj ztonQUoaYb&gZ39=emQ=Jz`XJ4m1fKs!Km_-<5H!R(YMFRIVu!~(g`o>QB<;fP)ui*cdyISC@&c^sqP=CUpfJoQ@oAPpc( z%JrJ&4Vj1Ftg~DZVurUiXfs*OyK@ouE6SM~Lvz!VtH7ZJH?vbUZVlRC)%6pb-G(Nh zwMuj*G2eqF0K@V=WtKNLloe)$THj44-nfV@pB+4incRpP#y7r>7*}8OO&!2)mws^v zKb*CEeDD({w5pE$V0fM0NMr2{%p4-fT1JpWwum{lKd!*!p#+eJu=p*v!%D}J7_kTY z{KCRm=Te(5RU!+ta<6%{1T4ET_O;`$v<~%VXdpprKy($a{Z%&m73sl22dB_fT>3}p z`lsvz-(W2A*%QtVN=9+7|EQf!?kYBU&CuniI&Sln&2;hkQO(7IMWL}hb%Y%Ae19lb z{X_Pg+vXr+eblV$sD>_AL% zpDD@sTfTW!pSojZZR$l`5;PcBE{OXm@WaE{xld8?o4spZeY2Wec@`##6}D15YEmit z!AS2(Pn);brJpqfo`U>3;1;hI?9Fa?DXS`_j5*sfu0`ECW822B8DBdzFv21DI~&T*{CU603g-9lb6T)ek))n%qLqq*BuFR)vn1zmYe^47DRzH;(I zLC$Ed4a(#!2|*>l#q&C~vvgk`@JP0B=gvpE7krk(&BJm1u*Ab%T83v^?y~_X_N6hx z;t=ot{HE2&8(=iQ)hKuEV#Iaso!@B^%K9?3>}7YBNU+uc zgpAVa0CgK&mrHU%Bf5(3B^;Q}F0#bqI~C=^%Mz2(YgE)uaB`T#Z_vZM-%WMCRgH}^ ziuWu5$04sUXUJzt_pxhfgc-n98&;N3mP~_Hiw~VaOd5GI{dWO>KP-~qhhc3nwJ?RJ z@ZXfi5)X3MsscHo!n9wzJ5f)}TNCIMSXMe#=$2gETietryt9AE|8zEupAmST{ze;2 zxs=H2j%5F%2UXBw1fp{weBJYRVfF_jgpT}}rw$w{#DR@TM~mT8hMfv~y9=c?yoyYG*o> z*QOg?lnK98j{P~#6Lam!Zd}0q{ZI8EVpxwDpWgE{xlO~l-BJ(R=(P(YZqAGm9kg5o+lPG&ORKeuEkiK z`C#&eZ6W6T)5zT}9b^ylumR}eh?Sa%w{@`+b~HksI8_d0muE+?4QVO_btazU(G} z$bn1^1OwqxC12RZT+~3T*iz=1$*bme;s1E@ygRSI-)doZ4y;7^TAZu#eZp+E5Eh;`6a_S;}hxoY8C;-bw+W_EX_I7~@rPiD}Oq+9Vsp`3NP4A?#4ib>q9 zkLbSI+QdHISB9Bo=J|sct+I~51hQK3WAyzk9Rq_xO;g0=D{Bf3N}I>HEAx&&Q5%Hg z?~4#lx7%I|8J`{WmDQMz7z07!u*77FjqHvSVYd|w#dzQ3Jcj29cmRV&onB@Nxu36H zI`zfZT9(*;!XY*ffSfMY&U6MtJj!GcKPWv+VVrT*Ny(4Na4KDQo{%F7pXGQkmJP-$ zzpTMj=Je>__`#eRv}Z*t(eopVU|LZ|GyDsw7% znMLsRs~Ao=MKn9oNO5gorQ-C9#s(rn3ItcaV+pz{h`#an^NZ86E;dHsLvq1g$iY7V zP7*G@^Cj<{|Ni}T$D{kFvJPlH&uYxDfq3om_HnzRn*ct)OG9WGGN6d~q= zvL#pgYhv8F$zgrv>w^Q$uibBhUf9JO6lJG(oIKv)W`<{nb=hEQfTf#D@)Q)J zVxcfZE-im@!V9&Bw@*O*T-yeB_g3CnpLM#YrOC#Q{V+;x3?$LLs4SFV-F_-qib6bn z?grr+8p{_t|J`^3YsVa~^>QpBenR)rqj)}Gzwgna++94u>4EuFvhBbl>U^I^BRGr< z74lLxgX}WhP!s zL;6LaRDbrwjpzi%d`7TL$(kd%6^!2Bcvw7fLF^VyDy$VZ6 zAe&4b+R0Kc8*4IE8wN&Ohtd6W|MdpN*VlL`>b|W7&X_cRD6?ff7N$f>nqaW?C09#fP7Bz3ju^tQ6Bb7t7QUqzpQC?^N#(fb+q+mXRHhw0lK6}1~0%li$Y!EXnz zZ=r>KwQ;{jdBhWbodfD(Q<-7p!F*@~Tx@N6*EP@B=ssas7Qj0*$yXD+Xwde?hr&jO z-T-ol2$#u5!p1s5W_f-VPGN3M;x4A9fONhOJwFT^Rc|_fW<1>c6xD4rZ!U2SHb18t zT$T%%(b8TKjVLLZ{Q9g?*=}wM{q)IBCO(?8Dcs46JS72XTV)K5+P}J!#M<9R%>nx#4}a<3w4e&%>huD2L)%a_OcfAI z4}!2R#MtvUvpj&b!_O{&J2^1IPh#@k1F%a}J>7woErSZy%7l(LH=i&|`2@4T?LBHrXln*WAvFcMF`1^3GIf zz5ftrtH@ZWDW%2M+1K&VH*nL_?Q8AM0Y2DcyL2tYma>}hp@C%IELU{|i93%>pW3?@Bu<(9${58dBWtJT^B!2n04wYffL5y30Y_KR5>}t{<34*&Fokw<3uh=}lh4^BmgPz4m@%1(cRgz~pQ6cDl~p27gQlo+JkPkx4*zqcZ}#UUhJh zc-cgz{D8(eR}I;%nl2?%zdT}pMwG=~-fOtf&7Hs3-?QJxmD8gb^J9*Tk*ya(LSYD* z+lTPmg_Ywm(UsM?I@n*)`=?nHN7C_E1!pg#fv+xeT_*3H__sg|6p&hR>1~*m{nF}b zVMb#?^{1EuF~9_`~nkuJO1Qb=mgZ45`Ejudsdti_I06Bhi6tBGGy$2Q`eK z82=tx+kCZbr1X4DCb*f~@)lWmyc?01375CfSR?pM+3c#5j;;{EE`qgQoSh0FDdpmAqt33a3Wg38oBw z!@1b*-*}^rv7uzMyFkiBO!;FTka9w09TtKNA;vIU3*tFNf4}56BJ(oAe~U{P1biJq z%QsAv{t0ZgQ|zoU5Ty-kXW6}3e-8KL97d6muXYW^QP0z~$B2GKcV74xtD|wEmsH|e zQy$+NKqtBD`^IkHq3n5IE-Arx9C78|d^T2bs? z=Z<~ejI!n{wtevyf2^~FX4a5ZG#RNf`)DEbV@7U^I~ZsDqH~BJg?k5Hkq_`h&bRYQ zbe2NaiU~WsTE-0LEjn_3Yd&IgdedK$;Iy-^Cy1fEfxJDxSS6HDlLtV|e6Xs#5qI_P zt%{0@>+Pi@)pgy!L|eEuH~>uWWXfGO4&y4o2uqT<5KZkxD0qX>8dunzU1^bH0$4Q{o4o;6{BwO4ycW>E z$OZQ2Z%4-8@NNTsv%&=FHvpPc!Pq4}4Db-qN5b4$c5a(bkY@;}CP%R-nI4c{m2%cAOEHND4_~@!d~LxH!!nJ^d1Zh&?%9@*;v<&e+acwdAdw{u))LV^ zV7#?}%FYqeZj2yy*7Ek#@bkffGBOESqR#8L$j-t3SlSaTXZ>c6E*S87(ibd}eM^YV zHzBQh0ak_r?d&2?N9j_XWdF-92M>?EEkK`k)N79=7jz?~Rh|gb{o3Yf`oG_@Sz51s z7ZrufLFbg_cj6toj4X;L*TDgdwc2D)=E7d?(O27P>%Fs-TG<`*Ep$W=-tbq$Aeg?#<@IG*|W5V7MJNUJPPBPZ8M>122qKLDyIeTQBy*c~t+}->A zyS~4_;NI`o`}ul2AJ510@q8XD8HlnqpFqk^E7qSsyf6{gx1i+iHDiEUQ#C$p`2PKV z7QxxJ5Yb&3WvdQRJlMTaq}}d@=mL+{`pec)8(X|L2|s+aAAgux{e~4~)NmQ=VlRlF z%*^r=Gj6 z`5CXO;QfI3RwnndL(zweDbi^gy6#RrJ}ZJtd9Os^!9}l;JLIvptnAi|V%DI7jah%u zEE(C0#wF@EZ@R=j7Z(?|^E#Jtg}i(3YAL`^lSUo7^Ws60D^XA*)JZsE`&{7^^$n`V z-;yZKw%|wqExddLcZR%sw5k5|{>>t_{3#pRi+&xv$eVB_*^A%J>6}WY{P`)$PA$FZ zeJ(nZL-jRZx%!Ft(`D*+Q&P4aWoiKPeanR53**2zcf^T1r8j~IjM;1{DVG#fe7E}q4uc`U>=r$~vW}~V28DpSg7|;v;6DB7_{ov8_A0r1n#TE&du}QO?5q0c zA_3stRl>6(IeCby2j|e-$LF*IjSDnUe5sNJ0&j2qoXKE(QRxyp+sKx!uU=1(BqQ74 zrd`$#EawB>DLmODDJAOd6IBb*J6`5nQ?TBEYOlb4&8@7~N~W=v$l=&Zi|Lln2p%b? zI&hWi1BqAmh_D1Qg{kITr?jD5^unn7+nPDtg|K|xfS7>@y#@;>OzQd#OU);dYy0#E zE<_uP#mCSI5^#_J{nwPUw6vVy1}8tis_jRZcy%w_xaf_GQyJ(=6E_hr@+`OU=a_F~ zjXMm^6l_c&w({2ufIGi(71YRy~bCuNzQ2&sEQ+Noc)dOqw5c_-^td)u>U?xU59nx#uY{`!9Ld zORYtSvc0Qp0p#Ynujtpx(Mw;yp=4-$1vSYDVul9_&AF(q0O=p33~`JI6n%H*N@lF2 zcQi#y*w6djYJRgpo%h1sJ^-u50Z&D-JkE`&78n@2nq%hW_NQN0o(^;W=&nEe@Dsyn z7@$yAKV)+dCz~sktFZjv#+7`J+JrpPfZ<9OZ)%uhpa*e^x#T3L!6+hS+O)Cu2KEF% zK=16I>1GK$30E~SU;1Qk6!SlNh>gqTAyFHW&BdCPG$%Mrdm8??OoA}>`zvS68F>VO zGVuBHTnkNAx>kjSt5je4S~FYSxV9WIJ6m49U%-`g=*{;)HTJ>8?xiH5PVqVgq)rDO zeK`v8aO0lk#)4uOx}(3R2gT+7RmAVcD8BB2<3;o zrR-}#R?umd7~hSgeSbmoS0Y6AIqJ0OKF7%pP{cp--LLqpw;yFA*I#_T5#r1rzUiZ^wL?B??SOo!Icb} zahiJACURIR#SdECk%Pgk0=HU+3e-ntW^5)YgaR-Bme+K2bo?WB zM-dpfJl7P=3MC%IB%asUHGAZSS%Jmbta;);+4>pJDOgBXq$zrw5*r%$--sTyYO&+*Y6-JfJ05MpE5C>1m<2 zBNTzbC$9u2864$zCs0#o?xuQP79I@>jt*Vo~t~?Nlzni z42dA;Y?lTm3=AzQ#mIHVkJx(<2};THHup%XibaTARk;vbX^2J} z!q5hCkJ>j~^A`yc$nLhOx{fV}l6tS6IQ$oxON-W7)-+;WcD=3m9$@gJB=eHIIJs%B z!HB-~xHmj;`P^8Uo=VA+WAY;$aU~SX$-g4DhI7*GpDO_;SEs>_Bf&ZdAD7u5Bn!D8 zX!zOT)4}tH=0#|SM6o-C*CD9M&yV`A(+dY)o@Qz-Yn#f${q8{&0C3$UY?E&1Fc=Lf8S_Qz7DrI6D{+nmmO z2Wr5E@jSZMdKd>^>o+7j--WT8wB*scju&V8*Q>>91bITY3GfTNBv$QIFkXxN5CUJF z--&3#dS_%4Ji)#TufH+3ZWhpnRSv=nvt$W0l8l|kkbXL^BeJ?y0C-)kjwogw1CW6t z;MkXHjEf!3Coi?jcy%&d@ZXVAUqRuHjcl&JE`o{DC1rkx~ z=$HNHukXvW&x##EL0-kiPcKuW=k*?KmQWWyNP)ZjrN`rN((1=h)%eHY6HY;NqynD# zHsy;+PDxzHIJ60nD0&XEBrL3Dg|_lict-Ixx`t;AM((ZM&ZW)!pqVnKdO^R#&VYN^ zlh#Qpa-NKy0pm4QE>LNL(sv>M)hD89&7S`)b_NUHQ5ms6-R5$pa&RHl9X};@8?PX0 zo;Taow9YB|Qw8spA#eN*gxS2jdH!uG;R3`c-0I_8)@d|3(wY}pqRc5QWA2(e7zvex zGM@SV#*9~5atV&VIV&w;k?s_aVUPm*dI zzpkT7Z&%|3+R|lLSk;d<$fHu1Bch1~$&xI$59-cm{8%+;%7DsKDC=jEk3Jcgw;8nk zpE11TwZ2qzm2=<07BQlsK$*-y8aB5dCwo0sdpX7qO^XGeogAAyOaUij^z%bl$#Z;h zxHjdKYM*yTp5r(fUS`M60QWa%vSsC>AF#0a;M%9ea=p)UnE8HR@j^Ua-US=d7A~`4 z_CDDMsl3X*$LoXA zqrj0jhY49UzO#Hnr#D9K^}g$ikly*^r8!{T^^zyr+Z!lbyOh(5N%a_q66@SrXn*VAwQ8uxR?XMsGAqS@9FcnU&?WJ_o>#uO8 zdj5sYM5^r93M3LYy4Q?<)d5yIAi3y8+`cISFLgNV-6$u%)JP?%?Dh!qf`zh#yJnOB zECZ+U!IBGd4{0kdD}{(e3{acRrOkrt%GEq%Az`k=Q*wc*_r(}pO4UcIHD5%p&czLGOXWex zC^SLt*($TBQGH)_PR5YM5J89pg(RlmJ0g&_N*);b=#DdL!6HU{kHSS)QA=evV}-w! zBCX9Qxyz>Fl;8?GQ1MLgSA4@TO3Ae@nY=J?94~y{Ocm3nJUALaUb1;$$p$ zR$AoWVemR;bH((jK~jj^rlr_XI~ zUSM=0g>Wt8av9K#xDs~inF#p&d=82&{pkh@nEZjJe7djPx12f1igGQ_LDwC+NQF*U z^E<4OA!KbY(?grA_bUEA798 zcMoI!^Hf7_$!G_G&|E>KfzY;_heNVE31*W@ch>EPbozC}?XYA!~m2mOnF zV@m^>-eJ02alHgEwYLP-jv9LZ8QNIfaNLCwU)d#u-cpN>rk@IMtbhulXNY=}2LV30?VqH-K@F?U(OyGT8f0Bs`3f60~>LTzTDXp_! z`2Hdlwb$D_Y#SD7Y*djH)bD_Prk%q>ioaDI@wfEJ`Z?zE_*LccnW?g?$M>i z6qa*$p^rmQj1Q0V0HFu$nUic7p&q2S5m-UY=+7?x$)VFQ&>X|#x6R9u2AcFGOFX7`}4g z;H*`)F1Qd*pQyb-F5%uR!*%B*oS0=5AjNL{C%}9~lA}$%_9Gy_@Q$BLd(i#lj*CeW zZ0poowIeE2UhedtH>6@OK{@!}#bI$7gH^E|JJ?@7@+z~i<)4C9KvI7O?umZXBcSj~ zFy?L+t=JKQ`{d3AQe?e-=EVz`NpV(QP3UKgjNBVJ^{Dm(4o(5PIEBM;)XIzGpO;B+sg2rv zsm%PB_qhlyUVDcPHf>n zMMn5<^Q^Jduk>$&Y{|@^&EXqMBjW`5@kqbj&iK zNO6}$zK8XEu-T}r!Bnyb)^I7zO}Y9I)TlnhVp|LoN9JCb34_>->0tJYC`j`KOVCe- z$dNQ|zk>KBRX#YH)xH|AO1m!FbuHKU6 zRz9_K{YMRc)>@yk?XWI=e-dwSrxX)<=16x6r;1c=sAiSvt!?mRg!qh0cl@!W{}Cu0 zj{R_%cmZ$nhs}FS(;u|K^XJRoi*)~;@~3z^Nv4BnR~sNXa7&pV?7s;-dz*C6-GNx? zPLv_HzIfm;ZX&m8&MFb+zfZpTT>p}??g43xX7&V&SvzURge7gA%qOHCnhHcvjnv=! zw2f6`f1bd>LjQ-?i)z6zRhqX#zOILLL3@3&p(piBL{@pc{S-CN?EzK3kIyIaD(`oGNFXDuGCL;V(*kxb^mfKEW|c4g8qHM`m3Xs_ z>zyh)NbsZ1utr(ivv03*FTy_-Yu`)eCDpWE&h3H5c%e-`*1Sv__=7A`IpZ8!mCJB3 z2;?T2{o%{sa#)oGt@x5(aISrO-IOL&f6PXn|K!~$7087=dhj2W!XfjPI{HcgNoKXP zSc(NoDZ0ISY`c8X?u0q35X!zHAKgyY5R(s4rs>5?xTaUnvBFti!zRgA_UE#ahk2-1 zj^bSi%qOlg5`Rn0YWVv%70}>QBfndiS5%EoY$(|EH5&H=8!Y&6C}1-Q=KRlU(I3YT z8m6Mx{M?@s(9=OPH} zCYGjW;+I4?1&MAfYliP@>3z;qPQJj?PTZi3?79-B;gR=6lcwv#>wSvfnt#6m1oW_C zuLNvRuD9R?CFjm**E40+ zFwrCM@}E129~hOc$GNzg^E4*RjZ5++zQ@mXuw1K`Euw|Sv?+Ifw2|K5dEV zS!jOMzLHnJg+d2uB1mxP|ECu9mi4R^bc^xo?wWw?6&kYMlP)JjGYa-Kud1r%rp9n((OQmHvsV#+B>p1}RFct`_+$csutS zz(|^a=(53>Z^JS`6G7L9Op0j>g`X$Db(gv}*qcqK7Jtb`^6#*AXQY)I!)Ob>Pfu#l zcU!-Uo2kC~aNly(1^VT5u%;E)0TkLCqvo4qf9H>mb>Hk*Sut|hAk6GyWyxIf9m8-V z@`&T#gGU9!^$3_=Jlg&)$R2@Iyqf8>d+?&OlY+kC`-AFhbqj(wncz=ljGzjsectXU z0g-SFJ7YCs@(&J~q;UHcanI+5L}tLxQYHo$wGiv0cY45c_S`14<36t*aLLn$c*$%R z8MT{z!4cQdixv?b8Za#QW|E*DVUUT4zPx$KGyDM?o|lF3ULfA z1%wo35IuPyn0I;x&X2eJ?_cI7@2U-Btlx+0-D4thHdHQ5EjYdhmI!H4O_^iAzISM*G+u( zGLHBsz1qA&;@GmQx98?};g;hJ;_d3ljOAr%y}zm;gZj4X`1@E}+*mb5MQ*lcH zuY$ZD$tO8A&kc~ec|^})cjy|;kKb&XfSjiBiay0g zUas0hS!Lf#HnK-B_d$3sMg|?=!i;Zur1wbZ?+=d5^$XXiGA_A;FPbJF2*XS2zShzy z@q_sC^o-_H{v_5fRwBp!%2bvlP6FP?zcZk9ml2Us`>!-Pq+)4~UC~=he*|pO?0?JsoGb2T_Xw2t#y_Dx05HIbob|W_Djl z{M25q^-&PhN0z{MQDub>f83&S@_cX|ey!em(ReQIcpa5_c~K|48=K6(N0rUx61;TX zv?I5iexReTj3g747Y8Lleo2Vv!y-&+eEXP|9mjDDl&CF zX%QDTl0nWRn5mst)489Ee&D{xk zxXN&LO7k@aVS%>1x2P92XWA)fTAKJH4s3=R+!7_vch|3I7#b}v36L3sp`6eIKW~U%K%|Mqk^sx)^Id|G?9JqKfTbI=yy&{ zXKTTkzmEj2N|VC77dOI$xRJVW$UX2u9_bi*f2)6k&9|IXWVnu|+n@CLVklQz^7%#X zwYQh&+{Au9QR3Qv_N5JdRaGJ7KlL5ohRN)|4vR0kQHq<7G~m)iD-(cz_CBvskHI7+ zWkE}h@G<`h91#BcT{j#08sr=pM%>{hpIO_EChd9=`q3~2Bo3YgwwV3i7?;~khH7sA zW&Kh1vMP&o_%5i_@;!KQH;>5xKf5DcSHorw!RxZFUp&wJBK%&MI5UqJH zKRV|d;oRMhHhAcDBO;{eBpw^p(kjYHF1{o3dYMs7Z%E+57q}m#xODo&V3yXFleBHZ zEIa)}f+Q(?MPf$Y?RK#^_=CbE+ulVt7`aw??gG-tL8fQSa*0N>i|j?z4yzlut9M+Q zUKu%f-&x+c3Wkh_;VmY#oJ4kU&W221uQh4Hz7m@PECRDx~_7D{-uYyoFg(b!Pch zC8YH=MAK$VuP6^Ss#@pb^P&;pf<#aLR^Le)SYmk#1XMfGn}_T$sX;0>>UQ@kG-K~D zV~k7^`22p0!ku?HF5>BcshtSNh9&=bpX8kgu{Thk=v8papJtF65!4cF~KANK-nz?hkj121v9$m}&rV#3y>hosXvzoJD19#%a;+Jbe z<>G+Pm4|tjv%+H0=$=Fn$&k)me5!MehyP>qxR!82V9QA!A z9W%Kzsa-sV>x}q`54RGwp>|+bEu9VBSdgIq50M?Z5Zx@x0Af~gu5J^^5|Yd1aZWNU zg>V_qgJ#PO=+^#@vr8t3ot+x&JtOMm` zD3p=^vt!>VXAshoN1m_jn^cCa|L*cM<#&rg z;2E4SaAr)eckywY1^m4^r35ub6LSvgrRi=aMMmARA|ne$n`uB%J-nYI_4hr@nS9uqXnOF8;rdI%H!d1@u(bIbwc35vt0L1&1Ce4B z5E)1{HST%VV(O2;)_o18PbCC>cL;S{A+($nJjLa3SKiB@Sn$WbaZ$P_&0%H!@V(alg3r<|oJRC1-v4Th>I?nn z&@bm)iolL2mAmhK2g=A5mWU*USvXZA7BvdbJP$O^^!N?_riSFi5>2;L>IazZdVyLj z!XvF73m#G4(5)A>+u7wkaOsY0KHaRb?E5VDkS9W0bt~Iwahv84De@7G@Y-=1s+zi!85bVIZ&(uvci*p7hS9WVE!{VP1c0$#6Ow@_6+^^u#a! z9z-sbB|`Ghs1$leWWn=}lev;g%VK#*6cJASb7GouL}cjU5V1B zTjt}bUQ$%;y*UzQy?+|M>e{t9l+Lf>Cp=H#xyW8!s8AJbml$;c5mSmCU&Cg=3ggtz zx7uze6vRJ2zh$w3j-OXDn+c1MEZTdSi?WB7V&1n>L%KOc;VvK_j*!duz$|I5#%a$QR299KE|~+} z|M4J;R7W%&Lr7+WEf@=}`+P-4Cl^FU-~tQdBGfV*N=*yFtpzU_G)I*q%KAW$>2H)3 zQ=fjZ1fgt1&*L+40z%*L(v>jwoDMwuwV#{(^g51^Hs8T?|E{ndc8Hgd5dN;> zZnK0^rAT|wPJ#MpkJJ|emA#D^bxD;lsl z2A?Uq;Gy4-*CG+1|0uNG0a_Rq%sVt1uv!=)7PVecs46x1H^+Wm)~8|{Z@HeM2c2lT zzDCfP~~hH0POo{{km{tmK;i}FWa#am(!wMd%Jb5k*t za^$rruZ`udz#J2uMg;M8zVVu`V5h*!n&La-IO|#bl)kfheB+l0u}64H7YL(E%UHfEVdRTz(jmjIu(ae;v!%2k1uB z7+PTC^kNzJrXm)8ZXdHqG!!nV&o{itWL_FLj1P2-Y_xHZv z`jC5&A=s5&NNhXHTrnBcKVvDucbR6_J+h;pK{WDuiwPBGJisznMEDc30cNBUpR9gyk3Xe~3)Zr>~wOgu<7+oiPKSQ{%Tu0Z7EE zYz-5E6!FZ+^!)Dg&tQCFRpAYZ&4sP4?n_=(e1$KuLy)r-Vh$!q_zy2EE$H zGf!oo)OJ*bZM{D2K9?2o+q>(rAfy!dghkNf7(t(CS;<&tZzT7o<;>Ap?u|*=l8J`i zS5;W^OK(r*>P+R#EJz7{T~Ju{FuMA{Uj?C_{kA6s+Rt{4 zRQ#!#P<>b6uWyOmOq?5UL}Q8y0A@TdpCtLnU$&b1k~7F^L~@-R9T=Kmk43}`N(D*p zSQ)xh5fP&V@bt2%<>$y)>F)CDbN5LnAx7#)C`?B|=qr0?>8tZ^b9EJVd^~i2?=V|n zK<@WwKtz;)>hMsld{rloGUO2ZCB8vnJD#F_NnYY!8#hTKT8V)&E6bZZDw5}|7p3j= zF<5-7Lr~;7a82}Hf57)(<)Oc@irq`GZ-9Lx8}zHdBBqX5)m~zb=rQ7FI#K(@V7XvU z-P>N69Ppu+wK57?Mf9UB8gk*H?Y>BcZvjbWU_R20z$?9V_x)dcRyzwB`@^^OeQPi- zytow}`JPdW(@Z<6Kto?FBJwAjtN$wP(HqvxCKBdAG?_{Mks6y>?#WJc)H^$ekD2CJ z?uV{5SHjoARU;(1k9lpcnQAz)AS{P`M&L`kR%;!tNt*Q_r9U=;#peYhh0;cLaVml2 zec_qZLj&hrzBgFa>rjLWoWsNi;FEfGtta4*g$auz$!Ph32L6E(Y2Nrd`EMN|wM|-p zLXSqX$STMkojXEKOFq=d+@^}}r)%S&DET{$GyHq8#c~|CY6OJ|@aNK~6jY|uhxJM3 zE@=Gxg9e|S%qB3Uo_Am7c|H3LLxw{?D0D_WRtF0?`c&uZO0L#^v%=)J?0t?O317ca z8pr0jqm`e1@d|o1w_iVBEn&4NqTs0_QMJNf^>ehrXnB0L5hDD9sW;!x9VTBFM0)|R zC0CTa#6WBZqL`{ABHp2Nqjmd2`fBAx(S$FbtPQk#Nw43D4Kw(My(ik7Vg1R_)kjpA zRXe_P^uQVZ?WKU2AZc-R-Vx z2;XC;dSmlKC)=L-O9s6}4%f|u;m@fN9!nk%Pi)!;lm2_Ozaj0#pcjI{=XSGGr?kyJ zwtBP8XKRTbf}7dC6JU5kVuuuDx(Y@;uQhFOeeIB3W=;#}4;V%S-*qPKFC_bCVGUK_ z6??L6aq?%}O{v5^*p&>SPdb@`&;Q%3g$Ca=0P=B&Siduc3I+0&y4AXi2m=QIRr;S` zxw^!uDQkzoPspcWGr%r4x*&ePS;jv_Q0u8Vx1X)bjZ#XAhkJD0y30V zS}=Ym*>868S^QP()WealoRXu~sLaWsn87{$)H%(?c+_DkCbikCzru!|N4}ZQ`j!(0 zb(_8&+l})6RElgv_KS&Dd?}^(6f3mWK zf2b}?$ORW}=HnT9iO5L8ZsA+(wE`mk=*{M(Vgd=yszD^Xi5Jbt^yV%v@qYO_)H@=V zRGtLrObfdDOn<-`Wp}n(G)Z5RNP;!)zv6P!cLn98-UB0)c!d;8$&DNr>e*cH;|pci0NzxbNueMh5Q^ zmdSksV56u3a<)NLN?M4+Rn~pARhL#E;BP+EFcUi>4|P3An_e6zeIHAZQ3a?P+3oFpEB?I*Q%eIU@PfmZRI@1x zt1i{f2Hs?mvY`*uzt!;VT3kzbsy|c|b@2SMRSCguBIk<1&BSD(2=3q57M#C&;Gie^oZ-LaHfTEs%A>t_k|E- z;@T@I)o1;O7=L0iUy49VXH8o%S#e7fXDowWC0UYca0D+2hl1CT#a-tgf33s21Rhu( zdr@>&Ykwv93_mohZ7K|!eUk$1@s`O(Mm92=zd`cgX2*n~FcR%hXE=_DV=akz&?UJ= zFxq?#Eg-$a^ByUye3zqW9ihIvPgg_-Q6)A&sp{^U8q9tfGZfEhTAHAN+-Sbpol9vH z9m#%^m4&%QPapX8e_Bjc2=@Y8qFv5{pDw2>yK>vq588Z}Sc0GzgQ4ur0T zP;2b@*!yn&yT1uqkb^=#l4MuJE~=qW^Ealt3es6+K^j}^gy)ZeTh^*bD|LV+tnPm7 z*i62lz!F#w6UF7gD;Am=jrpRZ@s+A0B7RcJz3wuTr2e~%=c7-h9Qq%> zHx@HcUSRoNi!K}@{zBJS6F+QNtR-q5!C*T3GvO+xEwR`Wquv?i4nuAC@~FbIjaI?6 zaL_i5Ah+r>Z2#}mQaZyc3E=G$#zg=l`+TK|;K2GMZeE!)GuOnJcZ1UlULroDwPpRP zecm=fHla>FZm#pmYPmqA(sf)FHQRy_vvn;)VzFo6`P9BD(<92LkXZwUkiYE&W=vBd zuIuBAqQok;&f%KHS#0qA=$!T>vNT_LPKHztF!L|&zw3Vt$ZGfRRIb%7q!!R7ao~!e zoc*+xUuM5$WCgu<4w|YKw)PNs6otsw>3c?oi;~s*mpOr@A>-m0oF3a zl6!{1jo6G2SS#qh2{7q?Rs0|}0Qw5+bV*@{N-y4~Zf zF@L@mSyT(;h=EEk01c&#OR9LfHlw592QHcXB)6K5uCUe7oMDf>YGte zZGe`Afdj&KZTKuF99|FkNkGb~cM@nFu!SSF$hZ6q6jlCVjaI5VR*qMQEU}_nuJudw zORn85Z1N!A5RM;bbYye2li^+>+^1K?jQtBRK!tD3L2Wy6%x(4eprE?vqfLD`P}`YP z#U)t#y_Zbc%t^Dm&lqo*wB^ESeV$*iyDsuA?Gs@{(ei_{pKxV#whl-mdagHKA0L{^ z&8PS}T(;PnNU1b~afP+cUpzwXdC+y)G7}DiU43}>+sQTHd|Uw5k(z1cJh&`H;g0E9 zKu`MHmaC*XM*ALeO#i!5abv?(@O-MTXQX>qQbW*k>{J`s0gs(5n){@cE7SCcD!-%o zLuB7(UZO7Nn*00-?GF&BR-fqzsXA z+3g>^3;49rR zRfp}LD;z7UlLL?SU*MVHHrSJ9fSW%=uFsTA%<#X>R8?c6STZNxJ^i$&KU6Lc{;+Y{ zhsW-&pgVFyKlValZ^d>z7k4IG$HP@-ccvXNssh?$r>xnM7RJru7qxN+oJ4mJxTW}upF?8n9mLa7)F(E>m2PWSq-YD>_MzG z?)M^A$<;1A$cWWzvWL%<#+cX0pVkdEt!s?S`UW#M_oRyz;7#ujoJ2 zq-aU!J6{2y55O}MDo6g;Bt$c1Qy9eWLaXj;px>tYqZ8_LX!BQF_NQf%HhyRLaHo9| zPuj~2I@$k3guw@kYoapwamT~j;uF=@G>(INUu{iwa!i=;cn^p-ZEiPWYvUI-^Ko!l z`>yh^Rn&yk&#>8P4z0CwJ_Fh3fcWw?{t@Otz38uKQ>~$A9+#jDv4Nn*c?7bG=UZQG z{j0eSv_ZzH81Waw74U~Y%=4{-HQb($j~hA2XF8s&=ec*m)+73cW@0ax}%sUSTGS9JKcDQzz0a zMR6fiA>4(uun@Yr{NUkO3eL9hu}lM<>+=hEiH4;)fQu;hqJY~sD_G+-k^TD{G`i=| z9T)tDT$C2Z3dv4k)KJV2?;y1g!$Q%Nx={->)kDY$iV+weYh!KKs~N|5>UzJ$-a8>cr^-v7&FkOW{F#OP*X6(>hn!VZLYhYDX|PdeI=5AQ%K z+Q;O`G;;FEd!4hT?$`4Rs%%FO4)}4F=^5FJuVkXh3e9`Zig!A>TZS%$2=0!B4s=`d zasOYd8*Vu=6wEM%CXn(ft!$#Nz=}{zq+Anr22)-om_WLZMCwr;FL^~ZG}61CRgQ-G z3L3NznIs)Wr$$$@DukaAD)+H*e7maLWGeMqjzV)Kh8s!%`G>VM3Br^9lxObynb`Q; zP(`z*&7`X9_Cf55dRNh)hKlL*v>`68l@9BLkD|F5Z&-Ruo-N@qk#He*%vZLVhYBdIV}f z^UU|SHt$N5cn_+`rcJBDvE%WRn?{Gg_IKeQRB>g8q>~4&` zqxl}v64HHpq$Z~Mz1{Ew&xk5?P0GullO)*Z9z@Nx7#5Fn)7#M!Hb^K)%v&}njcOKS zCsCecLF?e;WZq3H4sm|APuGH!V-A&d{(G4g$|aYC#8xo;7j(0+k9aC!F)JLF@YjHhE3 zX$NE?qN@^>m}7zoPB4eOo>lpsFn1`Py_YV>y>l z6~T8_l5pp9XZU5e;qw=cHqO9MbNUiWV}dbhEoy`z5j1j(L!#qhJ7)g!autHckl|?| znQt_$Mv5^ zfZ1#`(E;Y%j-R>FdylmO3#RTE`8WL#ZR=L~oifx@A|E!oF-0J?$jiU3hH}{ACbdw= z#Z?K^BIcRYrJh>}q^=g7uZoq{Lj9_|-y@)8SL&9LGBRxV4JdxBtP(`NiHzC*80qiPOxn5wT1!I)-vGAqB zIb>6FlzlmK#|Ozf%d2W@eTu(<<5yTtrG%?{`K$Vdil0b;QmOCdkRN|B8=hNnHsEVv zc!CD_%a6LcI;%mz(BDH=feZLv_Eq|}iG`+3h1toUo!NH~Sz+PnF5&Zcm z+&B#xU3li|9`709(oGJjc5+CuxB#wZS0VPSO`l+x?{}TY2+~i#)uel{#e()yzZU*H zbRlYKIis!&Z(G;GmDCr|+VpLY4_J_MNd0vwr6NIp_N~e1G|z^E%J-{NZ)Z>-oCpaqoTH`@GNl z)VIA>VsSl&8$BI`-+T!N7OKsV3fh|Ato|gYFq8|C!z01Kk1i^ zK$upTJ9%YTaF4lRu~(J~Pg}w+JDc|i5(EYRQ=lY$z(|S<9RPD^KYjkIwfDF>YV(21 zs1={xo%z;3F-3EC)j6IEDx_=QHgY+VFBQ4NS*MJ%9zk&F^M1X3yYJ}MEV7^CTd)2a z#K)^pN;YYgQ%-`gFoc&K})VYTd9RG8e zubuoDkTYVA5}W(O|KPO|RDOT+h|2CPHu|rygl}A~SRNYSlbX?fe`f{scrO<;F5vc$ zDc-K`T1(6IYkvaTAW!)U?t($c%vsCNtY;qh_wZ9$QtVp$iKlc|Z0u8X(a6u?rSn0T z=HIu7Gcm={(=3>Siecdwu0A*wKbi`lIr$%}n=;2}E;)mWgPhF^FMrN7KRwQ2Ox?J; zTNd!`bFDyopJfx9#lc~0N3`bVEKfWX3hK@uCk0I+PY7AZ@`h-Kp=y|8fq&5CFe|mu z!(;%9Xb?Cd3@mO%XK@Wl?iys0*vXXK0CRU||I0K+*TaZyes&s+O*#FPZly`C-1(d~ zc}#Me*g)6w`fiL6h&DnHyc$5B`{gtcm8&p(BOXbQ5+A>NCwE5BVQ87yh9$@CLYw}f zik+fN6^KBPDe(78uL8_E zj)U*=rPK#Gm8sBmV{5=iK z`O)jY3kSk|9R|)aoP6e!ue&(+A-)ZhVJE~P7&=Pt{3k&E%ZDt$gc{y%c$uch*YCO? zJRaTSlOZUJ85!g&UI}KlYjvBP8;$$fjgltf89`1`-Mze#QTlT|)rHB6RcRz@tnf+E}qgQ@d44_j#%AGy2$5VKk zmWL0}Q#e}158Z!o`1#O`j0Buezotc(OE2p9K^r5~IfHS3#MhyqfEmwf#5be~ zxlRtx8#@)foj18JN(TNuwGAKf3v5jF`gjVKn>WFFj4bMqG@0*H3bB697Qp}2|Fg_V zAT7bc=ugi8xHb?Sd~oBDfUm^i9%|24O6wn3yJ2hWTGcC-_&L3wjf@t)qE6*^`c=Pu ze!qS(GO${d5+Mu(Xq7X|O#$CK-`T-5gUe@!lMwRIoNXkyM^r-LOkNh-$ogMwizkUk zH_D`IO7UBfjVYpi`!;9s4{CUMDII{KH ze?4ZI%v?wowg7OWo;rqJQp8bYy~X|1bZwuG{M-iJiV&U}Tay|SF4Z1|EiDGYZomFH zFFo<-Va#v6U%jm#-B*8bL0iQJteaxOF@hGWE6&FA=tS{f~fe z|1qSbdL&t+PW&aI#a^0rc_H_9nXm(QdxAMm=x>+pc-mW3P01ic3Rrw=pLxNCE&#l; zxn4FXL0!)X!F{cIR3QOg>`cJ2uj_#NsJzd8sMUBzP7aP6v_#Bhi>(wRC$5Ya(M#PW z>^IrABI7@3jGB!JiJyCQWU0tuNlCDi6&NQUc!Bgc4~UhJxFaTAz9`-qr4S=gS|ej_ z35Pd@iDP~h3ptM;Omc$0hX8yP@uZAw;;XcsFnBXviZL^<#JqdPs&iI754*PLC^0FeyRYDUu@ZJ zza_<_ERkU{FveI1CB8is3zoJ7QRIppx&5~E z50ep{o?21ceU`scy$jnC3UhuRBH9?XNL(W%3fyQc8PT!1J#mTG8XIBO%AX@m%ZwPj^9RK-u%twq?C$&*i+ouI04hqOBkemg0b;wxof!%0{cmSj|JGj180(2K zBONm?uZqyM*r=UP{&U&5OB2F(-!I~Ap((CwciR$^n51?qBFppc;-H(9@;!k67DDP0 z?4i~RN1fq$XVH`qG?>vDhA z{7kt0@3V5fJg&T=f3JlalqlDSf}XDZ{os5hKXmbnkD-#gx>uX2$?}rVj4e}v4kjagP!5NrSQJa&U?Z%XLIeL z7&Vo)LqiuSQ1N_X^Bqu8K6}>YJ1$h=`?HsldRHr6-*Nac{T)eRsb`@7O|pC@O0sEt z&j-{hRJ;D z#V|`p4@|Wb3(I`@Z$PuMT-G~`a|SjXI63bo`{n@MX!O4q-qN|7^=P6S?gn+#N zYR|$T%f2aqyKJx+)5>m%qt%*Z2+xgH(+hTuTY8=19*AmD~$K#eCvlP#o@@u{YE; z$lklY=RAmmz!o=RN9c)vZzd&_vJp9;e|5nDtq;xejKAuFUyay-69% z&l~$RfXzWKPEHLNJHpI?+2`xjIs%RO2a6}#bis$=GhY5StLdLowA9#AN}&gzZ39Er zqjcQQoPO=&MjpU;M*`ZI{@))+!7}cvE+Cu`zJZUlP;p{4uOlBosxG>7&Yt-NS_r~=@61OXG%vV49K63deLC7i53^vhw5)1QOD+QyY(UeE- z}i3Z(kT zXh$`N;E0!l*g4y|K*;)G=bDv1KzoA7Ek_BnlDSe&*bFXh_;%-*BfXE+i*^cPK*P4| z?-a{pp<``$kR_|Bo9DEd2FJT*&?{IE6p>k0XwOs*xLOsDI(M=Ov6Miee6k=qJIq-7 z!$T)9Wd9wXmv0Xmy7=ym{c3~P0u#vkZ0i%Y>}5RHUgrk@hq|@VaN~Z#C4qOOvXFs< zWWIq(esa>onqO_g-1z%XFJ@>s0DhQHzjgm!H)o3xMwnh{_8kk5{EyV#aQq8 zVVix1v=EI9&Xa78Q>98ty)$cgcyqA*Sx*g_`ZTu{Hhl&xiezy1e{r#p-)l3eP!{iH z1alu?TwVzq$iRX3qn^YOZ?h|17oGR^Q&gBpu{9`g^t@ojhq++K&Nr&&_^8&$Fi=_Q z9_3M9J^T8{U5^{S)*55V?oX6byxp0_A8JSu?&x;3W$J-+?n_ITS0*pAllVOp$GWw5 z$u7{U?M8oZg0}Ss#OKrJSx&Jq4MnL6`vaLh`l1-xqBdeJqd;x%Meh5AqihtBxMt_; z3&3B+>?+VX&xz{+P)zk^2^LuV4uRWBj`6tr4}_1RJx}yN%CFl*!H1*nx+SI-{_yD& zvz2*}3@nerWTbZZ5`Agsd-G%tdMA~ATMq=;cA!vYvw2@az}rP_bm@p|6q)F&%&3h>}&ZJ!@YGF7hK>_6z| z1&uNOh}ePItwLAsm%hslRGny5f$ZQpCNK=%XW*)EVv3p5OFx#K63W4rsVj1bs~Oja_<+jf1}%vY3Fwe@`pTd&skA z%$^M<#3IA1q|YnwK8(cRaxb107o=2dw_56)n@^IYEihbslEZtn^F^c(M88&Ha=KMQCIvM8${9Wh8yE_>5DNQbDf>U4zyz^jG z79XPEaK%ct`4l|WjpVUm5xLLWFXop^#&-?i-QHVO`k@T`@oL;V{!+MwcDu`@HSYwh zxk&giF{4#$OX*bkF=WBZ3wmNY5S(VNhi>%K{9WJN9_rZhca140KAM|5}4a5``lM=5{y-GIs5^b_FtC z^q^N3_g7zE-@`Am6O>>Bz7ZQeehLgQ$9Z0JL{9o5GhjH1!TIJoqrG9I{hNtD+lCtN zcCUVw^pp>rY&Z@SF!fS@xkPI{NPsL%w%gpU4>3s?0j(~4IjYor$j>TbEpPWpczQ=u92}?oOn$+x!64GgSGnJAABf1>5S%;xmfT8&W^yDwE^s^f$d|a#;L`Dh zi?mW6v6Wchh25>^BAs<&GPXk6X73A>Y_)#g@BL2sYpcHlvHn*SNVX?ns@haTkLcQ8 z()_f*eR>bY%e~-gN4>a6#Oebh`Fn3k!T zY3g_x*p1r}@SLx0y~sukA8V{?20p5RDek}*deHWt&b%6(W~I08YO-)h)3oSIE0~Xd z(|A5b;fNu0;|JVicE=r5*K=ej>d=FwMwv3XmtEJ~l;0h7h53P$A>0k9Dz1 zVsP%O?)Fna!)1=v{l>|x@gnu!lel;w@xiUdBqt)t1UUXD(_N?iJA-4hP^m$^^tebS0Stt)dP+{TmN?2^&Crd-Ds0&*dEW^TAy33#x7x= zV-Ypp6nTN8wX(n15Is1Sntc>{P~MLG9>ECBUBNumDHoirexSAS_k{a@Kc*ADKN(Q5 z`vi{BS8UHdQJ_vXp8$ z>4x93rPtgEDKlf1IDJrVP2GQ8sNJglMrhdV>fY9A9 zDo!W(;B)s6(RTCM(1B!hWu@?5+Hr({%x8$r?N4Hqm}vx^u-4ATfU@`&e8TFBfq*|j#-E0ZkJ}ZGA8goB!Ur5 zs%oWXj(cPR`MdU29OrYQDxu)Latoqd8N4+!?AY$a+Sfk$*|e;!&Lwb41`PGB|Hfbe zIko?jqD?%8m#Sxj(Ay<>0=mF;|ld^!LCGs@q)iNRjwH8Alwq%dF;dPBTon%K_h>4So$*R-$&wwz z?n^4ag!@}_h3<=_Cp(J#q4p$JXdpzLG<#5&XzRVaf-2L5j>>sTeY=ydsnDmptu7c1 zT`*d}3GCIJ`3U@*2*V9OZ!pVuw~W6vq1F-mR4@$1a7LoO5t- zmRs~XE|VQrjgVyaJNEmb9kH`R3sI7T!;h8IMc1y1MixoX8OH%%M|WevpM)rNu}e`+ znx`93V3X|mk%v?Jrp zo+}e=69=ByCwvz~jz)*O@*pA^I7Ox~YUp~?8h&HKxyTw70mmE+xoOm(aqdJdW>cbO zhV8cZsZvBeY9mq7JSyXY)yR)8I>D=!^OytJ_82lB$=@~&T;GDxM=t0C-}4Kzj+wNB z>{#UBZVR9C?U_IjM_p8Xwwm$~q2N0uVzI?d6=~NkO_!c%TYmlJZ>Jkpxu2@1&xG)& zN!BvM&Ao+X*VQ*bt6JxDLbAo`C3gvbA7aQo^N6~0zo)Z-VPo3pCiXqwo(c+q@;pyu zZ0&i9j?%FoGJPimqn}RMNa&6r-~+PaK%E+11^MRWGwX4bxA>mMgEd*8V2~7GBYuW1 zA%IN@zTJbL4V}^F@h5FGMDI~D*c-Imx!h;5H+bC7O4vWOIa^CJnXp9wRW{l_M^j_W z0VFwHLqx?yRJCIir0mfpZ9DP3wJqzEdHFrX!Bw)W;nnd&Rj7t3-t?5yDMo-7Ftj|B z9N{tRRK1jV6k*+F!_hy351;YHH^Kt=-3e?Ydv}YjJTUuxNNp{WK{uUjx?*u~_n~Mc zuQ;7?N^~;tmyZTzs#E7cv|+!KdE~@7 z14#F5RO7B^2@?8{oQ4-@M8Ur2t3RUDtx%dlHkonS5okXwTZfL9sMW4$i?zQpo(R3> z3iH%!%g)oCQ@b&SdBMpT?lU%+vE;=*K;HicBLxEdU1;KZq#LhlYMs1AJDbu-qk$(K za{Swl>3PvryA|+3^(L-frSn&hR?;}^!g4GOIzar~1Ts0KvDe9$aTzQ#kJxEK?QTMa zXU2vd^_+&nYri3Nk>AW@)W;kBib%KF2!JC-R^90f4m1u2yv``hD9-p5RO@dtFEq`J zH}*~)6KP@!W}9PMCfq80>o=gkhcR;+Alk2@Ep_Iuf;4`g(B=CX1M+phhBZc~$_=Cg zinEez=waAoFaCPQceYZW@@{rv)DzwJOX@5-^4Lzt^Nk)WnbfCoUtRahM5qR3aYfc7 zGXOpSGow?ZGk|FsU*PjS=KoGV#QH?tW9N*Cd6r)zgG^6ra6r;xCXm&4JY}9UVNG%QY1R^P=zv zn&1LeLg|V{rLALZYSiC!WsQszx}5V;fY6)=I$OjxPE(La# zp1Dh}yHdG-PC-Z2j#M8m^AyIU9=AFPLxkbqJub0Vu-}B~kX`HbQXQy0XX_DP>GNVq3RwvfZO5$4a#A99$D# z@)E3x0MN%U0EQ)=+~y^Y$ctNuwLBLWKb6#={L{p6_VUq9u;+C9L<=r2-6A!76BWe} z+4ewzOSb$O2Yl;%^XV+Ix8C0C$f9lX0a6Trk!#=civY#neaRGB&zlPs-{v{lU$L)` zw-4~wvsvB#JNr~+PHO~8)m7$=*_DQbg$jXm>S^&o_|BMeI@ZXHqZUEUighuDDkyD$ zNU!MHbtP!DFbEefui}|Odd!YCXFE{_7Ym(gYs>|@_UpG}dV_J1^=wL+xZaP9v#k0@ z{?Qh2c`>rSv8YX<})L08y||@!ti8e8|acYnmul?ynd2NliGP zid+L$QFOS8;&2;@-43T*9-@EG!2>w5_g45;bvV*{;U8a;^)+NUJtM4K@TX=}9119c z|GSidZRQ0+XYJC8&LjW$Xs-^_=~f#9_9R|RmP1ee3Y!xiirHP>*8$|;0Y;ALMlwZO z-UR{xy3xh}0Kk}=l{T_U&;bBqdQ!Bh)LRAsAd=w&ZTen}hc@!u`M;O{Pa6N9ut5=x YV;D3zGRZWhArWxT@WGu5edp-^0isV<5dZ)H 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..3ee5f3f3ee2108ca1143e9ecf901b9f7623d0820 GIT binary patch literal 3024 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 SZEywv0000sN( 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..8143af6 --- /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 = ocarina + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = wtf.caras.ocarina + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2024 wtf.caras. 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..61f3bd1 --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +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..42859ee --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,1066 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + url: "https://pub.dev" + source: hosted + version: "67.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + url: "https://pub.dev" + source: hosted + version: "6.4.1" + archive: + dependency: transitive + description: + name: archive + sha256: ecf4273855368121b1caed0d10d4513c7241dfc813f7d3c8933b36622ae9b265 + url: "https://pub.dev" + source: hosted + version: "3.5.1" + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + audio_service: + dependency: transitive + description: + name: audio_service + sha256: "4547c312a94f9cb2c48b60823fb190767cbd63454a83c73049384d5d3cba4650" + url: "https://pub.dev" + source: hosted + version: "0.18.13" + audio_service_platform_interface: + dependency: transitive + description: + name: audio_service_platform_interface + sha256: "8431a455dac9916cc9ee6f7da5620a666436345c906ad2ebb7fa41d18b3c1bf4" + url: "https://pub.dev" + source: hosted + version: "0.1.1" + audio_service_web: + dependency: transitive + description: + name: audio_service_web + sha256: "9d7d5ae5f98a5727f2580fad73062f2484f400eef6cef42919413268e62a363e" + url: "https://pub.dev" + source: hosted + version: "0.1.2" + audio_session: + dependency: transitive + description: + name: audio_session + sha256: a49af9981eec5d7cd73b37bacb6ee73f8143a6a9f9bd5b6021e6c346b9b6cf4e + url: "https://pub.dev" + source: hosted + version: "0.1.19" + auto_size_text: + dependency: "direct main" + description: + name: auto_size_text + sha256: "3f5261cd3fb5f2a9ab4e2fc3fba84fd9fcaac8821f20a1d4e71f557521b22599" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" + url: "https://pub.dev" + source: hosted + version: "4.0.1" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + url: "https://pub.dev" + source: hosted + version: "2.4.9" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" + url: "https://pub.dev" + source: hosted + version: "7.3.0" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + url: "https://pub.dev" + source: hosted + version: "8.9.2" + 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" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + url: "https://pub.dev" + source: hosted + version: "4.10.0" + 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: "direct main" + 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: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + url: "https://pub.dev" + source: hosted + version: "2.3.6" + dio: + dependency: "direct main" + description: + name: dio + sha256: "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5" + url: "https://pub.dev" + source: hosted + version: "5.4.3+1" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + fast_cached_network_image: + dependency: "direct main" + description: + name: fast_cached_network_image + sha256: "91f1d48d10e2916b83a1e7545c1eaf752f85b32acfb1473be1f9fa51d73afef0" + url: "https://pub.dev" + source: hosted + version: "1.2.9" + ffi: + dependency: transitive + description: + name: ffi + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_cache_manager: + dependency: transitive + description: + name: flutter_cache_manager + sha256: "395d6b7831f21f3b989ebedbb785545932adb9afe2622c1ffacf7f4b53a7e544" + url: "https://pub.dev" + source: hosted + version: "3.3.2" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "8496a89eea74e23f92581885f876455d9d460e71201405dffe5f55dfe1155864" + url: "https://pub.dev" + source: hosted + version: "9.2.1" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: b768a7dab26d6186b68e2831b3104f8968154f0f4fdbf66e7c2dd7bdf299daaf + url: "https://pub.dev" + source: hosted + version: "3.1.1" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + 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" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + graphs: + dependency: transitive + description: + name: graphs + sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + grouped_list: + dependency: "direct main" + description: + name: grouped_list + sha256: fef106470186081c32636aa055492eee7fc7fe8bf0921a48d31ded24821af19f + url: "https://pub.dev" + source: hosted + version: "5.1.2" + hive: + dependency: transitive + description: + name: hive + sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941" + url: "https://pub.dev" + source: hosted + version: "2.2.3" + hive_flutter: + dependency: transitive + description: + name: hive_flutter + sha256: dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc + url: "https://pub.dev" + source: hosted + version: "1.1.0" + http: + dependency: transitive + description: + name: http + sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + icons_launcher: + dependency: "direct dev" + description: + name: icons_launcher + sha256: "9b514ffed6ed69b232fd2bf34c44878c8526be71fc74129a658f35c04c9d4a9d" + url: "https://pub.dev" + source: hosted + version: "2.1.7" + image: + dependency: transitive + description: + name: image + sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" + url: "https://pub.dev" + source: hosted + version: "4.1.7" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: "direct main" + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + json_serializable: + dependency: "direct main" + description: + name: json_serializable + sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b + url: "https://pub.dev" + source: hosted + version: "6.8.0" + just_audio: + dependency: "direct main" + description: + name: just_audio + sha256: "5abfab1d199e01ab5beffa61b3e782350df5dad036cb8c83b79fa45fc656614e" + url: "https://pub.dev" + source: hosted + version: "0.9.38" + just_audio_background: + dependency: "direct main" + description: + name: just_audio_background + sha256: "0a8815284b22756d447c9d616d6c4c022dfcc390f23814b637ef891e51279c69" + url: "https://pub.dev" + source: hosted + version: "0.0.1-beta.12" + just_audio_media_kit: + dependency: "direct main" + description: + name: just_audio_media_kit + sha256: bbecbd43959c230d9f9610df0e0165855e711b4c960ce730c08f31107cc3bd26 + url: "https://pub.dev" + source: hosted + version: "2.0.4" + just_audio_platform_interface: + dependency: transitive + description: + name: just_audio_platform_interface + sha256: "0243828cce503c8366cc2090cefb2b3c871aa8ed2f520670d76fd47aa1ab2790" + url: "https://pub.dev" + source: hosted + version: "4.3.0" + just_audio_web: + dependency: transitive + description: + name: just_audio_web + sha256: "0edb481ad4aa1ff38f8c40f1a3576013c3420bf6669b686fe661627d49bc606c" + url: "https://pub.dev" + source: hosted + version: "0.4.11" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + url: "https://pub.dev" + source: hosted + version: "10.0.4" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + url: "https://pub.dev" + source: hosted + version: "3.0.3" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + logger: + dependency: "direct main" + description: + name: logger + sha256: af05cc8714f356fd1f3888fb6741cbe9fbe25cdb6eedbab80e1a6db21047d4a4 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" + source: hosted + version: "0.8.0" + media_kit: + dependency: transitive + description: + name: media_kit + sha256: "3289062540e3b8b9746e5c50d95bd78a9289826b7227e253dff806d002b9e67a" + url: "https://pub.dev" + source: hosted + version: "1.1.10+1" + media_kit_libs_linux: + dependency: "direct main" + description: + name: media_kit_libs_linux + sha256: e186891c31daa6bedab4d74dcdb4e8adfccc7d786bfed6ad81fe24a3b3010310 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + media_kit_libs_windows_audio: + dependency: "direct main" + description: + name: media_kit_libs_windows_audio + sha256: c2fd558cc87b9d89a801141fcdffe02e338a3b21a41a18fbd63d5b221a1b8e53 + url: "https://pub.dev" + source: hosted + version: "1.0.9" + meta: + dependency: transitive + description: + name: meta + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + mime: + dependency: transitive + description: + name: mime + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + url: "https://pub.dev" + source: hosted + version: "1.0.5" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 + url: "https://pub.dev" + source: hosted + version: "2.1.3" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d + url: "https://pub.dev" + source: hosted + version: "2.2.4" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" + source: hosted + version: "2.4.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + url: "https://pub.dev" + source: hosted + version: "3.1.4" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + responsive_sizer: + dependency: "direct main" + description: + name: responsive_sizer + sha256: "6aefee6065c0883681bc7559147a24d8fa1846d296a216abcda25ff349340712" + url: "https://pub.dev" + source: hosted + version: "3.3.1" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" + url: "https://pub.dev" + source: hosted + version: "0.27.7" + safe_local_storage: + dependency: transitive + description: + name: safe_local_storage + sha256: ede4eb6cb7d88a116b3d3bf1df70790b9e2038bc37cb19112e381217c74d9440 + url: "https://pub.dev" + source: hosted + version: "1.0.2" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + url: "https://pub.dev" + source: hosted + version: "2.2.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" + url: "https://pub.dev" + source: hosted + version: "2.3.0" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + shimmer: + dependency: "direct main" + description: + name: shimmer + sha256: "5f88c883a22e9f9f299e5ba0e4f7e6054857224976a5d9f839d4ebdc94a14ac9" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + url: "https://pub.dev" + source: hosted + version: "1.3.4" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d + url: "https://pub.dev" + source: hosted + version: "2.3.3+1" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + 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" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" + url: "https://pub.dev" + source: hosted + version: "3.1.0+1" + 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: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + text_scroll: + dependency: "direct main" + description: + name: text_scroll + sha256: "7869d86a6fdd725dee56bdd150216a99f0372b82fbfcac319214dbd5f36e1908" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + universal_platform: + dependency: transitive + description: + name: universal_platform + sha256: d315be0f6641898b280ffa34e2ddb14f3d12b1a37882557869646e0cc363d0cc + url: "https://pub.dev" + source: hosted + version: "1.0.0+1" + uri_parser: + dependency: transitive + description: + name: uri_parser + sha256: "6543c9fd86d2862fac55d800a43e67c0dcd1a41677cb69c2f8edfe73bbcf1835" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + uuid: + dependency: transitive + description: + name: uuid + sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8" + url: "https://pub.dev" + source: hosted + version: "4.4.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + very_good_analysis: + dependency: "direct dev" + description: + name: very_good_analysis + sha256: "9ae7f3a3bd5764fb021b335ca28a34f040cd0ab6eec00a1b213b445dae58a4b8" + url: "https://pub.dev" + source: hosted + version: "5.1.0" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + url: "https://pub.dev" + source: hosted + version: "14.2.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + url: "https://pub.dev" + source: hosted + version: "0.5.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" + url: "https://pub.dev" + source: hosted + version: "2.4.5" + win32: + dependency: transitive + description: + name: win32 + sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" + url: "https://pub.dev" + source: hosted + version: "5.5.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.4.0-282.3.beta <4.0.0" + flutter: ">=3.19.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..ee140ac --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,111 @@ +name: ocarina +description: "A simple mobile-first music client for Subsonic-compatible servers with Navidrome in mind" +# 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.4.0-282.3.beta <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.6 + dio: ^5.4.3+1 + flutter_secure_storage: ^9.2.1 + crypto: ^3.0.3 + logger: ^2.3.0 + responsive_sizer: ^3.3.1 + path_provider: ^2.1.3 + shimmer: ^3.0.0 + fast_cached_network_image: ^1.2.9 + auto_size_text: ^3.0.0 + text_scroll: ^0.2.0 + grouped_list: ^5.1.2 + just_audio: ^0.9.38 + just_audio_background: ^0.0.1-beta.12 + just_audio_media_kit: ^2.0.4 + media_kit_libs_linux: ^1.1.3 + media_kit_libs_windows_audio: ^1.0.9 + json_serializable: ^6.8.0 + json_annotation: ^4.9.0 + shared_preferences: ^2.2.3 + +dev_dependencies: + build_runner: ^2.4.9 + flutter_test: + sdk: flutter + icons_launcher: ^2.1.7 + very_good_analysis: ^5.1.0 + + # 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. + +# 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: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # 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/snap/gui/app_icon.desktop b/snap/gui/app_icon.desktop new file mode 100644 index 0000000..92a01f6 --- /dev/null +++ b/snap/gui/app_icon.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Flutter Linux App +Comment=Flutter Linux launcher icon +Exec=app_icon +Icon=app_icon.png +Terminal=false +Type=Application +Categories=Entertainment; diff --git a/snap/gui/app_icon.png b/snap/gui/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..47dc112c585023b4afe27a5559d32f95e53cbd59 GIT binary patch literal 16661 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 CJ5R*` literal 0 HcmV?d00001 diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..42041c5 --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:ocarina/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} 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..6a6036f --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(ocarina 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 "ocarina") + +# 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..67e32e3 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,17 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + FlutterSecureStorageWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); + MediaKitLibsWindowsAudioPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("MediaKitLibsWindowsAudioPluginCApi")); +} 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..a71f5fa --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,25 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage_windows + media_kit_libs_windows_audio +) + +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..d2afde1 --- /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", "wtf.caras" "\0" + VALUE "FileDescription", "ocarina" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "ocarina" "\0" + VALUE "LegalCopyright", "Copyright (C) 2024 wtf.caras. All rights reserved." "\0" + VALUE "OriginalFilename", "ocarina.exe" "\0" + VALUE "ProductName", "ocarina" "\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..c5564a8 --- /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"ocarina", 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..70cd194f74abb2648bf330183830cc766173260d GIT binary patch literal 37234 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 Z_IxwE{Cuo`ehXn2J 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 + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..3a0b465 --- /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(); + } + unsigned 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_

S4HX}6tWy)wjCUj%Z6 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�G6G zu|Zo)Y|z${Upq7;u>?U-sZ<0(ULKGsVk$Hc7ZnvHCnpC72XEW9Ehs4HXGAv@nk328 z)Kr;w=*5S<6~c&(8#ip(vW3lNTed2wK&4ViB$DRl=C-yrjYb1|$l-7%OqdWB7UtyS zG_pp_&~$%)KV#xlZsa?<+t)J>uDy2cT5)l)ySuyTGsxxg>gwvs%F654uQxU}0xN~V zLAmy*qZo~;tRwSX2DgM4A zCnsn5^5rAUX(}{Kv2x|g(gh3gCo4%OFS^J0F`1Rp1FK?UV)F9xmM&fT%o?EArlux% zrIM18yZ7!PE?%rD@w`tqJ5Lm%Tt{5`P`W9C?0F15@piFm`sslss8mN6#DR}?p(DeX z;XOnmQJ~+%@2{Mod-$MiM}0@LzO6xzVF?KdV45i@DGUY!SYgx4%F1$cbHN4-j&7W3 z?>H~dV~&3Vq0-=AgI-G^aGm((ATb3&SwS<0mcW&r+PZ%PMh1?KO&hz?Xc-w9^Or2u z#Vpg^tx@ECJVO||``_Tw7UuY1 z*n0WlB=vYsjar5}IIGICdh<3?3?vLhw_oV5 zDeu2p4EKaaf&b8GAODBpGs7O}x?40~6$JTDii(OFO=uKFw{PDb85ucCBuY$71Y*j- zQOnQIfB2}4w`{B9vNVLo80@U6Dfdy>;u>En2jwySp2F z*@g`pZb>>^Gb@>|1yPBXQU8fe459;|WPUrj?5Ot4{G`l0AFQz-EpQzo4Li z>OFbPr(e+oZWc^JF%sk2Cyk^=sVdwpnm%py>eVI=v;?}Pr3Hd8^|v9;n@<>t2fkq% zEn~QOK--AE)87FE97-@GzahJZM-f zEiLU^NxQ?QT!xD`f>Ngoa^)rgUZGgVo`YW_CUYy`r&mopc z2z9r)f9rSjcqyfM(ClYB?{?-y?U!#i-*-md|$ zK{^Q6&p^Y@fOjMMx^P*CGC%dbB?}?rH8(Xk16r+CuU)&ACY(Ns&(xlR(@IIwn+dW%kE2LINN~`N>f7LeP*gKIrV> zuQDc$G<(;0WoCQ0)fB+Vl$vGU%uSlqvD6h!#&D&0A-VEg=|lv_Wn0^q7{w_ zJ0YncF}3paUy0sM`vo5jg&Siz+$V#RM(Kvj5B@@X@9N+)(a{983Dsq+Ue-ct z`wTiveJ&rrb~-&JdF$4#rU#K1g;pw+sGY;mGhEohx7C-9z@{TS0V~j$n$dsbi?`l2 zzLg!HAp7z5J1`J$6ZaK<>WImYoGO_+ckZZscrXbXR${SOhJN+nBd(D%m|S*9oXd`j z;EAC~p$Xif6MywSQr}M~x;UZ)1Kv-nm71@QYO7Dj#m+c%=#aO!_lx720Syuw8Y;eh zixn1c^j$se2nC^X1+0K5rvICeso{Mx5>pYH9^QMY&>3oCBUIO9Zx{Z9SpVR*{(h}N{@CBoFL74}6k~io zf7Ef!g9c?o$sG_7uyg0m8(DuOAa|p)j3*KTIIaV}slmabl=boP@xH#kR4Vl);hG0c z8Q_kKi<>=rc57>ELqmg1CWA&-S63)Eyu7^Nq+0Ehq$M??*MPhP7*plf{!#t^M{Lm6 s5*xI�G6Gu|Zo)Y|z${UnKOu0oMoF_jpauX8-^I07*qoM6N<$f*M*9ZU6uP literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..f66f864be3047e782575e777208be8e5047996a1 GIT binary patch literal 1249 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 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..9a14bffcf4fafc154c1661f5f073488919074316 GIT binary patch literal 4230 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..8db8d92bf76ba4e401556c681faa7823e99aa7b4 GIT binary patch literal 1715 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 S;753}ji4;AE>|mK5%wP@j2sRC 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..5dd50f590fccbaf4fdf2cb679b9c4bfebd258b19 GIT binary patch literal 6295 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 S;753}ji4;AE>|mK5%wP@j2sRC literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b150060c81374958d0d52c59f1e46206dba8fe80 GIT binary patch literal 10484 zcmdU#g;QHy`?Ya*cXuyR+@(NqcZZ_IU4u)|;_mJg3;y86-QA%$#Ua1E|Hb#6nUl;U zIhmd8d*6GlYn>Q1m2c=MBq&f&Q0NNsG8&NQ-~T(2U?7jp4awF}P|)Fa($Z=Q($Z8e zZq7D#j*yp_k^_@PxX$q=;*#9+PL&=5VcJ<