diff --git a/GitVersion.yml b/GitVersion.yml
deleted file mode 100644
index a9712f5..0000000
--- a/GitVersion.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-next-version: 1.0.0
-assembly-versioning-scheme: MajorMinorPatch
-assembly-file-versioning-scheme: MajorMinorPatch
-assembly-informational-format: '{LegacySemVerPadded}'
-build-metadata-padding: 3
-legacy-semver-padding: 3
-major-version-bump-message: '\+semver:\s?(breaking|major)'
-minor-version-bump-message: '\+semver:\s?(feature|minor)'
-patch-version-bump-message: '\+semver:\s?(fix|patch)'
-branches:
- master:
- mode: ContinuousDelivery
- tag:
- increment: Patch
- prevent-increment-of-merged-branch-version: true
- track-merge-target: false
- develop:
- regex: dev(elop)?(ment)?$
- mode: ContinuousDeployment
- tag: preview
- increment: Patch
- prevent-increment-of-merged-branch-version: false
- track-merge-target: true
- tracks-release-branches: true
- is-release-branch: false
- release:
- tag: rc
- pull-request:
- regex: (pull|pull\-requests|pr)[/-]
- tag: alpha
- mode: ContinuousDelivery
- increment: Inherit
- prevent-increment-of-merged-branch-version: false
- track-merge-target: false
- tracks-release-branches: false
- is-release-branch: false
-ignore:
- sha: []
diff --git a/appveyor.yml b/appveyor.yml
index 497aa8b..e00df5a 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -16,6 +16,7 @@ skip_commits:
- 'LICENSE'
- dir/*
- '.gitignore'
+ - 'azure-pipelines.yml'
build:
verbosity: minimal
@@ -44,13 +45,12 @@ init:
- ps: "if($env:APPVEYOR_PULL_REQUEST_NUMBER -eq \"\")\n{\n \n if($env:APPVEYOR_REPO_COMMIT_AUTHOR -eq \"nfbot\" -and $env:APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED -like \"*[version update]*\")\n {\n # commit was from nfbot AND it's taged as a [version update]\n # OK to skip AppVeyor build \n \"Version update only. Skipping build.\" | Write-Host -BackgroundColor White -ForegroundColor Blue\n Exit-AppveyorBuild\n }\n}"
install:
- - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
- - bundle config --local path vendor/bundle
- - gem install bundler --quiet --no-ri --no-rdoc
- - gem install github_changelog_generator --quiet --no-ri --no-rdoc
- # this needs to be replace with the official version and nuget package as soon as it's released
- - dotnet tool install -g --version 4.0.0-pullrequest1422-1625 --add-source https://ci.appveyor.com/nuget/gitversion-8nigugxjftrw GitVersion.CommandLine.DotNetCore.Tool
- - ps: .\install-vsix-appveyor.ps1
+- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
+- bundle config --local path vendor/bundle
+- gem install bundler --quiet --no-ri --no-rdoc
+- gem install github_changelog_generator --quiet --no-ri --no-rdoc
+- dotnet tool install --tool-path . nbgv
+- ps: .\install-vsix-appveyor.ps1
before_build:
- ps: >-
@@ -59,25 +59,32 @@ before_build:
nuget restore source\nanoFramework.Windows.Devices.SerialCommunication.sln
- dotnet-gitversion /l console /output buildserver /updateAssemblyInfo "source\Windows.Devices.SerialCommunication\Properties\AssemblyInfo.cs"
+ .\nbgv cloud -p source -a -c
build_script:
-- ps: >-
-
- msbuild source\nanoFramework.Windows.Devices.SerialCommunication.sln /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
+- ps: msbuild source\nanoFramework.Windows.Devices.SerialCommunication.sln /p:PublicRelease=true /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
before_deploy:
+ - ps: >-
+ .\nbgv cloud --version=$env:NBGV_SemVer1
+
+ $env:MyNuGetVersion = $env:NBGV_NuGetPackageVersion -replace "\-g$env:NBGV_GitCommitIdShort", " "
+
+ .\generate-change-log.ps1
+
+ - nuget pack source\nanoframework.Windows.Devices.SerialCommunication.nuspec -Version %MyNuGetVersion%
+ - nuget pack source\nanoframework.Windows.Devices.SerialCommunication.DELIVERABLES.nuspec -Version %MyNuGetVersion%
- ps: >-
.\commit-assemblyinfo-changes.ps1
.\generate-change-log.ps1
- Push-AppveyorArtifact $env:APPVEYOR_BUILD_FOLDER\source\Nuget.Windows.Devices.SerialCommunication\bin\Release\nanoFramework.Windows.Devices.SerialCommunication.$env:GitVersion_NuGetVersionV2.nupkg
+ Push-AppveyorArtifact $env:APPVEYOR_BUILD_FOLDER\nanoFramework.Windows.Devices.SerialCommunication.$env:MyNuGetVersion.nupkg
after_deploy:
# for this environment variable to work here it has to be set in AppVeyor UI
-- nuget push source\Nuget.Windows.Devices.SerialCommunication\bin\Release\nanoFramework.Windows.Devices.SerialCommunication.%GitVersion_NuGetVersionV2%.nupkg %MyGetToken% -Source https://www.myget.org/F/nanoframework-dev/api/v2/package
-- nuget push source\Nuget.Windows.Devices.SerialCommunication.DELIVERABLES\bin\Release\nanoFramework.Windows.Devices.SerialCommunication.DELIVERABLES.%GitVersion_NuGetVersionV2%.nupkg %MyGetToken% -Source https://www.myget.org/F/nanoframework-dev/api/v2/package
+- nuget push nanoFramework.Windows.Devices.SerialCommunication.%MyNuGetVersion%.nupkg %MyGetToken% -Source https://www.myget.org/F/nanoframework-dev/api/v2/package
+- nuget push nanoFramework.Windows.Devices.SerialCommunication.DELIVERABLES.%MyNuGetVersion%.nupkg %MyGetToken% -Source https://www.myget.org/F/nanoframework-dev/api/v2/package
# requires APPVEYOR_DISCORD_WEBHOOK_URL enviroment variable set with Discord webhook URL
on_failure:
@@ -96,7 +103,7 @@ for:
branches:
only:
- master
- - /v.*/
+ - /v\d.*/
deploy:
- provider: NuGet
@@ -105,9 +112,9 @@ for:
on:
appveyor_repo_tag: true
- provider: GitHub
- tag: v$(GitVersion_NuGetVersionV2)
- release: nanoFramework Windows.Devices.SerialCommunication Library v$(GitVersion_NuGetVersionV2)
- description: 'Check the [changelog](https://github.com/nanoframework/lib-Windows.Devices.SerialCommunication/blob/master/CHANGELOG.md)\n\n## Install from NuGet\n\nThe following NuGet packages are available for download from this release\n\n:package: [.NET](https://www.nuget.org/packages/nanoFramework.Windows.Devices.SerialCommunication/$(GitVersion_NuGetVersionV2)) v$(GitVersion_NuGetVersionV2)'
+ tag: v$(MyNuGetVersion)
+ release: nanoFramework Windows.Devices.SerialCommunication Library v$(MyNuGetVersion)
+ description: 'Check the [changelog](https://github.com/nanoframework/lib-Windows.Devices.SerialCommunication/blob/master/CHANGELOG.md)\n\n## Install from NuGet\n\nThe following NuGet packages are available for download from this release\n\n:package: [.NET](https://www.nuget.org/packages/nanoFramework.Windows.Devices.SerialCommunication/$(MyNuGetVersion)) v$(MyNuGetVersion)'
auth_token:
secure: DNixoFFE+pGlwyhj7McfZoln42vOmj0iY1iNV9zXEr3y0NpXlOIgL8k5ehzlFM1S
artifact:
@@ -120,13 +127,13 @@ for:
-
branches:
only:
- - /dev.*/
+ - /dev(elop)?$/
deploy:
- provider: GitHub
- tag: v$(GitVersion_NuGetVersionV2)
- release: nanoFramework Windows.Devices.SerialCommunication Library v$(GitVersion_NuGetVersionV2)
- description: 'Check the [changelog](https://github.com/nanoframework/lib-Windows.Devices.SerialCommunication/blob/$(appveyor_repo_branch)/CHANGELOG.md)\n\n## Install from nanoFramework MyGet development feed\n\nThe following NuGet packages are available for download from this release\n\npackage: [.NET](https://www.myget.org/feed/nanoframework-dev/package/nuget/nanoFramework.Windows.Devices.SerialCommunication/$(GitVersion_NuGetVersionV2)) v$(GitVersion_NuGetVersionV2)'
+ tag: v$(MyNuGetVersion)
+ release: nanoFramework Windows.Devices.SerialCommunication Library v$(MyNuGetVersion)
+ description: 'Check the [changelog](https://github.com/nanoframework/lib-Windows.Devices.SerialCommunication/blob/$(appveyor_repo_branch)/CHANGELOG.md)\n\n## Install from nanoFramework MyGet development feed\n\nThe following NuGet packages are available for download from this release\n\npackage: [.NET](https://www.myget.org/feed/nanoframework-dev/package/nuget/nanoFramework.Windows.Devices.SerialCommunication/$(MyNuGetVersion)) v$(MyNuGetVersion)'
auth_token:
secure: DNixoFFE+pGlwyhj7McfZoln42vOmj0iY1iNV9zXEr3y0NpXlOIgL8k5ehzlFM1S
artifact:
@@ -148,9 +155,9 @@ for:
on:
appveyor_repo_tag: true
- provider: GitHub
- tag: v$(GitVersion_NuGetVersionV2)
- release: nanoFramework Windows.Devices.SerialCommunication Library v$(GitVersion_NuGetVersionV2)
- description: 'Check the [changelog](https://github.com/nanoframework/lib-Windows.Devices.SerialCommunication/blob/$(appveyor_repo_branch)/CHANGELOG.md)\n\n## Install from NuGet\n\nThe following NuGet packages are available for download from this release\n\n:package: [.NET](https://www.nuget.org/packages/nanoFramework.Windows.Devices.SerialCommunication/$(GitVersion_NuGetVersionV2)) v$(GitVersion_NuGetVersionV2)'
+ tag: v$(MyNuGetVersion)
+ release: nanoFramework Windows.Devices.SerialCommunication Library v$(MyNuGetVersion)
+ description: 'Check the [changelog](https://github.com/nanoframework/lib-Windows.Devices.SerialCommunication/blob/$(appveyor_repo_branch)/CHANGELOG.md)\n\n## Install from NuGet\n\nThe following NuGet packages are available for download from this release\n\n:package: [.NET](https://www.nuget.org/packages/nanoFramework.Windows.Devices.SerialCommunication/$(MyNuGetVersion)) v$(MyNuGetVersion)'
auth_token:
secure: DNixoFFE+pGlwyhj7McfZoln42vOmj0iY1iNV9zXEr3y0NpXlOIgL8k5ehzlFM1S
artifact:
diff --git a/commit-assemblyinfo-changes.ps1 b/commit-assemblyinfo-changes.ps1
index 878e827..7d5b035 100644
--- a/commit-assemblyinfo-changes.ps1
+++ b/commit-assemblyinfo-changes.ps1
@@ -1,22 +1,6 @@
# Copyright (c) 2018 The nanoFramework project contributors
# See LICENSE file in the project root for full license information.
-# skip updating assembly info changes if build is a pull-request or not a tag (can't commit when repo is in a tag)
-if ($env:appveyor_pull_request_number -or $env:APPVEYOR_REPO_TAG -eq "true")
-{
- 'Skip committing assembly info changes...' | Write-Host -ForegroundColor White
-}
-else
-{
- # updated assembly info files
- git add "source\Windows.Devices.SerialCommunication\Properties\AssemblyInfo.cs"
- git commit -m "Update assembly info file for v$env:GitVersion_NuGetVersionV2" -m"[version update]"
- git push origin --porcelain -q > $null
-
- 'Updated assembly info...' | Write-Host -ForegroundColor White -NoNewline
- 'OK' | Write-Host -ForegroundColor Green
-}
-
# update assembly info in nf-interpreter if this is tag
if ($env:APPVEYOR_REPO_TAG -eq "true")
{
@@ -27,13 +11,13 @@ if ($env:APPVEYOR_REPO_TAG -eq "true")
cd nf-interpreter > $null
# new branch name
- $newBranch = "$env:APPVEYOR_REPO_BRANCH-nfbot/update-version/Windows.Devices.SerialCommunication/$env:GitVersion_NuGetVersionV2"
+ $newBranch = "$env:APPVEYOR_REPO_BRANCH-nfbot/update-version/Windows.Devices.SerialCommunication/$env:MyNuGetVersion"
# create branch to perform updates
git checkout -b "$newBranch" develop -q
# replace version in assembly declaration
- $newVersion = $env:GitVersion_AssemblySemFileVer -replace "\." , ", "
+ $newVersion = $env:NBGV_AssemblyFileVersion -replace "\." , ", "
$newVersion = "{ $newVersion }"
$versionRegex = "\{\s*\d+\,\s*\d+\,\s*\d+\,\s*\d+\s*}"
@@ -56,7 +40,7 @@ if ($env:APPVEYOR_REPO_TAG -eq "true")
}
else
{
- $commitMessage = "Update Windows.Devices.SerialCommunication version to $env:GitVersion_NuGetVersionV2"
+ $commitMessage = "Update Windows.Devices.SerialCommunication version to $env:MyNuGetVersion"
# commit changes
git add -A 2>&1
diff --git a/generate-change-log.ps1 b/generate-change-log.ps1
index b9b4851..4949b40 100644
--- a/generate-change-log.ps1
+++ b/generate-change-log.ps1
@@ -14,7 +14,7 @@ else
if ($env:APPVEYOR_REPO_BRANCH -eq "master" -or $env:APPVEYOR_REPO_BRANCH -match "^release*")
{
# generate change log including future version
- bundle exec github_changelog_generator --token $env:GitHubToken --future-release "v$env:GitVersion_MajorMinorPatch"
+ bundle exec github_changelog_generator --token $env:GitHubToken --future-release "v$env:NBGV_Version"
}
else
{
@@ -23,8 +23,14 @@ else
bundle exec github_changelog_generator --token $env:GitHubToken
}
- # updated changelog and the updated assembly info files
- git add CHANGELOG.md
- git commit -m "Update CHANGELOG for v$env:GitVersion_NuGetVersionV2"
- git push origin --porcelain -q > $null
+ # updated changelog, if there are any differences
+ $logDif = git diff CHANGELOG.md
+
+ if($logDif -ne $null)
+ {
+ git add CHANGELOG.md
+ git commit -m "Update CHANGELOG for v$env:MyNuGetVersion"
+ # need to wrap the git command bellow so it doesn't throw an error because of redirecting the output to stderr
+ git push origin --porcelain | Write-Host
+ }
}
diff --git a/source/README.md b/source/README.md
deleted file mode 100644
index 68ec17a..0000000
--- a/source/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-There is packaging tool for Visual Studio 2017 that must be installed before you should open the solution.
-
-Please visit the [NuGetizer-3000 repository](https://github.com/NuGet/NuGet.Build.Packaging) and follow the instructions.
diff --git a/source/Windows.Devices.SerialCommunication/Properties/AssemblyInfo.cs b/source/Windows.Devices.SerialCommunication/Properties/AssemblyInfo.cs
index 955f598..faa038f 100644
--- a/source/Windows.Devices.SerialCommunication/Properties/AssemblyInfo.cs
+++ b/source/Windows.Devices.SerialCommunication/Properties/AssemblyInfo.cs
@@ -14,17 +14,3 @@ using System.Runtime.InteropServices;
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.1.0")]
-[assembly: AssemblyVersion("1.0.1.0")]
-[assembly: AssemblyFileVersion("1.0.1.0")]
-[assembly: AssemblyInformationalVersion("1.0.1-preview002")]
diff --git a/source/Windows.Devices.SerialCommunication/Windows.Devices.SerialCommunication.nfproj b/source/Windows.Devices.SerialCommunication/Windows.Devices.SerialCommunication.nfproj
index d8b13be..5010fd7 100644
--- a/source/Windows.Devices.SerialCommunication/Windows.Devices.SerialCommunication.nfproj
+++ b/source/Windows.Devices.SerialCommunication/Windows.Devices.SerialCommunication.nfproj
@@ -95,6 +95,7 @@
+
diff --git a/source/Windows.Devices.SerialCommunication/packages.config b/source/Windows.Devices.SerialCommunication/packages.config
index 58fa763..9efe815 100644
--- a/source/Windows.Devices.SerialCommunication/packages.config
+++ b/source/Windows.Devices.SerialCommunication/packages.config
@@ -3,6 +3,5 @@
-
-
+
\ No newline at end of file
diff --git a/source/nanoFramework.Windows.Devices.SerialCommunication.DELIVERABLES.nuspec b/source/nanoFramework.Windows.Devices.SerialCommunication.DELIVERABLES.nuspec
new file mode 100644
index 0000000..87a8272
--- /dev/null
+++ b/source/nanoFramework.Windows.Devices.SerialCommunication.DELIVERABLES.nuspec
@@ -0,0 +1,30 @@
+
+
+
+ nanoFramework.Windows.Devices.SerialCommunication.DELIVERABLES
+ $version$
+ nanoFramework.Windows.Devices.SerialCommunication.DELIVERABLES
+ nanoFramework project contributors
+ nanoFramework project contributors
+ false
+
+ false
+ https://github.com/nanoframework
+ https://secure.gravatar.com/avatar/97d0e092247f0716db6d4b47b7d1d1ad
+ Copyright (c) 2018 The nanoFramework project contributors
+ ** DON'T REFERENCE THIS PACKAGE ** Not meant for development. This package includes the deliverable artifacts of the Windows.Devices.SerialCommunication assembly for nanoFramework. These are for testing purposes and for updating the native code base of the library.
+ Windows.Devices.SerialCommunication.DELIVERABLES is not meant for development.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/nanoFramework.Windows.Devices.SerialCommunication.nuspec b/source/nanoFramework.Windows.Devices.SerialCommunication.nuspec
new file mode 100644
index 0000000..8051885
--- /dev/null
+++ b/source/nanoFramework.Windows.Devices.SerialCommunication.nuspec
@@ -0,0 +1,29 @@
+
+
+
+ nanoFramework.Windows.Devices.SerialCommunication
+ $version$
+ nanoFramework.Windows.Devices.SerialCommunication
+ nanoFramework project contributors
+ nanoFramework project contributors
+ false
+
+ false
+ https://github.com/nanoframework
+ https://secure.gravatar.com/avatar/97d0e092247f0716db6d4b47b7d1d1ad
+ Copyright (c) 2018 The nanoFramework project contributors
+ This package includes the Windows.Devices.SerialCommunication assembly for nanoFramework C# projects.
+ Windows.Devices.SerialCommunication assembly for nanoFramework C# projects
+ nanoFramework C# csharp netmf netnf Windows.Devices.SerialCommunication
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/nanoFramework.Windows.Devices.SerialCommunication.sln b/source/nanoFramework.Windows.Devices.SerialCommunication.sln
index cacb502..5484763 100644
--- a/source/nanoFramework.Windows.Devices.SerialCommunication.sln
+++ b/source/nanoFramework.Windows.Devices.SerialCommunication.sln
@@ -5,16 +5,6 @@ VisualStudioVersion = 15.0.27130.2010
MinimumVisualStudioVersion = 10.0.40219.1
Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "Windows.Devices.SerialCommunication", "Windows.Devices.SerialCommunication\Windows.Devices.SerialCommunication.nfproj", "{47B02EF4-2BDA-4C0F-ADC4-076CD39B9310}"
EndProject
-Project("{FF286327-C783-4F7A-AB73-9BCBAD0D4460}") = "Nuget.Windows.Devices.SerialCommunication", "Nuget.Windows.Devices.SerialCommunication\Nuget.Windows.Devices.SerialCommunication.nuproj", "{F7151EC8-F9F2-47F9-BA93-E84580E6E3EE}"
- ProjectSection(ProjectDependencies) = postProject
- {47B02EF4-2BDA-4C0F-ADC4-076CD39B9310} = {47B02EF4-2BDA-4C0F-ADC4-076CD39B9310}
- EndProjectSection
-EndProject
-Project("{FF286327-C783-4F7A-AB73-9BCBAD0D4460}") = "Nuget.Windows.Devices.SerialCommunication.DELIVERABLES", "Nuget.Windows.Devices.SerialCommunication.DELIVERABLES\Nuget.Windows.Devices.SerialCommunication.DELIVERABLES.nuproj", "{A9A49A89-69C3-4C61-B60F-73DF88664602}"
- ProjectSection(ProjectDependencies) = postProject
- {47B02EF4-2BDA-4C0F-ADC4-076CD39B9310} = {47B02EF4-2BDA-4C0F-ADC4-076CD39B9310}
- EndProjectSection
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -26,14 +16,6 @@ Global
{47B02EF4-2BDA-4C0F-ADC4-076CD39B9310}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{47B02EF4-2BDA-4C0F-ADC4-076CD39B9310}.Release|Any CPU.ActiveCfg = Release|Any CPU
{47B02EF4-2BDA-4C0F-ADC4-076CD39B9310}.Release|Any CPU.Build.0 = Release|Any CPU
- {F7151EC8-F9F2-47F9-BA93-E84580E6E3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F7151EC8-F9F2-47F9-BA93-E84580E6E3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F7151EC8-F9F2-47F9-BA93-E84580E6E3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F7151EC8-F9F2-47F9-BA93-E84580E6E3EE}.Release|Any CPU.Build.0 = Release|Any CPU
- {A9A49A89-69C3-4C61-B60F-73DF88664602}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A9A49A89-69C3-4C61-B60F-73DF88664602}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A9A49A89-69C3-4C61-B60F-73DF88664602}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A9A49A89-69C3-4C61-B60F-73DF88664602}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/source/version.json b/source/version.json
new file mode 100644
index 0000000..aa621e0
--- /dev/null
+++ b/source/version.json
@@ -0,0 +1,26 @@
+{
+ "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
+ "version": "1.0.2-preview.{height}",
+ "assemblyVersion": {
+ "precision": "revision"
+ },
+ "semVer1NumericIdentifierPadding": 3,
+ "nugetPackageVersion": {
+ "semVer": 1
+ },
+ "publicReleaseRefSpec": [
+ "^refs/heads/master$",
+ "^refs/heads/v\\d+(?:\\.\\d+)?$"
+ ],
+ "cloudBuild": {
+ "setVersionVariables": true,
+ "setAllVariables": true,
+ "buildNumber": {
+ "enabled": true,
+ "includeCommitId": {
+ "when": "nonPublicReleaseOnly",
+ "where": "buildMetadata"
+ }
+ }
+ }
+}
\ No newline at end of file