lucenenet-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nightowl...@apache.org
Subject [02/26] lucenenet git commit: Ported over Lucene.Net.Spatial
Date Fri, 25 Nov 2016 11:07:07 GMT
Ported over Lucene.Net.Spatial


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/4a485ee4
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/4a485ee4
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/4a485ee4

Branch: refs/heads/master
Commit: 4a485ee473b7b6a0ed5304b4817bd5b9670f7a7a
Parents: 96d38ef
Author: Naz Junaid <nazmul187@gmail.com>
Authored: Wed Jul 27 00:08:00 2016 +0100
Committer: Shad Storhaug <shad@shadstorhaug.com>
Committed: Tue Nov 15 19:17:53 2016 +0700

----------------------------------------------------------------------
 Lucene.Net.sln                                  | 247 ++++++++++
 .../Search/BitsFilteredDocIdSet.cs              |   2 +-
 src/Lucene.Net.Core/Search/FilteredDocIdSet.cs  |   2 +-
 src/Lucene.Net.Spatial/Contrib.Spatial.csproj   | 202 ---------
 src/Lucene.Net.Spatial/DisjointSpatialFilter.cs |  42 +-
 .../Lucene.Net.Spatial.csproj                   | 119 +++++
 .../Prefix/AbstractPrefixTreeFilter.cs          |   4 +-
 .../Prefix/AbstractVisitingPrefixTreeFilter.cs  |  24 +-
 .../Prefix/ContainsPrefixTreeFilter.cs          | 222 ++++-----
 .../Prefix/IntersectsPrefixTreeFilter.cs        |  15 +-
 .../Prefix/PointPrefixTreeFieldCacheProvider.cs |  17 +-
 .../Prefix/PrefixTreeStrategy.cs                |  43 +-
 .../Prefix/RecursivePrefixTreeFilter.cs         |   4 +-
 .../Prefix/RecursivePrefixTreeStrategy.cs       |  56 +--
 .../Prefix/TermQueryPrefixTreeStrategy.cs       |   3 +-
 src/Lucene.Net.Spatial/Prefix/Tree/Cell.cs      |   4 +-
 src/Lucene.Net.Spatial/Prefix/Tree/Node.cs      |   2 +-
 .../Prefix/WithinPrefixTreeFilter.cs            |   4 +-
 src/Lucene.Net.Spatial/SpatialStrategy.cs       |  17 +-
 src/Lucene.Net.Spatial/Util/Bits.cs             |  92 ----
 .../Util/CachingDoubleValueSource.cs            |  21 +-
 .../Util/CompatibilityExtensions.cs             | 173 -------
 src/Lucene.Net.Spatial/Util/FixedBitSet.cs      | 454 -------------------
 src/Lucene.Net.Spatial/Util/FunctionQuery.cs    | 215 ---------
 .../Util/ReciprocalFloatFunction.cs             | 100 ----
 .../Util/ShapeFieldCacheDistanceValueSource.cs  |  14 +-
 src/Lucene.Net.Spatial/Util/TermsFilter.cs      | 117 -----
 .../Util/ValueSourceFilter.cs                   |   6 +-
 .../Vector/DistanceValueSource.cs               |  21 +-
 .../Vector/PointVectorStrategy.cs               |  18 +-
 src/Lucene.Net.Spatial/packages.config          |   4 +
 31 files changed, 636 insertions(+), 1628 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/Lucene.Net.sln
----------------------------------------------------------------------
diff --git a/Lucene.Net.sln b/Lucene.Net.sln
index 7591ffc..7fe1c8e 100644
--- a/Lucene.Net.sln
+++ b/Lucene.Net.sln
@@ -69,15 +69,22 @@ EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Tests.Analysis.Stempel", "src\Lucene.Net.Tests.Analysis.Stempel\Lucene.Net.Tests.Analysis.Stempel.csproj", "{940A6AB1-F00A-40E2-BC1A-2898EFA8C48F}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Tests.Grouping", "src\Lucene.Net.Tests.Grouping\Lucene.Net.Tests.Grouping.csproj", "{C2349F0D-FB66-4544-9C33-4D87F73C6004}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Spatial", "src\Lucene.Net.Spatial\Lucene.Net.Spatial.csproj", "{35C347F4-24B2-4BE5-8117-A0E3001551CE}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
 		Debug|Mixed Platforms = Debug|Mixed Platforms
 		Debug|x86 = Debug|x86
+		Debug35|Any CPU = Debug35|Any CPU
+		Debug35|Mixed Platforms = Debug35|Mixed Platforms
+		Debug35|x86 = Debug35|x86
 		Release|Any CPU = Release|Any CPU
 		Release|Mixed Platforms = Release|Mixed Platforms
 		Release|x86 = Release|x86
+		Release35|Any CPU = Release35|Any CPU
+		Release35|Mixed Platforms = Release35|Mixed Platforms
+		Release35|x86 = Release35|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|x86
@@ -85,184 +92,394 @@ Global
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|x86.ActiveCfg = Debug|x86
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|x86.Build.0 = Debug|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.ActiveCfg = Release|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Any CPU.Build.0 = Release|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Mixed Platforms.ActiveCfg = Debug|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|Mixed Platforms.Build.0 = Debug|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|x86.ActiveCfg = Debug|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug35|x86.Build.0 = Debug|x86
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|x86
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Mixed Platforms.ActiveCfg = Release|x86
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Mixed Platforms.Build.0 = Release|x86
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|x86.ActiveCfg = Release|x86
 		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|x86.Build.0 = Release|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.ActiveCfg = Release|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Any CPU.Build.0 = Release|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Mixed Platforms.ActiveCfg = Release|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|Mixed Platforms.Build.0 = Release|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|x86.ActiveCfg = Release|x86
