From 76fffe39e404bcd19442aafc958456c2e16acc06 Mon Sep 17 00:00:00 2001 From: James Croft Date: Sat, 12 Feb 2022 20:38:06 +0000 Subject: [PATCH 1/2] Moved UI components from MADE.NET to MADE Uno --- .editorconfig | 464 ++++++++++ .gitattributes | 63 ++ .github/CODEOWNERS | 2 + .github/FUNDING.yml | 12 + .github/ISSUE_TEMPLATE/bug.yml | 32 + .github/ISSUE_TEMPLATE/feature.yml | 29 + .github/PULL_REQUEST_TEMPLATE.md | 17 + .github/dependabot.yml | 7 + .github/workflows/ci.yml | 75 ++ CODE_OF_CONDUCT.md | 47 + CONTRIBUTING.md | 33 + Directory.Build.props | 32 + LICENSE | 6 +- MADE-Uno.NoSamples.slnf | 16 + MADE-Uno.sln | 826 ++++++++++++++++++ MADE-Uno.sln.DotSettings | 2 + README.md | 55 ++ assets/Logo.afdesign | Bin 0 -> 30612 bytes assets/Logo.png | Bin 0 -> 4739 bytes assets/ProjectBanner.afdesign | Bin 0 -> 20253 bytes assets/ProjectBanner.png | Bin 0 -> 27368 bytes assets/ProjectIcon.jpg | Bin 0 -> 11551 bytes assets/ProjectIcon.png | Bin 0 -> 7944 bytes assets/SampleIcons.afdesign | Bin 0 -> 11392 bytes build/GetBuildVersion.psm1 | 34 + global.json | 5 + samples/.vsconfig | 112 +++ .../MADE.Samples.Droid/Assets/AboutAssets.txt | 19 + .../Assets/Fonts/uno-fluentui-assets.ttf | Bin 0 -> 138616 bytes .../MADE.Samples.Droid.csproj | 153 ++++ .../MADE.Samples/MADE.Samples.Droid/Main.cs | 43 + .../MADE.Samples.Droid/MainActivity.cs | 18 + .../Properties/AndroidManifest.xml | 5 + .../Properties/AssemblyInfo.cs | 30 + .../Resources/AboutResources.txt | 44 + .../Resources/drawable/Icon.png | Bin 0 -> 4147 bytes .../Resources/values/Strings.xml | 5 + .../Resources/values/Styles.xml | 12 + .../MADE.Samples/MADE.Samples.Shared/App.xaml | 7 + .../MADE.Samples.Shared/App.xaml.cs | 106 +++ .../Features/Home/Pages/MainPage.xaml | 43 + .../Features/Home/Pages/MainPage.xaml.cs | 17 + .../Home/ViewModels/MainPageViewModel.cs | 80 ++ .../Samples/Assets/AppDialog/AppDialog.png | Bin 0 -> 3627 bytes .../Assets/AppDialog/AppDialogCode.txt | 25 + .../Assets/DropDownList/DropDownList.png | Bin 0 -> 3759 bytes .../Samples/Assets/FilePicker/FilePicker.png | Bin 0 -> 4433 bytes .../Assets/FilePicker/FilePickerCode.txt | 4 + .../Assets/FilePicker/FilePickerXaml.txt | 21 + .../Assets/InputValidator/InputValidator.png | Bin 0 -> 3512 bytes .../InputValidatorDatePickerCode.txt | 7 + .../InputValidatorDatePickerXaml.txt | 23 + .../InputValidatorTextBoxCode.txt | 7 + .../InputValidatorTextBoxXaml.txt | 23 + .../Assets/WindowManager/WindowManager.png | Bin 0 -> 2875 bytes .../WindowManager/WindowManagerCode.txt | 4 + .../Features/Samples/Data/Sample.cs | 24 + .../Features/Samples/Data/SampleGroup.cs | 11 + .../Features/Samples/Pages/AppDialogPage.xaml | 90 ++ .../Samples/Pages/AppDialogPage.xaml.cs | 23 + .../Samples/Pages/FilePickerPage.xaml | 70 ++ .../Samples/Pages/FilePickerPage.xaml.cs | 21 + .../Samples/Pages/InputValidatorPage.xaml | 97 ++ .../Samples/Pages/InputValidatorPage.xaml.cs | 21 + .../Samples/Pages/WindowManagerPage.xaml | 61 ++ .../Samples/Pages/WindowManagerPage.xaml.cs | 21 + .../ViewModels/AppDialogPageViewModel.cs | 111 +++ .../ViewModels/FilePickerPageViewModel.cs | 22 + .../ViewModels/InputValidatorPageViewModel.cs | 36 + .../ViewModels/WindowManagerPageViewModel.cs | 26 + .../Controls/SampleControl.xaml | 57 ++ .../Controls/SampleControl.xaml.cs | 202 +++++ .../Infrastructure/Styling/ThemeHelper.cs | 28 + .../ViewModels/ViewModelExtensions.cs | 15 + .../MADE.Samples.Shared.projitems | 129 +++ .../MADE.Samples.Shared.shproj | 13 + .../Strings/en/Resources.resw | 123 +++ .../Assets/lockscreenlogo.scale-200.png | Bin 0 -> 1732 bytes .../Assets/splashscreen.scale-200.png | Bin 0 -> 49447 bytes .../Assets/square150x150logo.scale-200.png | Bin 0 -> 15476 bytes .../Assets/square44x44logo.scale-200.png | Bin 0 -> 3800 bytes .../MADE.Samples.UWP/Assets/storelogo.png | Bin 0 -> 1833 bytes .../Assets/wide310x150logo.scale-200.png | Bin 0 -> 16666 bytes .../MADE.Samples.UWP/MADE.Samples.UWP.csproj | 213 +++++ .../MADE.Samples.UWP/Package.appxmanifest | 49 ++ .../Properties/AssemblyInfo.cs | 29 + .../Properties/Default.rd.xml | 31 + .../MADE.Samples.Wasm/Assets/SplashScreen.png | Bin 0 -> 49447 bytes .../MADE.Samples.Wasm/LinkerConfig.xml | 10 + .../MADE.Samples.Wasm.csproj | 74 ++ .../MADE.Samples/MADE.Samples.Wasm/Program.cs | 17 + .../Properties/launchSettings.json | 27 + .../MADE.Samples.Wasm/WasmCSS/Fonts.css | 27 + .../WasmScripts/AppManifest.js | 7 + .../MADE.Samples.Wasm/wwwroot/web.config | 78 ++ .../MADE.Samples.iOS/Entitlements.plist | 6 + .../MADE.Samples/MADE.Samples.iOS/Info.plist | 57 ++ .../MADE.Samples.iOS/LaunchScreen.storyboard | 52 ++ .../MADE.Samples.iOS/MADE.Samples.iOS.csproj | 207 +++++ samples/MADE.Samples/MADE.Samples.iOS/Main.cs | 15 + .../AppIcons.appiconset/Contents.json | 106 +++ .../AppIcons.appiconset/iPad-76x76@2x.png | Bin 0 -> 1218 bytes .../AppIcons.appiconset/iPad-84x84@2x.png | Bin 0 -> 1317 bytes .../AppIcons.appiconset/iPhone-20x20@2x.png | Bin 0 -> 224 bytes .../AppIcons.appiconset/iPhone-20x20@3x.png | Bin 0 -> 308 bytes .../AppIcons.appiconset/iPhone-40x40@3x.png | Bin 0 -> 971 bytes .../AppIcons.appiconset/iPhone-60x60@2x.png | Bin 0 -> 971 bytes .../ios-marketing-1024x1024@1x.png | Bin 0 -> 11313 bytes .../LaunchImages.launchimage/Contents.json | 58 ++ .../Properties/AssemblyInfo.cs | 36 + .../Resources/Default-568h@2x.png | Bin 0 -> 2215 bytes .../Resources/Fonts/uno-fluentui-assets.ttf | Bin 0 -> 138616 bytes .../Resources/SplashScreen@2x.png | Bin 0 -> 36520 bytes .../Resources/SplashScreen@3x.png | Bin 0 -> 59332 bytes .../DropDownList.cs | 504 +++++++++++ .../DropDownListAutomationPeer.cs | 116 +++ .../DropDownListSelectionMode.cs | 17 + .../IDropDownList.cs | 107 +++ .../MADE.UI.Controls.DropDownList.csproj | 33 + .../Themes/Generic.xaml | 192 ++++ src/MADE.UI.Controls.FilePicker/FilePicker.cs | 386 ++++++++ .../FilePickerAutomationPeer.cs | 70 ++ .../FilePickerItem.cs | 73 ++ .../FilePickerItemClickEventArgs.cs | 30 + .../FilePickerItemClickEventHandler.cs | 12 + .../FilePickerSelectionMode.cs | 17 + .../IFilePicker.cs | 63 ++ .../MADE.UI.Controls.FilePicker.csproj | 37 + .../Themes/Generic.xaml | 71 ++ .../IInputValidator.cs | 34 + .../InputValidator.cs | 132 +++ .../InputValidatorAutomationPeer.cs | 70 ++ .../MADE.UI.Controls.Validator.csproj | 36 + .../Themes/Generic.xaml | 43 + .../Colors/SystemColorExtensions.cs | 202 +++++ .../Colors/WindowsColorExtensions.cs | 206 +++++ src/MADE.UI.Styling/MADE.UI.Styling.csproj | 32 + .../IViewServiceManager{TService}.cs | 46 + .../MADE.UI.ViewManagement.csproj | 32 + .../ViewCoreDispatcherManager.cs | 14 + .../ViewServiceChangedEventArgs.cs | 39 + .../ViewServiceChangedEventHandler.cs | 21 + .../ViewServiceManager.cs | 131 +++ src/MADE.UI.ViewManagement/WindowManager.cs | 209 +++++ src/MADE.UI.Views.Dialogs/AppDialog.cs | 351 ++++++++ .../Buttons/DialogButton.cs | 79 ++ .../Buttons/DialogButtonInvokedHandler.cs | 13 + .../Buttons/DialogButtonType.cs | 26 + src/MADE.UI.Views.Dialogs/IAppDialog.cs | 183 ++++ .../MADE.UI.Views.Dialogs.csproj | 27 + .../MADE.UI.Views.Navigation.Mvvm.csproj | 36 + .../Pages/MvvmPage.cs | 75 ++ .../ViewModels/PageViewModel.cs | 87 ++ .../INavigationService.cs | 67 ++ .../MADE.UI.Views.Navigation.csproj | 32 + .../NavigationService.cs | 125 +++ src/MADE.UI.Views.Navigation/Pages/Page.cs | 65 ++ src/MADE.UI/Controls/ContentControl.cs | 73 ++ src/MADE.UI/Controls/Control.cs | 76 ++ src/MADE.UI/Controls/IControl.cs | 28 + .../ListViewBaseExtensions.ItemClick.cs | 90 ++ src/MADE.UI/Extensions/ViewExtensions.cs | 60 ++ src/MADE.UI/IView.cs | 33 + src/MADE.UI/MADE.UI.csproj | 28 + src/MADE.UI/ViewLoadedEventArgs.cs | 14 + src/MADE.UI/ViewLoadedEventHandler.cs | 16 + 166 files changed, 9422 insertions(+), 2 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .github/CODEOWNERS create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/feature.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 Directory.Build.props create mode 100644 MADE-Uno.NoSamples.slnf create mode 100644 MADE-Uno.sln create mode 100644 MADE-Uno.sln.DotSettings create mode 100644 README.md create mode 100644 assets/Logo.afdesign create mode 100644 assets/Logo.png create mode 100644 assets/ProjectBanner.afdesign create mode 100644 assets/ProjectBanner.png create mode 100644 assets/ProjectIcon.jpg create mode 100644 assets/ProjectIcon.png create mode 100644 assets/SampleIcons.afdesign create mode 100644 build/GetBuildVersion.psm1 create mode 100644 global.json create mode 100644 samples/.vsconfig create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Assets/AboutAssets.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Assets/Fonts/uno-fluentui-assets.ttf create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/MADE.Samples.Droid.csproj create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Main.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/MainActivity.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Properties/AndroidManifest.xml create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Properties/AssemblyInfo.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Resources/AboutResources.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Resources/drawable/Icon.png create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Resources/values/Strings.xml create mode 100644 samples/MADE.Samples/MADE.Samples.Droid/Resources/values/Styles.xml create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/App.xaml create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/App.xaml.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Home/Pages/MainPage.xaml create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Home/Pages/MainPage.xaml.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Home/ViewModels/MainPageViewModel.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/AppDialog/AppDialog.png create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/AppDialog/AppDialogCode.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/DropDownList/DropDownList.png create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/FilePicker/FilePicker.png create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/FilePicker/FilePickerCode.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/FilePicker/FilePickerXaml.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/InputValidator/InputValidator.png create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/InputValidator/InputValidatorDatePickerCode.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/InputValidator/InputValidatorDatePickerXaml.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/InputValidator/InputValidatorTextBoxCode.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/InputValidator/InputValidatorTextBoxXaml.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/WindowManager/WindowManager.png create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Assets/WindowManager/WindowManagerCode.txt create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Data/Sample.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Data/SampleGroup.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Pages/AppDialogPage.xaml create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Pages/AppDialogPage.xaml.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Pages/FilePickerPage.xaml create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Pages/FilePickerPage.xaml.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Pages/InputValidatorPage.xaml create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Pages/InputValidatorPage.xaml.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Pages/WindowManagerPage.xaml create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/Pages/WindowManagerPage.xaml.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/ViewModels/AppDialogPageViewModel.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/ViewModels/FilePickerPageViewModel.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/ViewModels/InputValidatorPageViewModel.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Features/Samples/ViewModels/WindowManagerPageViewModel.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Infrastructure/Controls/SampleControl.xaml create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Infrastructure/Controls/SampleControl.xaml.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Infrastructure/Styling/ThemeHelper.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Infrastructure/ViewModels/ViewModelExtensions.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/MADE.Samples.Shared.projitems create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/MADE.Samples.Shared.shproj create mode 100644 samples/MADE.Samples/MADE.Samples.Shared/Strings/en/Resources.resw create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Assets/lockscreenlogo.scale-200.png create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Assets/splashscreen.scale-200.png create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Assets/square150x150logo.scale-200.png create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Assets/square44x44logo.scale-200.png create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Assets/storelogo.png create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Assets/wide310x150logo.scale-200.png create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/MADE.Samples.UWP.csproj create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Package.appxmanifest create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Properties/AssemblyInfo.cs create mode 100644 samples/MADE.Samples/MADE.Samples.UWP/Properties/Default.rd.xml create mode 100644 samples/MADE.Samples/MADE.Samples.Wasm/Assets/SplashScreen.png create mode 100644 samples/MADE.Samples/MADE.Samples.Wasm/LinkerConfig.xml create mode 100644 samples/MADE.Samples/MADE.Samples.Wasm/MADE.Samples.Wasm.csproj create mode 100644 samples/MADE.Samples/MADE.Samples.Wasm/Program.cs create mode 100644 samples/MADE.Samples/MADE.Samples.Wasm/Properties/launchSettings.json create mode 100644 samples/MADE.Samples/MADE.Samples.Wasm/WasmCSS/Fonts.css create mode 100644 samples/MADE.Samples/MADE.Samples.Wasm/WasmScripts/AppManifest.js create mode 100644 samples/MADE.Samples/MADE.Samples.Wasm/wwwroot/web.config create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Entitlements.plist create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Info.plist create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/LaunchScreen.storyboard create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/MADE.Samples.iOS.csproj create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Main.cs create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/AppIcons.appiconset/Contents.json create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/AppIcons.appiconset/iPad-76x76@2x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/AppIcons.appiconset/iPad-84x84@2x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/AppIcons.appiconset/iPhone-20x20@2x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/AppIcons.appiconset/iPhone-20x20@3x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/AppIcons.appiconset/iPhone-40x40@3x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/AppIcons.appiconset/iPhone-60x60@2x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/AppIcons.appiconset/ios-marketing-1024x1024@1x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Media.xcassets/LaunchImages.launchimage/Contents.json create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Properties/AssemblyInfo.cs create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Resources/Default-568h@2x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Resources/Fonts/uno-fluentui-assets.ttf create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Resources/SplashScreen@2x.png create mode 100644 samples/MADE.Samples/MADE.Samples.iOS/Resources/SplashScreen@3x.png create mode 100644 src/MADE.UI.Controls.DropDownList/DropDownList.cs create mode 100644 src/MADE.UI.Controls.DropDownList/DropDownListAutomationPeer.cs create mode 100644 src/MADE.UI.Controls.DropDownList/DropDownListSelectionMode.cs create mode 100644 src/MADE.UI.Controls.DropDownList/IDropDownList.cs create mode 100644 src/MADE.UI.Controls.DropDownList/MADE.UI.Controls.DropDownList.csproj create mode 100644 src/MADE.UI.Controls.DropDownList/Themes/Generic.xaml create mode 100644 src/MADE.UI.Controls.FilePicker/FilePicker.cs create mode 100644 src/MADE.UI.Controls.FilePicker/FilePickerAutomationPeer.cs create mode 100644 src/MADE.UI.Controls.FilePicker/FilePickerItem.cs create mode 100644 src/MADE.UI.Controls.FilePicker/FilePickerItemClickEventArgs.cs create mode 100644 src/MADE.UI.Controls.FilePicker/FilePickerItemClickEventHandler.cs create mode 100644 src/MADE.UI.Controls.FilePicker/FilePickerSelectionMode.cs create mode 100644 src/MADE.UI.Controls.FilePicker/IFilePicker.cs create mode 100644 src/MADE.UI.Controls.FilePicker/MADE.UI.Controls.FilePicker.csproj create mode 100644 src/MADE.UI.Controls.FilePicker/Themes/Generic.xaml create mode 100644 src/MADE.UI.Controls.Validator/IInputValidator.cs create mode 100644 src/MADE.UI.Controls.Validator/InputValidator.cs create mode 100644 src/MADE.UI.Controls.Validator/InputValidatorAutomationPeer.cs create mode 100644 src/MADE.UI.Controls.Validator/MADE.UI.Controls.Validator.csproj create mode 100644 src/MADE.UI.Controls.Validator/Themes/Generic.xaml create mode 100644 src/MADE.UI.Styling/Colors/SystemColorExtensions.cs create mode 100644 src/MADE.UI.Styling/Colors/WindowsColorExtensions.cs create mode 100644 src/MADE.UI.Styling/MADE.UI.Styling.csproj create mode 100644 src/MADE.UI.ViewManagement/IViewServiceManager{TService}.cs create mode 100644 src/MADE.UI.ViewManagement/MADE.UI.ViewManagement.csproj create mode 100644 src/MADE.UI.ViewManagement/ViewCoreDispatcherManager.cs create mode 100644 src/MADE.UI.ViewManagement/ViewServiceChangedEventArgs.cs create mode 100644 src/MADE.UI.ViewManagement/ViewServiceChangedEventHandler.cs create mode 100644 src/MADE.UI.ViewManagement/ViewServiceManager.cs create mode 100644 src/MADE.UI.ViewManagement/WindowManager.cs create mode 100644 src/MADE.UI.Views.Dialogs/AppDialog.cs create mode 100644 src/MADE.UI.Views.Dialogs/Buttons/DialogButton.cs create mode 100644 src/MADE.UI.Views.Dialogs/Buttons/DialogButtonInvokedHandler.cs create mode 100644 src/MADE.UI.Views.Dialogs/Buttons/DialogButtonType.cs create mode 100644 src/MADE.UI.Views.Dialogs/IAppDialog.cs create mode 100644 src/MADE.UI.Views.Dialogs/MADE.UI.Views.Dialogs.csproj create mode 100644 src/MADE.UI.Views.Navigation.Mvvm/MADE.UI.Views.Navigation.Mvvm.csproj create mode 100644 src/MADE.UI.Views.Navigation.Mvvm/Pages/MvvmPage.cs create mode 100644 src/MADE.UI.Views.Navigation.Mvvm/ViewModels/PageViewModel.cs create mode 100644 src/MADE.UI.Views.Navigation/INavigationService.cs create mode 100644 src/MADE.UI.Views.Navigation/MADE.UI.Views.Navigation.csproj create mode 100644 src/MADE.UI.Views.Navigation/NavigationService.cs create mode 100644 src/MADE.UI.Views.Navigation/Pages/Page.cs create mode 100644 src/MADE.UI/Controls/ContentControl.cs create mode 100644 src/MADE.UI/Controls/Control.cs create mode 100644 src/MADE.UI/Controls/IControl.cs create mode 100644 src/MADE.UI/Extensions/ListViewBaseExtensions.ItemClick.cs create mode 100644 src/MADE.UI/Extensions/ViewExtensions.cs create mode 100644 src/MADE.UI/IView.cs create mode 100644 src/MADE.UI/MADE.UI.csproj create mode 100644 src/MADE.UI/ViewLoadedEventArgs.cs create mode 100644 src/MADE.UI/ViewLoadedEventHandler.cs diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..d26a294 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,464 @@ +########################################## +# Common Settings +########################################## + +# This file is the top-most EditorConfig file +root = true + +# All Files +[*] +charset = utf-8 +end_of_line = crlf +tab_width = 4 +indent_style = space +indent_size = 4 +insert_final_newline = false +trim_trailing_whitespace = true + +########################################## +# File Extension Settings +########################################## + +# Visual Studio Solution Files +[*.sln] +indent_style = tab + +# Visual Studio XML Project Files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,slnf,props,targets}] +indent_size = 2 + +# Various XML Configuration Files +[*.{xml,config,props,targets,nuspec,resx,ruleset,vsixmanifest,vsct}] +indent_size = 2 + +# JSON Files +[*.{json,json5}] +indent_size = 2 + +# YAML Files +[*.{yml,yaml}] +indent_size = 2 + +# Markdown Files +[*.md] +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = false + +# Web Files +[*.{htm,html,js,ts,tsx,css,sass,scss,less,svg,vue}] +indent_size = 2 +insert_final_newline = true + +# Batch Files +[*.{cmd,bat}] + +# Bash Files +[*.sh] +end_of_line = lf + +########################################## +# .NET Language Conventions +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#language-conventions +########################################## + +# .NET Code Style Settings +[*.cs] +# "this." and "Me." qualifiers +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#this_and_me +dotnet_style_qualification_for_field = true:silent +dotnet_style_qualification_for_property = true:silent +dotnet_style_qualification_for_method = true:silent +dotnet_style_qualification_for_event = true:silent + +# Language keywords instead of framework type names for type references +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#language_keywords +dotnet_style_predefined_type_for_locals_parameters_members = true:silent +dotnet_style_predefined_type_for_member_access = true:silent + +# Modifier preferences +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#normalize_modifiers +dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent +csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async +dotnet_style_readonly_field = true:warning + +# Parentheses preferences +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#parentheses +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent + +# Expression-level preferences +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#expression_level +dotnet_style_object_initializer = true:warning +dotnet_style_collection_initializer = true:warning +dotnet_style_explicit_tuple_names = true:warning +dotnet_style_prefer_inferred_tuple_names = true:warning +dotnet_style_prefer_inferred_anonymous_type_member_names = true:warning +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent + +# Null-checking preferences +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#null_checking +dotnet_style_coalesce_expression = true:warning +dotnet_style_null_propagation = true:warning + +# Implicit and explicit types +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#implicit-and-explicit-types +csharp_style_var_for_built_in_types = true:silent +csharp_style_var_when_type_is_apparent = true:silent +csharp_style_var_elsewhere = true:silent + +# Expression-bodied members +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#expression_bodied_members +csharp_style_expression_bodied_methods = false:warning +csharp_style_expression_bodied_constructors = false:warning +csharp_style_expression_bodied_operators = false:warning +csharp_style_expression_bodied_properties = true:warning +csharp_style_expression_bodied_indexers = true:warning +csharp_style_expression_bodied_accessors = true:warning +csharp_style_expression_bodied_lambdas = true:warning + +# Pattern matching +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#pattern_matching +csharp_style_pattern_matching_over_is_with_cast_check = true:warning +csharp_style_pattern_matching_over_as_with_null_check = true:warning + +# Inlined variable declarations +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#inlined_variable_declarations +csharp_style_inlined_variable_declaration = true:suggestion + +# Expression-level preferences +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#expression_level_csharp +csharp_prefer_simple_default_expression = true:warning +csharp_style_deconstructed_variable_declaration = true:warning +csharp_style_pattern_local_over_anonymous_function = true:warning + +# "Null" checking preferences +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#null_checking_csharp +csharp_style_throw_expression = true:warning +csharp_style_conditional_delegate_call = true:warning + +# Code block preferences +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#code_block +csharp_prefer_braces = true:warning + +########################################## +# .NET Formatting Conventions +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#formatting-conventions +########################################## + +# Organize usings +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#usings +dotnet_sort_system_directives_first = true + +# Using statement placement (Undocumented) +csharp_using_directive_placement = inside_namespace:warning + +# C# formatting settings +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#c-formatting-settings +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true + +# Indentation options +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#indent +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = no_change + +# Spacing options +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#spacing +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_around_binary_operators = before_and_after +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false + +# Wrapping options +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference#wrapping +csharp_preserve_single_line_statements = true +csharp_preserve_single_line_blocks = true + +# More Indentation options (Undocumented) +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents_when_block = false + +# Spacing Options (Undocumented) +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_declaration_statements = false +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_before_open_square_brackets = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_square_brackets = false + +########################################## +# .NET Naming Conventions +# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-naming-conventions +########################################## + +########################################## +# Styles +########################################## + +dotnet_naming_style.camel_case_style.capitalization = camel_case +dotnet_naming_style.pascal_case_style.capitalization = pascal_case +dotnet_naming_style.first_upper_style.capitalization = first_word_upper +dotnet_naming_style.prefix_interface_with_i_style.capitalization = pascal_case +dotnet_naming_style.prefix_interface_with_i_style.required_prefix = I +dotnet_naming_style.prefix_type_parameters_with_t_style.capitalization = pascal_case +dotnet_naming_style.prefix_type_parameters_with_t_style.required_prefix = T + +########################################## +# .NET Design Guideline Field Naming Rules +# Naming rules for fields follow the .NET Framework design guidelines +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index +########################################## + +# All public/protected/protected_internal constant fields must be PascalCase +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/field +dotnet_naming_symbols.public_protected_constant_fields_group.applicable_accessibilities = public, protected, protected_internal +dotnet_naming_symbols.public_protected_constant_fields_group.required_modifiers = const +dotnet_naming_symbols.public_protected_constant_fields_group.applicable_kinds = field +dotnet_naming_rule.public_protected_constant_fields_must_be_pascal_case_rule.symbols = public_protected_constant_fields_group +dotnet_naming_rule.public_protected_constant_fields_must_be_pascal_case_rule.style = pascal_case_style +dotnet_naming_rule.public_protected_constant_fields_must_be_pascal_case_rule.severity = warning + +# All public/protected/protected_internal static readonly fields must be PascalCase +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/field +dotnet_naming_symbols.public_protected_static_readonly_fields_group.applicable_accessibilities = public, protected, protected_internal +dotnet_naming_symbols.public_protected_static_readonly_fields_group.required_modifiers = static, readonly +dotnet_naming_symbols.public_protected_static_readonly_fields_group.applicable_kinds = field +dotnet_naming_rule.public_protected_static_readonly_fields_must_be_pascal_case_rule.symbols = public_protected_static_readonly_fields_group +dotnet_naming_rule.public_protected_static_readonly_fields_must_be_pascal_case_rule.style = pascal_case_style +dotnet_naming_rule.public_protected_static_readonly_fields_must_be_pascal_case_rule.severity = warning + +# No other public/protected/protected_internal fields are allowed +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/field +dotnet_naming_symbols.other_public_protected_fields_group.applicable_accessibilities = public, protected, protected_internal +dotnet_naming_symbols.other_public_protected_fields_group.applicable_kinds = field +dotnet_naming_rule.other_public_protected_fields_disallowed_rule.symbols = other_public_protected_fields_group +dotnet_naming_rule.other_public_protected_fields_disallowed_rule.style = disallowed_style +dotnet_naming_rule.other_public_protected_fields_disallowed_rule.severity = error + +########################################## +# StyleCop Field Naming Rules +# Naming rules for fields follow the StyleCop analyzers +# This does not override any rules using disallowed_style above +# https://github.com/DotNetAnalyzers/StyleCopAnalyzers +########################################## + +# All constant fields must be PascalCase +# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1303.md +dotnet_naming_symbols.stylecop_constant_fields_group.applicable_accessibilities = public, internal, protected_internal, protected, private_protected, private +dotnet_naming_symbols.stylecop_constant_fields_group.required_modifiers = const +dotnet_naming_symbols.stylecop_constant_fields_group.applicable_kinds = field +dotnet_naming_rule.stylecop_constant_fields_must_be_pascal_case_rule.symbols = stylecop_constant_fields_group +dotnet_naming_rule.stylecop_constant_fields_must_be_pascal_case_rule.style = pascal_case_style +dotnet_naming_rule.stylecop_constant_fields_must_be_pascal_case_rule.severity = warning + +# All static readonly fields must be PascalCase +# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1311.md +dotnet_naming_symbols.stylecop_static_readonly_fields_group.applicable_accessibilities = public, internal, protected_internal, protected, private_protected, private +dotnet_naming_symbols.stylecop_static_readonly_fields_group.required_modifiers = static, readonly +dotnet_naming_symbols.stylecop_static_readonly_fields_group.applicable_kinds = field +dotnet_naming_rule.stylecop_static_readonly_fields_must_be_pascal_case_rule.symbols = stylecop_static_readonly_fields_group +dotnet_naming_rule.stylecop_static_readonly_fields_must_be_pascal_case_rule.style = pascal_case_style +dotnet_naming_rule.stylecop_static_readonly_fields_must_be_pascal_case_rule.severity = warning + +# No non-private instance fields are allowed +# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1401.md +dotnet_naming_symbols.stylecop_fields_must_be_private_group.applicable_accessibilities = public, internal, protected_internal, protected, private_protected +dotnet_naming_symbols.stylecop_fields_must_be_private_group.applicable_kinds = field +dotnet_naming_rule.stylecop_instance_fields_must_be_private_rule.symbols = stylecop_fields_must_be_private_group +dotnet_naming_rule.stylecop_instance_fields_must_be_private_rule.style = disallowed_style +dotnet_naming_rule.stylecop_instance_fields_must_be_private_rule.severity = error + +# Private fields must be camelCase +# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1306.md +dotnet_naming_symbols.stylecop_private_fields_group.applicable_accessibilities = private +dotnet_naming_symbols.stylecop_private_fields_group.applicable_kinds = field +dotnet_naming_rule.stylecop_private_fields_must_be_camel_case_rule.symbols = stylecop_private_fields_group +dotnet_naming_rule.stylecop_private_fields_must_be_camel_case_rule.style = camel_case_style +dotnet_naming_rule.stylecop_private_fields_must_be_camel_case_rule.severity = warning + +# Local variables must be camelCase +# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1312.md +dotnet_naming_symbols.stylecop_local_fields_group.applicable_accessibilities = local +dotnet_naming_symbols.stylecop_local_fields_group.applicable_kinds = local +dotnet_naming_rule.stylecop_local_fields_must_be_camel_case_rule.symbols = stylecop_local_fields_group +dotnet_naming_rule.stylecop_local_fields_must_be_camel_case_rule.style = camel_case_style +dotnet_naming_rule.stylecop_local_fields_must_be_camel_case_rule.severity = silent + +# This rule should never fire. However, it's included for at least two purposes: +# First, it helps to understand, reason about, and root-case certain types of issues, such as bugs in .editorconfig parsers. +# Second, it helps to raise immediate awareness if a new field type is added (as occurred recently in C#). +dotnet_naming_symbols.sanity_check_uncovered_field_case_group.applicable_accessibilities = * +dotnet_naming_symbols.sanity_check_uncovered_field_case_group.applicable_kinds = field +dotnet_naming_rule.sanity_check_uncovered_field_case_rule.symbols = sanity_check_uncovered_field_case_group +dotnet_naming_rule.sanity_check_uncovered_field_case_rule.style = internal_error_style +dotnet_naming_rule.sanity_check_uncovered_field_case_rule.severity = error + +########################################## +# Other Naming Rules +########################################## + +# All of the following must be PascalCase: +# - Namespaces +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-namespaces +# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1300.md +# - Classes and Enumerations +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces +# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1300.md +# - Delegates +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces#names-of-common-types +# - Constructors, Properties, Events, Methods +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-type-members +dotnet_naming_symbols.element_group.applicable_kinds = namespace, class, enum, struct, delegate, event, method, property +dotnet_naming_rule.element_rule.symbols = element_group +dotnet_naming_rule.element_rule.style = pascal_case_style +dotnet_naming_rule.element_rule.severity = warning + +# Interfaces use PascalCase and are prefixed with uppercase 'I' +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces +dotnet_naming_symbols.interface_group.applicable_kinds = interface +dotnet_naming_rule.interface_rule.symbols = interface_group +dotnet_naming_rule.interface_rule.style = prefix_interface_with_i_style +dotnet_naming_rule.interface_rule.severity = warning +dotnet_naming_rule.interface_types_must_be_prefixed_with_i.severity = warning +dotnet_naming_rule.interface_types_must_be_prefixed_with_i.symbols = interface_types +dotnet_naming_rule.interface_types_must_be_prefixed_with_i.style = prefix_interface_interface_with_i + +# Generics Type Parameters use PascalCase and are prefixed with uppercase 'T' +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces +dotnet_naming_symbols.type_parameter_group.applicable_kinds = type_parameter +dotnet_naming_rule.type_parameter_rule.symbols = type_parameter_group +dotnet_naming_rule.type_parameter_rule.style = prefix_type_parameters_with_t_style +dotnet_naming_rule.type_parameter_rule.severity = warning + +# Function parameters use camelCase +# https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-parameters +dotnet_naming_symbols.parameters_group.applicable_kinds = parameter +dotnet_naming_rule.parameters_rule.symbols = parameters_group +dotnet_naming_rule.parameters_rule.style = camel_case_style +dotnet_naming_rule.parameters_rule.severity = warning + +# Async +dotnet_naming_rule.async_methods_end_in_async.severity = warning +dotnet_naming_rule.async_methods_end_in_async.symbols = any_async_methods +dotnet_naming_rule.async_methods_end_in_async.style = end_in_async + +dotnet_naming_symbols.any_async_methods.applicable_kinds = method +dotnet_naming_symbols.any_async_methods.applicable_accessibilities = * +dotnet_naming_symbols.any_async_methods.required_modifiers = async + +dotnet_naming_style.end_in_async.required_suffix = Async +dotnet_naming_style.end_in_async.capitalization = pascal_case + +# .NET Code Analysis + +dotnet_diagnostic.CA1001.severity = warning +dotnet_diagnostic.CA1009.severity = warning +dotnet_diagnostic.CA1016.severity = warning +dotnet_diagnostic.CA1033.severity = warning +dotnet_diagnostic.CA1049.severity = warning +dotnet_diagnostic.CA1060.severity = warning +dotnet_diagnostic.CA1061.severity = warning +dotnet_diagnostic.CA1063.severity = warning +dotnet_diagnostic.CA1065.severity = warning +dotnet_diagnostic.CA1301.severity = warning +dotnet_diagnostic.CA1400.severity = warning +dotnet_diagnostic.CA1401.severity = warning +dotnet_diagnostic.CA1403.severity = warning +dotnet_diagnostic.CA1404.severity = warning +dotnet_diagnostic.CA1405.severity = warning +dotnet_diagnostic.CA1410.severity = warning +dotnet_diagnostic.CA1415.severity = warning +dotnet_diagnostic.CA1821.severity = warning +dotnet_diagnostic.CA1900.severity = warning +dotnet_diagnostic.CA1901.severity = warning +dotnet_diagnostic.CA2002.severity = warning +dotnet_diagnostic.CA2100.severity = warning +dotnet_diagnostic.CA2101.severity = warning +dotnet_diagnostic.CA2108.severity = warning +dotnet_diagnostic.CA2111.severity = warning +dotnet_diagnostic.CA2112.severity = warning +dotnet_diagnostic.CA2114.severity = warning +dotnet_diagnostic.CA2116.severity = warning +dotnet_diagnostic.CA2117.severity = warning +dotnet_diagnostic.CA2122.severity = warning +dotnet_diagnostic.CA2123.severity = warning +dotnet_diagnostic.CA2124.severity = warning +dotnet_diagnostic.CA2126.severity = warning +dotnet_diagnostic.CA2131.severity = warning +dotnet_diagnostic.CA2132.severity = warning +dotnet_diagnostic.CA2133.severity = warning +dotnet_diagnostic.CA2134.severity = warning +dotnet_diagnostic.CA2137.severity = warning +dotnet_diagnostic.CA2138.severity = warning +dotnet_diagnostic.CA2140.severity = warning +dotnet_diagnostic.CA2141.severity = warning +dotnet_diagnostic.CA2146.severity = warning +dotnet_diagnostic.CA2147.severity = warning +dotnet_diagnostic.CA2149.severity = warning +dotnet_diagnostic.CA2200.severity = warning +dotnet_diagnostic.CA2202.severity = warning +dotnet_diagnostic.CA2207.severity = warning +dotnet_diagnostic.CA2212.severity = warning +dotnet_diagnostic.CA2213.severity = warning +dotnet_diagnostic.CA2214.severity = warning +dotnet_diagnostic.CA2216.severity = warning +dotnet_diagnostic.CA2220.severity = warning +dotnet_diagnostic.CA2229.severity = warning +dotnet_diagnostic.CA2231.severity = warning +dotnet_diagnostic.CA2232.severity = warning +dotnet_diagnostic.CA2235.severity = warning +dotnet_diagnostic.CA2236.severity = warning +dotnet_diagnostic.CA2237.severity = warning +dotnet_diagnostic.CA2238.severity = warning +dotnet_diagnostic.CA2240.severity = warning +dotnet_diagnostic.CA2241.severity = warning +dotnet_diagnostic.CA2242.severity = warning + +# StyleCop Code Analysis + +dotnet_diagnostic.SA1009.severity = none +dotnet_diagnostic.SA1000.severity = none +dotnet_diagnostic.SA1011.severity = none +dotnet_diagnostic.SA1101.severity = none +dotnet_diagnostic.SA1101.severity = none +dotnet_diagnostic.SA1118.severity = none +dotnet_diagnostic.SA1200.severity = none +dotnet_diagnostic.SA1201.severity = none +dotnet_diagnostic.SA1202.severity = none +dotnet_diagnostic.SA1309.severity = none +dotnet_diagnostic.SA1310.severity = none +dotnet_diagnostic.SA1313.severity = none +dotnet_diagnostic.SA1314.severity = none +dotnet_diagnostic.SA1413.severity = none +dotnet_diagnostic.SA1600.severity = none +dotnet_diagnostic.SA1602.severity = none +dotnet_diagnostic.SA1611.severity = none +dotnet_diagnostic.SA1629.severity = none +dotnet_diagnostic.SA1633.severity = none +dotnet_diagnostic.SA1634.severity = none +dotnet_diagnostic.SA1652.severity = none \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..89cad0f --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +# These owners will be the default owners for everything in the repo. +* @MADE-Apps/core-team diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..e89c8aa --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [jamesmcroft] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: ['buymeacoffee.com/jamesmcroft'] diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..b12bede --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,32 @@ +name: Bug +description: Log a bug to help us improve +title: "[Bug] " +labels: [bug] +body: + - type: textarea + validations: + required: true + attributes: + label: Describe the bug + description: Please describe below the details of the issue and steps taken to reproduce. + - type: textarea + attributes: + label: What is the expected behavior? + description: Please describe below what you expected to happen. + - type: dropdown + attributes: + label: Package + options: + - "UI" + - "UI.Controls.DropDownList" + - "UI.Controls.FilePicker" + - "UI.Controls.Validator" + - "UI.Styling" + - "UI.ViewManagement" + - "UI.Views.Dialogs" + - "UI.Views.Navigation" + - "UI.Views.Navigation.Mvvm" + - type: textarea + attributes: + label: Other information + description: Please provide any additional information, links, screenshots, or projects with reproduced issues below if applicable diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..acd4075 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,29 @@ +name: Feature +description: Suggest a new feature or idea +title: "[Feature] " +labels: [feature-request] +body: + - type: textarea + validations: + required: true + attributes: + label: Describe the feature + description: Please describe below a summary of your feature request. + - type: textarea + validations: + required: true + attributes: + label: Rationale for the feature + description: Please describe a list of reasons why the feature should be added. + - type: textarea + attributes: + label: Scope of the feature + description: Please describe a list of must, should, could, and won't capabilities for the feature. + - type: textarea + attributes: + label: Open questions + description: Please provide any questions that you may have around this feature that are not currently answered. + - type: textarea + attributes: + label: Other information + description: Please provide any additional information, links, screenshots, or samples below if applicable. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..b70b0f3 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,17 @@ +## Fixes # + + + + +## PR checklist + +- [ ] Samples have been added/updated (where applicable) +- [ ] Tests have been added/updated (where applicable) and pass +- [ ] Documentation has been added/updated for changes +- [ ] Code styling has been met on new source file changes +- [ ] Contains **NO** breaking changes + + + +## Other information + diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..aec207e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: +- package-ecosystem: nuget + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e34c40a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,75 @@ +name: CI + +on: + push: + tags: + - v* + branches: + - main + paths: + - src/** + - samples/** + - tests/** + - build/** + - .github/workflows/ci.yml + - global.json + pull_request: + branches: + - main + paths: + - src/** + - samples/** + - tests/** + - build/** + - .github/workflows/ci.yml + - global.json + workflow_dispatch: + +jobs: + build: + + env: + BUILD_CONFIG: 'Release' + SOLUTION: 'MADE-Uno.NoSamples.slnf' + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + + - name: Get Build Version + run: | + Import-Module .\build\GetBuildVersion.psm1 + Write-Host $Env:GITHUB_REF + $version = GetBuildVersion -VersionString $Env:GITHUB_REF + echo "BUILD_VERSION=$version" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append + shell: pwsh + + - name: Setup .NET 5.0 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 5.0.x + + - name: Setup .NET 6.0 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 6.0.x + + - name: Setup NuGet + uses: NuGet/setup-nuget@v1.0.5 + + - name: Restore dependencies + run: nuget restore $SOLUTION + + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1.0.2 + + - name: Build + run: msbuild $env:SOLUTION /p:Configuration=$env:BUILD_CONFIG /p:Platform="Any CPU" -p:Version=$env:BUILD_VERSION + + - name: Run tests + run: dotnet test /p:Configuration=$env:BUILD_CONFIG /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --no-restore --no-build --verbosity normal + + - name: Publish + if: startsWith(github.ref, 'refs/tags/v') + run: nuget push **\*.nupkg -Source 'https://api.nuget.org/v3/index.json' -ApiKey ${{secrets.NUGET_API_KEY}} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..fc9f824 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,47 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting through our [online contact form][contactform]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ +[contactform]: http://jamescroft.co.uk/contact/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5ce7aa8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,33 @@ +# Contributing + +These guidelines are designed to help you as a contributor to bring your code and skills to the MADE Uno project to make it better. + +## What can I contribute to? + +Our [issue tracker](https://github.com/MADE-Apps/MADE-Uno/issues) contains a collection of features and issues waiting to be worked on! If you see any item marked with **Help Wanted**, we'd like to see you put your skills to use and contribute whatever you can to help develop the feature. + +This can be in the form of contributing to the conversation around the feature or issue, providing code and submitting a pull request, adding a new feature request or bug, or even helping to update our documentation. + +We know that not everyone can do everything, so any little helps. We accept any contribution whether big or small. + +## Code Styling + +We do have a coding style in place, but as a contributor, we're happy for you to code in a way that makes your feel comfortable. We will do the work to make sure everything is in tip top shape before we release to the public. + +## Code Naming and Structure + +It's common to find yourself at a hurdle for finding where to put your code in a project. Once you've found the right place, it's also a pain trying to think of a name for your new feature. + +Don't worry! If you're unsure, just strike up a conversation in the issue you're working against and we'll be happy to help where we can! + +## Bug Hunting + +We're more than happy for you to contribute to our project through testing. We're all developers and we often miss things so finding bugs in the project's code is definitely approved of. Please remember to start a new issue in our [issue tracker](https://github.com/MADE-Apps/MADE-Uno/issues) so we can keep an eye on them and get bugs fixed. + +Even better, if you know how to fix it, follow up your issue with a pull request! + +## Testing And Documentation + +We're including automated for the project. While we will aim to have the best coverage as possible across the entire project, it could always be improved on. If you find an area that is missing tests or could have more tests for, feel free to raise an issue or help out by writing some tests! + +As well as testing, we aim to document the entire project in terms of both developer guidelines such as these and our own API documentation. If you find something that is wrong or is missing, again, feel free to raise an issue or contribute towards the documentation. diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..a17f32b --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,32 @@ + + + + true + true + true + snupkg + true + 1.0.0.0 + MADE Apps + MADE Apps + Copyright (C) MADE Apps. All rights reserved. + https://github.com/MADE-Apps/MADE-Uno + LICENSE + ProjectIcon.jpg + https://github.com/MADE-Apps/MADE-Uno/releases + en + true + latest + + + + + + + + + + + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE index e5906d0..94e07e3 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,8 @@ -MIT License +# MADE Uno -Copyright (c) 2022 MADE Apps +Copyright (c) MADE Apps + +# MIT License (MIT) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/MADE-Uno.NoSamples.slnf b/MADE-Uno.NoSamples.slnf new file mode 100644 index 0000000..a9467d1 --- /dev/null +++ b/MADE-Uno.NoSamples.slnf @@ -0,0 +1,16 @@ +{ + "solution": { + "path": "MADE-Uno.sln", + "projects": [ + "src\\MADE.UI\\MADE.UI.csproj", + "src\\MADE.UI.Controls.DropDownList\\MADE.UI.Controls.DropDownList.csproj", + "src\\MADE.UI.Controls.FilePicker\\MADE.UI.Controls.FilePicker.csproj", + "src\\MADE.UI.Controls.Validator\\MADE.UI.Controls.Validator.csproj", + "src\\MADE.UI.Styling\\MADE.UI.Styling.csproj", + "src\\MADE.UI.ViewManagement\\MADE.UI.ViewManagement.csproj", + "src\\MADE.UI.Views.Dialogs\\MADE.UI.Views.Dialogs.csproj", + "src\\MADE.UI.Views.Navigation.Mvvm\\MADE.UI.Views.Navigation.Mvvm.csproj", + "src\\MADE.UI.Views.Navigation\\MADE.UI.Views.Navigation.csproj", + ] + } +} \ No newline at end of file diff --git a/MADE-Uno.sln b/MADE-Uno.sln new file mode 100644 index 0000000..2271bf0 --- /dev/null +++ b/MADE-Uno.sln @@ -0,0 +1,826 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31624.102 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{01380FB8-F8A7-4416-AABA-5407574B7723}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{69149D0F-BB09-411B-88F0-A1E845058D70}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI", "src\MADE.UI\MADE.UI.csproj", "{79AFD8FC-7789-47B7-B808-26E03D0F1E05}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI.Controls.DropDownList", "src\MADE.UI.Controls.DropDownList\MADE.UI.Controls.DropDownList.csproj", "{347CDC37-E140-42FA-8710-A0F3297D2B6B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{B7EC0D82-6637-45BD-BBB4-62D730C85529}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI.Controls.Validator", "src\MADE.UI.Controls.Validator\MADE.UI.Controls.Validator.csproj", "{E2B20928-DAE2-4A9C-BDAF-D787B4F48391}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI.Controls.FilePicker", "src\MADE.UI.Controls.FilePicker\MADE.UI.Controls.FilePicker.csproj", "{774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platforms", "Platforms", "{54E4D84F-F98F-41B3-A8D6-289FA6347618}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MADE.Samples.Droid", "samples\MADE.Samples\MADE.Samples.Droid\MADE.Samples.Droid.csproj", "{6D1F389A-9954-40C1-923D-254EEC7E7380}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MADE.Samples.iOS", "samples\MADE.Samples\MADE.Samples.iOS\MADE.Samples.iOS.csproj", "{04F1B32D-9056-43FC-B4C2-B8C5481BDACB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MADE.Samples.UWP", "samples\MADE.Samples\MADE.Samples.UWP\MADE.Samples.UWP.csproj", "{5329834F-BF4C-4FDD-B591-53ACB280B6B5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.Samples.Wasm", "samples\MADE.Samples\MADE.Samples.Wasm\MADE.Samples.Wasm.csproj", "{38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "MADE.Samples.Shared", "samples\MADE.Samples\MADE.Samples.Shared\MADE.Samples.Shared.shproj", "{6279C845-92F8-4333-AB99-3D213163593C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI.Views.Dialogs", "src\MADE.UI.Views.Dialogs\MADE.UI.Views.Dialogs.csproj", "{2B5C0BEA-18D8-4B82-AF64-EDE15505E793}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI.Views.Navigation", "src\MADE.UI.Views.Navigation\MADE.UI.Views.Navigation.csproj", "{99E31579-1168-4983-BCED-E7853E33EF5B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI.Views.Navigation.Mvvm", "src\MADE.UI.Views.Navigation.Mvvm\MADE.UI.Views.Navigation.Mvvm.csproj", "{0CA60466-059C-42D3-9B68-6BBB75A75090}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI.Styling", "src\MADE.UI.Styling\MADE.UI.Styling.csproj", "{F8D00106-0598-45E7-B92E-EF408249C02E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.UI.ViewManagement", "src\MADE.UI.ViewManagement\MADE.UI.ViewManagement.csproj", "{442D1E25-FFD1-405D-A1FC-40CAFCAD190C}" +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + samples\MADE.Samples\MADE.Samples.Shared\MADE.Samples.Shared.projitems*{04f1b32d-9056-43fc-b4c2-b8c5481bdacb}*SharedItemsImports = 4 + samples\MADE.Samples\MADE.Samples.Shared\MADE.Samples.Shared.projitems*{38379ab4-d31e-4ab2-9817-8a9f44ae7d4f}*SharedItemsImports = 5 + samples\MADE.Samples\MADE.Samples.Shared\MADE.Samples.Shared.projitems*{5329834f-bf4c-4fdd-b591-53acb280b6b5}*SharedItemsImports = 4 + samples\MADE.Samples\MADE.Samples.Shared\MADE.Samples.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13 + samples\MADE.Samples\MADE.Samples.Shared\MADE.Samples.Shared.projitems*{6d1f389a-9954-40c1-923d-254eec7e7380}*SharedItemsImports = 4 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Ad-Hoc|Any CPU = Ad-Hoc|Any CPU + Ad-Hoc|ARM = Ad-Hoc|ARM + Ad-Hoc|ARM64 = Ad-Hoc|ARM64 + Ad-Hoc|iPhone = Ad-Hoc|iPhone + Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator + Ad-Hoc|x64 = Ad-Hoc|x64 + Ad-Hoc|x86 = Ad-Hoc|x86 + AppStore|Any CPU = AppStore|Any CPU + AppStore|ARM = AppStore|ARM + AppStore|ARM64 = AppStore|ARM64 + AppStore|iPhone = AppStore|iPhone + AppStore|iPhoneSimulator = AppStore|iPhoneSimulator + AppStore|x64 = AppStore|x64 + AppStore|x86 = AppStore|x86 + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|ARM64.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|ARM64.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|Any CPU.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|ARM.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|ARM.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|ARM64.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|ARM64.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|iPhone.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|x64.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|x64.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|x86.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.AppStore|x86.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|ARM.ActiveCfg = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|ARM.Build.0 = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|ARM64.Build.0 = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|iPhone.Build.0 = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|x64.ActiveCfg = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|x64.Build.0 = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|x86.ActiveCfg = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Debug|x86.Build.0 = Debug|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|Any CPU.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|ARM.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|ARM.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|ARM64.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|ARM64.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|iPhone.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|iPhone.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|x64.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|x64.Build.0 = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|x86.ActiveCfg = Release|Any CPU + {79AFD8FC-7789-47B7-B808-26E03D0F1E05}.Release|x86.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|ARM64.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|ARM64.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|Any CPU.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|ARM.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|ARM.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|ARM64.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|ARM64.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|iPhone.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|x64.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|x64.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|x86.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.AppStore|x86.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|ARM.Build.0 = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|ARM64.Build.0 = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|iPhone.Build.0 = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|x64.ActiveCfg = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|x64.Build.0 = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|x86.ActiveCfg = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Debug|x86.Build.0 = Debug|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|Any CPU.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|ARM.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|ARM.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|ARM64.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|ARM64.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|iPhone.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|iPhone.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|x64.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|x64.Build.0 = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|x86.ActiveCfg = Release|Any CPU + {347CDC37-E140-42FA-8710-A0F3297D2B6B}.Release|x86.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|ARM64.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|ARM64.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|Any CPU.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|ARM.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|ARM.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|ARM64.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|ARM64.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|iPhone.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|x64.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|x64.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|x86.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.AppStore|x86.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|ARM.Build.0 = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|ARM64.Build.0 = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|iPhone.Build.0 = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|x64.ActiveCfg = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|x64.Build.0 = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|x86.ActiveCfg = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Debug|x86.Build.0 = Debug|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|Any CPU.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|ARM.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|ARM.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|ARM64.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|ARM64.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|iPhone.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|iPhone.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|x64.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|x64.Build.0 = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|x86.ActiveCfg = Release|Any CPU + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391}.Release|x86.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|ARM64.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|ARM64.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|Any CPU.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|ARM.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|ARM.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|ARM64.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|ARM64.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|iPhone.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|x64.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|x64.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|x86.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.AppStore|x86.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|ARM.Build.0 = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|ARM64.Build.0 = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|iPhone.Build.0 = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|x64.ActiveCfg = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|x64.Build.0 = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|x86.ActiveCfg = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Debug|x86.Build.0 = Debug|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|Any CPU.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|ARM.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|ARM.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|ARM64.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|ARM64.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|iPhone.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|iPhone.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|x64.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|x64.Build.0 = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|x86.ActiveCfg = Release|Any CPU + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE}.Release|x86.Build.0 = Release|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|ARM.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|ARM64.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|x64.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Ad-Hoc|x86.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|ARM.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|ARM.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|ARM64.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|ARM64.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|ARM64.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|iPhone.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|iPhone.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|x64.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|x64.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|x64.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|x86.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|x86.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.AppStore|x86.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|ARM.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|ARM.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|ARM64.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|ARM64.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|iPhone.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|iPhone.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|x64.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|x64.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|x64.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|x86.ActiveCfg = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|x86.Build.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Debug|x86.Deploy.0 = Debug|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Release|ARM.ActiveCfg = Release|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Release|ARM64.ActiveCfg = Release|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Release|iPhone.ActiveCfg = Release|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Release|x64.ActiveCfg = Release|Any CPU + {6D1F389A-9954-40C1-923D-254EEC7E7380}.Release|x86.ActiveCfg = Release|Any CPU + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|ARM64.ActiveCfg = Ad-Hoc|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|Any CPU.ActiveCfg = AppStore|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|ARM.ActiveCfg = AppStore|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|ARM64.ActiveCfg = AppStore|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|iPhone.ActiveCfg = AppStore|iPhone + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|iPhone.Build.0 = AppStore|iPhone + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|x64.ActiveCfg = AppStore|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.AppStore|x86.ActiveCfg = AppStore|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|iPhone.ActiveCfg = Debug|iPhone + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|iPhone.Build.0 = Debug|iPhone + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Release|ARM.ActiveCfg = Release|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Release|iPhone.ActiveCfg = Release|iPhone + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Release|x64.ActiveCfg = Release|iPhoneSimulator + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB}.Release|x86.ActiveCfg = Release|iPhoneSimulator + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|Any CPU.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|Any CPU.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|Any CPU.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|ARM.ActiveCfg = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|ARM.Build.0 = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|ARM.Deploy.0 = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|ARM64.ActiveCfg = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|ARM64.Build.0 = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|ARM64.Deploy.0 = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|iPhone.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|iPhone.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|iPhone.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|x64.ActiveCfg = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|x64.Build.0 = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|x64.Deploy.0 = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|x86.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|x86.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Ad-Hoc|x86.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|Any CPU.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|Any CPU.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|Any CPU.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|ARM.ActiveCfg = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|ARM.Build.0 = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|ARM.Deploy.0 = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|ARM64.ActiveCfg = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|ARM64.Build.0 = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|ARM64.Deploy.0 = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|iPhone.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|iPhone.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|iPhone.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|iPhoneSimulator.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|iPhoneSimulator.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|iPhoneSimulator.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|x64.ActiveCfg = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|x64.Build.0 = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|x64.Deploy.0 = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|x86.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|x86.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.AppStore|x86.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|Any CPU.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|ARM.ActiveCfg = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|ARM.Build.0 = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|ARM.Deploy.0 = Debug|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|ARM64.Build.0 = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|iPhone.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|x64.ActiveCfg = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|x64.Build.0 = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|x64.Deploy.0 = Debug|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|x86.ActiveCfg = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|x86.Build.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Debug|x86.Deploy.0 = Debug|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Release|Any CPU.ActiveCfg = Release|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Release|ARM.ActiveCfg = Release|ARM + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Release|ARM64.ActiveCfg = Release|ARM64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Release|iPhone.ActiveCfg = Release|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Release|iPhoneSimulator.ActiveCfg = Release|x86 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Release|x64.ActiveCfg = Release|x64 + {5329834F-BF4C-4FDD-B591-53ACB280B6B5}.Release|x86.ActiveCfg = Release|x86 + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|ARM.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|ARM64.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|ARM64.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|iPhone.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|x64.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|x64.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|x86.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.AppStore|x86.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|ARM.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|ARM.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|ARM64.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|iPhone.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|x64.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|x64.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|x86.ActiveCfg = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Debug|x86.Build.0 = Debug|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Release|ARM.ActiveCfg = Release|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Release|ARM64.ActiveCfg = Release|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Release|iPhone.ActiveCfg = Release|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Release|x64.ActiveCfg = Release|Any CPU + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F}.Release|x86.ActiveCfg = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|ARM.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|ARM64.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|ARM64.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|iPhone.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|x64.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|x64.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|x86.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.AppStore|x86.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|ARM.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|ARM.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|ARM64.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|iPhone.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|x64.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|x64.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|x86.ActiveCfg = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Debug|x86.Build.0 = Debug|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|Any CPU.Build.0 = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|ARM.ActiveCfg = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|ARM.Build.0 = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|ARM64.ActiveCfg = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|ARM64.Build.0 = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|iPhone.ActiveCfg = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|iPhone.Build.0 = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|x64.ActiveCfg = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|x64.Build.0 = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|x86.ActiveCfg = Release|Any CPU + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793}.Release|x86.Build.0 = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|ARM.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|ARM64.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|ARM64.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|iPhone.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|x64.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|x64.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|x86.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.AppStore|x86.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|ARM.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|ARM64.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|iPhone.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|x64.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|x64.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|x86.ActiveCfg = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Debug|x86.Build.0 = Debug|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|Any CPU.Build.0 = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|ARM.ActiveCfg = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|ARM.Build.0 = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|ARM64.ActiveCfg = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|ARM64.Build.0 = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|iPhone.ActiveCfg = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|iPhone.Build.0 = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|x64.ActiveCfg = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|x64.Build.0 = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|x86.ActiveCfg = Release|Any CPU + {99E31579-1168-4983-BCED-E7853E33EF5B}.Release|x86.Build.0 = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|ARM.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|ARM64.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|ARM64.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|iPhone.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|x64.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|x64.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|x86.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.AppStore|x86.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|ARM.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|ARM.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|ARM64.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|iPhone.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|x64.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|x64.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|x86.ActiveCfg = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Debug|x86.Build.0 = Debug|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|Any CPU.Build.0 = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|ARM.ActiveCfg = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|ARM.Build.0 = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|ARM64.ActiveCfg = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|ARM64.Build.0 = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|iPhone.ActiveCfg = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|iPhone.Build.0 = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|x64.ActiveCfg = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|x64.Build.0 = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|x86.ActiveCfg = Release|Any CPU + {0CA60466-059C-42D3-9B68-6BBB75A75090}.Release|x86.Build.0 = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|ARM.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|ARM64.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|ARM64.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|iPhone.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|x64.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|x64.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|x86.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.AppStore|x86.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|ARM.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|ARM64.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|iPhone.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|x64.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|x64.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|x86.ActiveCfg = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Debug|x86.Build.0 = Debug|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|Any CPU.Build.0 = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|ARM.ActiveCfg = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|ARM.Build.0 = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|ARM64.ActiveCfg = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|ARM64.Build.0 = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|iPhone.ActiveCfg = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|iPhone.Build.0 = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|x64.ActiveCfg = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|x64.Build.0 = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|x86.ActiveCfg = Release|Any CPU + {F8D00106-0598-45E7-B92E-EF408249C02E}.Release|x86.Build.0 = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|ARM.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|ARM64.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|ARM64.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|iPhone.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|x64.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|x64.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|x86.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.AppStore|x86.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|ARM.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|ARM64.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|iPhone.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|x64.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|x64.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|x86.ActiveCfg = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Debug|x86.Build.0 = Debug|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|Any CPU.Build.0 = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|ARM.ActiveCfg = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|ARM.Build.0 = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|ARM64.ActiveCfg = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|ARM64.Build.0 = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|iPhone.ActiveCfg = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|iPhone.Build.0 = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|x64.ActiveCfg = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|x64.Build.0 = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|x86.ActiveCfg = Release|Any CPU + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {79AFD8FC-7789-47B7-B808-26E03D0F1E05} = {01380FB8-F8A7-4416-AABA-5407574B7723} + {347CDC37-E140-42FA-8710-A0F3297D2B6B} = {01380FB8-F8A7-4416-AABA-5407574B7723} + {E2B20928-DAE2-4A9C-BDAF-D787B4F48391} = {01380FB8-F8A7-4416-AABA-5407574B7723} + {774FD8D5-CCC1-4EED-AA14-F7069BFAE5CE} = {01380FB8-F8A7-4416-AABA-5407574B7723} + {54E4D84F-F98F-41B3-A8D6-289FA6347618} = {B7EC0D82-6637-45BD-BBB4-62D730C85529} + {6D1F389A-9954-40C1-923D-254EEC7E7380} = {54E4D84F-F98F-41B3-A8D6-289FA6347618} + {04F1B32D-9056-43FC-B4C2-B8C5481BDACB} = {54E4D84F-F98F-41B3-A8D6-289FA6347618} + {5329834F-BF4C-4FDD-B591-53ACB280B6B5} = {54E4D84F-F98F-41B3-A8D6-289FA6347618} + {38379AB4-D31E-4AB2-9817-8A9F44AE7D4F} = {54E4D84F-F98F-41B3-A8D6-289FA6347618} + {6279C845-92F8-4333-AB99-3D213163593C} = {B7EC0D82-6637-45BD-BBB4-62D730C85529} + {2B5C0BEA-18D8-4B82-AF64-EDE15505E793} = {01380FB8-F8A7-4416-AABA-5407574B7723} + {99E31579-1168-4983-BCED-E7853E33EF5B} = {01380FB8-F8A7-4416-AABA-5407574B7723} + {0CA60466-059C-42D3-9B68-6BBB75A75090} = {01380FB8-F8A7-4416-AABA-5407574B7723} + {F8D00106-0598-45E7-B92E-EF408249C02E} = {01380FB8-F8A7-4416-AABA-5407574B7723} + {442D1E25-FFD1-405D-A1FC-40CAFCAD190C} = {01380FB8-F8A7-4416-AABA-5407574B7723} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3921AD86-E6C0-4436-8880-2D9EDFAD6151} + EndGlobalSection +EndGlobal diff --git a/MADE-Uno.sln.DotSettings b/MADE-Uno.sln.DotSettings new file mode 100644 index 0000000..409df4a --- /dev/null +++ b/MADE-Uno.sln.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..2c8313b --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +MADE project banner + +# MADE Uno + +A library of Uno Platform UI components, supporting Windows, Android, iOS, and WebAssembly platforms. + +This is a collection of companion libraries to the [MADE.NET](https://github.com/MADE-Apps/MADE.NET) libraries. + +## Support MADE Uno ♥ + +As many developers know, projects like MADE Uno are built and maintained in spare time. If you find this project useful, please **Star** the repo and if possible, sponsor the project development on GitHub. + +## Build Status + +| Build | Status | Current Version | +| ------ | ------ | ------ | +| Packages | [![CI](https://github.com/MADE-Apps/MADE-Uno/actions/workflows/ci.yml/badge.svg)](https://github.com/MADE-Apps/MADE-Uno/actions/workflows/ci.yml) | [![NuGet](https://img.shields.io/nuget/v/MADE.UI)](https://www.nuget.org/profiles/made-apps) | +| Docs | [![Docs](https://github.com/MADE-Apps/MADE-Uno/actions/workflows/docs.yml/badge.svg)](https://github.com/MADE-Apps/MADE-Uno/actions/workflows/docs.yml) | N/A | + +## Installation 💾 + +[MADE Uno](https://www.nuget.org/profiles/made-apps) components are publicly available via NuGet. Each available package is detailed below. + +| Package | Current | Preview | Downloads | +| ------ | ------ | ------ | ------ | +| UI | [![NuGet](https://img.shields.io/nuget/v/MADE.UI)](https://www.nuget.org/packages/MADE.UI/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI)](https://www.nuget.org/packages/MADE.UI/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.svg)](https://www.nuget.org/packages/MADE.UI) | +| UI.Controls.DropDownList | [![NuGet](https://img.shields.io/nuget/v/MADE.UI.Controls.DropDownList)](https://www.nuget.org/packages/MADE.UI.Controls.DropDownList/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI.Controls.DropDownList)](https://www.nuget.org/packages/MADE.UI.Controls.DropDownList/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.Controls.DropDownList.svg)](https://www.nuget.org/packages/MADE.UI.Controls.DropDownList) | +| UI.Controls.FilePicker | [![NuGet](https://img.shields.io/nuget/v/MADE.UI.Controls.FilePicker)](https://www.nuget.org/packages/MADE.UI.Controls.FilePicker/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI.Controls.FilePicker)](https://www.nuget.org/packages/MADE.UI.Controls.FilePicker/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.Controls.FilePicker.svg)](https://www.nuget.org/packages/MADE.UI.Controls.FilePicker) | +| UI.Controls.Validator | [![NuGet](https://img.shields.io/nuget/v/MADE.UI.Controls.Validator)](https://www.nuget.org/packages/MADE.UI.Controls.Validator/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI.Controls.Validator)](https://www.nuget.org/packages/MADE.UI.Controls.Validator/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.Controls.Validator.svg)](https://www.nuget.org/packages/MADE.UI.Controls.Validator) | +| UI.Styling | [![NuGet](https://img.shields.io/nuget/v/MADE.UI.Styling)](https://www.nuget.org/packages/MADE.UI.Styling/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI.Styling)](https://www.nuget.org/packages/MADE.UI.Styling/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.Styling.svg)](https://www.nuget.org/packages/MADE.UI.Styling) | +| UI.ViewManagement | [![NuGet](https://img.shields.io/nuget/v/MADE.UI.ViewManagement)](https://www.nuget.org/packages/MADE.UI.ViewManagement/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI.ViewManagement)](https://www.nuget.org/packages/MADE.UI.ViewManagement/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.ViewManagement.svg)](https://www.nuget.org/packages/MADE.UI.ViewManagement) | +| UI.Views.Dialogs | [![NuGet](https://img.shields.io/nuget/v/MADE.UI.Views.Dialogs)](https://www.nuget.org/packages/MADE.UI.Views.Dialogs/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI.Views.Dialogs)](https://www.nuget.org/packages/MADE.UI.Views.Dialogs/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.Views.Dialogs.svg)](https://www.nuget.org/packages/MADE.UI.Views.Dialogs) | +| UI.Views.Navigation | [![NuGet](https://img.shields.io/nuget/v/MADE.UI.Views.Navigation)](https://www.nuget.org/packages/MADE.UI.Views.Navigation/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI.Views.Navigation)](https://www.nuget.org/packages/MADE.UI.Views.Navigation/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.Views.Navigation.svg)](https://www.nuget.org/packages/MADE.UI.Views.Navigation) | +| UI.Views.Navigation.Mvvm | [![NuGet](https://img.shields.io/nuget/v/MADE.UI.Views.Navigation.Mvvm)](https://www.nuget.org/packages/MADE.UI.Views.Navigation.Mvvm/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.UI.Views.Navigation.Mvvm)](https://www.nuget.org/packages/MADE.UI.Views.Navigation.Mvvm/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.UI.Views.Navigation.Mvvm.svg)](https://www.nuget.org/packages/MADE.UI.Views.Navigation.Mvvm) | + +## Contributing 🚀 + +Looking to help build MADE Uno? Take a look through our [contribution guidelines](CONTRIBUTING.md). We actively encourage you to jump in and help with any issues! + +## Building MADE Uno 🛠 + +MADE Uno is built using .NET Standard, taking advantage of the new SDK-style projects and multi-targeting enabled with the help of [MSBuild.Sdk.Extras](https://github.com/novotnyllc/MSBuildSdkExtras). + +Each library is configured to take advantage of the Uno Platform libraries to provide cross-platform components. + +You can build the solution using Visual Studio with the following workloads installed: + +- .NET desktop development +- Universal Windows Platform development +- Mobile Development with .NET +- .NET Core cross-platform development + +## License + +MADE Uno is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/assets/Logo.afdesign b/assets/Logo.afdesign new file mode 100644 index 0000000000000000000000000000000000000000..795c3cd046eb34764b029bbb22a0002d3c637646 GIT binary patch literal 30612 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 literal 0 HcmV?d00001 diff --git a/assets/Logo.png b/assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b11a964636657cfd14b6f10060d4490983da710f GIT binary patch literal 4739 zcmaJ_c|6ql{~yP=smM|CrIGuXF&f9Xk|Rfs95aJth8Y^>GBeDeFhZq6$EJ2uq?B^a zlKUKOAvOwGF^)?YT!*YO53o1d?@i zar6N`v({b`V!*q#Q1o*U2<%Ao!!R)(dy!#OvM~-%4J8<}$us~5H0;0+~QzGN2~LCeXj@6WGM>(NGwFrVB_M zbPWO2VLzxdiQ)f6eGU1CI_)5pNo5?Q(!K@tgNtwQKMa9%|GNnrNBcKr50C$?PA30w z4F=OG7D(KmMff46zZ@|9;%Ee@4}n3Ap@$KiVu9>wt|x9SFGz19n?S-i5`m;LfNI!4 zOc1dDhX(vN)PYK((tUw8BmidXMr*l4x{`4b1T+!PJougMJFu5PiTDSy79A;OtsVR+ zMBqN~?`)Xw7(lmkC-iTg0{$KQRt@BOgdS8p5TNNg<#)){!NHqO4JVQSjN!9qw}z{e zgPDn?nVAvX_^S(`bV$IK7#`<{V**-m7|_u$xRD9m4-P|`!jTBmz;)7fMPPXFI416Y zsIGOthBZD6$s{sKg!R+cX|N|Tzn;DxNyN1gK$38j2pb672u}#d#gLc~+r88Xsx@?N zTu8(}t=CU~nOj4D;I;K%3uSb(W&^D zFam!4hCtw7Q3f@f$->bI_7OlE*+A^W!-+t_;xvGPCPq*QbPZrEVa7XuG-4ej0EGXV zKIq>s@>gKi(0_#f_1=G58-U$c8L*Cky$1cZ*nq>g)kvTK`;ZPSzI@8#G7w0JLj;Qc zk79#Bx@Tj~*13z=Z#>$x!_86i>_HrE)6PJr#}f9cCqzSXm0U%yo3)Q?y^J1mawLI+ z?CtN)_`eCsEyfy2WI&GPV+@`ZWHXMR(Fo5PSemc0x;JHr(G1YK)j#K89MZe{h0wx& z<}f+wL57HOaCK-#iRaN)NblWDE5q>mw}_}d+l5ku*11~YEU~doPJJ0I3N5|{PJJ)Q zV`f?k?h-jt35c59>Ehe19bZD}wVff_QD?n378$inF%?@2G3^H}adDPc_s0e-HDoTy z?}6K?X8oZz%<()HEnNLG{wIw@F_o+VFR1Njywj;Kt3InT;C6pJD!?i1_|7dEY^UI? zcdp0v9-oJo75%az7)0A3-WZ@+qPeT>u;E%>BY5O;`b^wGm61Kzgwzv1(T$?1Ta7#C9SoWkgLy*X%I*nxZi0X>ZCpFfyybxG&ag&r*=Uv5_4`wBdsV;H}|G~+(qTajN2JfZL-3UlkyYy zPpO=7D0AB)_aVrnpc#^3@qDUG+VF~Um*E7$3eB?PdkO6PgS5&`yJnAmww&$k>6*Qp zCY{aBvw{h$NM(aRMa}edoU%=QAIY&XN{kg&<;-PWA?a2|7j`QnXB_o5iaQJS3v1n1 z(iFZXhY|M^swC+6rtLh(;sP9^mxRA;(KWi^yJ@T5=qBtPg3g9lvn|<2#(z@?=17f} z7Gzp%QbRP~YZmVC{7?Hh*b>}vT<2l38`fp4LQ;ez^w7wvMrTl=TnrG4i5PI;%2Enr z=p$17Paj>~{C?u1r**Wd_o-C3ZD=vSTjgi>Jzy1mlFo^()5rZZ2$P>9`qUbN z=;n9aaeRXSp@U-SL4zT8rBU&@jfzW)3N^QdjLBBHRKx=}FFilVHTfC?5!B6c#@<0* z0vMjJ@zGpVW#l6#Og-)GmbuBcm$!8H%EAib(i_LEo^IaZmq#NM$Oyd!+=9o|+A8e! zWp9Qxmz}@;idAGGufMO}XH?r_b)SV>h*1mdI;iLqq=9;N&aXu+W>=0%{`gnEH1rQHa@T%bG8xNP%TzcFY`$4Mscdk zVyvBC!<&SvE0mkle!dFUNVRwGD=uKITRFE)b1R=Nl+1ypN8eMikA#c0RLD+R^@3|z zC39lZqka9@d(M3SORw)`Vrz!``?tbY^$i4UX-zj_Y0EbNua{6Z>6f) z7S+j{c4mt&H}(bYhNXa~mz23XZr5c@2bIg2v1*t3$~;M><~x1dNm;&sYQM4-ZcLu< z53-k5YE~%630Sp-5;+f?*~~y}x&lx7>4vwQ2xHUU=hbQM*nSG%f15%*R;XSe^hekG z5{UJIL76D?Hzj!&ut1yxuSZ{aG0~e2jZ7Q~m}R0Ld(w{d^@?WN2*uFbb*|skW|QJI z1gBC|4J9T7r#LecQj3eee1E3yAH0-Zr`3hW_zS#}C&5n6ybVgt=e@x1R5N466O)Oi zA}haJZsQ@Dy55YPftH@SuRgbIGW0Hgc;cmtAF4RLf223q2{i`X>RkmlpC5hk@vkpt zyZ3v^qPd{(&c4L)11HkODuiFUc$%ko8z17`DfaImBT5iYLWdy*?ePxBnk7QGAlpS3 zqqxA_2C@|6BqO+>)qvYsBfm@)Ho(jeEep4(7G2-dr!OIE<$b89{`_0)al%&g<8Mk>Ry^g zG$ME0-}nk>tLt9aB}Q#w8$Vr8aBrVXXgC*yD)Jj_OQEo2J40^NN%jA%YS_wYjkqJr zwU1fk*5Z5qD5#TPlP0e$;~s3|`{U<(;V~*1oK88Vf+N9#m2*@2&j#nykw^QyUx`a& zXP#giOeaQ4%^Xz>xALT(V6d26bFb4 z`jSSAa`LtqCO_0?FW7uoUV>Y!+12vs+b$s$+yv42mSb3pEF4hb(F%5hUqVPI=-vEaBr9>FIf^ft)G_%ILr* z)07zc?Pc;Sy2a6p3li21rOV{cZ6~p(>O|bU=uQ0Ig)1XMp~JhWa@jUBj+f{;%ad#H zg{+pB3B0l)>T)q_Gz40i^yPv_WPFP>>vUTA=Y*b0uTBZ2W+*h}qiQ{I`E5j?`atzU z)TP-Q=7)o0EccssUamZh2f9kWs@Y4tW`xq=5T3cRV85_z*#O;JKx+z??UX`YG@c&a zp{p0&G+8>|GNjYTDIc_BG_4p1k6v^2esXW65&<*7fDU^dInIjfiJdEq+}a{tB@hym z{dAKo+X?KH@uu{V)7`;NQ;9JqLl!Xb!Q zQ6f8^6knclgO?j3Li*~errh>NP`JB(2lFjaEXAKs86TB~b_b{F04>;Dac?Z61K2Uc zORssC9@iF5pIqVzS6A&m93+!*pkb7=yghu%uBj%eJj>0kmtE+t%)g+!;F0XR3~Wu` z$3S9gj*M2C)D|Y6?dP3wXQIby-iS(Ld*^5~PM<%k)67mb_=gB=Gf-SZX>BjR!tGz4 zHdtBj+~R4$6Eq@@p|~K=cd{GyeoET?u_W62Y1fD?BI5uTWc&sE+n%NV5o$^LHS}_S z2*}YC0}7+0&pw)K%t?%B=D(=_po7g*EqbM8W@Cd1?J0^vFZSROjTx8T02}nKFYY;i zxWaB8r82GX;n@c6L2>EPvh6fJVyen&QNDVWHC3f5FK_7WPI?p@ecU6*cXU;9szP}; zAY!<0@IVcgWGJ5C9a$)R&)KBSi+n2BTd){5GdTp``bZEkGntw#T9`lPFm}g4Drp65 zcl2@x|BiO=4h-2tWkW>vRl)msfy95RyQ;Mwq@BZ7_&?DUXqjb!&rhZKdd`=WoH>h) z!H-(f_COY1k4z_2^f+(RGby>b*o6!K)v&^-uw3(8JQJ;cIk@gK8tvl3 zMfTKHJ-d2=xGT}i2`925aRy6ZjDaIBqk=TkmCO-13rUpmgOjMiieKjJ6du&UevX6z zl2DV1;6k()3o20A>wKjKS&{jyaxVBGU;1hKIqY~?TYjy9ge)*PFOS8UUzS-KX{A4x ztl4vvc1315O=kzDMM2(hOj0sy+EJ#UFE|zENtT%&4TnLVM*^61!unfivnStQ;>ARU zkZKHi`^j0l3}!>``w~Z$>v9AMRRz#P-7AQF|Er-@fXGiGvbKua zErmk5R8{>pZg*GN`5=x|X`%cz^Wn1dgUHWL4-{`?UD+=+bh@5#e12>4prKWbVUI%D z)u=bWDIDQkXuIUDTenX=Nv+Wr(NX)#X60A5-beDj=J4KK4L#oWr!VV0IZ|%GN$^&{ zK>{O_C7b=#WP7d7Eo^G?w0tLim7~ f*^T};isOR$1ThcM6KU|Z|BhUpJRM7RV^jVQhjt9m literal 0 HcmV?d00001 diff --git a/assets/ProjectBanner.afdesign b/assets/ProjectBanner.afdesign new file mode 100644 index 0000000000000000000000000000000000000000..52942ae941a53a15f5211c3e0218dfef14466c8c GIT binary patch literal 20253 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