Skip to content

Commit

Permalink
Merge pull request #67 from agc93/feature/gh-63
Browse files Browse the repository at this point in the history
GH63: Adds Visual Studio 2017 support
  • Loading branch information
gep13 authored Apr 14, 2017
2 parents a1a11e9 + b749d29 commit 405719d
Show file tree
Hide file tree
Showing 37 changed files with 194 additions and 68 deletions.
18 changes: 9 additions & 9 deletions Cake.VisualStudio.sln
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
# Visual Studio 15
VisualStudioVersion = 15.0.26127.3
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.VisualStudio", "src\Cake.VisualStudio.csproj", "{94660BCF-169A-42E1-BD84-345449743069}"
ProjectSection(ProjectDependencies) = postProject
{FCE573DD-E74E-4AB1-9D17-56FC8869797F} = {FCE573DD-E74E-4AB1-9D17-56FC8869797F}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{04D0CE67-A915-44BB-BC3C-8E7885CF9E97}"
ProjectSection(SolutionItems) = preProject
build.cake = build.cake
README.md = README.md
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinTemplate", "template\AddinTemplate\AddinTemplate.csproj", "{FCE573DD-E74E-4AB1-9D17-56FC8869797F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Templates", "Templates", "{7067556F-B744-4F73-B509-C8CC9F559AB9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.VisualStudio", "src\Cake.VisualStudio.csproj", "{94660BCF-169A-42E1-BD84-345449743069}"
ProjectSection(ProjectDependencies) = postProject
{FCE573DD-E74E-4AB1-9D17-56FC8869797F} = {FCE573DD-E74E-4AB1-9D17-56FC8869797F}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinTemplate", "template\AddinTemplate\AddinTemplate.csproj", "{FCE573DD-E74E-4AB1-9D17-56FC8869797F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModuleTemplate", "template\ModuleTemplate\ModuleTemplate.csproj", "{85BCBED7-39BD-4670-85F7-EE36D0DA31C0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ItemTemplate", "template\ItemTemplate\ItemTemplate.csproj", "{C27AB61E-D245-4A8C-ABD1-53313E388509}"
Expand Down
3 changes: 3 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Build worker image
image: Visual Studio 2017

# Build script
init:
- git config --global core.autocrlf true
Expand Down
Binary file removed art/cake-icon.pxf
Binary file not shown.
1 change: 1 addition & 0 deletions build.cake
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ Task("Build")
MSBuild(solutionPath, settings =>
settings.SetPlatformTarget(PlatformTarget.MSIL)
.SetMSBuildPlatform(MSBuildPlatform.x86)
.UseToolVersion(MSBuildToolVersion.VS2017)
.WithProperty("TreatWarningsAsErrors","true")
.SetVerbosity(Verbosity.Quiet)
.WithTarget("Build")
Expand Down
48 changes: 39 additions & 9 deletions src/Cake.VisualStudio.csproj
Original file line number Diff line number Diff line change
@@ -1,12 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.props" Condition="Exists('..\packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.props')" />
<Import Project="..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.props" Condition="Exists('..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.props')" />
<PropertyGroup>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<UseCodebase>true</UseCodebase>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>14.0</OldToolsVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup>
<StartAction>Program</StartAction>
Expand Down Expand Up @@ -102,19 +122,22 @@
<Link>Resources\LICENSE</Link>
<IncludeInVSIX>true</IncludeInVSIX>
</Content>
<Content Include="ContentType\icons.pkgdef">
<Content Include="icons.pkgdef">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<IncludeInVSIX>true</IncludeInVSIX>
</Content>
<Resource Include="Resources\CakeFile.png" />
<Content Include="Resources\cake-icon.ico">
<IncludeInVSIX>true</IncludeInVSIX>
</Content>
<Resource Include="Resources\cakefile.png" />
<Content Include="Resources\MenuIcons.bmp" />
<Content Include="Resources\TaskRunner.png">
<IncludeInVSIX>true</IncludeInVSIX>
</Content>
<Content Include="source.extension.ico">
<DependentUpon>source.extension.vsixmanifest</DependentUpon>
</Content>
<Content Include="ContentType\FileIcons.imagemanifest">
<Content Include="FileIcons.imagemanifest">
<IncludeInVSIX>true</IncludeInVSIX>
<SubType>Designer</SubType>
</Content>
Expand Down Expand Up @@ -143,7 +166,7 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<InProject>false</InProject>
</Content>
<Content Include="..\packages\xunit.abstractions.2.0.1\xunit.abstractions.2.0.1.nupkg">
<Content Include="..\packages\xunit.abstractions.2.0.0\xunit.abstractions.2.0.0.nupkg">
<IncludeInVSIX>true</IncludeInVSIX>
<VSIXSubPath>Packages</VSIXSubPath>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
Expand Down Expand Up @@ -405,17 +428,24 @@
<IncludeOutputGroupsInVSIX>TemplateProjectOutputGroup%3b</IncludeOutputGroupsInVSIX>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(TemplateBuilderTargets)" Condition="Exists('$(TemplateBuilderTargets)')" Label="TemplateBuilder" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets'))" />
</Target>
<Import Project="..\packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.targets" Condition="Exists('..\packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.targets')" />
<Import Project="..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets" Condition="Exists('..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
Expand Down
2 changes: 1 addition & 1 deletion src/CakePackage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ namespace Cake.VisualStudio
[PackageRegistration(UseManagedResourcesOnly = true)]
[InstalledProductRegistration("#110", "#112", Vsix.Version, IconResourceID = 400)]
[ProvideAutoLoad(UIContextGuids80.SolutionExists)]
[Guid(PackageGuids.GuidCakePackageString)]
[Guid(PackageGuids.guidCakePackageString)]
[ProvideMenuResource("Menus.ctmenu", 1)]
[ProvideLanguageService(typeof(CakeLanguageService), Helpers.Constants.CakeContentType, 100)]
[ProvideLanguageExtension(typeof(CakeLanguageService), ".cake")]
Expand Down
9 changes: 4 additions & 5 deletions src/ContentType/CakeLanguageService.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using Cake.VisualStudio.Helpers;
using Microsoft.VisualStudio.Package;
using Microsoft.VisualStudio.TextManager.Interop;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
<ImageManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/ImageManifestSchema/2014">
<Symbols>
<String Name="Resources" Value="/Cake.VisualStudio;Component/" />
<Guid Name="FileIconsGuid" Value="{039993fc-0a8c-492a-85d4-b192074e2607}" />
<Guid Name="FileIconsGuid" Value="{6911e254-ef51-4644-b10c-8db7bffc2b0a}" />
<ID Name="cake" Value="0" />
</Symbols>
<Images>
<Image Guid="$(FileIconsGuid)" ID="$(cake)" AllowColorInversion="false">
<Source Uri="$(Resources)/Resources/CakeFile.png">
<Size Value="16" />
<Source Uri="$(Resources)/Resources/cakefile.png">
<Size Value="32" />
</Source>
</Image>
</Images>
Expand Down
4 changes: 2 additions & 2 deletions src/Helpers/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ public static class Constants
public const string RoslynContentType = "Roslyn Languages";
public const string ClassifierName = "CakeClassifier";
public const string PowerShellUri = "http://cakebuild.net/download/bootstrapper/powershell";
public const string BashUri = "http://cakebuild.net/download/bootstrapper/powershell";
public const string ConfigTemplatePath = "http://cakebuild.net/download/configuration";
public const string BashUri = "http://cakebuild.net/download/bootstrapper/bash";
public const string ConfigTemplatePath = "https://raw.githubusercontent.com/cake-build/resources/develop/cake.config";
public const string ConfigFileName = "cake.config";
public const string ScriptFileName = "build.cake";
}
Expand Down
2 changes: 1 addition & 1 deletion src/Menus/InstallShellBootstrapperCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ internal sealed class InstallShellBootstrapperCommand
/// <summary>
/// Command menu group (command set GUID).
/// </summary>
public static readonly Guid CommandSet = new Guid("5C88A5B5-E412-40D8-A2F1-D20F7C58129C");
public static readonly Guid CommandSet = new Guid("6003519f-6876-4db3-ad29-8d5379949869");

/// <summary>
/// VS Package that provides this command, not null.
Expand Down
Binary file modified src/Resources/CakeFile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Resources/MenuIcons.bmp
Binary file not shown.
Binary file modified src/Resources/MenuIcons.pxf
Binary file not shown.
Binary file added src/Resources/cake-icon.ico
Binary file not shown.
8 changes: 4 additions & 4 deletions src/TaskRunner/TaskRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ private void InitializeCakeRunnerOptions()
{
_options = new List<ITaskRunnerOption>
{
new TaskRunnerOption("Verbose", PackageIds.cmdVerbose, PackageGuids.GuidCakePackageCmdSet, false,
new TaskRunnerOption("Verbose", PackageIds.cmdVerbose, PackageGuids.guidCakePackageCmdSet, false,
"-Verbosity=\"Diagnostic\""),
new TaskRunnerOption("Debug", PackageIds.cmdDebug, PackageGuids.GuidCakePackageCmdSet, false, "-debug"),
new TaskRunnerOption("Dry Run", PackageIds.cmdDryRun, PackageGuids.GuidCakePackageCmdSet, false, "-dryrun"),
new TaskRunnerOption("Experimental", PackageIds.cmdExperimental, PackageGuids.GuidCakePackageCmdSet, false, "-experimental")
new TaskRunnerOption("Debug", PackageIds.cmdDebug, PackageGuids.guidCakePackageCmdSet, false, "-debug"),
new TaskRunnerOption("Dry Run", PackageIds.cmdDryRun, PackageGuids.guidCakePackageCmdSet, false, "-dryrun"),
new TaskRunnerOption("Experimental", PackageIds.cmdExperimental, PackageGuids.guidCakePackageCmdSet, false, "-experimental")
};
}

Expand Down
23 changes: 11 additions & 12 deletions src/VsCommandTable.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// This file was generated by Extensibility Tools v1.10.184
// This file was generated by Extensibility Tools v1.10.188
// </auto-generated>
// ------------------------------------------------------------------------------
namespace Cake.VisualStudio
Expand All @@ -12,18 +12,17 @@ namespace Cake.VisualStudio
/// </summary>
internal sealed partial class PackageGuids
{
public const string GuidCakePackageString = "3cf9b016-d63f-44ee-849d-6f3efc996134";
public const string GuidCakePackageCmdSetString = "053a476e-69c1-4ddd-a56e-2019a3ae8ab9";
public const string GuidTaskRunnerExplorerCmdSetString = "9e78b319-2142-4381-873c-6ec83f092915";
public const string GuidCakePackageCmdSet1String = "6003519f-6876-4db3-ad29-8d5379949869";
public const string MenuIconString = "323afeb5-c72f-40a7-b345-bb57ce3bbc46";
public static Guid GuidCakePackage = new Guid(GuidCakePackageString);
public static Guid GuidCakePackageCmdSet = new Guid(GuidCakePackageCmdSetString);
public static Guid GuidTaskRunnerExplorerCmdSet = new Guid(GuidTaskRunnerExplorerCmdSetString);
public static Guid GuidCakePackageCmdSet1 = new Guid(GuidCakePackageCmdSet1String);
public static Guid MenuIcon = new Guid(MenuIconString);
public const string guidCakePackageString = "3cf9b016-d63f-44ee-849d-6f3efc996134";
public const string guidCakePackageCmdSetString = "053a476e-69c1-4ddd-a56e-2019a3ae8ab9";
public const string guidTaskRunnerExplorerCmdSetString = "9e78b319-2142-4381-873c-6ec83f092915";
public const string guidCakePackageCmdSet1String = "6003519f-6876-4db3-ad29-8d5379949869";
public const string menuIconString = "323afeb5-c72f-40a7-b345-bb57ce3bbc46";
public static Guid guidCakePackage = new Guid(guidCakePackageString);
public static Guid guidCakePackageCmdSet = new Guid(guidCakePackageCmdSetString);
public static Guid guidTaskRunnerExplorerCmdSet = new Guid(guidTaskRunnerExplorerCmdSetString);
public static Guid guidCakePackageCmdSet1 = new Guid(guidCakePackageCmdSet1String);
public static Guid menuIcon = new Guid(menuIconString);
}

/// <summary>
/// Helper class that encapsulates all CommandIDs uses across VS Package.
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/ContentType/icons.pkgdef → src/icons.pkgdef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[$RootKey$\ShellFileAssociations\.cake]
"DefaultIconMoniker"="039993fc-0a8c-492a-85d4-b192074e2607:0"
"DefaultIconMoniker"="6911e254-ef51-4644-b10c-8db7bffc2b0a:0"

[$RootKey$\ShellFileAssociations\.bindings]
"DefaultIconMoniker"="KnownMonikers.Binding"
8 changes: 4 additions & 4 deletions src/packages.config
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Cake.Core" version="0.17.0" targetFramework="net451" developmentDependency="true" />
<package id="Cake.Testing" version="0.17.1" targetFramework="net451" developmentDependency="true" />
<package id="ini-parser" version="2.3.0" targetFramework="net451" />
<package id="Microsoft.VisualStudio.CoreUtility" version="14.2.25123" targetFramework="net451" />
<package id="Microsoft.VisualStudio.Imaging" version="14.2.25123" targetFramework="net451" />
Expand All @@ -24,12 +26,10 @@
<package id="Microsoft.VisualStudio.Threading" version="14.1.131" targetFramework="net451" />
<package id="Microsoft.VisualStudio.Utilities" version="14.2.25123" targetFramework="net451" />
<package id="Microsoft.VisualStudio.Validation" version="14.1.111" targetFramework="net451" />
<package id="Microsoft.VSSDK.BuildTools" version="14.2.25201" targetFramework="net451" developmentDependency="true" />
<package id="Microsoft.VSSDK.BuildTools" version="15.0.26201" targetFramework="net451" developmentDependency="true" />
<package id="TemplateBuilder" version="1.1.4.5-beta" targetFramework="net451" />
<package id="Cake.Core" version="0.17.0" targetFramework="net451" developmentDependency="true" />
<package id="Cake.Testing" version="0.17.1" targetFramework="net451" developmentDependency="true" />
<package id="xunit" version="2.1.0" targetFramework="net451" developmentDependency="true" />
<package id="xunit.abstractions" version="2.0.1" targetFramework="net451" developmentDependency="true" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net451" developmentDependency="true" />
<package id="xunit.assert" version="2.1.0" targetFramework="net451" developmentDependency="true" />
<package id="xunit.core" version="2.1.0" targetFramework="net451" developmentDependency="true" />
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="net451" developmentDependency="true" />
Expand Down
4 changes: 2 additions & 2 deletions src/source.extension.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// This file was generated by Extensibility Tools v1.10.182
// This file was generated by Extensibility Tools v1.10.188
// </auto-generated>
// ------------------------------------------------------------------------------
namespace Cake.VisualStudio
Expand All @@ -9,7 +9,7 @@ static class Vsix
{
public const string Id = "3cf9b016-d63f-44ee-849d-6f3efc996134";
public const string Name = "Cake for Visual Studio";
public const string Description = "Adds support for the Cake build tool in Visual Studio 2015. Includes support for the Task Runner Explorer, new templates and bootstrapping important Cake files.";
public const string Description = @"Adds support for the Cake build tool in Visual Studio 2015 and 2017. Includes support for the Task Runner Explorer, new templates and bootstrapping important Cake files.";
public const string Language = "en-US";
public const string Version = "0.1.1.0";
public const string Author = "Cake Build";
Expand Down
Binary file modified src/source.extension.ico
Binary file not shown.
2 changes: 1 addition & 1 deletion src/source.extension.resx
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@
<value>Cake for Visual Studio</value>
</data>
<data name="112" xml:space="preserve">
<value>Adds support for the Cake build tool in Visual Studio 2015. Includes support for the Task Runner Explorer, new templates and bootstrapping important Cake files.</value>
<value>Adds support for the Cake build tool in Visual Studio 2015 and 2017. Includes support for the Task Runner Explorer, new templates and bootstrapping important Cake files.</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="400" type="System.Resources.ResXFileRef, System.Windows.Forms">
Expand Down
Loading

0 comments on commit 405719d

Please sign in to comment.