+		{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release35|x86.Build.0 = Release|x86
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug|x86.Build.0 = Debug|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Debug35|x86.Build.0 = Debug|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Release|Any CPU.Build.0 = Release|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{DE63DB10-975F-460D-AF85-572C17A91284}.Release|x86.ActiveCfg = Release|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Release35|x86.ActiveCfg = Release|Any CPU
+		{DE63DB10-975F-460D-AF85-572C17A91284}.Release35|x86.Build.0 = Release|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Debug35|x86.Build.0 = Debug|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release|x86.ActiveCfg = Release|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release35|x86.ActiveCfg = Release|Any CPU
+		{B2C0D749-CE34-4F62-A15E-00CB2FF5DDB3}.Release35|x86.Build.0 = Release|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Debug35|x86.Build.0 = Debug|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release|Any CPU.Build.0 = Release|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release|x86.ActiveCfg = Release|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release35|x86.ActiveCfg = Release|Any CPU
+		{69D7956C-C2CC-4708-B399-A188FEC384C4}.Release35|x86.Build.0 = Release|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Debug35|x86.Build.0 = Debug|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Release|Any CPU.Build.0 = Release|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{48F7884A-9454-4E88-8413-9D35992CB440}.Release|x86.ActiveCfg = Release|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Release35|x86.ActiveCfg = Release|Any CPU
+		{48F7884A-9454-4E88-8413-9D35992CB440}.Release35|x86.Build.0 = Release|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Debug35|x86.Build.0 = Debug|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release|Any CPU.Build.0 = Release|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release|x86.ActiveCfg = Release|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release35|x86.ActiveCfg = Release|Any CPU
+		{4D77E491-F50F-4A0C-9BD9-F9AB655720AD}.Release35|x86.Build.0 = Release|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Debug35|x86.Build.0 = Debug|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release|x86.ActiveCfg = Release|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release35|x86.ActiveCfg = Release|Any CPU
+		{E067B8BB-D8E7-4040-BEB8-EFF8BB4149BD}.Release35|x86.Build.0 = Release|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Debug35|x86.Build.0 = Debug|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release|Any CPU.Build.0 = Release|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release|x86.ActiveCfg = Release|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release35|x86.ActiveCfg = Release|Any CPU
+		{866723F4-E3A4-47C5-A49F-9A68ADD4CFAE}.Release35|x86.Build.0 = Release|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Debug35|x86.Build.0 = Debug|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release|Any CPU.Build.0 = Release|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release|x86.ActiveCfg = Release|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release35|x86.ActiveCfg = Release|Any CPU
+		{DC83004C-183A-4E1A-ABEA-4FE95B4BC079}.Release35|x86.Build.0 = Release|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Debug35|x86.Build.0 = Debug|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release|Any CPU.Build.0 = Release|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release|x86.ActiveCfg = Release|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release35|x86.ActiveCfg = Release|Any CPU
+		{F4873D95-4300-4E83-AFFA-EF796495D0F0}.Release35|x86.Build.0 = Release|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Debug35|x86.Build.0 = Debug|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release|Any CPU.Build.0 = Release|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release|x86.ActiveCfg = Release|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release35|x86.ActiveCfg = Release|Any CPU
+		{D7276EA2-71BE-4208-889B-B1BD48DBE023}.Release35|x86.Build.0 = Release|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Debug35|x86.Build.0 = Debug|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release|Any CPU.Build.0 = Release|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release|x86.ActiveCfg = Release|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release35|x86.ActiveCfg = Release|Any CPU
+		{3F79B6D4-4359-4F83-B64F-07F4F6262425}.Release35|x86.Build.0 = Release|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug|x86.Build.0 = Debug|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Debug35|x86.Build.0 = Debug|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release|x86.ActiveCfg = Release|Any CPU
 		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release|x86.Build.0 = Release|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release35|x86.ActiveCfg = Release|Any CPU
+		{E8A339C7-FCF6-4A72-8586-56D8961D7B99}.Release35|x86.Build.0 = Release|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Debug|x86.Build.0 = Debug|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Debug35|x86.Build.0 = Debug|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Release|Any CPU.Build.0 = Release|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Release|x86.ActiveCfg = Release|Any CPU
 		{02BAB603-067D-48B1-AEDD-316849652568}.Release|x86.Build.0 = Release|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Release35|x86.ActiveCfg = Release|Any CPU
+		{02BAB603-067D-48B1-AEDD-316849652568}.Release35|x86.Build.0 = Release|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug|x86.Build.0 = Debug|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Debug35|x86.Build.0 = Debug|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release|Any CPU.Build.0 = Release|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release|x86.ActiveCfg = Release|Any CPU
 		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release|x86.Build.0 = Release|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release35|x86.ActiveCfg = Release|Any CPU
+		{4C1B794F-8158-45E6-85B3-2C46569BEBC2}.Release35|x86.Build.0 = Release|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Debug35|x86.Build.0 = Debug|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release|Any CPU.Build.0 = Release|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release|x86.ActiveCfg = Release|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release35|x86.ActiveCfg = Release|Any CPU
+		{4ADD0BBC-B900-4715-9526-D871DE8EEA64}.Release35|x86.Build.0 = Release|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Debug35|x86.Build.0 = Debug|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release|Any CPU.Build.0 = Release|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release|x86.ActiveCfg = Release|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release35|x86.ActiveCfg = Release|Any CPU
+		{C54FE8FA-7986-4C94-B872-D5BFF7C6C74E}.Release35|x86.Build.0 = Release|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug|x86.Build.0 = Debug|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Debug35|x86.Build.0 = Debug|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release|Any CPU.Build.0 = Release|Any CPU
 		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
@@ -397,6 +614,36 @@ Global
 		{C2349F0D-FB66-4544-9C33-4D87F73C6004}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{C2349F0D-FB66-4544-9C33-4D87F73C6004}.Release|x86.ActiveCfg = Release|Any CPU
 		{C2349F0D-FB66-4544-9C33-4D87F73C6004}.Release|x86.Build.0 = Release|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release35|x86.ActiveCfg = Release|Any CPU
+		{351B75B1-BBD5-4E32-8036-7BED4E0135A6}.Release35|x86.Build.0 = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug|x86.Build.0 = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.ActiveCfg = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Any CPU.Build.0 = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|Mixed Platforms.Build.0 = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|x86.ActiveCfg = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Debug35|x86.Build.0 = Debug|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|x86.ActiveCfg = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release|x86.Build.0 = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.ActiveCfg = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Any CPU.Build.0 = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|Mixed Platforms.Build.0 = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|x86.ActiveCfg = Release|Any CPU
+		{35C347F4-24B2-4BE5-8117-A0E3001551CE}.Release35|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Core/Search/BitsFilteredDocIdSet.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Search/BitsFilteredDocIdSet.cs b/src/Lucene.Net.Core/Search/BitsFilteredDocIdSet.cs
index ac3598d..ec39eb5 100644
--- a/src/Lucene.Net.Core/Search/BitsFilteredDocIdSet.cs
+++ b/src/Lucene.Net.Core/Search/BitsFilteredDocIdSet.cs
@@ -56,7 +56,7 @@ namespace Lucene.Net.Search
             this.AcceptDocs = acceptDocs;
         }
 
-        protected internal override bool Match(int docid)
+        protected override bool Match(int docid)
         {
             return AcceptDocs.Get(docid);
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Core/Search/FilteredDocIdSet.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Search/FilteredDocIdSet.cs b/src/Lucene.Net.Core/Search/FilteredDocIdSet.cs
index 7034971..1808617 100644
--- a/src/Lucene.Net.Core/Search/FilteredDocIdSet.cs
+++ b/src/Lucene.Net.Core/Search/FilteredDocIdSet.cs
@@ -92,7 +92,7 @@ namespace Lucene.Net.Search
         /// Validation method to determine whether a docid should be in the result set. </summary>
         /// <param name="docid"> docid to be tested </param>
         /// <returns> true if input docid should be in the result set, false otherwise. </returns>
-        protected internal abstract bool Match(int docid);
+        protected abstract bool Match(int docid);
 
         /// <summary>
         /// Implementation of the contract to build a DocIdSetIterator. </summary>

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Spatial/Contrib.Spatial.csproj
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Spatial/Contrib.Spatial.csproj b/src/Lucene.Net.Spatial/Contrib.Spatial.csproj
deleted file mode 100644
index ff13d0c..0000000
--- a/src/Lucene.Net.Spatial/Contrib.Spatial.csproj
+++ /dev/null
@@ -1,202 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{35C347F4-24B2-4BE5-8117-A0E3001551CE}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Lucene.Net.Spatial</RootNamespace>
-    <AssemblyName>Lucene.Net.Contrib.Spatial</AssemblyName>
-    <FileAlignment>512</FileAlignment>
-    <FileUpgradeFlags>
-    </FileUpgradeFlags>
-    <OldToolsVersion>3.5</OldToolsVersion>
-    <UpgradeBackupLocation />
-    <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 Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <Framework>$(TargetFrameworkVersion.Replace("v", "NET").Replace(".", ""))</Framework>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\..\build\bin\contrib\Spatial\$(Configuration.Replace("35", ""))\$(Framework)\</OutputPath>
-    <DefineConstants>DEBUG;TRACE;$(Framework)</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>
-    </DocumentationFile>
-    <NoWarn>618</NoWarn>
-    <OutputType>Library</OutputType>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug35|AnyCPU' ">
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <Framework>$(TargetFrameworkVersion.Replace("v", "NET").Replace(".", ""))</Framework>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\..\build\bin\contrib\Spatial\$(Configuration.Replace("35", ""))\$(Framework)\</OutputPath>
-    <DefineConstants>DEBUG;TRACE;$(Framework)</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>
-    </DocumentationFile>
-    <NoWarn>618</NoWarn>
-    <OutputType>Library</OutputType>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <Framework>$(TargetFrameworkVersion.Replace("v", "NET").Replace(".", ""))</Framework>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\..\build\bin\contrib\Spatial\$(Configuration.Replace("35", ""))\$(Framework)\</OutputPath>
-    <DefineConstants>TRACE;$(Framework)</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>..\..\..\build\bin\contrib\Spatial\$(Configuration.Replace("35", ""))\$(Framework)\Lucene.Net.Contrib.Spatial.XML</DocumentationFile>
-    <NoWarn>618</NoWarn>
-    <DebugSymbols>true</DebugSymbols>
-    <OutputType>Library</OutputType>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release35|AnyCPU' ">
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <Framework>$(TargetFrameworkVersion.Replace("v", "NET").Replace(".", ""))</Framework>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\..\build\bin\contrib\Spatial\$(Configuration.Replace("35", ""))\$(Framework)\</OutputPath>
-    <DefineConstants>TRACE;$(Framework)</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>..\..\..\build\bin\contrib\Spatial\$(Configuration.Replace("35", ""))\$(Framework)\Lucene.Net.Contrib.Spatial.XML</DocumentationFile>
-    <NoWarn>618</NoWarn>
-    <DebugSymbols>true</DebugSymbols>
-    <OutputType>Library</OutputType>
-  </PropertyGroup>
-  <PropertyGroup>
-    <SignAssembly>true</SignAssembly>
-  </PropertyGroup>
-  <PropertyGroup>
-    <AssemblyOriginatorKeyFile>Lucene.Net.snk</AssemblyOriginatorKeyFile>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Spatial4n.Core">
-      <HintPath>..\..\..\lib\Spatial4n\$(Framework)\Spatial4n.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Condition="'$(Framework)' == 'NET35'" Include="System.Core" />
-    <Reference Include="System.Data" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="BBox\AreaSimilarity.cs" />
-    <Compile Include="BBox\BBoxSimilarity.cs" />
-    <Compile Include="BBox\BBoxSimilarityValueSource.cs" />
-    <Compile Include="BBox\BBoxStrategy.cs" />
-    <Compile Include="BBox\DistanceSimilarity.cs" />
-    <Compile Include="Prefix\PointPrefixTreeFieldCacheProvider.cs" />
-    <Compile Include="Prefix\PrefixTreeStrategy.cs" />
-    <Compile Include="Prefix\RecursivePrefixTreeFilter.cs" />
-    <Compile Include="Prefix\RecursivePrefixTreeStrategy.cs" />
-    <Compile Include="Prefix\TermQueryPrefixTreeStrategy.cs" />
-    <Compile Include="Prefix\Tree\GeohashPrefixTree.cs" />
-    <Compile Include="Prefix\Tree\Node.cs" />
-    <Compile Include="Prefix\Tree\QuadPrefixTree.cs" />
-    <Compile Include="Prefix\Tree\SpatialPrefixTree.cs" />
-    <Compile Include="Prefix\Tree\SpatialPrefixTreeFactory.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Queries\SpatialArgs.cs" />
-    <Compile Include="Queries\SpatialArgsParser.cs" />
-    <Compile Include="Queries\SpatialOperation.cs" />
-    <Compile Include="Queries\UnsupportedSpatialOperation.cs" />
-    <Compile Include="SpatialStrategy.cs" />
-    <Compile Include="Util\Bits.cs" />
-    <Compile Include="Util\ReciprocalFloatFunction.cs" />
-    <Compile Include="Util\ShapeFieldCacheDistanceValueSource.cs" />
-    <Compile Include="Util\CachingDoubleValueSource.cs" />
-    <Compile Include="Util\CompatibilityExtensions.cs" />
-    <Compile Include="Util\FixedBitSet.cs" />
-    <Compile Include="Util\FunctionQuery.cs" />
-    <Compile Include="Util\ShapeFieldCache.cs" />
-    <Compile Include="Util\ShapeFieldCacheProvider.cs" />
-    <Compile Include="Util\TermsEnumCompatibility.cs" />
-    <Compile Include="Util\TermsFilter.cs" />
-    <Compile Include="Util\ValueSourceFilter.cs" />
-    <Compile Include="Vector\DistanceValueSource.cs" />
-    <Compile Include="Vector\PointVectorStrategy.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\core\Lucene.Net.csproj">
-      <Project>{5D4AD9BE-1FFB-41AB-9943-25737971BF57}</Project>
-      <Name>Lucene.Net</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <BootstrapperPackage Include=".NETFramework,Version=v4.0">
-      <Visible>False</Visible>
-      <ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
-      <Install>false</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1</ProductName>
-      <Install>false</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
-      <Visible>False</Visible>
-      <ProductName>Windows Installer 3.1</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Lucene.Net.snk" />
-  </ItemGroup>
-  <ItemGroup />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.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">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Spatial/DisjointSpatialFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Spatial/DisjointSpatialFilter.cs b/src/Lucene.Net.Spatial/DisjointSpatialFilter.cs
index ab6fa3f..e36a97b 100644
--- a/src/Lucene.Net.Spatial/DisjointSpatialFilter.cs
+++ b/src/Lucene.Net.Spatial/DisjointSpatialFilter.cs
@@ -16,6 +16,7 @@
  */
 using System;
 using Lucene.Net.Index;
+using Lucene.Net.Queries;
 using Lucene.Net.Search;
 using Lucene.Net.Spatial.Queries;
 using Lucene.Net.Util;
@@ -40,8 +41,7 @@ namespace Lucene.Net.Spatial
     /// <lucene.experimental></lucene.experimental>
     public class DisjointSpatialFilter : Filter
     {
-        private readonly string field;
-
+        private readonly string field;//maybe null
         private readonly Filter intersectsFilter;
 
         /// <param name="strategy">Needed to compute intersects</param>
@@ -54,16 +54,12 @@ namespace Lucene.Net.Spatial
         /// .
         /// Passing null will assume all docs have spatial data.
         /// </param>
-        public DisjointSpatialFilter(SpatialStrategy strategy, SpatialArgs args, string field
-            )
+        public DisjointSpatialFilter(SpatialStrategy strategy, SpatialArgs args, string field)
         {
-            //maybe null
             this.field = field;
             // TODO consider making SpatialArgs cloneable
-            SpatialOperation origOp = args.Operation;
-            //copy so we can restore
-            args.Operation = SpatialOperation.Intersects;
-            //temporarily set to intersects
+            SpatialOperation origOp = args.Operation; //copy so we can restore
+            args.Operation = SpatialOperation.Intersects; //temporarily set to intersects
             intersectsFilter = strategy.MakeFilter(args);
             args.Operation = origOp;
         }
@@ -99,45 +95,37 @@ namespace Lucene.Net.Spatial
         }
 
         /// <exception cref="System.IO.IOException"></exception>
-        public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs
-            )
+        public override DocIdSet GetDocIdSet(AtomicReaderContext context, Bits acceptDocs)
         {
-            IBits docsWithField;
+            Bits docsWithField;
             if (field == null)
             {
                 docsWithField = null;
             }
             else
             {
-                //all docs
                 //NOTE By using the FieldCache we re-use a cache
                 // which is nice but loading it in this way might be slower than say using an
                 // intersects filter against the world bounds. So do we add a method to the
                 // strategy, perhaps?  But the strategy can't cache it.
                 docsWithField = FieldCache.DEFAULT.GetDocsWithField((context.AtomicReader), field);
                 int maxDoc = context.AtomicReader.MaxDoc;
-                if (docsWithField.Length != maxDoc)
+                if (docsWithField.Length() != maxDoc)
                 {
-                    throw new InvalidOperationException("Bits length should be maxDoc (" + maxDoc + ") but wasn't: "
-                                                        + docsWithField);
+                    throw new InvalidOperationException("Bits length should be maxDoc (" + maxDoc + ") but wasn't: " + docsWithField);
                 }
-                if (docsWithField is Bits.MatchNoBits)
+                if (docsWithField is Bits_MatchNoBits)
                 {
-                    return null;
+                    return null;//match nothing
                 }
-                else
+                else if (docsWithField is Bits_MatchAllBits)
                 {
-                    //match nothing
-                    if (docsWithField is Bits.MatchAllBits)
-                    {
-                        docsWithField = null;
-                    }
+                    docsWithField = null;//all docs
                 }
             }
-            //all docs
+            
             //not so much a chain but a way to conveniently invert the Filter
-            DocIdSet docIdSet = new ChainedFilter(new[] { intersectsFilter }, ChainedFilter.ANDNOT).GetDocIdSet(context,
-                                                                                                              acceptDocs);
+            DocIdSet docIdSet = new ChainedFilter(new[] { intersectsFilter }, ChainedFilter.ANDNOT).GetDocIdSet(context, acceptDocs);
             return BitsFilteredDocIdSet.Wrap(docIdSet, docsWithField);
         }
     }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Spatial/Lucene.Net.Spatial.csproj
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Spatial/Lucene.Net.Spatial.csproj b/src/Lucene.Net.Spatial/Lucene.Net.Spatial.csproj
new file mode 100644
index 0000000..fabf96c
--- /dev/null
+++ b/src/Lucene.Net.Spatial/Lucene.Net.Spatial.csproj
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{35C347F4-24B2-4BE5-8117-A0E3001551CE}</ProjectGuid>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Lucene.Net.Spatial</RootNamespace>
+    <AssemblyName>Lucene.Net.Spatial</AssemblyName>
+    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OutputType>Library</OutputType>
+  </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject />
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Spatial4n.Core, Version=0.3.0.0, Culture=neutral, PublicKeyToken=9f9456e1ca16d45e, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Spatial4n.Core.0.3\lib\net40\Spatial4n.Core.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="Microsoft.CSharp" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DisjointSpatialFilter.cs" />
+    <Compile Include="Prefix\AbstractPrefixTreeFilter.cs" />
+    <Compile Include="Prefix\AbstractVisitingPrefixTreeFilter.cs" />
+    <Compile Include="Prefix\ContainsPrefixTreeFilter.cs" />
+    <Compile Include="Prefix\IntersectsPrefixTreeFilter.cs" />
+    <Compile Include="Prefix\PointPrefixTreeFieldCacheProvider.cs" />
+    <Compile Include="Prefix\PrefixTreeStrategy.cs" />
+    <Compile Include="Prefix\RecursivePrefixTreeStrategy.cs" />
+    <Compile Include="Prefix\TermQueryPrefixTreeStrategy.cs" />
+    <Compile Include="Prefix\Tree\Cell.cs" />
+    <Compile Include="Prefix\Tree\GeohashPrefixTree.cs" />
+    <Compile Include="Prefix\Tree\QuadPrefixTree.cs" />
+    <Compile Include="Prefix\Tree\SpatialPrefixTree.cs" />
+    <Compile Include="Prefix\Tree\SpatialPrefixTreeFactory.cs" />
+    <Compile Include="Prefix\WithinPrefixTreeFilter.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Queries\SpatialArgs.cs" />
+    <Compile Include="Queries\SpatialArgsParser.cs" />
+    <Compile Include="Queries\SpatialOperation.cs" />
+    <Compile Include="Queries\UnsupportedSpatialOperation.cs" />
+    <Compile Include="SpatialStrategy.cs" />
+    <Compile Include="Util\ShapeFieldCacheDistanceValueSource.cs" />
+    <Compile Include="Util\CachingDoubleValueSource.cs" />
+    <Compile Include="Util\ShapeFieldCache.cs" />
+    <Compile Include="Util\ShapeFieldCacheProvider.cs" />
+    <Compile Include="Util\ValueSourceFilter.cs" />
+    <Compile Include="Vector\DistanceValueSource.cs" />
+    <Compile Include="Vector\PointVectorStrategy.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Lucene.Net.Core\Lucene.Net.csproj">
+      <Project>{5d4ad9be-1ffb-41ab-9943-25737971bf57}</Project>
+      <Name>Lucene.Net</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Lucene.Net.Queries\Lucene.Net.Queries.csproj">
+      <Project>{69D7956C-C2CC-4708-B399-A188FEC384C4}</Project>
+      <Name>Lucene.Net.Queries</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.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">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Spatial/Prefix/AbstractPrefixTreeFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Spatial/Prefix/AbstractPrefixTreeFilter.cs b/src/Lucene.Net.Spatial/Prefix/AbstractPrefixTreeFilter.cs
index efcf078..c70a7c5 100644
--- a/src/Lucene.Net.Spatial/Prefix/AbstractPrefixTreeFilter.cs
+++ b/src/Lucene.Net.Spatial/Prefix/AbstractPrefixTreeFilter.cs
@@ -92,14 +92,14 @@ namespace Lucene.Net.Spatial.Prefix
             protected internal readonly AtomicReaderContext context;
 
             protected internal readonly int maxDoc;
-            protected internal IBits acceptDocs;
+            protected internal Bits acceptDocs;
 
             protected internal DocsEnum docsEnum;
             protected internal TermsEnum termsEnum;
 
             /// <exception cref="System.IO.IOException"></exception>
             public BaseTermsEnumTraverser(AbstractPrefixTreeFilter _enclosing, AtomicReaderContext
-                                                                                   context, IBits acceptDocs)
+                                                                                   context, Bits acceptDocs)
             {
                 this._enclosing = _enclosing;
                 //remember to check for null in getDocIdSet

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Spatial/Prefix/AbstractVisitingPrefixTreeFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Spatial/Prefix/AbstractVisitingPrefixTreeFilter.cs b/src/Lucene.Net.Spatial/Prefix/AbstractVisitingPrefixTreeFilter.cs
index f187216..980f4cc 100644
--- a/src/Lucene.Net.Spatial/Prefix/AbstractVisitingPrefixTreeFilter.cs
+++ b/src/Lucene.Net.Spatial/Prefix/AbstractVisitingPrefixTreeFilter.cs
@@ -180,7 +180,7 @@ namespace Lucene.Net.Spatial.Prefix
 
             /// <exception cref="System.IO.IOException"></exception>
             public VisitorTemplate(AbstractVisitingPrefixTreeFilter _enclosing, AtomicReaderContext
-                                                                                    context, IBits acceptDocs,
+                                                                                    context, Bits acceptDocs,
                                    bool hasIndexedLeaves)
                 : base(_enclosing, context, acceptDocs)
             {
@@ -250,31 +250,27 @@ namespace Lucene.Net.Spatial.Prefix
                         }
                     }
                     //Seek to curVNode's cell (or skip if termsEnum has moved beyond)
-                    curVNodeTerm.bytes = curVNode.cell.GetTokenBytes().ToSByteArray();
-                    curVNodeTerm.length = curVNodeTerm.bytes.Length;
+                    curVNodeTerm.Bytes = curVNode.cell.GetTokenBytes();
+                    curVNodeTerm.Length = curVNodeTerm.Bytes.Length;
                     int compare = termsEnum.Comparator.Compare(thisTerm, curVNodeTerm
                         );
                     if (compare > 0)
                     {
                         // leap frog (termsEnum is beyond where we would otherwise seek)
-                        Debug.Assert(
-                            !((AtomicReader)context.Reader).Terms(_enclosing.fieldName).Iterator(null).SeekExact(
-                                curVNodeTerm, false), "should be absent"
-                            );
+                        Debug.Assert(!((AtomicReader)context.Reader).Terms(_enclosing.fieldName).Iterator(null).SeekExact(curVNodeTerm), "should be absent");
                     }
                     else
                     {
                         if (compare < 0)
                         {
                             // Seek !
-                            TermsEnum.SeekStatus seekStatus = termsEnum.SeekCeil(curVNodeTerm, true
-                                );
+                            TermsEnum.SeekStatus seekStatus = termsEnum.SeekCeil(curVNodeTerm);
                             if (seekStatus == TermsEnum.SeekStatus.END)
                             {
                                 break;
                             }
                             // all done
-                            thisTerm = termsEnum.Term;
+                            thisTerm = termsEnum.Term();
                             if (seekStatus == TermsEnum.SeekStatus.NOT_FOUND)
                             {
                                 continue;
@@ -324,8 +320,8 @@ namespace Lucene.Net.Spatial.Prefix
                     // then add all of those docs
                     Debug.Assert(StringHelper.StartsWith(thisTerm, curVNodeTerm
                                      ));
-                    scanCell = _enclosing.grid.GetCell(thisTerm.bytes.ToByteArray(), thisTerm.offset
-                                                       , thisTerm.length, scanCell);
+                    scanCell = _enclosing.grid.GetCell(thisTerm.Bytes, thisTerm.Offset
+                                                       , thisTerm.Length, scanCell);
                     if (scanCell.Level == cell.Level && scanCell.IsLeaf())
                     {
                         VisitLeaf(scanCell);
@@ -397,8 +393,8 @@ namespace Lucene.Net.Spatial.Prefix
                                             );
                     thisTerm = termsEnum.Next())
                 {
-                    scanCell = _enclosing.grid.GetCell(thisTerm.bytes.ToByteArray(), thisTerm.offset
-                                                       , thisTerm.length, scanCell);
+                    scanCell = _enclosing.grid.GetCell(thisTerm.Bytes, thisTerm.Offset
+                                                       , thisTerm.Length, scanCell);
                     int termLevel = scanCell.Level;
                     if (termLevel > scanDetailLevel)
                     {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Spatial/Prefix/ContainsPrefixTreeFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Spatial/Prefix/ContainsPrefixTreeFilter.cs b/src/Lucene.Net.Spatial/Prefix/ContainsPrefixTreeFilter.cs
index bd13b79..23fb602 100644
--- a/src/Lucene.Net.Spatial/Prefix/ContainsPrefixTreeFilter.cs
+++ b/src/Lucene.Net.Spatial/Prefix/ContainsPrefixTreeFilter.cs
@@ -37,39 +37,45 @@ namespace Lucene.Net.Spatial.Prefix
     /// <lucene.experimental></lucene.experimental>
     public class ContainsPrefixTreeFilter : AbstractPrefixTreeFilter
     {
-        public ContainsPrefixTreeFilter(Shape queryShape, string
-             fieldName, SpatialPrefixTree grid, int detailLevel)
+        protected readonly bool multiOverlappingIndexedShapes;
+
+        public ContainsPrefixTreeFilter(Shape queryShape, string fieldName, SpatialPrefixTree grid, int detailLevel, bool multiOverlappingIndexedShapes)
             : base(queryShape, fieldName, grid, detailLevel)
         {
+            this.multiOverlappingIndexedShapes = multiOverlappingIndexedShapes;
         }
 
         /// <exception cref="System.IO.IOException"></exception>
-        public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs
-            )
+        public override DocIdSet GetDocIdSet(AtomicReaderContext context, Bits acceptDocs)
         {
             return new ContainsVisitor(this, context, acceptDocs).Visit(grid.WorldCell, acceptDocs);
         }
 
         private class ContainsVisitor : BaseTermsEnumTraverser
         {
+            private readonly Shape queryShape;
+            private readonly int detailLevel;
+            private readonly bool multiOverlappingIndexedShapes;
+            private SpatialPrefixTree grid;
+
             /// <exception cref="System.IO.IOException"></exception>
-            public ContainsVisitor(ContainsPrefixTreeFilter _enclosing, AtomicReaderContext context
-                , IBits acceptDocs)
-                : base(_enclosing, context, acceptDocs)
+            public ContainsVisitor(ContainsPrefixTreeFilter enclosing, AtomicReaderContext context
+                , Bits acceptDocs)
+                : base(enclosing, context, acceptDocs)
             {
-                this._enclosing = _enclosing;
+                this.queryShape = enclosing.queryShape;
+                this.detailLevel = enclosing.detailLevel;
+                this.grid = enclosing.grid;
+                this.multiOverlappingIndexedShapes = enclosing.multiOverlappingIndexedShapes;
             }
 
             internal BytesRef termBytes = new BytesRef();
 
-            internal Cell nextCell;
+            internal Cell nextCell;//see getLeafDocs
 
-            //see getLeafDocs
-            /// <summary>This is the primary algorithm; recursive.</summary>
             /// <remarks>This is the primary algorithm; recursive.  Returns null if finds none.</remarks>
             /// <exception cref="System.IO.IOException"></exception>
-            internal SmallDocSet Visit(Cell cell, IBits acceptContains
-                )
+            internal SmallDocSet Visit(Cell cell, Bits acceptContains)
             {
                 if (termsEnum == null)
                 {
@@ -80,39 +86,43 @@ namespace Lucene.Net.Spatial.Prefix
                 SmallDocSet leafDocs = GetLeafDocs(cell, acceptContains);
                 // Get the AND of all child results
                 SmallDocSet combinedSubResults = null;
-                ICollection<Cell> subCells = cell.GetSubCells(_enclosing.queryShape);
+
+                //   Optimization: use null subCellsFilter when we know cell is within the query shape.
+                Shape subCellsFilter = queryShape;
+                if (cell.Level != 0 && ((cell.GetShapeRel() == null || cell.GetShapeRel() == SpatialRelation.WITHIN)))
+                {
+                    subCellsFilter = null;
+                    System.Diagnostics.Debug.Assert(cell.GetShape().Relate(queryShape) == SpatialRelation.WITHIN);
+                }
+                ICollection<Cell> subCells = cell.GetSubCells(subCellsFilter);
                 foreach (Cell subCell in subCells)
                 {
                     if (!SeekExact(subCell))
                     {
                         combinedSubResults = null;
                     }
+                    else if (subCell.Level == detailLevel)
+                    {
+                        combinedSubResults = GetDocs(subCell, acceptContains);
+                    }
+                    else if (!multiOverlappingIndexedShapes && 
+                        subCell.GetShapeRel() == SpatialRelation.WITHIN)
+                    {
+                        combinedSubResults = GetLeafDocs(subCell, acceptContains);
+                    }
                     else
                     {
-                        if (subCell.Level == _enclosing.detailLevel)
-                        {
-                            combinedSubResults = GetDocs(subCell, acceptContains);
-                        }
-                        else
-                        {
-                            if (subCell.GetShapeRel() == SpatialRelation.WITHIN)
-                            {
-                                combinedSubResults = GetLeafDocs(subCell, acceptContains);
-                            }
-                            else
-                            {
-                                combinedSubResults = Visit(subCell, acceptContains);
-                            }
-                        }
+                        combinedSubResults = Visit(subCell, acceptContains);
                     }
-                    //recursion
+                    
                     if (combinedSubResults == null)
                     {
                         break;
                     }
-                    acceptContains = combinedSubResults;
+
+                    acceptContains = combinedSubResults;//has the 'AND' effect on next iteration
                 }
-                //has the 'AND' effect on next iteration
+                
                 // Result: OR the leaf docs with AND of all child results
                 if (combinedSubResults != null)
                 {
@@ -128,39 +138,43 @@ namespace Lucene.Net.Spatial.Prefix
             /// <exception cref="System.IO.IOException"></exception>
             private bool SeekExact(Cell cell)
             {
-                System.Diagnostics.Debug.Assert(new BytesRef(cell.GetTokenBytes().ToSByteArray()).CompareTo(this
-                    .termBytes) > 0);
-                this.termBytes.bytes = cell.GetTokenBytes().ToSByteArray();
-                this.termBytes.length = this.termBytes.bytes.Length;
-                return this.termsEnum.SeekExact(this.termBytes, cell.Level <= 2);
+                System.Diagnostics.Debug.Assert(new BytesRef(cell.GetTokenBytes()).CompareTo(termBytes) > 0);
+                this.termBytes.Bytes = cell.GetTokenBytes();
+                this.termBytes.Length = this.termBytes.Bytes.Length;
+                if (termsEnum == null)
+                    return false;
+                return this.termsEnum.SeekExact(termBytes);
             }
 
             /// <exception cref="System.IO.IOException"></exception>
-            private ContainsPrefixTreeFilter.SmallDocSet GetDocs(Cell cell, IBits acceptContains
-                )
+            private SmallDocSet GetDocs(Cell cell, Bits acceptContains)
             {
-                System.Diagnostics.Debug.Assert(new BytesRef(cell.GetTokenBytes().ToSByteArray()).Equals(this.termBytes
-                    ));
+                System.Diagnostics.Debug.Assert(new BytesRef(cell.GetTokenBytes()).Equals(termBytes));
                 return this.CollectDocs(acceptContains);
             }
 
+            private Cell lastLeaf = null;//just for assertion
+
             /// <exception cref="System.IO.IOException"></exception>
-            private ContainsPrefixTreeFilter.SmallDocSet GetLeafDocs(Cell leafCell, IBits acceptContains)
+            private SmallDocSet GetLeafDocs(Cell leafCell, Bits acceptContains)
             {
-                System.Diagnostics.Debug.Assert(new BytesRef(leafCell.GetTokenBytes().ToSByteArray()).Equals(this
-                    .termBytes));
+                System.Diagnostics.Debug.Assert(new BytesRef(leafCell.GetTokenBytes()).Equals(termBytes));
+                System.Diagnostics.Debug.Assert(leafCell.Equals(lastLeaf));//don't call for same leaf again
+                lastLeaf = leafCell;
+
+                if (termsEnum == null)
+                    return null;
                 BytesRef nextTerm = this.termsEnum.Next();
                 if (nextTerm == null)
                 {
-                    this.termsEnum = null;
+                    termsEnum = null;
                     //signals all done
                     return null;
                 }
-                this.nextCell = this._enclosing.grid.GetCell(nextTerm.bytes.ToByteArray(), nextTerm.offset, nextTerm
-                    .length, this.nextCell);
-                if (this.nextCell.Level == leafCell.Level && this.nextCell.IsLeaf())
+                nextCell = grid.GetCell(nextTerm.Bytes, nextTerm.Offset, nextTerm.Length, this.nextCell);
+                if (nextCell.Level == leafCell.Level && nextCell.IsLeaf())
                 {
-                    return this.CollectDocs(acceptContains);
+                    return CollectDocs(acceptContains);
                 }
                 else
                 {
@@ -169,38 +183,34 @@ namespace Lucene.Net.Spatial.Prefix
             }
 
             /// <exception cref="System.IO.IOException"></exception>
-            private ContainsPrefixTreeFilter.SmallDocSet CollectDocs(IBits acceptContains)
+            private SmallDocSet CollectDocs(Bits acceptContains)
             {
-                ContainsPrefixTreeFilter.SmallDocSet set = null;
-                this.docsEnum = this.termsEnum.Docs(acceptContains, this.docsEnum, DocsEnum.FLAG_NONE
-                    );
+                SmallDocSet set = null;
+                docsEnum = termsEnum.Docs(acceptContains, docsEnum, DocsEnum.FLAG_NONE);
                 int docid;
-                while ((docid = this.docsEnum.NextDoc()) != DocIdSetIterator.NO_MORE_DOCS)
+                while ((docid = docsEnum.NextDoc()) != DocIdSetIterator.NO_MORE_DOCS)
                 {
                     if (set == null)
                     {
-                        int size = this.termsEnum.DocFreq;
+                        int size = this.termsEnum.DocFreq();
                         if (size <= 0)
                         {
                             size = 16;
                         }
-                        set = new ContainsPrefixTreeFilter.SmallDocSet(size);
+                        set = new SmallDocSet(size);
                     }
                     set.Set(docid);
                 }
                 return set;
             }
-
-            private readonly ContainsPrefixTreeFilter _enclosing;
-            //class ContainsVisitor
-        }
+        }//class ContainsVisitor
 
         /// <summary>A hash based mutable set of docIds.</summary>
         /// <remarks>
         /// A hash based mutable set of docIds. If this were Solr code then we might
         /// use a combination of HashDocSet and SortedIntDocSet instead.
         /// </remarks>
-        private class SmallDocSet : DocIdSet, Lucene.Net.Util.IBits
+        private class SmallDocSet : DocIdSet, Bits
         {
             private readonly SentinelIntSet intSet;
 
@@ -234,7 +244,7 @@ namespace Lucene.Net.Spatial.Prefix
             /// <remarks>Number of docids.</remarks>
             public virtual int Size()
             {
-                return intSet.Size;
+                return intSet.Size();
             }
 
             /// <summary>NOTE: modifies and returns either "this" or "other"</summary>
@@ -243,7 +253,7 @@ namespace Lucene.Net.Spatial.Prefix
             {
                 ContainsPrefixTreeFilter.SmallDocSet bigger;
                 ContainsPrefixTreeFilter.SmallDocSet smaller;
-                if (other.intSet.Size > this.intSet.Size)
+                if (other.intSet.Size() > this.intSet.Size())
                 {
                     bigger = other;
                     smaller = this;
@@ -254,9 +264,9 @@ namespace Lucene.Net.Spatial.Prefix
                     smaller = other;
                 }
                 //modify bigger
-                foreach (int v in smaller.intSet.keys)
+                foreach (int v in smaller.intSet.Keys)
                 {
-                    if (v == smaller.intSet.emptyVal)
+                    if (v == smaller.intSet.EmptyVal)
                     {
                         continue;
                     }
@@ -266,7 +276,7 @@ namespace Lucene.Net.Spatial.Prefix
             }
 
             /// <exception cref="System.IO.IOException"></exception>
-            public override Lucene.Net.Util.IBits Bits
+            public Lucene.Net.Util.Bits Bits
             {
                 get
                 {
@@ -276,31 +286,6 @@ namespace Lucene.Net.Spatial.Prefix
                 }
             }
 
-            /// <exception cref="System.IO.IOException"></exception>
-            public override DocIdSetIterator Iterator()
-            {
-                if (Size() == 0)
-                {
-                    return null;
-                }
-                //copy the unsorted values to a new array then sort them
-                int d = 0;
-                int[] docs = new int[intSet.Size];
-                foreach (int v in intSet.keys)
-                {
-                    if (v == intSet.emptyVal)
-                    {
-                        continue;
-                    }
-                    docs[d++] = v;
-                }
-                System.Diagnostics.Debug.Assert(d == intSet.Size);
-                int size = d;
-                //sort them
-                Array.Sort(docs, 0, size);
-                return new _DocIdSetIterator_225(size, docs);
-            }
-
             private sealed class _DocIdSetIterator_225 : DocIdSetIterator
             {
                 public _DocIdSetIterator_225(int size, int[] docs)
@@ -312,18 +297,15 @@ namespace Lucene.Net.Spatial.Prefix
 
                 internal int idx;
 
-                public override int DocID
+                public override int DocID()
                 {
-                    get
+                    if (this.idx >= 0 && this.idx < size)
                     {
-                        if (this.idx >= 0 && this.idx < size)
-                        {
-                            return docs[this.idx];
-                        }
-                        else
-                        {
-                            return -1;
-                        }
+                        return docs[this.idx];
+                    }
+                    else
+                    {
+                        return -1;
                     }
                 }
 
@@ -345,9 +327,9 @@ namespace Lucene.Net.Spatial.Prefix
                     return this.SlowAdvance(target);
                 }
 
-                public override long Cost
+                public override long Cost()
                 {
-                    get { return size; }
+                    return size;
                 }
 
                 private readonly int size;
@@ -359,6 +341,40 @@ namespace Lucene.Net.Spatial.Prefix
             {
                 get { return intSet.Exists(index); }
             }
+
+            public override DocIdSetIterator GetIterator()
+            {
+                if (Size() == 0)
+                {
+                    return null;
+                }
+                //copy the unsorted values to a new array then sort them
+                int d = 0;
+                int[] docs = new int[intSet.Size()];
+                foreach (int v in intSet.Keys)
+                {
+                    if (v == intSet.EmptyVal)
+                    {
+                        continue;
+                    }
+                    docs[d++] = v;
+                }
+                System.Diagnostics.Debug.Assert(d == intSet.Size());
+                int size = d;
+                //sort them
+                Array.Sort(docs, 0, size);
+                return new _DocIdSetIterator_225(size, docs);
+            }
+
+            public bool Get(int index)
+            {
+                throw new NotImplementedException();
+            }
+
+            int Bits.Length()
+            {
+                throw new NotImplementedException();
+            }
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/4a485ee4/src/Lucene.Net.Spatial/Prefix/IntersectsPrefixTreeFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Spatial/Prefix/IntersectsPrefixTreeFilter.cs b/src/Lucene.Net.Spatial/Prefix/IntersectsPrefixTreeFilter.cs
index 7201167..f5d8713 100644
--- a/src/Lucene.Net.Spatial/Prefix/IntersectsPrefixTreeFilter.cs
+++ b/src/Lucene.Net.Spatial/Prefix/IntersectsPrefixTreeFilter.cs
@@ -33,10 +33,9 @@ namespace Lucene.Net.Spatial.Prefix
     {
         private readonly bool hasIndexedLeaves;
 
-        public IntersectsPrefixTreeFilter(Shape queryShape, string
-                                                                fieldName, SpatialPrefixTree grid, int detailLevel,
-                                          int prefixGridScanLevel, bool
-                                                                       hasIndexedLeaves)
+        public IntersectsPrefixTreeFilter(Shape queryShape, string fieldName, 
+                                          SpatialPrefixTree grid, int detailLevel,
+                                          int prefixGridScanLevel, bool hasIndexedLeaves)
             : base(queryShape, fieldName, grid, detailLevel, prefixGridScanLevel)
         {
             this.hasIndexedLeaves = hasIndexedLeaves;
@@ -48,8 +47,7 @@ namespace Lucene.Net.Spatial.Prefix
         }
 
         /// <exception cref="System.IO.IOException"></exception>
-        public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs
-            )
+        public override DocIdSet GetDocIdSet(AtomicReaderContext context, Bits acceptDocs)
         {
             return new _VisitorTemplate_55(this, context, acceptDocs, hasIndexedLeaves).GetDocIdSet
                 ();
@@ -62,9 +60,8 @@ namespace Lucene.Net.Spatial.Prefix
             private readonly IntersectsPrefixTreeFilter _enclosing;
             private FixedBitSet results;
 
-            public _VisitorTemplate_55(IntersectsPrefixTreeFilter _enclosing, AtomicReaderContext
-                                                                                  baseArg1, IBits baseArg2,
-                                       bool baseArg3)
+            public _VisitorTemplate_55(IntersectsPrefixTreeFilter _enclosing, AtomicReaderContext baseArg1, 
+                Bits baseArg2, bool baseArg3)
                 : base(_enclosing, baseArg1, baseArg2, baseArg3)
             {
                 this._enclosing = _enclosing;


Mime
View raw message